Package: distro
Distro - an OS platform information APIdistroprovides information about the
OS distribution it runs on, such as a reliable machine-readable ID, or
version information.It is the recommended replacement for Python's originalplatform.linux_distributionfunction (removed in Python 3.8). It also provides much more functionality
which isn't necessarily Python bound, like a command-line interface.Distro currently supports Linux and BSD based systems butWindows and OS X supportis also planned.For Python 2.6 support, seehttps://github.com/python-distro/distro/tree/python2.6-supportInstallationInstallation of the latest released version from PyPI:pipinstalldistroInstallation of the latest development version:pipinstallhttps://github.com/python-distro/distro/archive/master.tar.gzTo use as a standalone script, downloaddistro.pydirectly:curl-Ohttps://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py
pythondistro.pydistrois safe to vendor within projects that do not wish to add
dependencies.cdmyproject
curl-Ohttps://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.pyUsage$distro
Name:AntergosLinux
Version:2015.10(ISO-Rolling)Codename:ISO-Rolling

$distro-j{"codename":"ISO-Rolling","id":"antergos","like":"arch","version":"16.9","version_parts":{"build_number":"","major":"16","minor":"9"}}$python
>>>importdistro
>>>distro.name(pretty=True)'CentOS Linux 8'>>>distro.id()'centos'>>>distro.version(best=True)'8.4.2105'DocumentationOn top of the aforementioned API, several more functions are available. For a complete description of the
API, see thelatest API documentation.BackgroundAn alternative implementation became necessary because Python 3.5 deprecated
this function, and Python 3.8 removed it altogether. Its predecessor functionplatform.distwas already deprecated since Python 2.6 and removed in Python 3.8. Still, there
are many cases in which access to that information is needed. SeePython issue
1322for more information.Thedistropackage implements a robust and inclusive way of retrieving the
information about a distribution based on new standards and old methods,
namely from these data sources (from high to low precedence):The os-release file/etc/os-releaseif present, with a fall-back on/usr/lib/os-releaseif needed.The output of thelsb_releasecommand, if available.The distro release file (/etc/*(-|_)(release|version)), if present.Theunamecommand for BSD based distrubtions.Python and Distribution Supportdistrois supported and tested on Python 3.6+ and PyPy and on any
distribution that provides one or more of the data sources covered.This package is tested with test data that mimics the exact behavior of the data sources ofa number of Linux distributions.Testinggitclonegit@github.com:python-distro/distro.gitcddistro
pipinstalltox
toxContributionsPull requests are always welcome to deal with specific distributions or just
for general merriment.SeeCONTRIBUTIONSfor contribution info.Reference implementations for supporting additional distributions and file
formats can be found here:https://github.com/saltstack/salt/blob/develop/salt/grains/core.py#L1172https://github.com/chef/ohai/blob/master/lib/ohai/plugins/linux/platform.rbhttps://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/facts/system/distribution.pyhttps://github.com/puppetlabs/facter/blob/master/lib/src/facts/linux/os_linux.ccPackage manager distributionshttps://src.fedoraproject.org/rpms/python-distrohttps://www.archlinux.org/packages/community/any/python-distro/https://launchpad.net/ubuntu/+source/python-distrohttps://packages.debian.org/stable/python3-distrohttps://packages.gentoo.org/packages/dev-python/distrohttps://pkgs.org/download/python3-distrohttps://slackbuilds.org/repository/14.2/python/python-distro/