https://github.com/matteoguadrini/psp
psp (Python Scaffolding Projects)
https://github.com/matteoguadrini/psp
inquirer-prompt prompt prompts python python3 rust rust-lang scaffold scaffolder scaffolding
Last synced: about 1 month ago
JSON representation
psp (Python Scaffolding Projects)
- Host: GitHub
- URL: https://github.com/matteoguadrini/psp
- Owner: MatteoGuadrini
- License: apache-2.0
- Created: 2024-07-12T14:21:47.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-03-11T14:38:54.000Z (2 months ago)
- Last Synced: 2025-04-11T20:06:03.345Z (about 1 month ago)
- Topics: inquirer-prompt, prompt, prompts, python, python3, rust, rust-lang, scaffold, scaffolder, scaffolding
- Language: Rust
- Homepage: https://psp.readthedocs.io
- Size: 129 KB
- Stars: 35
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
**psp** (Python Scaffolding Projects)
======`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](https://docs.pytest.org/) support
- ๐งช Create a virtual environment
- ๐ง Automagically dependencies installation
- ๐ช Add build and deploy dependencies to distribute the package
- ๐ [tox](https://tox.wiki/en/stable/) configuration supports and remotes CI like [CircleCI](https://circleci.com/) and [TravisCI](https://www.travis-ci.com/)
- โจ๏ธ [MkDocs](https://www.mkdocs.org/) and [Sphinx](https://www.sphinx-doc.org/) documentation support
- ๐งฐ Initialize git repository and `gitignore` file
- ๐ GitHub and Gitlab remote repository support
- ๐ Create `README`, `LICENSE`, `CONTRIBUTING`, `CODE_OF_CONDUCT` and `CHANGES` files
- ๐ณ Create `Dockerfile` and `Containerfile` 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## ๐ Get Started in 30 Seconds
[](https://asciinema.org/a/707474)
The result is:
```console
$> 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_"
โโโ 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.cfg29 directories, 44 files
```And `git` status is:
```console
$> git status
On branch mainNo commits yet
...
$> git remote get-url origin
[email protected]:MatteoGuadrini/test.git
```## ๐ Prerequisites
`psp` has four prerequisetes installed on own machine:
- `git`
- `python3`
- `pip`
- `curl`### Ubuntu based prerequisites installation
```console
sudo apt install -y python3 python3-pip git curl
```### Red Hat based prerequisites installation
```console
sudo dnf install -y python3 python3-pip git curl
```### Arch based prerequisites installation
```console
sudo pacman -Qi python3 python3-pip git curl
```## ๐ฟ Installation
To install compiled file into your machine, download it:
### Linux
For all users:
```console
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:
```console
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
```### MacOS
```console
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
```### Packages
If you want install OS package, follow instructions for your Operating System:
For **Debian/Ubuntu**:
```console
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**:
```console
sudo rpm -i https://github.com/MatteoGuadrini/psp/releases/download/v0.2.0/psp.rpm
```### Compile as your own
Instead, if you compile this project as own, follow this steps:
```console
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
```## Open source
_psp_ is an open source project. Any contribute, It's welcome.**A great thanks**.
For donations, press this
For me
[](https://www.paypal.me/guos)
For [Telethon](http://www.telethon.it/)
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.[Adopt the future](https://www.ioadottoilfuturo.it/)
## Treeware
This package is [Treeware](https://treeware.earth). If you use it in production,
then we ask that you [**buy the world a tree**](https://plant.treeware.earth/matteoguadrini/mkpl) to thank us for our work.
By contributing to the Treeware forest youโll be creating employment for local families and restoring wildlife habitats.[](https://treeware.earth)
## Acknowledgments
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](https://zed.dev/) and for license of [RustRover](https://www.jetbrains.com/rust/) 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!