single |
Distro - an OS platform information API
=======================================
[CI Status]
[PyPI version]
[Supported Python Versions]
[Code Coverage]
[Is Wheel]
[Latest Github Release]
[![Join the chat at
https://gitter.im/python-distro/distro]](https://gitter.im/python-distro/distro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
`distro` provides 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 original
[`platform.linux_distribution`]
function (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 but [Windows and OS X
support] is also planned.
For Python 2.6 support, see
https://github.com/python-distro/distro/tree/python2.6-support
## Installation
Installation of the latest released version from PyPI:
`shell
pip install distro
`
Installation of the latest development version:
```shell
pip install https://github.com/python-distro/distro/archive/master.tar.gz
```
## Usage
```bash
$ distro
Name: Antergos Linux
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
>>> import distro
>>> distro.linux_distribution(full_distribution_name=False)
('centos', '7.1.1503', 'Core')
```
## Documentation
On top of the aforementioned API, several more functions are available. For
a complete description of the
API, see the [latest API documentation].
## Background
An alternative implementation became necessary because Python 3.5
deprecated
this function, and Python 3.8 removed it altogether. Its predecessor
function
[`platform.dist`]
was 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. See [Python
issue
1322] for more information.
The `distro` package 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-release` if present, with a fall-back on
`/usr/lib/os-release` if needed.
* The output of the `lsb_release` command, if available.
* The distro release file (`/etc/*(-|_)(release|version)`), if present.
* The `uname` command for BSD based distrubtions.
## Python and Distribution Support
|