检测平台并将它们按家族分组
项目描述
额外平台
什么是额外平台?
- 提供所有已知平台的列表
- 在发行版级别检测当前平台
- 收集当前平台的元数据(版本、代号等)
- 将平台分组到家族中
- 管理平台和组的集合
- 将每个平台和组关联到一个表情符号
- 为pytest提供新的条件标记
@skip_linux
,@skip_macos
和@skip_windows
@unless_linux
,@unless_macos
和@unless_windows
- 解决
distro#177
问题(支持Windows和Mac OS)
示例
获取当前平台ID和名称
>>> from extra_platforms import CURRENT_OS_ID, CURRENT_OS_LABEL
>>> CURRENT_OS_ID
'macos'
>>> CURRENT_OS_LABEL
'macOS'
获取当前平台对象,您可以从中访问大量元数据
>>> 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,
}
检查平台是否是特定系统
>>> from extra_platforms import is_gentoo
>>> is_gentoo()
False
使用组来检查当前平台是否属于特定系列
>>> from extra_platforms import UNIX, current_os
>>> current_os() in UNIX
False
或者直接使用每个系列可用的布尔变量
>>> from extra_platforms import is_unix
>>> is_unix
False
列出某个系列的全部平台
>>> 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
通过将所有平台分组到系列中,将分散的组和平台减少到最小描述性集
>>> 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),
}
组 → 平台映射
组和平台之间的关系
---
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
操作系统系列
每个平台被分配到一组非重叠的系列
extra_platforms.NON_OVERLAPPING_GROUPS
- 非重叠组。
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
其他组
其他组提供方便,但存在这些重叠
extra_platforms.EXTRA_GROUPS
- 重叠组,为方便定义。
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
[!重要] 上面的所有图表如果合并会更好。遗憾的是Graphviz无法生成欧拉图。只能渲染非重叠簇。
仍有机会被Mermaid支持,如果该功能实现,我们可以切换到那个。
用途
查看这些项目以获取extra-platforms
的实际应用示例
元包管理器 - 多个包管理器的统一CLI。
Click Extra - Click的替代品,使CLI用户友好且多彩。
如果您以任何方式依赖Click Extra,请随意发送PR以将您的项目添加到此列表。
开发
开发指南与父项目Click Extra相同,其中extra-platforms
起源于此。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
extra_platforms-1.3.1.tar.gz (36.4 kB 查看哈希值)
构建分布
extra_platforms-1.3.1-py3-none-any.whl (24.9 kB 查看哈希值)