A command line interface (CLI) for managing Python projects.
Create new Python projects with ready-to-go recommended project structure.
Add important files to existing projects
like setup.py
, .gitignore
, Sphinx documentation, choose a license and more.
Run test suites, analyze test coverage and deploy to PyPi.
Even manati is managed using manati... so meta.
pip install --upgrade manati
The full documentation can be found here.
manati create -n myproject
creates a complete Python project structure inside the current working directory:
myproject
├── docs
│ ├── Makefile
│ ├── conf.py
│ ├── index.rst
│ ├── make.bat
│ └── requirements.txt
├── myproject
│ ├── __init__.py
│ └── main.py
├── LICENSE
├── README.md
├── setup.py
├── .gitignore
└── tests
└── test_main.py
including sample source,
tests, documentation, setup.py
, local git
repository and a
suitable .gitignore
file.
After creation, the project is already installed in development (editable) mode, so you can start coding right away.
Sometimes you have an existing project, but initially you did not choose a license,
or your .gitignore
is missing. You can add those special files with the manati add
command.
manati add docs
makes a ./docs
folder and sets up a Sphinx-based documentation in Read-The-Docs
-style:
Call manati add --help
for more information.
manati add license
where you have the choice between standard license texts like MIT, GPLv3, Apache, ...
manati add gitignore
The created .gitignore
contains all usual patterns that should typically be ignored
by git in Python projects.
manati add setup.py
Add a standard github action which automatically runs build and tests on the github CI/CD systems whenever you push a commit:
manati add github-action
manati run tests
manati run coverage
manati run docs
manati run flake8
manati deploy pypi
After that anyone in the world can install your package using pip.
As a prerequisite for deployment, you need an account at PyPi.
Create an empty repository at the platform of your choice, like github, and deploy your local project repository there, e.g.:
manati deploy repo
After that your local repo is in sync the remote one.
Depending on your environment settings, you may have to use manati by prepending python -m
or py -m
like in
python -m manati create
manati is open source and every one is welcome to contribute! Please read the contribution guide if you are interested.
manati requires Python 3.
All Python dependencies are installed automatically. However, you need to have git
installed.
Images by Natur Vektoren von Vecteezy.