Light-weight project manager for Python projects.
Project description
Jetzt
Light-weight project manager for Python projects.
This is a tiny tool built to automate repetitive manual tasks, when creating a new Python development project and managing project dependencies. What you will end up with, when using jetzt?
- A new project directory under your current directory.
- A new virtualenv named
venv
under the project directory with the System-level installed Python 3.6+ version. - The virtualenv will have
pip
andsetuptools
installed and updated to latest available versions. - Additional packages will be installed based on the selected project type.
- Depending on the project type, other resources may be created to initialize a new project.
Prerequisites
This has been tested on the following setup:
- MacOS Sierra 10.12.6 and newer
- Python 3.6+ (installed via Homebrew)
- Zsh shell (with oh-my-zsh)
Things should probably work nicely on other releases of macOS and on various Linux distros too. Python 3.6+ and zsh are expected.
A changelog is maintained.
Create new project
Run jetzt --scaffold
and follow the prompt. Make sure, you have set environment variable JETZT_HOME
to point to a directory, which will hold the individual projects.
Scaffolding options
You have couple of options for a new project.
Each project will have the following packages installed as development dependencies:
- flake8
- pytest
- jetzt
These will be listed in requirements-dev.txt
.
Python - [Blank]
This scaffolding option is meant to be a good starting point for a generic Python project. This option will not install any additional packages.
Python - Flask
This scaffolding option is meant to be a good starting point for a new Flask-based webapp / API project. This option will install the following packages:
- Flask
These will be listed in requirements.txt
.
Python - Jupyter
This scaffolding option is meant to be a good starting point for a new data science / analytics project. This option will install the following packages:
- jupyter + ipykernel
- pandas
- matplotlib
- seaborn
These will be listed in requirements.txt
.
Also a data
-directory will be created, and this notebook will be copied to the project root (the notebook is included in the installation package).
After scaffolding, start a jupyter server by running jupyter-notebook
in the project root directory.
Manage Python packages
There is naturally the standard way of using pip to install dependencies, and manually add them to requirements.txt
, etc.
Jetzt includes an option to install and manage packages for you. Please read the following examples:
Install a package
To install a package requests
, run jetzt --install
and follow the prompt. You have an option to install the package as a production dependency or as a development dependency. What does all this mean, you might ask? Jetzt will:
- Install the package requests (latest available version).
- Add the package
requests
torequirements.txt
with a version requirement set to minimum of the currently installed version. The packages, which requests depends on, are not added. If you selectedDEV
as a dependency type, the filerequirements-dev.txt
will be used instead.
At the moment, you can only install one package at a time.
Example of requirements.txt
:
requests>=2.18.4
List installed packages
To list installed packages, run jetzt --list
.
License
MIT.
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.