u/MatteoGuadrini

Nuovo strumento per progetti di ponteggi

What does my project do?

I started creating Python projects with CookieCutter and Pyscaffold years ago. Both tools are too cumbersome to configure a single project. I spent a lot of time defining my projects well. At some point, projects change shape based on dependencies and the domain of the project they're developing on. So I developed psp , which uses a clean and precise CLI to create projects dynamically and efficiently. psp asks questions, requests responses, and performs whatever is necessary to create the project. Only what is needed. It has PSP_* environment variables to set common values ​​and shortcuts to speed up scaffolding when necessary.

Furthermore, it integrates with all the tools in the Python universe: poetry, maturin, conda, uv, hatch...

Public Destination

psp is a tool for both beginners and experts. It is under development, and various features will be available in the future. If you have any requests, you are welcome, and I recommend opening an issue on the repo.

It has been tested on Linux, macOS, and Windows.

Comparison

cookiecutter: Templates are prescriptive by design. Cookiecutter enforces a particular project structure and conventions, which may not align with your or your organization's preferences. If a template's opinions don't match your needs, you're forced to either choose a different template or heavily modify an existing one. This can become tedious when you need something slightly different from what's available. psp is dynamic; it scaffolds what you need.

PyScaffold: PyScaffold doesn't manage virtual environments directly. You must manually create and activate a virtualenv or use external tools like pipenv, poetry, conda, or pyenv. While PyScaffold documents integrates with these tools, it doesn't provide a unified interface for environment management like psp does.

Neither supports Docker or containerization.

Note: #noAI was not used in the writing or maintenance of this program.

reddit.com
u/MatteoGuadrini — 21 hours ago
▲ 1 r/pythontips+1 crossposts

Hello Python enthusiasts,

I've been thinking lately about the tools used to develop new projects. Rust is increasingly used to build utilities for the Python ecosystem; for example, I always use these three development tools: psp, uv, and ruff.

I always start by scaffolding the project with psp, launching it from the command line: psp

Then, once inside the project, I install all the dev dependencies with uv: uv pip install ...

Finally, after writing my first lines of Python code, I run ruff to identify inaccuracies and make improvements: ruff check --select F401 --select F403 --quiet

Do you also use these development utilities?

Do you know of other pairs/triplets of tools to improve the development of your projects?

I look forward to hearing from you!
See you soon

u/MatteoGuadrini — 1 day ago
▲ 7 r/DevOpsLinks+1 crossposts

psp (Python Scaffolding Projects)

https://preview.redd.it/as1ogc2pkxxg1.png?width=640&format=png&auto=webp&s=48ab4a019d4b3cca1255fe6c61a1fd288a4bbeed

Ciao a tutti! 👋

Ho lavorato su psp (Python Scaffolding Projects), un'utility da riga di comando open source estremamente veloce per generare automaticamente la struttura del vostro progetto Python. Ho pensato di condividerla con la community!

Cos'è PSP?

psp è semplice, veloce, efficace, dichiarativo e supporta Python e l'intero ecosistema di strumenti scritti per esso. Piuttosto che sostituirlo, psp cerca di integrarsi e fornire una struttura utile per l'utente finale.

psp chiede solo ciò di cui hai bisogno. Configurando alcune variabili d'ambiente, puoi automatizzare qualsiasi progetto in pochi secondi, non in ore.

Perché PSP?

⚡️ Da 1 a 100 volte più veloce rispetto ad altri strumenti di scaffolding

🛠️ Supporto per pyproject.toml

🤝 Compatibilità con Python 3.14

🗃 Creazione di strutture di file e cartelle per il tuo progetto Python

🗂️ Supporto per unit test e pytest

🧪 Creazione di un ambiente virtuale

🔧 Installazione automatica delle dipendenze

🪛 Aggiunta di dipendenze di build e distribuzione per distribuire il pacchetto

📏 Supporto per la configurazione di tox e CI remota come CircleCI, Azioni TravisCI, Gitlab CI/CD e Github

⌨️ Supporto per la documentazione MkDocs e Sphinx

🧰 Inizializzazione del repository Git e del file gitignore

🌎 Supporto per repository remoti GitHub e Gitlab

📑 Creazione di file README, LICENSE, CONTRIBUTING, CODE_OF_CONDUCT e CHANGES

🐳 Creazione di Dockerfile e Containerfile per il progetto

💡 Possibilità di utilizzare gli argomenti quick, simple e full per una configurazione rapida

💾 Creazione dei file $HOME/.psp.env e $PWD/.env con le proprie impostazioni Personalizzazioni

🎛️ È possibile utilizzare alcune variabili PSP_ per controllare le impostazioni predefinite

📦 Supporto per pip, conda e gestore di pacchetti uv

🧮 Supporto per hatch, maturin e poetry builder

🍿 Interrompi, metti in pausa e riprendi la creazione del progetto quando vuoi; Vedi Aggiornamento

Aperto alla community — Sviluppato attivamente e aperto ai contributi

Per iniziare:

Repository: https://github.com/MatteoGuadrini/psp

Documentazione: https://psp.readthedocs.io/

Consulta la documentazione e gli esempi per iniziare

Lo sto mantenendo attivamente e accetto volentieri feedback, segnalazioni di bug e contributi dalla community.

Che tu sia interessato alla programmazione di sistemi, agli strumenti DevOps o semplicemente a esplorare le potenzialità di Python, mi piacerebbe conoscere la tua opinione!

Buon coding e buona creazione di progetti! 🐍

reddit.com
u/MatteoGuadrini — 11 days ago