Python Project (pypo) - CLI tool for scaffolding projects from YAML templates
Project description
Python Project (pypo)
A powerful CLI tool for scaffolding projects from YAML templates.
Installation
# Install from PyPI (when published)
pip install pypo
# Install from source (development)
git clone <repo-url>
cd pypo
pip install -e ".[dev]"
Quick Start
1. Create a Template
Create a YAML file describing your project structure:
# my-web-project.yaml
name: "web-project"
description: "A simple web project structure"
version: "1.0"
structure:
- name: "src"
type: "directory"
children:
- name: "index.html"
type: "file"
content: |
<!DOCTYPE html>
<html>
<head><title>Hello World</title></head>
<body><h1>Welcome!</h1></body>
</html>
- name: "styles"
type: "directory"
children:
- name: "main.css"
type: "file"
- name: "scripts"
type: "directory"
children:
- name: "app.js"
type: "file"
- name: "README.md"
type: "file"
content: "# My Web Project"
2. Save the Template
pypo create web-project --path ./my-web-project.yaml
3. Initialize a New Project
pypo init web-project --output ./my-new-site
Commands
| Command | Description |
|---|---|
pypo create <name> --path <yaml> |
Import a YAML template |
pypo init <name> [--output <dir>] |
Scaffold a project |
pypo list [--archived] |
List all templates |
pypo source <name> |
Display template YAML |
pypo edit <name> |
Open template in editor |
pypo export <name> --output <path> |
Export template to file |
pypo duplicate <name> <new_name> |
Clone a template |
pypo delete <name> |
Remove a template |
pypo archive <name> |
Archive a template |
Template YAML Format
name: "template-name" # Required: unique identifier
description: "Description" # Optional: what this template creates
version: "1.0" # Optional: template version
structure: # Required: list of files/directories
- name: "folder-name"
type: "directory"
children: # Nested items for directories
- name: "file.txt"
type: "file"
content: "File content" # Optional: initial file content
Configuration
Templates are stored in ~/.pypo/templates/
Storage Structure
~/.pypo/
├── config.json # Global settings
├── templates/ # Active templates
│ ├── template1.yaml
│ └── template2.yaml
└── archive/ # Archived templates
└── old-template.yaml
Development
# Clone and install
git clone <repo-url>
cd pypo
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black src/
ruff check src/ --fix
License
MIT License - see LICENSE file for details.
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
pypo_cli-0.1.0.tar.gz
(15.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pypo_cli-0.1.0-py3-none-any.whl
(19.0 kB
view details)
File details
Details for the file pypo_cli-0.1.0.tar.gz.
File metadata
- Download URL: pypo_cli-0.1.0.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7187f8191b41eb85ef45d68c4219f6a32b7dc4a27e5166e13ecc81484dc36b7b
|
|
| MD5 |
768fd2b37a6c0dba672dc54a5cf89819
|
|
| BLAKE2b-256 |
69a9b6dd4413ed3922bca0dfd31bb79e106a53f7b37184441c0db7027d493593
|
File details
Details for the file pypo_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pypo_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8b2b5c3060ecfc55c06f8967c7d97aa4302ea4bfcf0f30d148deaa53392268c
|
|
| MD5 |
e2d924c5ec577686d88af5e684cc4637
|
|
| BLAKE2b-256 |
4f0b4f6e5f6e10d4b220faed25f6b6c9cfc57c114cb4efbc265c824be2ee2025
|