Name | extra-platforms JSON |
Version |
1.3.1
JSON |
| download |
home_page | None |
Summary | Detect platforms and group them by family |
upload_time | 2024-09-18 17:39:20 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | None |
keywords |
multiplatform
pytest
python
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Extra Platforms
[![Last release](https://img.shields.io/pypi/v/extra-platforms.svg)](https://pypi.python.org/pypi/extra-platforms)
[![Python versions](https://img.shields.io/pypi/pyversions/extra-platforms.svg)](https://pypi.python.org/pypi/extra-platforms)
[![Downloads](https://static.pepy.tech/badge/extra_platforms/month)](https://pepy.tech/project/extra_platforms)
[![Unittests status](https://github.com/kdeldycke/extra-platforms/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/kdeldycke/extra-platforms/actions/workflows/tests.yaml?query=branch%3Amain)
[![Coverage status](https://codecov.io/gh/kdeldycke/extra-platforms/branch/main/graph/badge.svg)](https://app.codecov.io/gh/kdeldycke/extra-platforms)
[![Documentation status](https://github.com/kdeldycke/extra-platforms/actions/workflows/docs.yaml/badge.svg?branch=main)](https://github.com/kdeldycke/extra-platforms/actions/workflows/docs.yaml?query=branch%3Amain)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13341712.svg)](https://doi.org/10.5281/zenodo.13341712)
## What is Extra Platforms?
- Provides a list of all known platforms
- Detect the current platform, at the distribution level
- Gather current platform metadata (version, codename, etc.)
- Group platforms into families
- Manage collection of platforms and groups
- Associate each platform and group to an emoji symbol
- New conditional markers for `pytest`:
- `@skip_linux`, `@skip_macos` and `@skip_windows`
- `@unless_linux`, `@unless_macos` and `@unless_windows`
- Address [`distro#177` issue (support for Windows and Mac OS)](https://github.com/python-distro/distro/issues/177)
## Examples
Get the current platform ID and name:
```pycon
>>> from extra_platforms import CURRENT_OS_ID, CURRENT_OS_LABEL
>>> CURRENT_OS_ID
'macos'
>>> CURRENT_OS_LABEL
'macOS'
```
Get the current platform object, from which you can access lots of metadata:
```pycon
>>> from extra_platforms import current_os
>>> my_os = current_os()
>>> my_os
Platform(id='macos', name='macOS', current=True)
>>> my_os.id
'macos'
>>> my_os.name
'macOS'
>>> my_os.icon
'π'
>>> my_os.info()
{
"id": "macos",
"name": "macOS",
"icon": "π",
"current": True,
"distro_id": "darwin",
"version": "23.6.0",
"version_parts": {"major": "23", "minor": "6", "build_number": "0"},
"like": None,
"codename": None,
}
```
Check if a platform is a specific system:
```pycon
>>> from extra_platforms import is_gentoo
>>> is_gentoo()
False
```
Use groups to check if the current platform is part of a specific family:
```pycon
>>> from extra_platforms import UNIX, current_os
>>> current_os() in UNIX
False
```
Or directly use the boolean variables available for each family:
```pycon
>>> from extra_platforms import is_unix
>>> is_unix
False
```
List all platforms of a family:
```pycon
>>> from extra_platforms import LINUX
>>> LINUX
Group(id='linux', name='Any Linux', platform_ids=frozenset({'ibm_powerkvm', 'rocky', 'debian', 'ubuntu', 'mageia', 'xenserver', 'opensuse', 'buildroot', 'rhel', 'parallels', 'pidora', 'sles', 'amzn', 'scientific', 'linuxmint', 'centos', 'android', 'gentoo', 'raspbian', 'unknown_linux', 'mandriva', 'exherbo', 'cloudlinux', 'fedora', 'guix', 'arch', 'altlinux', 'slackware', 'oracle', 'kvmibm'}))
>>> print("\n".join([p.name for p in LINUX]))
ALT Linux
Amazon Linux
Android
Arch Linux
Buildroot
CentOS
CloudLinux OS
Debian
Exherbo Linux
Fedora
Gentoo Linux
Guix System
IBM PowerKVM
KVM for IBM z Systems
Linux Mint
Mageia
Mandriva Linux
openSUSE
Oracle Linux
Parallels
Pidora
Raspbian
RedHat Enterprise Linux
Rocky Linux
Scientific Linux
Slackware
SUSE Linux Enterprise Server
Ubuntu
Unknown Linux
XenServer
```
Reduce a disparate collection of groups and platforms into a minimal descriptive set, by grouping all platforms into families:
```pycon
>>> from extra_platforms import AIX, MACOS, SOLARIS, reduce
>>> reduce([AIX, MACOS])
{
Platform(id='aix', name='IBM AIX', current=False),
Platform(id='macos', name='macOS', current=True),
}
>>> reduce([AIX, MACOS, SOLARIS])
{
Group(id='system_v', name='Any Unix derived from AT&T System Five', platform_ids=frozenset({'aix', 'solaris'})),
Platform(id='macos', name='macOS', current=True),
}
```
## Group β platforms mapping
Relationships between groups and platforms:
<!-- platform-sankey-start -->
```mermaid
---
config:
sankey:
showValues: false
---
sankey-beta
all_platforms,aix,1
all_platforms,altlinux,1
all_platforms,amzn,1
all_platforms,android,1
all_platforms,arch,1
all_platforms,buildroot,1
all_platforms,centos,1
all_platforms,cloudlinux,1
all_platforms,cygwin,1
all_platforms,debian,1
all_platforms,exherbo,1
all_platforms,fedora,1
all_platforms,freebsd,1
all_platforms,gentoo,1
all_platforms,guix,1
all_platforms,hurd,1
all_platforms,ibm_powerkvm,1
all_platforms,kvmibm,1
all_platforms,linuxmint,1
all_platforms,macos,1
all_platforms,mageia,1
all_platforms,mandriva,1
all_platforms,midnightbsd,1
all_platforms,netbsd,1
all_platforms,openbsd,1
all_platforms,opensuse,1
all_platforms,oracle,1
all_platforms,parallels,1
all_platforms,pidora,1
all_platforms,raspbian,1
all_platforms,rhel,1
all_platforms,rocky,1
all_platforms,scientific,1
all_platforms,slackware,1
all_platforms,sles,1
all_platforms,solaris,1
all_platforms,sunos,1
all_platforms,ubuntu,1
all_platforms,unknown_linux,1
all_platforms,windows,1
all_platforms,wsl1,1
all_platforms,wsl2,1
all_platforms,xenserver,1
unix,aix,1
unix,altlinux,1
unix,amzn,1
unix,android,1
unix,arch,1
unix,buildroot,1
unix,centos,1
unix,cloudlinux,1
unix,cygwin,1
unix,debian,1
unix,exherbo,1
unix,fedora,1
unix,freebsd,1
unix,gentoo,1
unix,guix,1
unix,hurd,1
unix,ibm_powerkvm,1
unix,kvmibm,1
unix,linuxmint,1
unix,macos,1
unix,mageia,1
unix,mandriva,1
unix,midnightbsd,1
unix,netbsd,1
unix,openbsd,1
unix,opensuse,1
unix,oracle,1
unix,parallels,1
unix,pidora,1
unix,raspbian,1
unix,rhel,1
unix,rocky,1
unix,scientific,1
unix,slackware,1
unix,sles,1
unix,solaris,1
unix,sunos,1
unix,ubuntu,1
unix,unknown_linux,1
unix,wsl1,1
unix,wsl2,1
unix,xenserver,1
unix_without_macos,aix,1
unix_without_macos,altlinux,1
unix_without_macos,amzn,1
unix_without_macos,android,1
unix_without_macos,arch,1
unix_without_macos,buildroot,1
unix_without_macos,centos,1
unix_without_macos,cloudlinux,1
unix_without_macos,cygwin,1
unix_without_macos,debian,1
unix_without_macos,exherbo,1
unix_without_macos,fedora,1
unix_without_macos,freebsd,1
unix_without_macos,gentoo,1
unix_without_macos,guix,1
unix_without_macos,hurd,1
unix_without_macos,ibm_powerkvm,1
unix_without_macos,kvmibm,1
unix_without_macos,linuxmint,1
unix_without_macos,mageia,1
unix_without_macos,mandriva,1
unix_without_macos,midnightbsd,1
unix_without_macos,netbsd,1
unix_without_macos,openbsd,1
unix_without_macos,opensuse,1
unix_without_macos,oracle,1
unix_without_macos,parallels,1
unix_without_macos,pidora,1
unix_without_macos,raspbian,1
unix_without_macos,rhel,1
unix_without_macos,rocky,1
unix_without_macos,scientific,1
unix_without_macos,slackware,1
unix_without_macos,sles,1
unix_without_macos,solaris,1
unix_without_macos,sunos,1
unix_without_macos,ubuntu,1
unix_without_macos,unknown_linux,1
unix_without_macos,wsl1,1
unix_without_macos,wsl2,1
unix_without_macos,xenserver,1
linux_like,altlinux,1
linux_like,amzn,1
linux_like,android,1
linux_like,arch,1
linux_like,buildroot,1
linux_like,centos,1
linux_like,cloudlinux,1
linux_like,debian,1
linux_like,exherbo,1
linux_like,fedora,1
linux_like,gentoo,1
linux_like,guix,1
linux_like,ibm_powerkvm,1
linux_like,kvmibm,1
linux_like,linuxmint,1
linux_like,mageia,1
linux_like,mandriva,1
linux_like,opensuse,1
linux_like,oracle,1
linux_like,parallels,1
linux_like,pidora,1
linux_like,raspbian,1
linux_like,rhel,1
linux_like,rocky,1
linux_like,scientific,1
linux_like,slackware,1
linux_like,sles,1
linux_like,ubuntu,1
linux_like,unknown_linux,1
linux_like,wsl1,1
linux_like,wsl2,1
linux_like,xenserver,1
linux,altlinux,1
linux,amzn,1
linux,android,1
linux,arch,1
linux,buildroot,1
linux,centos,1
linux,cloudlinux,1
linux,debian,1
linux,exherbo,1
linux,fedora,1
linux,gentoo,1
linux,guix,1
linux,ibm_powerkvm,1
linux,kvmibm,1
linux,linuxmint,1
linux,mageia,1
linux,mandriva,1
linux,opensuse,1
linux,oracle,1
linux,parallels,1
linux,pidora,1
linux,raspbian,1
linux,rhel,1
linux,rocky,1
linux,scientific,1
linux,slackware,1
linux,sles,1
linux,ubuntu,1
linux,unknown_linux,1
linux,xenserver,1
bsd,freebsd,1
bsd,macos,1
bsd,midnightbsd,1
bsd,netbsd,1
bsd,openbsd,1
bsd,sunos,1
bsd_without_macos,freebsd,1
bsd_without_macos,midnightbsd,1
bsd_without_macos,netbsd,1
bsd_without_macos,openbsd,1
bsd_without_macos,sunos,1
system_v,aix,1
system_v,solaris,1
linux_layers,wsl1,1
linux_layers,wsl2,1
unix_layers,cygwin,1
other_unix,hurd,1
any_windows,windows,1
```
<!-- platform-sankey-end -->
## OS families
Each platform is assigned to a group of non-overlpaping families:
<!-- NON_OVERLAPPING_GROUPS-graph-start -->
#### `extra_platforms.NON_OVERLAPPING_GROUPS` - Non-overlapping groups.
```mermaid
flowchart
subgraph "<code>extra_platforms.ANY_WINDOWS</code><br/>πͺ <em>Any Windows</em>"
any_windows_windows(<code>windows</code><br/>πͺ <em>Windows</em>)
end
subgraph "<code>extra_platforms.BSD</code><br/>π
±οΈ <em>Any BSD</em>"
bsd_freebsd(<code>freebsd</code><br/>π <em>FreeBSD</em>)
bsd_macos(<code>macos</code><br/>π <em>macOS</em>)
bsd_midnightbsd(<code>midnightbsd</code><br/>π <em>MidnightBSD</em>)
bsd_netbsd(<code>netbsd</code><br/>π© <em>NetBSD</em>)
bsd_openbsd(<code>openbsd</code><br/>π‘ <em>OpenBSD</em>)
bsd_sunos(<code>sunos</code><br/>βοΈ <em>SunOS</em>)
end
subgraph "<code>extra_platforms.LINUX</code><br/>π§ <em>Any Linux distribution</em>"
linux_altlinux(<code>altlinux</code><br/>β <em>ALT Linux</em>)
linux_amzn(<code>amzn</code><br/>π <em>Amazon Linux</em>)
linux_android(<code>android</code><br/>π€ <em>Android</em>)
linux_arch(<code>arch</code><br/>ποΈ <em>Arch Linux</em>)
linux_buildroot(<code>buildroot</code><br/>β <em>Buildroot</em>)
linux_centos(<code>centos</code><br/>π <em>CentOS</em>)
linux_cloudlinux(<code>cloudlinux</code><br/>β <em>CloudLinux OS</em>)
linux_debian(<code>debian</code><br/>π <em>Debian</em>)
linux_exherbo(<code>exherbo</code><br/>β <em>Exherbo Linux</em>)
linux_fedora(<code>fedora</code><br/>π© <em>Fedora</em>)
linux_gentoo(<code>gentoo</code><br/>ποΈ <em>Gentoo Linux</em>)
linux_guix(<code>guix</code><br/>β <em>Guix System</em>)
linux_ibm_powerkvm(<code>ibm_powerkvm</code><br/>β <em>IBM PowerKVM</em>)
linux_kvmibm(<code>kvmibm</code><br/>β <em>KVM for IBM z Systems</em>)
linux_linuxmint(<code>linuxmint</code><br/>πΏ <em>Linux Mint</em>)
linux_mageia(<code>mageia</code><br/>β <em>Mageia</em>)
linux_mandriva(<code>mandriva</code><br/>β <em>Mandriva Linux</em>)
linux_opensuse(<code>opensuse</code><br/>π¦ <em>openSUSE</em>)
linux_oracle(<code>oracle</code><br/>𦴠<em>Oracle Linux</em>)
linux_parallels(<code>parallels</code><br/>β <em>Parallels</em>)
linux_pidora(<code>pidora</code><br/>β <em>Pidora</em>)
linux_raspbian(<code>raspbian</code><br/>π <em>Raspbian</em>)
linux_rhel(<code>rhel</code><br/>π© <em>RedHat Enterprise Linux</em>)
linux_rocky(<code>rocky</code><br/>π <em>Rocky Linux</em>)
linux_scientific(<code>scientific</code><br/>β <em>Scientific Linux</em>)
linux_slackware(<code>slackware</code><br/>β <em>Slackware</em>)
linux_sles(<code>sles</code><br/>π¦ <em>SUSE Linux Enterprise Server</em>)
linux_ubuntu(<code>ubuntu</code><br/>π― <em>Ubuntu</em>)
linux_unknown_linux(<code>unknown_linux</code><br/>π§ <em>Unknown Linux</em>)
linux_xenserver(<code>xenserver</code><br/>β <em>XenServer</em>)
end
subgraph "<code>extra_platforms.LINUX_LAYERS</code><br/>β <em>Any Linux compatibility layers</em>"
linux_layers_wsl1(<code>wsl1</code><br/>β <em>Windows Subsystem for Linux v1</em>)
linux_layers_wsl2(<code>wsl2</code><br/>β <em>Windows Subsystem for Linux v2</em>)
end
subgraph "<code>extra_platforms.OTHER_UNIX</code><br/>β <em>Any other Unix</em>"
other_unix_hurd(<code>hurd</code><br/>π <em>GNU/Hurd</em>)
end
subgraph "<code>extra_platforms.SYSTEM_V</code><br/>β
€ <em>Any Unix derived from AT&T System Five</em>"
system_v_aix(<code>aix</code><br/>βΏ <em>IBM AIX</em>)
system_v_solaris(<code>solaris</code><br/>π <em>Solaris</em>)
end
subgraph "<code>extra_platforms.UNIX_LAYERS</code><br/>β <em>Any Unix compatibility layers</em>"
unix_layers_cygwin(<code>cygwin</code><br/>ΟΎ <em>Cygwin</em>)
end
```
<!-- NON_OVERLAPPING_GROUPS-graph-end -->
## Other groups
Other groups are available for convenience, but these overlaps:
<!-- EXTRA_GROUPS-graph-start -->
#### `extra_platforms.EXTRA_GROUPS` - Overlapping groups, defined for convenience.
```mermaid
flowchart
subgraph "<code>extra_platforms.ALL_PLATFORMS</code><br/>π₯οΈ <em>All platforms</em>"
all_platforms_aix(<code>aix</code><br/>βΏ <em>IBM AIX</em>)
all_platforms_altlinux(<code>altlinux</code><br/>β <em>ALT Linux</em>)
all_platforms_amzn(<code>amzn</code><br/>π <em>Amazon Linux</em>)
all_platforms_android(<code>android</code><br/>π€ <em>Android</em>)
all_platforms_arch(<code>arch</code><br/>ποΈ <em>Arch Linux</em>)
all_platforms_buildroot(<code>buildroot</code><br/>β <em>Buildroot</em>)
all_platforms_centos(<code>centos</code><br/>π <em>CentOS</em>)
all_platforms_cloudlinux(<code>cloudlinux</code><br/>β <em>CloudLinux OS</em>)
all_platforms_cygwin(<code>cygwin</code><br/>ΟΎ <em>Cygwin</em>)
all_platforms_debian(<code>debian</code><br/>π <em>Debian</em>)
all_platforms_exherbo(<code>exherbo</code><br/>β <em>Exherbo Linux</em>)
all_platforms_fedora(<code>fedora</code><br/>π© <em>Fedora</em>)
all_platforms_freebsd(<code>freebsd</code><br/>π <em>FreeBSD</em>)
all_platforms_gentoo(<code>gentoo</code><br/>ποΈ <em>Gentoo Linux</em>)
all_platforms_guix(<code>guix</code><br/>β <em>Guix System</em>)
all_platforms_hurd(<code>hurd</code><br/>π <em>GNU/Hurd</em>)
all_platforms_ibm_powerkvm(<code>ibm_powerkvm</code><br/>β <em>IBM PowerKVM</em>)
all_platforms_kvmibm(<code>kvmibm</code><br/>β <em>KVM for IBM z Systems</em>)
all_platforms_linuxmint(<code>linuxmint</code><br/>πΏ <em>Linux Mint</em>)
all_platforms_macos(<code>macos</code><br/>π <em>macOS</em>)
all_platforms_mageia(<code>mageia</code><br/>β <em>Mageia</em>)
all_platforms_mandriva(<code>mandriva</code><br/>β <em>Mandriva Linux</em>)
all_platforms_midnightbsd(<code>midnightbsd</code><br/>π <em>MidnightBSD</em>)
all_platforms_netbsd(<code>netbsd</code><br/>π© <em>NetBSD</em>)
all_platforms_openbsd(<code>openbsd</code><br/>π‘ <em>OpenBSD</em>)
all_platforms_opensuse(<code>opensuse</code><br/>π¦ <em>openSUSE</em>)
all_platforms_oracle(<code>oracle</code><br/>𦴠<em>Oracle Linux</em>)
all_platforms_parallels(<code>parallels</code><br/>β <em>Parallels</em>)
all_platforms_pidora(<code>pidora</code><br/>β <em>Pidora</em>)
all_platforms_raspbian(<code>raspbian</code><br/>π <em>Raspbian</em>)
all_platforms_rhel(<code>rhel</code><br/>π© <em>RedHat Enterprise Linux</em>)
all_platforms_rocky(<code>rocky</code><br/>π <em>Rocky Linux</em>)
all_platforms_scientific(<code>scientific</code><br/>β <em>Scientific Linux</em>)
all_platforms_slackware(<code>slackware</code><br/>β <em>Slackware</em>)
all_platforms_sles(<code>sles</code><br/>π¦ <em>SUSE Linux Enterprise Server</em>)
all_platforms_solaris(<code>solaris</code><br/>π <em>Solaris</em>)
all_platforms_sunos(<code>sunos</code><br/>βοΈ <em>SunOS</em>)
all_platforms_ubuntu(<code>ubuntu</code><br/>π― <em>Ubuntu</em>)
all_platforms_unknown_linux(<code>unknown_linux</code><br/>π§ <em>Unknown Linux</em>)
all_platforms_windows(<code>windows</code><br/>πͺ <em>Windows</em>)
all_platforms_wsl1(<code>wsl1</code><br/>β <em>Windows Subsystem for Linux v1</em>)
all_platforms_wsl2(<code>wsl2</code><br/>β <em>Windows Subsystem for Linux v2</em>)
all_platforms_xenserver(<code>xenserver</code><br/>β <em>XenServer</em>)
end
subgraph "<code>extra_platforms.BSD_WITHOUT_MACOS</code><br/>π
±οΈ <em>Any BSD but macOS</em>"
bsd_without_macos_freebsd(<code>freebsd</code><br/>π <em>FreeBSD</em>)
bsd_without_macos_midnightbsd(<code>midnightbsd</code><br/>π <em>MidnightBSD</em>)
bsd_without_macos_netbsd(<code>netbsd</code><br/>π© <em>NetBSD</em>)
bsd_without_macos_openbsd(<code>openbsd</code><br/>π‘ <em>OpenBSD</em>)
bsd_without_macos_sunos(<code>sunos</code><br/>βοΈ <em>SunOS</em>)
end
subgraph "<code>extra_platforms.LINUX_LIKE</code><br/>π§+ <em>Any Linux and compatibility layers</em>"
linux_like_altlinux(<code>altlinux</code><br/>β <em>ALT Linux</em>)
linux_like_amzn(<code>amzn</code><br/>π <em>Amazon Linux</em>)
linux_like_android(<code>android</code><br/>π€ <em>Android</em>)
linux_like_arch(<code>arch</code><br/>ποΈ <em>Arch Linux</em>)
linux_like_buildroot(<code>buildroot</code><br/>β <em>Buildroot</em>)
linux_like_centos(<code>centos</code><br/>π <em>CentOS</em>)
linux_like_cloudlinux(<code>cloudlinux</code><br/>β <em>CloudLinux OS</em>)
linux_like_debian(<code>debian</code><br/>π <em>Debian</em>)
linux_like_exherbo(<code>exherbo</code><br/>β <em>Exherbo Linux</em>)
linux_like_fedora(<code>fedora</code><br/>π© <em>Fedora</em>)
linux_like_gentoo(<code>gentoo</code><br/>ποΈ <em>Gentoo Linux</em>)
linux_like_guix(<code>guix</code><br/>β <em>Guix System</em>)
linux_like_ibm_powerkvm(<code>ibm_powerkvm</code><br/>β <em>IBM PowerKVM</em>)
linux_like_kvmibm(<code>kvmibm</code><br/>β <em>KVM for IBM z Systems</em>)
linux_like_linuxmint(<code>linuxmint</code><br/>πΏ <em>Linux Mint</em>)
linux_like_mageia(<code>mageia</code><br/>β <em>Mageia</em>)
linux_like_mandriva(<code>mandriva</code><br/>β <em>Mandriva Linux</em>)
linux_like_opensuse(<code>opensuse</code><br/>π¦ <em>openSUSE</em>)
linux_like_oracle(<code>oracle</code><br/>𦴠<em>Oracle Linux</em>)
linux_like_parallels(<code>parallels</code><br/>β <em>Parallels</em>)
linux_like_pidora(<code>pidora</code><br/>β <em>Pidora</em>)
linux_like_raspbian(<code>raspbian</code><br/>π <em>Raspbian</em>)
linux_like_rhel(<code>rhel</code><br/>π© <em>RedHat Enterprise Linux</em>)
linux_like_rocky(<code>rocky</code><br/>π <em>Rocky Linux</em>)
linux_like_scientific(<code>scientific</code><br/>β <em>Scientific Linux</em>)
linux_like_slackware(<code>slackware</code><br/>β <em>Slackware</em>)
linux_like_sles(<code>sles</code><br/>π¦ <em>SUSE Linux Enterprise Server</em>)
linux_like_ubuntu(<code>ubuntu</code><br/>π― <em>Ubuntu</em>)
linux_like_unknown_linux(<code>unknown_linux</code><br/>π§ <em>Unknown Linux</em>)
linux_like_wsl1(<code>wsl1</code><br/>β <em>Windows Subsystem for Linux v1</em>)
linux_like_wsl2(<code>wsl2</code><br/>β <em>Windows Subsystem for Linux v2</em>)
linux_like_xenserver(<code>xenserver</code><br/>β <em>XenServer</em>)
end
subgraph "<code>extra_platforms.UNIX</code><br/>β¨· <em>Any Unix</em>"
unix_aix(<code>aix</code><br/>βΏ <em>IBM AIX</em>)
unix_altlinux(<code>altlinux</code><br/>β <em>ALT Linux</em>)
unix_amzn(<code>amzn</code><br/>π <em>Amazon Linux</em>)
unix_android(<code>android</code><br/>π€ <em>Android</em>)
unix_arch(<code>arch</code><br/>ποΈ <em>Arch Linux</em>)
unix_buildroot(<code>buildroot</code><br/>β <em>Buildroot</em>)
unix_centos(<code>centos</code><br/>π <em>CentOS</em>)
unix_cloudlinux(<code>cloudlinux</code><br/>β <em>CloudLinux OS</em>)
unix_cygwin(<code>cygwin</code><br/>ΟΎ <em>Cygwin</em>)
unix_debian(<code>debian</code><br/>π <em>Debian</em>)
unix_exherbo(<code>exherbo</code><br/>β <em>Exherbo Linux</em>)
unix_fedora(<code>fedora</code><br/>π© <em>Fedora</em>)
unix_freebsd(<code>freebsd</code><br/>π <em>FreeBSD</em>)
unix_gentoo(<code>gentoo</code><br/>ποΈ <em>Gentoo Linux</em>)
unix_guix(<code>guix</code><br/>β <em>Guix System</em>)
unix_hurd(<code>hurd</code><br/>π <em>GNU/Hurd</em>)
unix_ibm_powerkvm(<code>ibm_powerkvm</code><br/>β <em>IBM PowerKVM</em>)
unix_kvmibm(<code>kvmibm</code><br/>β <em>KVM for IBM z Systems</em>)
unix_linuxmint(<code>linuxmint</code><br/>πΏ <em>Linux Mint</em>)
unix_macos(<code>macos</code><br/>π <em>macOS</em>)
unix_mageia(<code>mageia</code><br/>β <em>Mageia</em>)
unix_mandriva(<code>mandriva</code><br/>β <em>Mandriva Linux</em>)
unix_midnightbsd(<code>midnightbsd</code><br/>π <em>MidnightBSD</em>)
unix_netbsd(<code>netbsd</code><br/>π© <em>NetBSD</em>)
unix_openbsd(<code>openbsd</code><br/>π‘ <em>OpenBSD</em>)
unix_opensuse(<code>opensuse</code><br/>π¦ <em>openSUSE</em>)
unix_oracle(<code>oracle</code><br/>𦴠<em>Oracle Linux</em>)
unix_parallels(<code>parallels</code><br/>β <em>Parallels</em>)
unix_pidora(<code>pidora</code><br/>β <em>Pidora</em>)
unix_raspbian(<code>raspbian</code><br/>π <em>Raspbian</em>)
unix_rhel(<code>rhel</code><br/>π© <em>RedHat Enterprise Linux</em>)
unix_rocky(<code>rocky</code><br/>π <em>Rocky Linux</em>)
unix_scientific(<code>scientific</code><br/>β <em>Scientific Linux</em>)
unix_slackware(<code>slackware</code><br/>β <em>Slackware</em>)
unix_sles(<code>sles</code><br/>π¦ <em>SUSE Linux Enterprise Server</em>)
unix_solaris(<code>solaris</code><br/>π <em>Solaris</em>)
unix_sunos(<code>sunos</code><br/>βοΈ <em>SunOS</em>)
unix_ubuntu(<code>ubuntu</code><br/>π― <em>Ubuntu</em>)
unix_unknown_linux(<code>unknown_linux</code><br/>π§ <em>Unknown Linux</em>)
unix_wsl1(<code>wsl1</code><br/>β <em>Windows Subsystem for Linux v1</em>)
unix_wsl2(<code>wsl2</code><br/>β <em>Windows Subsystem for Linux v2</em>)
unix_xenserver(<code>xenserver</code><br/>β <em>XenServer</em>)
end
subgraph "<code>extra_platforms.UNIX_WITHOUT_MACOS</code><br/>β¨ <em>Any Unix but macOS</em>"
unix_without_macos_aix(<code>aix</code><br/>βΏ <em>IBM AIX</em>)
unix_without_macos_altlinux(<code>altlinux</code><br/>β <em>ALT Linux</em>)
unix_without_macos_amzn(<code>amzn</code><br/>π <em>Amazon Linux</em>)
unix_without_macos_android(<code>android</code><br/>π€ <em>Android</em>)
unix_without_macos_arch(<code>arch</code><br/>ποΈ <em>Arch Linux</em>)
unix_without_macos_buildroot(<code>buildroot</code><br/>β <em>Buildroot</em>)
unix_without_macos_centos(<code>centos</code><br/>π <em>CentOS</em>)
unix_without_macos_cloudlinux(<code>cloudlinux</code><br/>β <em>CloudLinux OS</em>)
unix_without_macos_cygwin(<code>cygwin</code><br/>ΟΎ <em>Cygwin</em>)
unix_without_macos_debian(<code>debian</code><br/>π <em>Debian</em>)
unix_without_macos_exherbo(<code>exherbo</code><br/>β <em>Exherbo Linux</em>)
unix_without_macos_fedora(<code>fedora</code><br/>π© <em>Fedora</em>)
unix_without_macos_freebsd(<code>freebsd</code><br/>π <em>FreeBSD</em>)
unix_without_macos_gentoo(<code>gentoo</code><br/>ποΈ <em>Gentoo Linux</em>)
unix_without_macos_guix(<code>guix</code><br/>β <em>Guix System</em>)
unix_without_macos_hurd(<code>hurd</code><br/>π <em>GNU/Hurd</em>)
unix_without_macos_ibm_powerkvm(<code>ibm_powerkvm</code><br/>β <em>IBM PowerKVM</em>)
unix_without_macos_kvmibm(<code>kvmibm</code><br/>β <em>KVM for IBM z Systems</em>)
unix_without_macos_linuxmint(<code>linuxmint</code><br/>πΏ <em>Linux Mint</em>)
unix_without_macos_mageia(<code>mageia</code><br/>β <em>Mageia</em>)
unix_without_macos_mandriva(<code>mandriva</code><br/>β <em>Mandriva Linux</em>)
unix_without_macos_midnightbsd(<code>midnightbsd</code><br/>π <em>MidnightBSD</em>)
unix_without_macos_netbsd(<code>netbsd</code><br/>π© <em>NetBSD</em>)
unix_without_macos_openbsd(<code>openbsd</code><br/>π‘ <em>OpenBSD</em>)
unix_without_macos_opensuse(<code>opensuse</code><br/>π¦ <em>openSUSE</em>)
unix_without_macos_oracle(<code>oracle</code><br/>𦴠<em>Oracle Linux</em>)
unix_without_macos_parallels(<code>parallels</code><br/>β <em>Parallels</em>)
unix_without_macos_pidora(<code>pidora</code><br/>β <em>Pidora</em>)
unix_without_macos_raspbian(<code>raspbian</code><br/>π <em>Raspbian</em>)
unix_without_macos_rhel(<code>rhel</code><br/>π© <em>RedHat Enterprise Linux</em>)
unix_without_macos_rocky(<code>rocky</code><br/>π <em>Rocky Linux</em>)
unix_without_macos_scientific(<code>scientific</code><br/>β <em>Scientific Linux</em>)
unix_without_macos_slackware(<code>slackware</code><br/>β <em>Slackware</em>)
unix_without_macos_sles(<code>sles</code><br/>π¦ <em>SUSE Linux Enterprise Server</em>)
unix_without_macos_solaris(<code>solaris</code><br/>π <em>Solaris</em>)
unix_without_macos_sunos(<code>sunos</code><br/>βοΈ <em>SunOS</em>)
unix_without_macos_ubuntu(<code>ubuntu</code><br/>π― <em>Ubuntu</em>)
unix_without_macos_unknown_linux(<code>unknown_linux</code><br/>π§ <em>Unknown Linux</em>)
unix_without_macos_wsl1(<code>wsl1</code><br/>β <em>Windows Subsystem for Linux v1</em>)
unix_without_macos_wsl2(<code>wsl2</code><br/>β <em>Windows Subsystem for Linux v2</em>)
unix_without_macos_xenserver(<code>xenserver</code><br/>β <em>XenServer</em>)
end
```
<!-- EXTRA_GROUPS-graph-end -->
> [!IMPORTANT]
> All the graphs above would be better off if merged. Unfortunately Graphviz is not capable of producing [Euler diagrams](https://xkcd.com/2721/). Only non-overlapping clusters can be rendered.
>
> There's still a chance to [have them supported by Mermaid](https://github.com/mermaid-js/mermaid/issues/2583) so we can switch to that if the feature materialize.
## Used in
Check these projects to get real-life examples of `extra-platforms` usage:
- ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90&style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager#readme) - A unifying CLI for multiple package managers.
- ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90&style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra#readme) - Drop-in replacement for Click to make user-friendly and colorful CLI.
Feel free to send a PR to add your project in this list if you are relying on Click Extra in any way.
## Development
[Development guidelines](https://github.com/kdeldycke/click-extra?tab=readme-ov-file#development) are the same as [parent project Click Extra](https://github.com/kdeldycke/click-extra), from which `extra-platforms` originated.
Raw data
{
"_id": null,
"home_page": null,
"name": "extra-platforms",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "multiplatform, pytest, python",
"author": null,
"author_email": "Kevin Deldycke <kevin@deldycke.com>",
"download_url": "https://files.pythonhosted.org/packages/34/42/98f5510cd5f2da57c8b8538dfd159098ac2855664955af304b5e3d742cc7/extra_platforms-1.3.1.tar.gz",
"platform": null,
"description": "# Extra Platforms\n\n[![Last release](https://img.shields.io/pypi/v/extra-platforms.svg)](https://pypi.python.org/pypi/extra-platforms)\n[![Python versions](https://img.shields.io/pypi/pyversions/extra-platforms.svg)](https://pypi.python.org/pypi/extra-platforms)\n[![Downloads](https://static.pepy.tech/badge/extra_platforms/month)](https://pepy.tech/project/extra_platforms)\n[![Unittests status](https://github.com/kdeldycke/extra-platforms/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/kdeldycke/extra-platforms/actions/workflows/tests.yaml?query=branch%3Amain)\n[![Coverage status](https://codecov.io/gh/kdeldycke/extra-platforms/branch/main/graph/badge.svg)](https://app.codecov.io/gh/kdeldycke/extra-platforms)\n[![Documentation status](https://github.com/kdeldycke/extra-platforms/actions/workflows/docs.yaml/badge.svg?branch=main)](https://github.com/kdeldycke/extra-platforms/actions/workflows/docs.yaml?query=branch%3Amain)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13341712.svg)](https://doi.org/10.5281/zenodo.13341712)\n\n## What is Extra Platforms?\n\n- Provides a list of all known platforms\n- Detect the current platform, at the distribution level\n- Gather current platform metadata (version, codename, etc.)\n- Group platforms into families\n- Manage collection of platforms and groups\n- Associate each platform and group to an emoji symbol\n- New conditional markers for `pytest`:\n - `@skip_linux`, `@skip_macos` and `@skip_windows`\n - `@unless_linux`, `@unless_macos` and `@unless_windows`\n- Address [`distro#177` issue (support for Windows and Mac OS)](https://github.com/python-distro/distro/issues/177)\n\n## Examples\n\nGet the current platform ID and name:\n\n```pycon\n>>> from extra_platforms import CURRENT_OS_ID, CURRENT_OS_LABEL\n\n>>> CURRENT_OS_ID\n'macos'\n\n>>> CURRENT_OS_LABEL\n'macOS'\n```\n\nGet the current platform object, from which you can access lots of metadata:\n\n```pycon\n>>> from extra_platforms import current_os\n\n>>> my_os = current_os()\n>>> my_os\nPlatform(id='macos', name='macOS', current=True)\n\n>>> my_os.id\n'macos'\n>>> my_os.name\n'macOS'\n>>> my_os.icon\n'\ud83c\udf4e'\n\n>>> my_os.info()\n{\n \"id\": \"macos\",\n \"name\": \"macOS\",\n \"icon\": \"\ud83c\udf4e\",\n \"current\": True,\n \"distro_id\": \"darwin\",\n \"version\": \"23.6.0\",\n \"version_parts\": {\"major\": \"23\", \"minor\": \"6\", \"build_number\": \"0\"},\n \"like\": None,\n \"codename\": None,\n}\n```\n\nCheck if a platform is a specific system:\n\n```pycon\n>>> from extra_platforms import is_gentoo\n\n>>> is_gentoo()\nFalse\n```\n\nUse groups to check if the current platform is part of a specific family:\n\n```pycon\n>>> from extra_platforms import UNIX, current_os\n\n>>> current_os() in UNIX\nFalse\n```\n\nOr directly use the boolean variables available for each family:\n\n```pycon\n>>> from extra_platforms import is_unix\n\n>>> is_unix\nFalse\n```\n\nList all platforms of a family:\n\n```pycon\n>>> from extra_platforms import LINUX\n\n>>> LINUX\nGroup(id='linux', name='Any Linux', platform_ids=frozenset({'ibm_powerkvm', 'rocky', 'debian', 'ubuntu', 'mageia', 'xenserver', 'opensuse', 'buildroot', 'rhel', 'parallels', 'pidora', 'sles', 'amzn', 'scientific', 'linuxmint', 'centos', 'android', 'gentoo', 'raspbian', 'unknown_linux', 'mandriva', 'exherbo', 'cloudlinux', 'fedora', 'guix', 'arch', 'altlinux', 'slackware', 'oracle', 'kvmibm'}))\n\n>>> print(\"\\n\".join([p.name for p in LINUX]))\nALT Linux\nAmazon Linux\nAndroid\nArch Linux\nBuildroot\nCentOS\nCloudLinux OS\nDebian\nExherbo Linux\nFedora\nGentoo Linux\nGuix System\nIBM PowerKVM\nKVM for IBM z Systems\nLinux Mint\nMageia\nMandriva Linux\nopenSUSE\nOracle Linux\nParallels\nPidora\nRaspbian\nRedHat Enterprise Linux\nRocky Linux\nScientific Linux\nSlackware\nSUSE Linux Enterprise Server\nUbuntu\nUnknown Linux\nXenServer\n```\n\nReduce a disparate collection of groups and platforms into a minimal descriptive set, by grouping all platforms into families:\n\n```pycon\n>>> from extra_platforms import AIX, MACOS, SOLARIS, reduce\n\n>>> reduce([AIX, MACOS])\n{\n Platform(id='aix', name='IBM AIX', current=False),\n Platform(id='macos', name='macOS', current=True),\n}\n\n>>> reduce([AIX, MACOS, SOLARIS])\n{\n Group(id='system_v', name='Any Unix derived from AT&T System Five', platform_ids=frozenset({'aix', 'solaris'})),\n Platform(id='macos', name='macOS', current=True),\n}\n```\n\n## Group \u2192 platforms mapping\n\nRelationships between groups and platforms:\n\n<!-- platform-sankey-start -->\n\n```mermaid\n---\nconfig:\n sankey:\n showValues: false\n---\nsankey-beta\n\nall_platforms,aix,1\nall_platforms,altlinux,1\nall_platforms,amzn,1\nall_platforms,android,1\nall_platforms,arch,1\nall_platforms,buildroot,1\nall_platforms,centos,1\nall_platforms,cloudlinux,1\nall_platforms,cygwin,1\nall_platforms,debian,1\nall_platforms,exherbo,1\nall_platforms,fedora,1\nall_platforms,freebsd,1\nall_platforms,gentoo,1\nall_platforms,guix,1\nall_platforms,hurd,1\nall_platforms,ibm_powerkvm,1\nall_platforms,kvmibm,1\nall_platforms,linuxmint,1\nall_platforms,macos,1\nall_platforms,mageia,1\nall_platforms,mandriva,1\nall_platforms,midnightbsd,1\nall_platforms,netbsd,1\nall_platforms,openbsd,1\nall_platforms,opensuse,1\nall_platforms,oracle,1\nall_platforms,parallels,1\nall_platforms,pidora,1\nall_platforms,raspbian,1\nall_platforms,rhel,1\nall_platforms,rocky,1\nall_platforms,scientific,1\nall_platforms,slackware,1\nall_platforms,sles,1\nall_platforms,solaris,1\nall_platforms,sunos,1\nall_platforms,ubuntu,1\nall_platforms,unknown_linux,1\nall_platforms,windows,1\nall_platforms,wsl1,1\nall_platforms,wsl2,1\nall_platforms,xenserver,1\nunix,aix,1\nunix,altlinux,1\nunix,amzn,1\nunix,android,1\nunix,arch,1\nunix,buildroot,1\nunix,centos,1\nunix,cloudlinux,1\nunix,cygwin,1\nunix,debian,1\nunix,exherbo,1\nunix,fedora,1\nunix,freebsd,1\nunix,gentoo,1\nunix,guix,1\nunix,hurd,1\nunix,ibm_powerkvm,1\nunix,kvmibm,1\nunix,linuxmint,1\nunix,macos,1\nunix,mageia,1\nunix,mandriva,1\nunix,midnightbsd,1\nunix,netbsd,1\nunix,openbsd,1\nunix,opensuse,1\nunix,oracle,1\nunix,parallels,1\nunix,pidora,1\nunix,raspbian,1\nunix,rhel,1\nunix,rocky,1\nunix,scientific,1\nunix,slackware,1\nunix,sles,1\nunix,solaris,1\nunix,sunos,1\nunix,ubuntu,1\nunix,unknown_linux,1\nunix,wsl1,1\nunix,wsl2,1\nunix,xenserver,1\nunix_without_macos,aix,1\nunix_without_macos,altlinux,1\nunix_without_macos,amzn,1\nunix_without_macos,android,1\nunix_without_macos,arch,1\nunix_without_macos,buildroot,1\nunix_without_macos,centos,1\nunix_without_macos,cloudlinux,1\nunix_without_macos,cygwin,1\nunix_without_macos,debian,1\nunix_without_macos,exherbo,1\nunix_without_macos,fedora,1\nunix_without_macos,freebsd,1\nunix_without_macos,gentoo,1\nunix_without_macos,guix,1\nunix_without_macos,hurd,1\nunix_without_macos,ibm_powerkvm,1\nunix_without_macos,kvmibm,1\nunix_without_macos,linuxmint,1\nunix_without_macos,mageia,1\nunix_without_macos,mandriva,1\nunix_without_macos,midnightbsd,1\nunix_without_macos,netbsd,1\nunix_without_macos,openbsd,1\nunix_without_macos,opensuse,1\nunix_without_macos,oracle,1\nunix_without_macos,parallels,1\nunix_without_macos,pidora,1\nunix_without_macos,raspbian,1\nunix_without_macos,rhel,1\nunix_without_macos,rocky,1\nunix_without_macos,scientific,1\nunix_without_macos,slackware,1\nunix_without_macos,sles,1\nunix_without_macos,solaris,1\nunix_without_macos,sunos,1\nunix_without_macos,ubuntu,1\nunix_without_macos,unknown_linux,1\nunix_without_macos,wsl1,1\nunix_without_macos,wsl2,1\nunix_without_macos,xenserver,1\nlinux_like,altlinux,1\nlinux_like,amzn,1\nlinux_like,android,1\nlinux_like,arch,1\nlinux_like,buildroot,1\nlinux_like,centos,1\nlinux_like,cloudlinux,1\nlinux_like,debian,1\nlinux_like,exherbo,1\nlinux_like,fedora,1\nlinux_like,gentoo,1\nlinux_like,guix,1\nlinux_like,ibm_powerkvm,1\nlinux_like,kvmibm,1\nlinux_like,linuxmint,1\nlinux_like,mageia,1\nlinux_like,mandriva,1\nlinux_like,opensuse,1\nlinux_like,oracle,1\nlinux_like,parallels,1\nlinux_like,pidora,1\nlinux_like,raspbian,1\nlinux_like,rhel,1\nlinux_like,rocky,1\nlinux_like,scientific,1\nlinux_like,slackware,1\nlinux_like,sles,1\nlinux_like,ubuntu,1\nlinux_like,unknown_linux,1\nlinux_like,wsl1,1\nlinux_like,wsl2,1\nlinux_like,xenserver,1\nlinux,altlinux,1\nlinux,amzn,1\nlinux,android,1\nlinux,arch,1\nlinux,buildroot,1\nlinux,centos,1\nlinux,cloudlinux,1\nlinux,debian,1\nlinux,exherbo,1\nlinux,fedora,1\nlinux,gentoo,1\nlinux,guix,1\nlinux,ibm_powerkvm,1\nlinux,kvmibm,1\nlinux,linuxmint,1\nlinux,mageia,1\nlinux,mandriva,1\nlinux,opensuse,1\nlinux,oracle,1\nlinux,parallels,1\nlinux,pidora,1\nlinux,raspbian,1\nlinux,rhel,1\nlinux,rocky,1\nlinux,scientific,1\nlinux,slackware,1\nlinux,sles,1\nlinux,ubuntu,1\nlinux,unknown_linux,1\nlinux,xenserver,1\nbsd,freebsd,1\nbsd,macos,1\nbsd,midnightbsd,1\nbsd,netbsd,1\nbsd,openbsd,1\nbsd,sunos,1\nbsd_without_macos,freebsd,1\nbsd_without_macos,midnightbsd,1\nbsd_without_macos,netbsd,1\nbsd_without_macos,openbsd,1\nbsd_without_macos,sunos,1\nsystem_v,aix,1\nsystem_v,solaris,1\nlinux_layers,wsl1,1\nlinux_layers,wsl2,1\nunix_layers,cygwin,1\nother_unix,hurd,1\nany_windows,windows,1\n```\n\n<!-- platform-sankey-end -->\n\n## OS families\n\nEach platform is assigned to a group of non-overlpaping families:\n\n<!-- NON_OVERLAPPING_GROUPS-graph-start -->\n\n#### `extra_platforms.NON_OVERLAPPING_GROUPS` - Non-overlapping groups.\n\n```mermaid\nflowchart\n subgraph \"<code>extra_platforms.ANY_WINDOWS</code><br/>\ud83e\ude9f <em>Any Windows</em>\"\n any_windows_windows(<code>windows</code><br/>\ud83e\ude9f <em>Windows</em>)\n end\n subgraph \"<code>extra_platforms.BSD</code><br/>\ud83c\udd71\ufe0f <em>Any BSD</em>\"\n bsd_freebsd(<code>freebsd</code><br/>\ud83d\ude08 <em>FreeBSD</em>)\n bsd_macos(<code>macos</code><br/>\ud83c\udf4e <em>macOS</em>)\n bsd_midnightbsd(<code>midnightbsd</code><br/>\ud83c\udf18 <em>MidnightBSD</em>)\n bsd_netbsd(<code>netbsd</code><br/>\ud83d\udea9 <em>NetBSD</em>)\n bsd_openbsd(<code>openbsd</code><br/>\ud83d\udc21 <em>OpenBSD</em>)\n bsd_sunos(<code>sunos</code><br/>\u2600\ufe0f <em>SunOS</em>)\n end\n subgraph \"<code>extra_platforms.LINUX</code><br/>\ud83d\udc27 <em>Any Linux distribution</em>\"\n linux_altlinux(<code>altlinux</code><br/>\u2753 <em>ALT Linux</em>)\n linux_amzn(<code>amzn</code><br/>\ud83d\ude42 <em>Amazon Linux</em>)\n linux_android(<code>android</code><br/>\ud83e\udd16 <em>Android</em>)\n linux_arch(<code>arch</code><br/>\ud83c\udf97\ufe0f <em>Arch Linux</em>)\n linux_buildroot(<code>buildroot</code><br/>\u2753 <em>Buildroot</em>)\n linux_centos(<code>centos</code><br/>\ud83d\udca0 <em>CentOS</em>)\n linux_cloudlinux(<code>cloudlinux</code><br/>\u2753 <em>CloudLinux OS</em>)\n linux_debian(<code>debian</code><br/>\ud83c\udf00 <em>Debian</em>)\n linux_exherbo(<code>exherbo</code><br/>\u2753 <em>Exherbo Linux</em>)\n linux_fedora(<code>fedora</code><br/>\ud83c\udfa9 <em>Fedora</em>)\n linux_gentoo(<code>gentoo</code><br/>\ud83d\udddc\ufe0f <em>Gentoo Linux</em>)\n linux_guix(<code>guix</code><br/>\u2753 <em>Guix System</em>)\n linux_ibm_powerkvm(<code>ibm_powerkvm</code><br/>\u2753 <em>IBM PowerKVM</em>)\n linux_kvmibm(<code>kvmibm</code><br/>\u2753 <em>KVM for IBM z Systems</em>)\n linux_linuxmint(<code>linuxmint</code><br/>\ud83c\udf3f <em>Linux Mint</em>)\n linux_mageia(<code>mageia</code><br/>\u2753 <em>Mageia</em>)\n linux_mandriva(<code>mandriva</code><br/>\u2753 <em>Mandriva Linux</em>)\n linux_opensuse(<code>opensuse</code><br/>\ud83e\udd8e <em>openSUSE</em>)\n linux_oracle(<code>oracle</code><br/>\ud83e\uddb4 <em>Oracle Linux</em>)\n linux_parallels(<code>parallels</code><br/>\u2753 <em>Parallels</em>)\n linux_pidora(<code>pidora</code><br/>\u2753 <em>Pidora</em>)\n linux_raspbian(<code>raspbian</code><br/>\ud83c\udf53 <em>Raspbian</em>)\n linux_rhel(<code>rhel</code><br/>\ud83c\udfa9 <em>RedHat Enterprise Linux</em>)\n linux_rocky(<code>rocky</code><br/>\ud83d\udca0 <em>Rocky Linux</em>)\n linux_scientific(<code>scientific</code><br/>\u2753 <em>Scientific Linux</em>)\n linux_slackware(<code>slackware</code><br/>\u2753 <em>Slackware</em>)\n linux_sles(<code>sles</code><br/>\ud83e\udd8e <em>SUSE Linux Enterprise Server</em>)\n linux_ubuntu(<code>ubuntu</code><br/>\ud83c\udfaf <em>Ubuntu</em>)\n linux_unknown_linux(<code>unknown_linux</code><br/>\ud83d\udc27 <em>Unknown Linux</em>)\n linux_xenserver(<code>xenserver</code><br/>\u2753 <em>XenServer</em>)\n end\n subgraph \"<code>extra_platforms.LINUX_LAYERS</code><br/>\u225a <em>Any Linux compatibility layers</em>\"\n linux_layers_wsl1(<code>wsl1</code><br/>\u229e <em>Windows Subsystem for Linux v1</em>)\n linux_layers_wsl2(<code>wsl2</code><br/>\u229e <em>Windows Subsystem for Linux v2</em>)\n end\n subgraph \"<code>extra_platforms.OTHER_UNIX</code><br/>\u228e <em>Any other Unix</em>\"\n other_unix_hurd(<code>hurd</code><br/>\ud83d\udc03 <em>GNU/Hurd</em>)\n end\n subgraph \"<code>extra_platforms.SYSTEM_V</code><br/>\u2164 <em>Any Unix derived from AT&T System Five</em>\"\n system_v_aix(<code>aix</code><br/>\u27bf <em>IBM AIX</em>)\n system_v_solaris(<code>solaris</code><br/>\ud83c\udf1e <em>Solaris</em>)\n end\n subgraph \"<code>extra_platforms.UNIX_LAYERS</code><br/>\u225b <em>Any Unix compatibility layers</em>\"\n unix_layers_cygwin(<code>cygwin</code><br/>\u03fe <em>Cygwin</em>)\n end\n```\n\n<!-- NON_OVERLAPPING_GROUPS-graph-end -->\n\n## Other groups\n\nOther groups are available for convenience, but these overlaps:\n\n<!-- EXTRA_GROUPS-graph-start -->\n\n#### `extra_platforms.EXTRA_GROUPS` - Overlapping groups, defined for convenience.\n\n```mermaid\nflowchart\n subgraph \"<code>extra_platforms.ALL_PLATFORMS</code><br/>\ud83d\udda5\ufe0f <em>All platforms</em>\"\n all_platforms_aix(<code>aix</code><br/>\u27bf <em>IBM AIX</em>)\n all_platforms_altlinux(<code>altlinux</code><br/>\u2753 <em>ALT Linux</em>)\n all_platforms_amzn(<code>amzn</code><br/>\ud83d\ude42 <em>Amazon Linux</em>)\n all_platforms_android(<code>android</code><br/>\ud83e\udd16 <em>Android</em>)\n all_platforms_arch(<code>arch</code><br/>\ud83c\udf97\ufe0f <em>Arch Linux</em>)\n all_platforms_buildroot(<code>buildroot</code><br/>\u2753 <em>Buildroot</em>)\n all_platforms_centos(<code>centos</code><br/>\ud83d\udca0 <em>CentOS</em>)\n all_platforms_cloudlinux(<code>cloudlinux</code><br/>\u2753 <em>CloudLinux OS</em>)\n all_platforms_cygwin(<code>cygwin</code><br/>\u03fe <em>Cygwin</em>)\n all_platforms_debian(<code>debian</code><br/>\ud83c\udf00 <em>Debian</em>)\n all_platforms_exherbo(<code>exherbo</code><br/>\u2753 <em>Exherbo Linux</em>)\n all_platforms_fedora(<code>fedora</code><br/>\ud83c\udfa9 <em>Fedora</em>)\n all_platforms_freebsd(<code>freebsd</code><br/>\ud83d\ude08 <em>FreeBSD</em>)\n all_platforms_gentoo(<code>gentoo</code><br/>\ud83d\udddc\ufe0f <em>Gentoo Linux</em>)\n all_platforms_guix(<code>guix</code><br/>\u2753 <em>Guix System</em>)\n all_platforms_hurd(<code>hurd</code><br/>\ud83d\udc03 <em>GNU/Hurd</em>)\n all_platforms_ibm_powerkvm(<code>ibm_powerkvm</code><br/>\u2753 <em>IBM PowerKVM</em>)\n all_platforms_kvmibm(<code>kvmibm</code><br/>\u2753 <em>KVM for IBM z Systems</em>)\n all_platforms_linuxmint(<code>linuxmint</code><br/>\ud83c\udf3f <em>Linux Mint</em>)\n all_platforms_macos(<code>macos</code><br/>\ud83c\udf4e <em>macOS</em>)\n all_platforms_mageia(<code>mageia</code><br/>\u2753 <em>Mageia</em>)\n all_platforms_mandriva(<code>mandriva</code><br/>\u2753 <em>Mandriva Linux</em>)\n all_platforms_midnightbsd(<code>midnightbsd</code><br/>\ud83c\udf18 <em>MidnightBSD</em>)\n all_platforms_netbsd(<code>netbsd</code><br/>\ud83d\udea9 <em>NetBSD</em>)\n all_platforms_openbsd(<code>openbsd</code><br/>\ud83d\udc21 <em>OpenBSD</em>)\n all_platforms_opensuse(<code>opensuse</code><br/>\ud83e\udd8e <em>openSUSE</em>)\n all_platforms_oracle(<code>oracle</code><br/>\ud83e\uddb4 <em>Oracle Linux</em>)\n all_platforms_parallels(<code>parallels</code><br/>\u2753 <em>Parallels</em>)\n all_platforms_pidora(<code>pidora</code><br/>\u2753 <em>Pidora</em>)\n all_platforms_raspbian(<code>raspbian</code><br/>\ud83c\udf53 <em>Raspbian</em>)\n all_platforms_rhel(<code>rhel</code><br/>\ud83c\udfa9 <em>RedHat Enterprise Linux</em>)\n all_platforms_rocky(<code>rocky</code><br/>\ud83d\udca0 <em>Rocky Linux</em>)\n all_platforms_scientific(<code>scientific</code><br/>\u2753 <em>Scientific Linux</em>)\n all_platforms_slackware(<code>slackware</code><br/>\u2753 <em>Slackware</em>)\n all_platforms_sles(<code>sles</code><br/>\ud83e\udd8e <em>SUSE Linux Enterprise Server</em>)\n all_platforms_solaris(<code>solaris</code><br/>\ud83c\udf1e <em>Solaris</em>)\n all_platforms_sunos(<code>sunos</code><br/>\u2600\ufe0f <em>SunOS</em>)\n all_platforms_ubuntu(<code>ubuntu</code><br/>\ud83c\udfaf <em>Ubuntu</em>)\n all_platforms_unknown_linux(<code>unknown_linux</code><br/>\ud83d\udc27 <em>Unknown Linux</em>)\n all_platforms_windows(<code>windows</code><br/>\ud83e\ude9f <em>Windows</em>)\n all_platforms_wsl1(<code>wsl1</code><br/>\u229e <em>Windows Subsystem for Linux v1</em>)\n all_platforms_wsl2(<code>wsl2</code><br/>\u229e <em>Windows Subsystem for Linux v2</em>)\n all_platforms_xenserver(<code>xenserver</code><br/>\u2753 <em>XenServer</em>)\n end\n subgraph \"<code>extra_platforms.BSD_WITHOUT_MACOS</code><br/>\ud83c\udd71\ufe0f <em>Any BSD but macOS</em>\"\n bsd_without_macos_freebsd(<code>freebsd</code><br/>\ud83d\ude08 <em>FreeBSD</em>)\n bsd_without_macos_midnightbsd(<code>midnightbsd</code><br/>\ud83c\udf18 <em>MidnightBSD</em>)\n bsd_without_macos_netbsd(<code>netbsd</code><br/>\ud83d\udea9 <em>NetBSD</em>)\n bsd_without_macos_openbsd(<code>openbsd</code><br/>\ud83d\udc21 <em>OpenBSD</em>)\n bsd_without_macos_sunos(<code>sunos</code><br/>\u2600\ufe0f <em>SunOS</em>)\n end\n subgraph \"<code>extra_platforms.LINUX_LIKE</code><br/>\ud83d\udc27+ <em>Any Linux and compatibility layers</em>\"\n linux_like_altlinux(<code>altlinux</code><br/>\u2753 <em>ALT Linux</em>)\n linux_like_amzn(<code>amzn</code><br/>\ud83d\ude42 <em>Amazon Linux</em>)\n linux_like_android(<code>android</code><br/>\ud83e\udd16 <em>Android</em>)\n linux_like_arch(<code>arch</code><br/>\ud83c\udf97\ufe0f <em>Arch Linux</em>)\n linux_like_buildroot(<code>buildroot</code><br/>\u2753 <em>Buildroot</em>)\n linux_like_centos(<code>centos</code><br/>\ud83d\udca0 <em>CentOS</em>)\n linux_like_cloudlinux(<code>cloudlinux</code><br/>\u2753 <em>CloudLinux OS</em>)\n linux_like_debian(<code>debian</code><br/>\ud83c\udf00 <em>Debian</em>)\n linux_like_exherbo(<code>exherbo</code><br/>\u2753 <em>Exherbo Linux</em>)\n linux_like_fedora(<code>fedora</code><br/>\ud83c\udfa9 <em>Fedora</em>)\n linux_like_gentoo(<code>gentoo</code><br/>\ud83d\udddc\ufe0f <em>Gentoo Linux</em>)\n linux_like_guix(<code>guix</code><br/>\u2753 <em>Guix System</em>)\n linux_like_ibm_powerkvm(<code>ibm_powerkvm</code><br/>\u2753 <em>IBM PowerKVM</em>)\n linux_like_kvmibm(<code>kvmibm</code><br/>\u2753 <em>KVM for IBM z Systems</em>)\n linux_like_linuxmint(<code>linuxmint</code><br/>\ud83c\udf3f <em>Linux Mint</em>)\n linux_like_mageia(<code>mageia</code><br/>\u2753 <em>Mageia</em>)\n linux_like_mandriva(<code>mandriva</code><br/>\u2753 <em>Mandriva Linux</em>)\n linux_like_opensuse(<code>opensuse</code><br/>\ud83e\udd8e <em>openSUSE</em>)\n linux_like_oracle(<code>oracle</code><br/>\ud83e\uddb4 <em>Oracle Linux</em>)\n linux_like_parallels(<code>parallels</code><br/>\u2753 <em>Parallels</em>)\n linux_like_pidora(<code>pidora</code><br/>\u2753 <em>Pidora</em>)\n linux_like_raspbian(<code>raspbian</code><br/>\ud83c\udf53 <em>Raspbian</em>)\n linux_like_rhel(<code>rhel</code><br/>\ud83c\udfa9 <em>RedHat Enterprise Linux</em>)\n linux_like_rocky(<code>rocky</code><br/>\ud83d\udca0 <em>Rocky Linux</em>)\n linux_like_scientific(<code>scientific</code><br/>\u2753 <em>Scientific Linux</em>)\n linux_like_slackware(<code>slackware</code><br/>\u2753 <em>Slackware</em>)\n linux_like_sles(<code>sles</code><br/>\ud83e\udd8e <em>SUSE Linux Enterprise Server</em>)\n linux_like_ubuntu(<code>ubuntu</code><br/>\ud83c\udfaf <em>Ubuntu</em>)\n linux_like_unknown_linux(<code>unknown_linux</code><br/>\ud83d\udc27 <em>Unknown Linux</em>)\n linux_like_wsl1(<code>wsl1</code><br/>\u229e <em>Windows Subsystem for Linux v1</em>)\n linux_like_wsl2(<code>wsl2</code><br/>\u229e <em>Windows Subsystem for Linux v2</em>)\n linux_like_xenserver(<code>xenserver</code><br/>\u2753 <em>XenServer</em>)\n end\n subgraph \"<code>extra_platforms.UNIX</code><br/>\u2a37 <em>Any Unix</em>\"\n unix_aix(<code>aix</code><br/>\u27bf <em>IBM AIX</em>)\n unix_altlinux(<code>altlinux</code><br/>\u2753 <em>ALT Linux</em>)\n unix_amzn(<code>amzn</code><br/>\ud83d\ude42 <em>Amazon Linux</em>)\n unix_android(<code>android</code><br/>\ud83e\udd16 <em>Android</em>)\n unix_arch(<code>arch</code><br/>\ud83c\udf97\ufe0f <em>Arch Linux</em>)\n unix_buildroot(<code>buildroot</code><br/>\u2753 <em>Buildroot</em>)\n unix_centos(<code>centos</code><br/>\ud83d\udca0 <em>CentOS</em>)\n unix_cloudlinux(<code>cloudlinux</code><br/>\u2753 <em>CloudLinux OS</em>)\n unix_cygwin(<code>cygwin</code><br/>\u03fe <em>Cygwin</em>)\n unix_debian(<code>debian</code><br/>\ud83c\udf00 <em>Debian</em>)\n unix_exherbo(<code>exherbo</code><br/>\u2753 <em>Exherbo Linux</em>)\n unix_fedora(<code>fedora</code><br/>\ud83c\udfa9 <em>Fedora</em>)\n unix_freebsd(<code>freebsd</code><br/>\ud83d\ude08 <em>FreeBSD</em>)\n unix_gentoo(<code>gentoo</code><br/>\ud83d\udddc\ufe0f <em>Gentoo Linux</em>)\n unix_guix(<code>guix</code><br/>\u2753 <em>Guix System</em>)\n unix_hurd(<code>hurd</code><br/>\ud83d\udc03 <em>GNU/Hurd</em>)\n unix_ibm_powerkvm(<code>ibm_powerkvm</code><br/>\u2753 <em>IBM PowerKVM</em>)\n unix_kvmibm(<code>kvmibm</code><br/>\u2753 <em>KVM for IBM z Systems</em>)\n unix_linuxmint(<code>linuxmint</code><br/>\ud83c\udf3f <em>Linux Mint</em>)\n unix_macos(<code>macos</code><br/>\ud83c\udf4e <em>macOS</em>)\n unix_mageia(<code>mageia</code><br/>\u2753 <em>Mageia</em>)\n unix_mandriva(<code>mandriva</code><br/>\u2753 <em>Mandriva Linux</em>)\n unix_midnightbsd(<code>midnightbsd</code><br/>\ud83c\udf18 <em>MidnightBSD</em>)\n unix_netbsd(<code>netbsd</code><br/>\ud83d\udea9 <em>NetBSD</em>)\n unix_openbsd(<code>openbsd</code><br/>\ud83d\udc21 <em>OpenBSD</em>)\n unix_opensuse(<code>opensuse</code><br/>\ud83e\udd8e <em>openSUSE</em>)\n unix_oracle(<code>oracle</code><br/>\ud83e\uddb4 <em>Oracle Linux</em>)\n unix_parallels(<code>parallels</code><br/>\u2753 <em>Parallels</em>)\n unix_pidora(<code>pidora</code><br/>\u2753 <em>Pidora</em>)\n unix_raspbian(<code>raspbian</code><br/>\ud83c\udf53 <em>Raspbian</em>)\n unix_rhel(<code>rhel</code><br/>\ud83c\udfa9 <em>RedHat Enterprise Linux</em>)\n unix_rocky(<code>rocky</code><br/>\ud83d\udca0 <em>Rocky Linux</em>)\n unix_scientific(<code>scientific</code><br/>\u2753 <em>Scientific Linux</em>)\n unix_slackware(<code>slackware</code><br/>\u2753 <em>Slackware</em>)\n unix_sles(<code>sles</code><br/>\ud83e\udd8e <em>SUSE Linux Enterprise Server</em>)\n unix_solaris(<code>solaris</code><br/>\ud83c\udf1e <em>Solaris</em>)\n unix_sunos(<code>sunos</code><br/>\u2600\ufe0f <em>SunOS</em>)\n unix_ubuntu(<code>ubuntu</code><br/>\ud83c\udfaf <em>Ubuntu</em>)\n unix_unknown_linux(<code>unknown_linux</code><br/>\ud83d\udc27 <em>Unknown Linux</em>)\n unix_wsl1(<code>wsl1</code><br/>\u229e <em>Windows Subsystem for Linux v1</em>)\n unix_wsl2(<code>wsl2</code><br/>\u229e <em>Windows Subsystem for Linux v2</em>)\n unix_xenserver(<code>xenserver</code><br/>\u2753 <em>XenServer</em>)\n end\n subgraph \"<code>extra_platforms.UNIX_WITHOUT_MACOS</code><br/>\u2a02 <em>Any Unix but macOS</em>\"\n unix_without_macos_aix(<code>aix</code><br/>\u27bf <em>IBM AIX</em>)\n unix_without_macos_altlinux(<code>altlinux</code><br/>\u2753 <em>ALT Linux</em>)\n unix_without_macos_amzn(<code>amzn</code><br/>\ud83d\ude42 <em>Amazon Linux</em>)\n unix_without_macos_android(<code>android</code><br/>\ud83e\udd16 <em>Android</em>)\n unix_without_macos_arch(<code>arch</code><br/>\ud83c\udf97\ufe0f <em>Arch Linux</em>)\n unix_without_macos_buildroot(<code>buildroot</code><br/>\u2753 <em>Buildroot</em>)\n unix_without_macos_centos(<code>centos</code><br/>\ud83d\udca0 <em>CentOS</em>)\n unix_without_macos_cloudlinux(<code>cloudlinux</code><br/>\u2753 <em>CloudLinux OS</em>)\n unix_without_macos_cygwin(<code>cygwin</code><br/>\u03fe <em>Cygwin</em>)\n unix_without_macos_debian(<code>debian</code><br/>\ud83c\udf00 <em>Debian</em>)\n unix_without_macos_exherbo(<code>exherbo</code><br/>\u2753 <em>Exherbo Linux</em>)\n unix_without_macos_fedora(<code>fedora</code><br/>\ud83c\udfa9 <em>Fedora</em>)\n unix_without_macos_freebsd(<code>freebsd</code><br/>\ud83d\ude08 <em>FreeBSD</em>)\n unix_without_macos_gentoo(<code>gentoo</code><br/>\ud83d\udddc\ufe0f <em>Gentoo Linux</em>)\n unix_without_macos_guix(<code>guix</code><br/>\u2753 <em>Guix System</em>)\n unix_without_macos_hurd(<code>hurd</code><br/>\ud83d\udc03 <em>GNU/Hurd</em>)\n unix_without_macos_ibm_powerkvm(<code>ibm_powerkvm</code><br/>\u2753 <em>IBM PowerKVM</em>)\n unix_without_macos_kvmibm(<code>kvmibm</code><br/>\u2753 <em>KVM for IBM z Systems</em>)\n unix_without_macos_linuxmint(<code>linuxmint</code><br/>\ud83c\udf3f <em>Linux Mint</em>)\n unix_without_macos_mageia(<code>mageia</code><br/>\u2753 <em>Mageia</em>)\n unix_without_macos_mandriva(<code>mandriva</code><br/>\u2753 <em>Mandriva Linux</em>)\n unix_without_macos_midnightbsd(<code>midnightbsd</code><br/>\ud83c\udf18 <em>MidnightBSD</em>)\n unix_without_macos_netbsd(<code>netbsd</code><br/>\ud83d\udea9 <em>NetBSD</em>)\n unix_without_macos_openbsd(<code>openbsd</code><br/>\ud83d\udc21 <em>OpenBSD</em>)\n unix_without_macos_opensuse(<code>opensuse</code><br/>\ud83e\udd8e <em>openSUSE</em>)\n unix_without_macos_oracle(<code>oracle</code><br/>\ud83e\uddb4 <em>Oracle Linux</em>)\n unix_without_macos_parallels(<code>parallels</code><br/>\u2753 <em>Parallels</em>)\n unix_without_macos_pidora(<code>pidora</code><br/>\u2753 <em>Pidora</em>)\n unix_without_macos_raspbian(<code>raspbian</code><br/>\ud83c\udf53 <em>Raspbian</em>)\n unix_without_macos_rhel(<code>rhel</code><br/>\ud83c\udfa9 <em>RedHat Enterprise Linux</em>)\n unix_without_macos_rocky(<code>rocky</code><br/>\ud83d\udca0 <em>Rocky Linux</em>)\n unix_without_macos_scientific(<code>scientific</code><br/>\u2753 <em>Scientific Linux</em>)\n unix_without_macos_slackware(<code>slackware</code><br/>\u2753 <em>Slackware</em>)\n unix_without_macos_sles(<code>sles</code><br/>\ud83e\udd8e <em>SUSE Linux Enterprise Server</em>)\n unix_without_macos_solaris(<code>solaris</code><br/>\ud83c\udf1e <em>Solaris</em>)\n unix_without_macos_sunos(<code>sunos</code><br/>\u2600\ufe0f <em>SunOS</em>)\n unix_without_macos_ubuntu(<code>ubuntu</code><br/>\ud83c\udfaf <em>Ubuntu</em>)\n unix_without_macos_unknown_linux(<code>unknown_linux</code><br/>\ud83d\udc27 <em>Unknown Linux</em>)\n unix_without_macos_wsl1(<code>wsl1</code><br/>\u229e <em>Windows Subsystem for Linux v1</em>)\n unix_without_macos_wsl2(<code>wsl2</code><br/>\u229e <em>Windows Subsystem for Linux v2</em>)\n unix_without_macos_xenserver(<code>xenserver</code><br/>\u2753 <em>XenServer</em>)\n end\n```\n\n<!-- EXTRA_GROUPS-graph-end -->\n\n> [!IMPORTANT]\n> All the graphs above would be better off if merged. Unfortunately Graphviz is not capable of producing [Euler diagrams](https://xkcd.com/2721/). Only non-overlapping clusters can be rendered.\n>\n> There's still a chance to [have them supported by Mermaid](https://github.com/mermaid-js/mermaid/issues/2583) so we can switch to that if the feature materialize.\n\n## Used in\n\nCheck these projects to get real-life examples of `extra-platforms` usage:\n\n- ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90&style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager#readme) - A unifying CLI for multiple package managers.\n- ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90&style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra#readme) - Drop-in replacement for Click to make user-friendly and colorful CLI.\n\nFeel free to send a PR to add your project in this list if you are relying on Click Extra in any way.\n\n## Development\n\n[Development guidelines](https://github.com/kdeldycke/click-extra?tab=readme-ov-file#development) are the same as [parent project Click Extra](https://github.com/kdeldycke/click-extra), from which `extra-platforms` originated.\n",
"bugtrack_url": null,
"license": null,
"summary": "Detect platforms and group them by family",
"version": "1.3.1",
"project_urls": {
"Changelog": "https://github.com/kdeldycke/extra-platforms/blob/main/changelog.md",
"Documentation": "https://kdeldycke.github.io/extra-platforms",
"Funding": "https://github.com/sponsors/kdeldycke",
"Homepage": "https://github.com/kdeldycke/extra-platforms",
"Issues": "https://github.com/kdeldycke/extra-platforms/issues",
"Repository": "https://github.com/kdeldycke/extra-platforms"
},
"split_keywords": [
"multiplatform",
" pytest",
" python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dfd5b58cb75b37f4b235aea83a64504cd43146faaa90443fff175ef9a5c8eca9",
"md5": "96ee4ebd1be78b65449948c9995b285c",
"sha256": "6d1cd10b58d04c082fda187809cadbd1d97b7e6ceeb61e7b5de6a9301b404efc"
},
"downloads": -1,
"filename": "extra_platforms-1.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "96ee4ebd1be78b65449948c9995b285c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 24925,
"upload_time": "2024-09-18T17:39:18",
"upload_time_iso_8601": "2024-09-18T17:39:18.566890Z",
"url": "https://files.pythonhosted.org/packages/df/d5/b58cb75b37f4b235aea83a64504cd43146faaa90443fff175ef9a5c8eca9/extra_platforms-1.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "344298f5510cd5f2da57c8b8538dfd159098ac2855664955af304b5e3d742cc7",
"md5": "84984daa586d67aebad21f0056e50774",
"sha256": "9db54044d242d604f2e6c7cf781f48f4c296c24be301714afc177a05c8f410e8"
},
"downloads": -1,
"filename": "extra_platforms-1.3.1.tar.gz",
"has_sig": false,
"md5_digest": "84984daa586d67aebad21f0056e50774",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 36386,
"upload_time": "2024-09-18T17:39:20",
"upload_time_iso_8601": "2024-09-18T17:39:20.169818Z",
"url": "https://files.pythonhosted.org/packages/34/42/98f5510cd5f2da57c8b8538dfd159098ac2855664955af304b5e3d742cc7/extra_platforms-1.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-18 17:39:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kdeldycke",
"github_project": "extra-platforms",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "extra-platforms"
}