Skip to content

About

Package for cross-package utility functions

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

fasthep-toolbench

Actions Status Documentation Status

PyPI version PyPI platforms

GitHub Discussion

fasthep

Introduction

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.

Documentation

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).

Installation

You can install fasthep-toolbench using pip:

pip install fasthep-toolbench

The 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.

Environment inspection

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.

Contributing

You had a look and are interested to contribute? That's great! There are three main ways to contribute to this project:

  1. Head to the issues tab and see if there is anything you can help with.
  2. 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.
  3. 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.

License

This project is licensed under the terms of the Apache 2.0 license. See LICENSE for more details.

Acknowledgements

Special thanks to the gracious help of FAST-HEP contributors:

kreczko
Luke Kreczko

About

Package for cross-package utility functions

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages