Skip to main content

toolup

Convenience package for installing python-based development tools

Supports python >=3.6.1

Motivation

Python is a powerful and accessible language to read and write. As such, many tools useful to developers across many languages are written in python. However, isolation of development environments is vital, filling up your requirements files with tools which you use, and your code doesn't, can be counterproductive.

However, installing things in the system python can be dangerous or require privileges you don't have.

If you're using python tools for python development, the tools and your project may have different version constraints. For example, the opinionated code formatter black works on all python code, but can only run in version >=3.6.1.

If you're using python tools for development in other languages, it may not be worth the overhead of maintaining and porting separate virtual environments just for these tools.

toolup helps you maintain a suite of development tools based on a simple TOML file, which are encapsulated in a virtual environment but accessible from anywhere.

Installation

pip install toolup

Usage

Config file

See toolup.toml.example for an example. If you keep this file in your home directory as .toolup.toml, it will be picked up automatically if toolup is run with no arguments.

target should be a directory on your path. If not present, and a target is not supplied at the command line, executables will not be linked.

Each section should be named for a tool. I recommend using the name as it appears on PyPI: this way, if install_args are not supplied, it can be used to find the package.

In each section, you may include install_args (a string or list of strings which will be passed directory to pip). This is useful for installing packages from github, or in editable mode etc.. If not given, the section name will be used. You can also include entry_points; a list of names of entry points which this package installs. If not given, the section name will be used.

Command line

usage: toolup [-h] [-c CONFIG] [-n NAME] [-i INSTALL_ARGS] [-e ENTRY_POINTS]
              [-t TARGET] [-f]

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Path to config TOML file
  -n NAME, --name NAME  Name to install
  -i INSTALL_ARGS, --install_args INSTALL_ARGS
                        Arguments to pass to pip
  -e ENTRY_POINTS, --entry_points ENTRY_POINTS
                        Entry points to copy
  -t TARGET, --target TARGET
                        Where to link executables
  -f, --force           Whether to delete existing executables

Several entries can be added at once like so:

toolup -n black -n pgcli

The resulting lists of names, install_args, and entry_points are zip_longest'd together. toolup will try to infer the install_args and entry_points from the name, and the name from the install_args.

Example workflow

You've just started up a new machine. You have a list of your favourite development tools, which will be useful across a few projects, while not actually being used by any of the code in those projects.

You copy across your .toolup.toml (maybe using something like GNU stow), create a virtualenv for it, pip install toolup && toolup, and all your tools are right where you want them again.

Metadata

Release files for toolup 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for toolup 0.2.0
File Size Uploaded Provenance
toolup-0.2.0.tar.gz 5.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for toolup 0.2.0
File Interpreter ABI Platform
toolup-0.2.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 10.1 kB

Release files / toolup-0.2.0.tar.gz

Download URL toolup-0.2.0.tar.gz
Size 5.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a24086999bd3a7f9ff6e83f086d38d309e361d8a032457af9104c7482b724bfc
BLAKE2b-256 checksum
How to use checksums
60bd9280d3896bd5e10d788faf14ecd023fd99da6c3af0b9346a1d8335996ef9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / toolup-0.2.0-py2.py3-none-any.whl

Download URL toolup-0.2.0-py2.py3-none-any.whl
Size 5.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
0a758de6278d42d98497b7a07d248e0da075462c738d1689b890e18acac62217
BLAKE2b-256 checksum
How to use checksums
f4f52e85f929134c7aa8104c8ae650f73675bf096b7c9e00ec8c6cfd5c2f2549
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for toolup 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page