A lightweight Python library for managing packages and versions across different Python environments
Project description
feu :fire:
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 Python environment
- 📋 Package registry: Built-in compatibility information for popular packages (numpy, pandas, torch, etc.)
- 🖥️ CLI tools: Command-line interface for package management tasks
- 🪶 Lightweight: Minimal dependencies (only
packagingrequired for core functionality)
Quick Example
from feu import is_package_available, get_package_version
from feu.package import find_closest_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", 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* |
|---|---|---|---|---|---|
main |
>=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 |
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 |
* indicates an optional dependency
older versions
feu |
packaging |
python |
click* |
gitpython* |
fire* |
requests* |
|---|---|---|---|---|---|---|
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
:warning: 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file feu-0.6.2.tar.gz.
File metadata
- Download URL: feu-0.6.2.tar.gz
- Upload date:
- Size: 27.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9307aa145278ffc3a2ee7cafb349cd6852a59406fe5ae6b354b54bc85a1078db
|
|
| MD5 |
e117ed319f36affbb7113a5cd52912fc
|
|
| BLAKE2b-256 |
6dc56fe0cb82178b0611dab21eed6d14b4f15d6a447e91bf810b50e4f3516eb8
|
File details
Details for the file feu-0.6.2-py3-none-any.whl.
File metadata
- Download URL: feu-0.6.2-py3-none-any.whl
- Upload date:
- Size: 37.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2b7f00d8b3239e3af7af14dc09eacc677a722843ea66c9d72ffb08c27f10502
|
|
| MD5 |
a3e693b1fc047a01d90024d3194def2d
|
|
| BLAKE2b-256 |
5988660d0c973e082896059cc61cbf02557c129330970d2365c016487cb2d1bc
|