NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #108 most downloaded on PyPI
Distro - an OS platform information API
Last release 3 years ago
no release in 18 months
Ships fairly regularly
a new release about every 8 months
Nearly every release is documented
notes for 16 of 16 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
16 releases · first in 2016
Refactor distro.info() method to return an InfoDict [ #360 ]
One column per quarter.
Replace setup.py with build [ #342 ]
BACKWARD COMPATIBILITY:
setup.py with build [#342]ENHANCEMENTS:
LinuxDistribution._distro_release_info method complexity [#327]/etc/debian_version [#333] & [#349]RELEASE:
Dropped support for EOL Pythons 2.7, 3.4 and 3.5 [ #281 ]
BACKWARD COMPATIBILITY:
uname back-ends when --root-dir is specified [#311]distro.py to src/distro/distro.py [#315]ENHANCEMENTS:
distro.version() can return an empty string on rolling releases [#312]distro.py to allow standalone execution [#313]BUG FIXES:
include_uname parameter oversight [#305]uname -rs output is empty [#304]distro.id() documentation [#318]linux_distribution regression introduced in [#230] [#325]Deprecated the distro.linux_distribution() function. Use distro.id() , distro.version() and distro.name() instead [ #296 ]
BACKWARDS COMPATIBILITY:
distro.linux_distribution() function. Use distro.id(), distro.version() and distro.name() instead [#296]ENHANCEMENTS:
distro module [#269]__version__ for checking distro version [#292]root_dir parameter [#247]--root-dir option to CLI [#161]/usr/lib/os-release when /etc/os-release isn't available [#262]BUG FIXES:
subprocess.CalledProcessError when running lsb_release [#261]/etc/iredmail-release file while parsing distribution [#268]/dev/null to avoid TextIOWrapper overhead [#271]RELEASE:
nir0s/distro to python-distro/distro on GitHub.Keep output as native string so we can compatible with python2 interface [ #248 ]
BACKWARD COMPATIBILITY:
ENHANCEMENTS:
BUG FIXES:
TESTS:
RELEASE:
Additionally, The Python2.6 branch was fixed to support distro version 1.4.0. It is now passing all tests. Thanks @abadger!
Prefer the VERSION_CODENAME field of os-release to parsing it from VERSION [ #230 ]
BACKWARD COMPATIBILITY:
BUG FIXES:
DOCS:
RELEASE:
Additionally, The Python2.6 branch was fixed and rebased on top of master. It is now passing all tests. Thanks abadger!
Added support for OpenBSD, FreeBSD, and NetBSD [ #207 ]
Lazily load parsers to speed up import time.
BACKWARD COMPATIBILITY:
ENHANCEMENTS:
BUG FIXES:
TESTS:
Note: This version removes official support for Python 2.6. If you need a version that is tested on Python 2.6, please use distro<=1.0.4 .
Note: This version removes official support for Python 2.6. If you need a version that is tested on Python 2.6, please use distro<=1.0.4.
In addition:
BACKWARD COMPATIBILITY:
TESTS:
RELEASE:
Fix not being able to read /etc/ and yet able to read release files inside it.
1.0.4 (2017.04.01)
/etc/ and yet able to read release files inside it.Add manual mapping for redhatenterpriseserver (previously only redhatenterpriseworkstation was mapped)
1.0.3 (2017.03.19)
redhatenterpriseserver (previously only redhatenterpriseworkstation was mapped)ENHANCEMENTS:
redhatenterpriseserver (previously only redhatenterpriseworkstation was mapped) [#148]_parse_distro_release_file [#163]TESTS:
RELEASE:
Add MANIFEST file (which also includes the LICENSE as part of Issue #139)
Prettify output when running distro -j
distro -jlsb_release as utf-8message %s, string form to not-evaulate log messages if unnecessaryENHANCEMENTS:
lsb_release as utf-8 [#144]message %s, string form to not-evaulate log messages if unnecessary [#145]TESTS:
RELEASE:
Add a CLI and a distro entry point. For Python 2.6, argparse will be installed
distro entry point. For Python 2.6, argparse will be installedlsb_release failsbytes invariantlyBACKWARD COMPATIBILITY:
ENHANCEMENTS:
bytes invariantly [#135]lsb_release failsBUG FIXES:
TESTS:
RELEASE:
No longer a package. constants.py has been removed and distro is now a single module.
constants.py has been removed and distro is now a single module.distro.info() now receives best and pretty flags.get_ prefix from get_*_release_attr functions.distro.info()This is the first release of distro.
All previous work was done on ld and therefore unmentioned here. See the release log in GitHub if you want the entire log.
BACKWARD COMPATIBILITY:
ENHANCEMENTS:
TESTS:
DOCS:
This release contains most enhancements that were in the pipe, and is ready for serious use. A few open discussions points exist though, and this is w
This release contains most enhancements that were in the pipe, and is ready for serious use. A few open discussions points exist though, and this is why this release is marked as a pre-release.
API documentation does exist and is complete.
This version is available on PyPI:
pip install ld
Testing could still be improved (see the test-related open issues), but the unit tests at this point cover the major distros and are fairly complete.
Your coding agent can read these notes before it upgrades. Set up the MCP server →