pyto

Whole Python ecosystem in one command line tool


Keywords
cli, build
License
Other
Install
pip install pyto==0.0.1

Documentation

pyto

Simple python manager

Pyto abstracts over all tools you love to bring a uniform experince.

Pyto is a wrapper around other powerful tools that evolve and change, pyto in the same manner adapts to always use the most up-to-date convention by default.

Pyto can also be setup to used as simple project creation tool or something else. Pyto know about all of the best tools for python and tries to use them, if we do not have support for some awsome tools, please open an issue.

Inspired by cargo, raco and yeoman. Written in pure typed Python.

Whole Python ecosystem in one command line.

Even for simple projects we recommend using pyto as it structures all the code and makes sure all your project are consistent

Pyto works the same on all OS and has same commands.

Pyto always defaults to the newest PEPs to be shiny. But you can ovveride behavioyr using pyto.toml

You live before Python 3.6? Do not have pyproject.toml? No problem pyto can be used with any setup even distutils !

Info

Project Structure

Strcuture of your project is very personal thing, however, as we are not only charming, but also very opninated manager, we decided to enforce standart project structure. You are probably already familier with it, as a large number of Python project are using same or very similar structure. Our was highly influnced by the following:

https://docs.python-guide.org/writing/structure/ https://github.com/navdeep-G/samplemod

Todo

  • Have autometic resolution of things like setup.py and only create them for versions that require it.
  • Have generator declaration, so other can make other types of projects
  • Generate git
  • Generate .gitignore
  • Generate License

How setup looks

pyto new

Choose build:
    [*] setuptools
    [ ] poetry
    [ ] flit

CLI

# initialize a new python package in current directory
# from existing setup or anew (easy to convert existing project)
pyto init

# create a new directory
pyto new NAME

# set default python
pyto set global python3

# install all packages
pyto install

# uninstall all packages
pyto uninstall

# Create new virtual env
pyto env

# run script
pyto run [--no-check] target=.

# compile code
pyto build

# clean env from unused dependencies
pyto clean

# run static checks
pyto check target=.

# generate docs
pyto docs

# extend pyto
pyto add COMPONENT

# pin python requirments
pyto pin

# publish package
pyto publish [--dry-run]
pyto publish [--testpypi]

# install locally
pyto install

# show dependency graph
pyto graph

Python Ecosystem

Files

Filename Used by
setup.py
setup.cfg
Pipfile
Pipfile.lock
pyproject.toml
MANIFEST.in
.bandit
requirements.txt
.flake8
poetry.lock
tox.ini

Scaffold

Build

Publish

Dependecies

Environment

Static Checks

Type Checker

Security

Linting

Documentation

Test

Package Version

Python Versioning

Python Implementation

Read and Remove

Dev

https://click.palletsprojects.com/en/7.x/utils/ https://setuptools.readthedocs.io/en/latest/userguide/entry_point.html