psp
is a blazing fast command line utility to scaffold your Python project, written in Rust.
- β‘οΈ 1-100x faster compared to other scaffolding tools
- π οΈ
pyproject.toml
support - π€ Python 3.13 compatibility
- π Scaffolding file and folder structures for your Python project
- π¦ Unit-test and pytest support
- π§ͺ Create a virtual environment
- π§ Automagically dependencies installation
- πͺ Add build and deploy dependencies to distribute the package
- π tox configuration supports and remotes CI like CircleCI and TravisCI
- β¨οΈ MkDocs and Sphinx documentation support
- π§° Initialize git repository and
gitignore
file - π GitHub and Gitlab remote repository support
- π Create
README
,LICENSE
,CONTRIBUTING
,CODE_OF_CONDUCT
andCHANGES
files - π³ Create
Dockerfile
andContainerfile
for your project - π‘ Can use quick, simple and full argument for rapid configuration
- πΎ Create
$HOME/.psp.env
and$PWD/.env
files with your customizations - ποΈ Can use some
PSP_
variables to control your defaults
The result is:
$> tree test/ --filelimit=19 -a
test # Project folder
βββ LICENSE.md # License file
βββ pyproject.toml # Python package configuration file
βββ README.md # Readme file
βββ CHANGES.md # List of changes
βββ .circleci # CI folder
β βββ config.yml # CI configuration file
βββ CODE_OF_CONDUCT.md # Code of Conduct
βββ CONTRIBUTING.md # Contributing guide lines
βββ Containerfile # Standard container file for build image
βββ Dockerfile # Docker container file for build image
βββ Makefile # Makefile for command make; make help
βββ requirements.txt # Dependencies list used by third programs
βββ docs # Documentation folder: Sphinx/MKDocs
β βββ build
β βββ make.bat
β βββ Makefile
β βββ source
β βββ conf.py
β βββ index.rst
β βββ _static
β βββ _templates
βββ .git # Git folder
β βββ branches
β βββ config
β βββ description
β βββ HEAD
β βββ hooks [14 entries exceeds filelimit, not opening dir]
β βββ info
β β βββ exclude
β βββ objects
β β βββ info
β β βββ pack
β βββ refs
β βββ heads
β βββ tags
βββ .github # Github issue and merge templates
β βββ ISSUE_TEMPLATE
β β βββ bug.yml
β β βββ config.yml
β β βββ feature.yml
β βββ PULL_REQUEST_TEMPLATE
β βββ pull_request_template.md
βββ .gitignore # Git ignore file
βββ test # Python package
β βββ __init__.py
βββ tests # Tests package for modules
β βββ __init__.py
β βββ test_test.py # Test module "test_<name_python_package>"
βββ tox.ini # Tox configuration files
βββ venv # Virtual environment
βββ bin [33 entries exceeds filelimit, not opening dir]
βββ include
β βββ python3.13
βββ lib
β βββ python3.13
β βββ site-packages [68 entries exceeds filelimit, not opening dir]
βββ lib64 -> lib
βββ pyvenv.cfg
29 directories, 44 files
And git
status is:
$> git status
On branch main
No commits yet
...
$> git remote get-url origin
git@github.com:MatteoGuadrini/test.git
psp
has four prerequisetes installed on own machine:
git
python3
pip
curl
sudo apt install -y python3 python3-pip git curl
sudo dnf install -y python3 python3-pip git curl
sudo pacman -Qi python3 python3-pip git curl
To install compiled file into your machine, download it:
For all users:
sudo -i
curl -L https://github.com/MatteoGuadrini/psp/releases/download/v0.2.0/psp_linux -o /usr/bin/psp
chmod +x /usr/bin/psp
For current user:
curl -L https://github.com/MatteoGuadrini/psp/releases/download/v0.2.0/psp_linux -o $HOME/.local/bin/psp
chmod +x $HOME/.local/bin/psp
sudo su -
curl -L https://github.com/MatteoGuadrini/psp/releases/download/v0.2.0/psp_macos -o /usr/bin/psp
chmod +x /usr/bin/psp
If you want install OS package, follow instructions for your Operating System:
For Debian/Ubuntu:
curl -L https://github.com/MatteoGuadrini/psp/releases/download/v0.2.0/psp.deb -o psp.deb
sudo dpkg -i psp.deb
For Fedora/Mageia/OpenSuse:
sudo rpm -i https://github.com/MatteoGuadrini/psp/releases/download/v0.2.0/psp.rpm
Instead, if you compile this project as own, follow this steps:
git clone https://github.com/MatteoGuadrini/psp.git
cd psp && cargo build --release && sudo cp -v target/release/psp /usr/bin/psp && chmod +x /usr/bin/psp
psp is an open source project. Any contribute, It's welcome.
A great thanks.
For donations, press this
For me
For Telethon
The Telethon Foundation is a non-profit organization recognized by the Ministry of University and Scientific and Technological Research. They were born in 1990 to respond to the appeal of patients suffering from rare diseases. Come today, we are organized to dare to listen to them and answers, every day of the year.
This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the Treeware forest youβll be creating employment for local families and restoring wildlife habitats.
Thanks to Jim Blandy, Jason Orendorff and Nora Tindall for writing the Programming Rust book that make up my Rust foundation.
Thanks to Tim McNamara for writing the Rust in Action book.
Thanks to Zed IDE and for license of RustRover offered by Jetbrains.
Special thanks go to my wife, who understood the hours of absence for this development. Thanks to my children, for the daily inspiration they give me and to make me realize, that life must be simple.
Thanks, Rust Community!