A modular toolbox to support your Python development workflow
Project description
project-toolbox
A modular toolbox to support your Python development workflow.
project-toolboxprovides the box of the toolbox as a unique command:t.- Tools are selected/added to the box at the project level.
Features
- one command (
t) gathering all tools- prevent cluttering command namespace
- completion even for tools installed in dedicated environment
- toolboxs are plugins
- each project can select its own set of plugins
- a plugin can be public (pypi) or shipped with the project
- tool calls are automatically embeded (eg
uv run ...) - tools are click commands
Getting started
Install the main command globally:
uv tool install project-toolbox
Enable completion (bash) by adding the following to the end of your ~/.bashrc:
eval "$(_T_COMPLETE=bash_source t)"
Instructions for completion with other shells can be found here.
Manage the toolbox:
# show all 'self' subcommands
t self
# add a toolbox to current project
t self install <toolbox>
Read carefully crafted manuals guiding you through the workflow:
# show all 'manual' subcommands
t manual
Use the toolbox:
# show all commands
t
# use a tool
t <command> <arg1> <arg2> ...
Filling the toolbox with tools
Adding plugins to a project
Your toolbox need to be filled with tools.
The toolbox content is selected at project level and may differ between projects.
Use t self install to add a published toolbox to the project.
If your toolbox is not published, it can be shipped whithin the project repo and added locally:
uv add --dev path/to/plugin-package/
Writing plugins
A project-toolbox plugin is a python package that defines some click commands and registers them to the dedicated entry points.
This is very similar to the usual way of creating console scripts, only the pyproject.toml entry changes from [project.scripts] to [project.entry-points.'project_toolbox'].
# pyproject.toml
[project.entry-points.'project_toolbox']
tool_name_1 = "package.module_1:object_1"
tool_name_2 = "package.module_2:object_2"
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 project_toolbox-0.4.4.tar.gz.
File metadata
- Download URL: project_toolbox-0.4.4.tar.gz
- Upload date:
- Size: 2.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Alpine Linux","version":"3.23.3","id":null,"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 |
788f9658ac16c50a8f5cc581b157c8953419caad4640a5fabcd5d81652854e1e
|
|
| MD5 |
e24cc160733b5aabf447c6dc34394dae
|
|
| BLAKE2b-256 |
9b9cfafb51da100dbe49e2c1bd3f4d6e4f002c1858295c90654133af5fe7368d
|
File details
Details for the file project_toolbox-0.4.4-py3-none-any.whl.
File metadata
- Download URL: project_toolbox-0.4.4-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Alpine Linux","version":"3.23.3","id":null,"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 |
5bbf5f89096949db0897afad9f7e8f407758d4f252486bd8fe1d6c31f8176cda
|
|
| MD5 |
1785df3ce0414e563af805940b20af02
|
|
| BLAKE2b-256 |
b6f9f0fb42496a27764133732b16279b86b47a767d41756beb2d153f4aac4199
|