54 lines
2.1 KiB
Diff
54 lines
2.1 KiB
Diff
From 8185dc37e0c03b62268c025e7b59bb4e8644f6a1 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Date: Sat, 13 Jul 2019 00:36:49 +0200
|
|
Subject: [PATCH] Read os-release instead of using
|
|
platform.linux_distribution()
|
|
|
|
The function was removed in https://bugs.python.org/issue1322
|
|
and cannot be used in python3.8.
|
|
|
|
There are replacements outside of the stdlib, but it doesn't seem
|
|
worth it it add a dependency on another module. Instead, a simple
|
|
parser for os-release is implemented. os-release is present on all
|
|
distros from the last few years and PRETTY_NAME gives a reliable
|
|
display name of the distro without any heuristics.
|
|
---
|
|
blosc/toplevel.py | 18 +++++++++++++++++-
|
|
1 file changed, 17 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/blosc/toplevel.py b/blosc/toplevel.py
|
|
index 04ad9f0217..94cf4af910 100644
|
|
--- a/blosc/toplevel.py
|
|
+++ b/blosc/toplevel.py
|
|
@@ -800,6 +800,20 @@ def load_tests(loader, tests, pattern):
|
|
tests.addTests(doctest.DocTestSuite())
|
|
return tests
|
|
|
|
+def os_release_pretty_name():
|
|
+ for p in ('/etc/os-release', '/usr/lib/os-release'):
|
|
+ try:
|
|
+ f = open(p, 'rt')
|
|
+ for line in f:
|
|
+ name, _, value = line.rstrip().partition('=')
|
|
+ if name == 'PRETTY_NAME':
|
|
+ if len(value) >= 2 and value[0] in '"\'' and value[0] == value[-1]:
|
|
+ value = value[1:-1]
|
|
+ return value
|
|
+ except IOError:
|
|
+ pass
|
|
+ else:
|
|
+ return None
|
|
|
|
def print_versions():
|
|
"""Print all the versions of software that python-blosc relies on."""
|
|
@@ -815,7 +829,9 @@ def print_versions():
|
|
(sysname, nodename, release, version, machine, processor) = platform.uname()
|
|
print("Platform: %s-%s-%s (%s)" % (sysname, release, machine, version))
|
|
if sysname == "Linux":
|
|
- print("Linux dist: %s" % " ".join(platform.linux_distribution()[:-1]))
|
|
+ distro = os_release_pretty_name()
|
|
+ if distro:
|
|
+ print("Linux dist:", distro)
|
|
if not processor:
|
|
processor = "not recognized"
|
|
print("Processor: %s" % processor)
|