This release is a pre-release and may not be stable for production use.
feu 🔥
Overview
feu (French word for "fire" 🔥) is a lightweight Python library designed to help manage Python
packages and their versions across different Python environments.
Key Features
- ✅ Check package availability: Verify if packages and modules are installed
- 🔄 Version-aware installation: Install packages with automatic version compatibility checks
- 🎯 Smart version resolution: Find the closest valid package version for your target environment (Python version, free-threadedness, OS, and CPU architecture)
- 📋 Package registry: Built-in compatibility information for popular packages (numpy, pandas, polars, torch, etc.)
- 🔍 PyPI-backed discovery: Automatically discover version compatibility from PyPI for packages that aren't in the built-in registry
- 🐙 GitHub utilities: Fetch and sort repository metadata from the GitHub API
- 🖥️ CLI tools: Command-line interface for package management tasks
- 🪶 Lightweight: Minimal dependencies (only
packagingrequired for core functionality)
Quick Example
from feu.imports import is_package_available
from feu.compat import Target, find_closest_version
from feu.version import get_package_version
# Check if a package is available
if is_package_available("numpy"):
version = get_package_version("numpy")
print(f"NumPy {version} is installed!")
# Find the closest valid version for your Python version
version = find_closest_version(
pkg_name="numpy", pkg_version="2.0.2", target=Target(python_version="3.10")
)
print(f"Closest valid version: {version}")
Why feu?
Managing Python package versions across different Python versions can be challenging. Different
Python versions support different package versions, and manually tracking compatibility can be
error-prone. feu solves this by:
- Automating version selection: Automatically finds compatible package versions for your Python environment
- Preventing installation failures: Validates versions before installation to avoid runtime errors
- Simplifying multi-version support: Makes it easy to support multiple Python versions in your projects
- Providing graceful fallbacks: Check package availability and provide alternatives when packages aren't installed
Documentation
Quick Links
Installation
We highly recommend installing
a virtual environment.
feu can be installed from pip using the following command:
pip install feu
To make the package as slim as possible, only the minimal packages required to use feu are
installed. To include all the dependencies, you can use the following command:
pip install feu[all]
Please check the get started page to see how to
install only some specific dependencies or other alternatives to install the library. The following
is the corresponding feu versions and supported dependencies.
feu |
packaging |
python |
click* |
gitpython* |
requests* |
rich* |
|---|---|---|---|---|---|---|
main |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
>=14.0.0,<16.0 |
0.8.3 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
>=14.0.0,<16.0 |
0.8.2 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
>=14.0.0,<16.0 |
0.8.1 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
>=14.0.0,<16.0 |
0.8.0 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
>=14.0.0,<16.0 |
0.7.3 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.7.2 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.7.1 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.7.0 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.6.2 |
>=21.0,<27.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.6.1 |
>=21.0,<26.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.6.0 |
>=21.0,<26.0 |
>=3.10 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.5.0 |
>=21.0,<26.0 |
>=3.10,<3.15 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
* indicates an optional dependency
older versions
feu |
packaging |
python |
click* |
gitpython* |
fire* |
requests* |
|---|---|---|---|---|---|---|
0.4.2 |
>=21.0,<26.0 |
>=3.10,<3.15 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.4.1 |
>=21.0,<26.0 |
>=3.10,<3.15 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.4.0 |
>=21.0,<26.0 |
>=3.9,<3.14 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
>=2.30,<3.0 |
|
0.3.5 |
>=21.0,<26.0 |
>=3.9,<3.14 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
||
0.3.4 |
>=21.0,<26.0 |
>=3.9,<3.14 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
||
0.3.3 |
>=21.0,<26.0 |
>=3.9,<3.14 |
>=8.1,<9.0 |
>=3.1.41,<4.0 |
||
0.3.2 |
>=21.0,<25.0 |
>=3.9,<3.14 |
>=8.1,<9.0 |
|||
0.3.1 |
>=21.0,<25.0 |
>=3.9,<3.14 |
>=8.1,<9.0 |
|||
0.3.0 |
>=21.0,<25.0 |
>=3.9,<3.14 |
>=8.1,<9.0 |
|||
0.2.4 |
>=21.0,<25.0 |
>=3.9,<3.13 |
>=8.1,<9.0 |
|||
0.2.3 |
>=21.0,<25.0 |
>=3.9,<3.13 |
>=8.1,<9.0 |
|||
0.2.2 |
>=21.0,<25.0 |
>=3.9,<3.13 |
>=8.1,<9.0 |
|||
0.2.1 |
>=21.0,<25.0 |
>=3.9,<3.13 |
>=8.1,<9.0 |
|||
0.2.0 |
>=21.0,<25.0 |
>=3.9,<3.13 |
>=8.1,<9.0 |
|||
0.1.1 |
>=21.0,<25.0 |
>=3.9,<3.13 |
>=0.6.0,<1.0 |
|||
0.1.0 |
>=21.0,<25.0 |
>=3.9,<3.13 |
>=0.6.0,<1.0 |
|||
0.0.7 |
>=21.0,<25.0 |
>=3.9,<3.13 |
||||
0.0.6 |
>=21.0,<25.0 |
>=3.9,<3.13 |
||||
0.0.5 |
>=21.0,<25.0 |
>=3.9,<3.13 |
||||
0.0.4 |
>=21.0,<25.0 |
>=3.9,<3.13 |
||||
0.0.3 |
>=21.0,<25.0 |
>=3.9,<3.13 |
||||
0.0.2 |
>=22.0,<24.0 |
>=3.9,<3.13 |
||||
0.0.1 |
>=22.0,<23.3 |
>=3.9,<3.13 |
Contributing
Please check the instructions in CONTRIBUTING.md.
Suggestions and Communication
Everyone is welcome to contribute to the community. If you have any questions or suggestions, you can submit Github Issues. We will reply to you as soon as possible. Thank you very much.
API stability
⚠️ While feu is in development stage, no API is guaranteed to be stable from one release to
the next. In fact, it is very likely that the API will change multiple times before a stable 1.0.0
release. In practice, this means that upgrading feu to a new version will possibly break any code
that was using the old version of feu.
License
feu is licensed under BSD 3-Clause "New" or "Revised" license available in LICENSE
file.
Metadata
Release files for feu 0.8.4a0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| feu-0.8.4a0.tar.gz | 57.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| feu-0.8.4a0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 150.4 kB
Release files / feu-0.8.4a0.tar.gz
| Download URL | feu-0.8.4a0.tar.gz |
|---|---|
| Size | 57.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
286937900ea85a577f8e05deaf51d850e002bd48caaf7c679c708485e5867639
|
|
BLAKE2b-256 checksum How to use checksums |
6804692173db1654ba4a41f8b72002dee9ec47703f408a1ef953a22ed23434bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / feu-0.8.4a0-py3-none-any.whl
| Download URL | feu-0.8.4a0-py3-none-any.whl |
|---|---|
| Size | 93.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6925164a317f2cc98cc7fa04ba37aea7c8b680aa3e76e0b843b10cc8e0b48eeb
|
|
BLAKE2b-256 checksum How to use checksums |
f92ebdd9a9c01bf3f630e49e04214f27d0613f8cb90382a6ee1d386f9cdd932c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency log