InstallationΒΆ

Quick startΒΆ

Add the library to your project with uv:

$ uv add extra-platforms

Or inspect the current environment straight from your terminal with the bundled CLI:

$ uvx extra-platforms

Try itΒΆ

You can try Extra Platforms right now in your terminal, without installing any dependency or virtual env thanks to uvx:

$ uvx extra-platforms
$ uvx extra-platforms@13.10.1
$ uvx --from git+https://github.com/kdeldycke/extra-platforms -- extra-platforms

Try the libraryΒΆ

You can also try the library itself in an interactive Python shell without installing anything on your system:

$ uvx --with extra-platforms python
>>> from extra_platforms import current_platform, BSD, UNIX, LINUX
>>> current_platform()
Platform(id='macos', name='macOS')
>>> current_platform() in BSD
True
>>> current_platform() in UNIX
True
>>> current_platform() in LINUX
False

Install methodsΒΆ

This package is available on PyPI and in several OS distributions, so you can install the latest stable release with your favorite package manager:

Easiest way is to install uv, then add it to your project:

$ uv add extra-platforms

Or to install the CLI system-wide with uv tool:

$ uv tool install extra-platforms

You can install the latest stable release and its dependencies with a simple pip call:

$ python -m pip install extra-platforms

If you have difficulties to use pip, see pip’s own installation instructions.

pipx is a great way to install the CLI globally:

$ pipx install extra-platforms

A python-extra-platforms package is available on AUR and can be installed with any AUR helper:

$ yay -S python-extra-platforms
$ paru -S python-extra-platforms

Extra Platforms is available in GNU Guix:

$ guix install python-extra-platforms

Tip

The package landed in Guix on 2026-06-28. If guix install cannot find it yet, refresh your channels first with guix pull.

The python-extra-platforms package is available on openSUSE Tumbleweed:

$ sudo zypper install python3-extra-platforms

The sysutils/py-extra-platforms package is available in pkgsrc for NetBSD and all other platforms supported by pkgsrc:

$ pkgin install py313-extra-platforms

Or build it from source:

$ cd /usr/pkgsrc/sysutils/py-extra-platforms
$ make install clean

For the Pytest decorators, install the pytest extra: uv pip install 'extra-platforms[pytest]'.

Python compatibilityΒΆ

The table below shows which Python versions each extra-platforms release range supports, derived from each git tag’s pyproject.toml. It refreshes automatically through click-extra’s {matrix} directive, which repomatic’s update-docs job reruns to keep it in sync with new releases.

extra-platforms

Released

3.14

3.13

3.12

3.11

3.10

3.9

3.8

5.0.x β†’ 13.x

2025-11-03

βœ…

βœ…

βœ…

βœ…

βœ…

❌

❌

4.x

2025-10-21

βœ…

βœ…

βœ…

βœ…

❌

❌

❌

3.x

2025-03-02

–

βœ…

βœ…

βœ…

❌

❌

❌

1.4.x β†’ 2.1.x

2024-10-21

–

βœ…

βœ…

βœ…

βœ…

❌

❌

1.3.x

2024-09-11

–

–

βœ…

βœ…

βœ…

βœ…

❌

1.0.x β†’ 1.2.x

2024-08-18

–

–

βœ…

βœ…

βœ…

βœ…

βœ…

DependenciesΒΆ

extra-platforms has no runtime dependency. The dependency graph on the packaging page covers the extras and development groups.

NamingΒΆ

Tip

I wanted to call this package platforms, but it’s already taken on PyPI. So I went with extra-platforms instead, to mark its affiliation with Click Extra.