Skip to content

sai1027/pypo-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Project (pypo)

A simple CLI tool to create project structures 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages