A CLI for managing Python projects.
Project description
mpl_pymanage
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 mpl_pymanage is managed using mpl_pymanage... so meta.
Installation
pip install --upgrade mpl_pymanage
Documentation
The full documentation can be found here.
Usage
Creating a new project
mpl_pymanage 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.
Adding stuff to an existing project
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 mpl_pymanage add
command.
Add a project documentation folder
mpl_pymanage add docs
makes a ./docs
folder and sets up a Sphinx-based documentation in Read-The-Docs
-style:
Call mpl_pymanage add --help
for more information.
Add a license
mpl_pymanage add license
where you have the choice between standard license texts like MIT, GPLv3, Apache, ...
Add a .gitignore
file
mpl_pymanage add gitignore
The created .gitignore
contains all usual patterns that should typically be ignored
by git in Python projects.
Add a setup.py
file
mpl_pymanage add setup.py
Add github actions
Add a standard github action which automatically runs build and tests on the github CI/CD systems whenever you push a commit:
mpl_pymanage add github-action
Run stuff
Run tests
mpl_pymanage run tests
Analyze test coverage
mpl_pymanage run coverage
Re-Build docs and show it browser
mpl_pymanage run docs
Run PEP8 style analyzer
mpl_pymanage run flake8
Deploy your project
To PyPi
mpl_pymanage 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.
To Github, Gitlab, etc.
Create an empty repository at the platform of your choice, like github, and deploy your local project repository there, e.g.:
mpl_pymanage deploy repo
After that your local repo is in sync the remote one.
A note for Windows users
Depending on your environment settings, you may have to use mpl_pymanage by prepending python -m
or py -m
like in
python -m mpl_pymanage create
Contributing
mpl_pymanage is open source and every one is welcome to contribute! Please read the contribution guide if you are interested.
Requirements
mpl_pymanage requires Python 3.
All Python dependencies are installed automatically. However, you need to have git
installed.
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
File details
Details for the file mpl_pymanage-0.1.0.tar.gz
.
File metadata
- Download URL: mpl_pymanage-0.1.0.tar.gz
- Upload date:
- Size: 42.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e10538d05e18fd7a7d24ce55929b4860502eee888260f1295788fa14fd8b10d9 |
|
MD5 | 5f091a06eeb74ef527c5eee1d1e12af2 |
|
BLAKE2b-256 | a5bdf1344ae6c1ff1f2cb42c326d6bed77f355a8fe3156a2d22db6df46e3d3db |
File details
Details for the file mpl_pymanage-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: mpl_pymanage-0.1.0-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2877de8a11eb02dc819cdb77c98cf796a83b1081b1513506fa0226294d4d08e6 |
|
MD5 | 9f59cd60c6f318ab26c624ecaed3d1b6 |
|
BLAKE2b-256 | ae8be566cb7d8d3986091563ef8f76d1315f253f9c769a77373ff9a194e1e295 |