Skip to main content

repopy

A highly modular, cross-platform Python CLI scaffolding tool and library designed to automate the initial configuration of local Python developer workspaces and remote Python repository deployment.

PyPI Version Python Versions License: MIT


🌟 Key Features

  • Local Scaffolding (repopy local): Instantly generates standardized directory trees, configures automated multi-line .gitignore presets, and initializes clean local Git repositories.

  • Remote Automation (repopy clone): Downloads remote repositories, parses project structures, and automatically updates localized environment constraints.

  • Isolated Virtual Environments: Automatically builds localized .venv footprints using Python's native compilation layer.

  • Cross-Platform Compatibility: Automatically detects structural variances between Windows, macOS, and Linux to run direct executions seamlessly.


🛠️ Architectural Highlights

This package was designed following production-grade software engineering principles:

  • Decoupled Low-Level Engines: Features standalone layers (FileSystemEngine & GitEngine) that are entirely decoupled from CLI routing logic, making them fully reusable as an importable library API.

  • Single Responsibility Validation: Separates terminal argument compilation (argparse) from explicit data sanitization filters (validators.py) and environmental prerequisite verification (dependencies.py).

  • Defensive Error Handling & Auto-Rollback: Leverages short-circuit evaluations and interactive terminal input cascades. In the event of network or environment breaks during deployment, it offers automated transactional folder cleanups (shutil.rmtree) to prevent workspace pollution.

  • Direct-Execution Strategy: Bypasses unstable, platform-dependent shell environment injections by directly target-executing localized virtual environment binaries (pip).


📥 Installation

You can install repopy globally from PyPI using pip:

pip install repopy

Alternatively, you can install the latest development version directly from source:

git clone https://github.com/manatunga/repopy.git
cd repopy
pip install -e .

🚀 Usage Guide

1. Initialize a Local Project from Scratch

Generate a clean, standardized local environment with an operational virtual environment and pre-seeded .gitignore file:

repopy local my-new-app

2. Clone and Auto-Provision a Remote Codebase

Clone an external codebase, create a virtual environment, scan for a requirements.txt file, and automatically install its dependencies:

repopy clone https://github.comencode/httpx.git -n my-custom-workspace

🗂️ Project Structure

repopy/
├── src/
│   └── repopy/
│       ├── __init__.py         # Package initialization
│       ├── __main__.py         # Application root entry point
│       ├── cli.py              # CLI Argument Parsing layer
│       ├── orchestrators.py    # Architectural workflow supervision
│       ├── os_detector.py      # Cross-platform OS translation utility
│       ├── dependencies.py     # Binary prerequisite verification
│       ├── validators.py       # Data input and path path verification
│       ├── file_system.py      # Low-level file system engine
│       └── git_engine.py       # Low-level shell compilation engine
├── pyproject.toml              # Build-system manifest & CLI script configuration
├── .gitignore
├── LICENSE                     # MIT License
└── README.md                   # Project documentation

📄 License

Distributed under the MIT License. See LICENSE for more details.

Release files for repopy 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repopy 0.1.0
File Size Uploaded
repopy-0.1.0.tar.gz 9.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for repopy 0.1.0
File Interpreter ABI Platform
repopy-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.5 kB

Release files / repopy-0.1.0.tar.gz

Download URL repopy-0.1.0.tar.gz
Size 9.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d2861bf5d37e29eef59064d072b8c0128a9f66c93c0f97a5deedc6ccbe34294c
BLAKE2b-256 checksum
How to use checksums
5a8641a3265273843c9662cc5853b1119999031b16505e58e9b750d85be1e2f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / repopy-0.1.0-py3-none-any.whl

Download URL repopy-0.1.0-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4311fccefce6f681619779d6e6f8abae6471dd8e3ea2502da3d8a6e38c9e9668
BLAKE2b-256 checksum
How to use checksums
a3029d612742118f871caeaf2d310bf52645fafee0a59d616b713d5d12083254
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release history Release notifications | RSS feed

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page