Plux is a dynamic code loading framework for building pluggable Python distributions. It facilitates the discovery and loading of plugins defined via Python entry points, streamlining the process of creating extensible applications. The current version is 1.16.0, and the library maintains an active release cadence with several updates per year.
pip install pluxVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to use `plux.manager.PluginManager` to discover plugins. `plux` relies on Python entry points, typically defined in your project's `pyproject.toml` (or `setup.py`). For the example code to discover actual plugins, you need to define an entry point (e.g., under `[project.entry-points."my.plugins"]`) and ensure your project is installed in a way that makes its entry points discoverable (e.g., `pip install -e .`). The provided code will run without error, but will only report discovered plugins if they are set up externally.
Review your entry point definitions and any code interacting with `stevedore` via Plux. Ensure plugins are correctly defined via standard `pyproject.toml` or `setup.py` entry points and no longer rely on `stevedore`-specific internal mechanisms. The new resolution is designed to be more robust for editable installs.
Ensure your project's `pyproject.toml` or `setup.py` entry point definitions align with current best practices for `plux` and your chosen build backend. Consider installing `plux` with the relevant extra (e.g., `pip install plux[hatchling]`) if your project uses a non-default build system or specific build features.
If plugins are unexpectedly absent, check `plux.runtime.filter.global_plugin_filter` for any active patterns that might be blocking your plugins. Use `global_plugin_filter.remove_pattern()` or `global_plugin_filter.clear()` if necessary to debug discovery issues.
No dependency data recorded yet.