Skip to main content

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.

It can be installed from pypi. Its probably best to install as a user dependency, or in a virtual environment.

pip 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 the standard tools:

Psychotic Commands

The following are supported.

  • init
  • install
  • uninstall
  • build
  • 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"

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.

publish

The publish command will upload a package with twine.

$ psycho publish

This is the equivalent of twine upload dist/*.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psycho-1.0.0a5.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

psycho-1.0.0a5-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file psycho-1.0.0a5.tar.gz.

File metadata

  • Download URL: psycho-1.0.0a5.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for psycho-1.0.0a5.tar.gz
Algorithm Hash digest
SHA256 5fce8aa3b641b2fd8b1ecb7adc426f55774378e9d524454b48c47efef70d080f
MD5 0cfb58063793039a126350302148d7ce
BLAKE2b-256 6cb82c3432ec7c0a5cde51279fee395e14e0873d3ef1d472b29bd7d28d667387

See more details on using hashes here.

File details

Details for the file psycho-1.0.0a5-py3-none-any.whl.

File metadata

  • Download URL: psycho-1.0.0a5-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for psycho-1.0.0a5-py3-none-any.whl
Algorithm Hash digest
SHA256 750634b0a349b67ce9fc79fafa4faf9f94fc1ef041a6ad8f3d8bbda88ce921bd
MD5 06575825681d1a29e961384f61f14d36
BLAKE2b-256 7bb2f24e196136d2f67e2d9e00f6659533a6d1a7137e96b0711981e3f76a0746

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page