A tool to manage python projects and their dependencies.
Project description
psycho
Python project management automation using standard build tools.
Status
This project is a working prototype.
This package is available from pypi, but the best way to install it is with pipx.
pipx install psycho
Overview
Python projects are migrating away from using setup.py to pyproject.toml.
While a number of excellent projects provide custom tooling, there is no built
in support for automating project management with just the standard tools:
Psychotic Commands
The following are supported.
- init
- install
- uninstall
- build
- upload
- publish
init
Makes a new pyproject.toml. The command prompts for input.
$ psycho init
Name: my-package
Version [0.1.0]:
Description: My package
Author: rob
Email: rob@example.com
Initializing my-package
Alternatively values can be provided as arguments.
$ psycho init \
--name my-package \
--version 0.1.0 \
--description "My package" \
--author "Rob Blackbourb" \
--email "rob@example.com"
There is one further flag --create local-venv which creates the standard
project structure, with a local virtual environment. It will also upgrade pip and
install the project in the virtual environment.
install
When used without specifying packages this command installs the project as editable.
$ psycho install
This is the equivalent of pip install --editable ..
When used with a package requirement, the requirement is written to the pyproject.toml
and the package is installed into the python environment using pip.
$ psycho install "pandas>=1.5.3"
The -optional flag can be used (with a group name) to add an optional dependency.
$ psycho install --optional dev pytest
Most the flags used by pip are available to this command.
uninstall
This command removes a package from the pyproject.toml file, and uninstalls
it using pip.
$ psycho uninstall pandas
This can be used with the optional flag (with a group name) to uninstall an optional dependency.
$ psycho install --optional dev pytest
build
The build command will build a package, prior to publishing it.
$ psycho build
This is the equivalent of python -m build.
upload
The upload command will upload a package with twine.
$ psycho upload
This is the equivalent of twine upload dist/*.
publish
This combines the build and publish in one command.
$ psycho publish
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 psycho-1.0.6.tar.gz.
File metadata
- Download URL: psycho-1.0.6.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e14040ddd6ef759e8e60e24bf2b788cc3d8ee6d3a7e57716e0f0815cef4c88b4
|
|
| MD5 |
2b22296aece4b136c66a3e75701c5a50
|
|
| BLAKE2b-256 |
b8e72f6bc0518589de3deaabba0a59bb36060e7794eed3bc9206c5290918d4c1
|
File details
Details for the file psycho-1.0.6-py3-none-any.whl.
File metadata
- Download URL: psycho-1.0.6-py3-none-any.whl
- Upload date:
- Size: 13.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f4d1d5d3143dfa687cbd7c03d17dcf7fb1f5e6dab8f0d322167257fd4720d7c
|
|
| MD5 |
d9d4aee8e8a7deb85a32351a39c8f2f8
|
|
| BLAKE2b-256 |
70644c2866086b44f4a0a467348c0405a2f231d4e1a19ef1aae4568338dc553a
|