Python command tools
pyto new
Package name: pip
Version [0.1.0]:
Build tool:
[*] setuptools
[ ] poetry
[ ] flit
Security tools [black]:
Test tools [pytest]:
pipx install pyto
brew install pyto
pip install pyto
conda install pyto
# pyproject.toml
[tool.pyto.build]
...
[tool.pyto.security]
...
❯ poetry run pyto
Usage: pyto [OPTIONS] COMMAND [ARGS]...
pyto - python command tools
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
add Add new dependency
adopt Adopt the current setup of the package
build Build the project
check Perform static check of the target
clean Clean env from unused dependecies
docs Generate docs
env Create virtual evirment
graph Show dependecy graph of the project
init Initialize a new project in this directory
install Install all packages
new Create a new project in specified directory
pin Pin requirements
publish publish package
run Run scripts
uninstall Uninstall all packages
Filename | Used by |
---|---|
pyproject.toml |
|
setup.cfg |
|
setup.py |
|
requirements.txt |
|
MANIFEST.in |
|
Pipfile |
|
Pipfile.lock |
|
poetry.lock |
|
.flake8 |
|
.bandit |
|
tox.ini |
- pyscaffold
- cookiecutter
- python-cli-tool-scaffold
- yehua - @unmaintained
- carcass - @unmaintained
- scaffold-py - @unmaintained
- simplepkg - @unmaintained
- setuptools @pypa
- build @pypa
- packaging @pypa
- pipenv @pypa
- pybuilder
- conda
- pip-tools
- bento - @unmaintained
- distutils - @deprecated in favor of setuptools
- pip @pypa @python2 @python3
- pipx @pypa
- poetry
- rez
- easy_install - @deprecated in favor of setuptools
- venv @default @std @python3
- virtualenv @pypa @python2 @python3
- autoenv
- pyenv-virtualenv @extension for pyenv
- pyenv-virtualenvwrapper @unmaintained @extension for pyenv
- virtualenvwrapper @unmaintained @extension for virtualenv
- pyvenv @deprecated in favor of venv
- flake8
- pycodestyle
- pyflakes
- mccabe
- pydocstyle
- pylint
- pylama
- radon
- black
- isort
- autopep8
- pychecker
- eradicate
- vulture
- yapf
- pylava - @unmaintained
- pep8ify - @unmaintained
- cpython - basic python we love
- pypy @unsuported
- stackless @unsuported
- micropython @unsuported
- rustpython @unsuported
- anaconda @unsuported
- https://packaging.python.org/en/latest/key_projects/#virtualenv
pip install —editable .
- Sample Python Module
- Python Typing
- Python Project Template
- Awesome Python
- Testing & Packaging
- Packaging a python library
- Source distribution format
- PyPi publish package
https://click.palletsprojects.com/en/7.x/utils/ https://setuptools.readthedocs.io/en/latest/userguide/entry_point.html
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
!
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
- 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