Note
fasthep-toolbench is still in early development, which means it is
incomplete and the API is not yet stable. Please report any issues you find on
the
GitHub issue tracker.
fasthep-toolbench is a collection of tools and utilities for FAST-HEP packages.
This project is in early development. The documentation is available at
fasthep-toolbench.readthedocs.io
and contains mostly fictional features. The most useful information can be found
in the FAST-HEP documentation. It describes the
current status and plans for the FAST-HEP projects, including
fasthep-toolbench (see
Developer's Corner).
You can install fasthep-toolbench using pip:
pip install fasthep-toolbenchThe core package needs only loguru, pyyaml and sh. Features that use heavier libraries
are optional extras:
| Extra | Installs | Enables |
|---|---|---|
display |
rich, tabulate |
fasthep_toolbench.display (tables and formatted output), progress spinners |
http |
httpx |
fasthep_toolbench.http (downloads) and the tool installers (for example D2) |
all |
all of the above | everything |
pip install "fasthep-toolbench[display,http]"Importing a module that needs a missing extra raises an ImportError that names it.
Progress spinners are skipped when rich is not installed. A package that imports
fasthep_toolbench.display or fasthep_toolbench.http (for example fasthep-cli, and the
fasthep metapackage that installs it) must depend on fasthep-toolbench[display,http] (or
[all]); packages that only use the command execution, tool registry and environment helpers
can depend on the bare package.
fasthep_toolbench.package also provides quiet, import-safe helpers that describe the
running environment, using importlib.metadata and git only (no lock file, pixi or
conda is needed): python_info, installed_distributions, distribution_info
(including direct_url.json data such as the VCS commit of an installed distribution),
git_state (its dirty flag means tracked files differ from HEAD; untracked files are
ignored; git runs with core.fsmonitor disabled and without optional locks) and
find_lockfile. URLs from direct_url.json are recorded without credentials. fasthep_toolbench.misc has file_sha256 and
file_fingerprint (full sha256 and size) for hashing files.
You had a look and are interested to contribute? That's great! There are three main ways to contribute to this project:
- Head to the issues tab and see if there is anything you can help with.
- If you have a new feature in mind, please open an issue first to discuss it. This way we can ensure that your work is not in vain.
- You can also help by improving the documentation or fixing typos.
Once you have something to work on, you can have a look at the contributing guidelines. It contains recommendations for setting up your development environment, testing, and more (compiled by the Scientific Python Community).
Important
How you customise your development environment is up to you. You like
uv? Be our guest. You prefer
nox? That's fine too. You want to use
? Go ahead. We are happy as long as you are happy.
Ideally you should be able to run pylint, pytest, and the pre-commit
hooks. If you can do that, you are good to go.
This project is licensed under the terms of the Apache 2.0 license. See LICENSE for more details.
Special thanks to the gracious help of FAST-HEP contributors:
|
Luke Kreczko |
