jo
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: distro
|
||||
Version: 1.9.0
|
||||
Summary: Distro - an OS platform information API
|
||||
Home-page: https://github.com/python-distro/distro
|
||||
Author: Nir Cohen
|
||||
Author-email: nir36g@gmail.com
|
||||
License: Apache License, Version 2.0
|
||||
Platform: All
|
||||
Classifier: Development Status :: 5 - Production/Stable
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Intended Audience :: System Administrators
|
||||
Classifier: License :: OSI Approved :: Apache Software License
|
||||
Classifier: Operating System :: POSIX :: Linux
|
||||
Classifier: Operating System :: POSIX :: BSD
|
||||
Classifier: Operating System :: POSIX :: BSD :: FreeBSD
|
||||
Classifier: Operating System :: POSIX :: BSD :: NetBSD
|
||||
Classifier: Operating System :: POSIX :: BSD :: OpenBSD
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3 :: Only
|
||||
Classifier: Programming Language :: Python :: 3.6
|
||||
Classifier: Programming Language :: Python :: 3.7
|
||||
Classifier: Programming Language :: Python :: 3.8
|
||||
Classifier: Programming Language :: Python :: 3.9
|
||||
Classifier: Programming Language :: Python :: 3.10
|
||||
Classifier: Programming Language :: Python :: 3.11
|
||||
Classifier: Programming Language :: Python :: 3.12
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
Classifier: Topic :: System :: Operating System
|
||||
Requires-Python: >=3.6
|
||||
Description-Content-Type: text/markdown
|
||||
License-File: LICENSE
|
||||
|
||||
Distro - an OS platform information API
|
||||
=======================================
|
||||
|
||||
[](https://github.com/python-distro/distro/actions/workflows/ci.yaml)
|
||||
[](https://pypi.python.org/pypi/distro)
|
||||
[](https://img.shields.io/pypi/pyversions/distro.svg)
|
||||
[](https://codecov.io/github/python-distro/distro?branch=master)
|
||||
[](https://pypi.python.org/pypi/distro)
|
||||
[](http://distro.readthedocs.io/en/latest/)
|
||||
|
||||
`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`](https://docs.python.org/3.7/library/platform.html#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](https://github.com/python-distro/distro/issues/177) 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
|
||||
```
|
||||
|
||||
To use as a standalone script, download `distro.py` directly:
|
||||
|
||||
```shell
|
||||
curl -O https://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py
|
||||
python distro.py
|
||||
```
|
||||
|
||||
``distro`` is safe to vendor within projects that do not wish to add
|
||||
dependencies.
|
||||
|
||||
```shell
|
||||
cd myproject
|
||||
curl -O https://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py
|
||||
```
|
||||
|
||||
## 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.name(pretty=True)
|
||||
'CentOS Linux 8'
|
||||
>>> distro.id()
|
||||
'centos'
|
||||
>>> distro.version(best=True)
|
||||
'8.4.2105'
|
||||
```
|
||||
|
||||
|
||||
## Documentation
|
||||
|
||||
On top of the aforementioned API, several more functions are available. For a complete description of the
|
||||
API, see the [latest API documentation](http://distro.readthedocs.org/en/latest/).
|
||||
|
||||
## 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`](https://docs.python.org/3.7/library/platform.html#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](https://bugs.python.org/issue1322) 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
|
||||
|
||||
`distro` is 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 of [a number of Linux distributions](https://github.com/python-distro/distro/tree/master/tests/resources/distros).
|
||||
|
||||
|
||||
## Testing
|
||||
|
||||
```shell
|
||||
git clone git@github.com:python-distro/distro.git
|
||||
cd distro
|
||||
pip install tox
|
||||
tox
|
||||
```
|
||||
|
||||
|
||||
## Contributions
|
||||
|
||||
Pull requests are always welcome to deal with specific distributions or just
|
||||
for general merriment.
|
||||
|
||||
See [CONTRIBUTIONS](https://github.com/python-distro/distro/blob/master/CONTRIBUTING.md) for 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#L1172
|
||||
* https://github.com/chef/ohai/blob/master/lib/ohai/plugins/linux/platform.rb
|
||||
* https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/facts/system/distribution.py
|
||||
* https://github.com/puppetlabs/facter/blob/master/lib/src/facts/linux/os_linux.cc
|
||||
|
||||
## Package manager distributions
|
||||
|
||||
* https://src.fedoraproject.org/rpms/python-distro
|
||||
* https://www.archlinux.org/packages/community/any/python-distro/
|
||||
* https://launchpad.net/ubuntu/+source/python-distro
|
||||
* https://packages.debian.org/stable/python3-distro
|
||||
* https://packages.gentoo.org/packages/dev-python/distro
|
||||
* https://pkgs.org/download/python3-distro
|
||||
* https://slackbuilds.org/repository/14.2/python/python-distro/
|
||||
Reference in New Issue
Block a user