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.
🌟 Key Features
-
Local Scaffolding (
repopy local): Instantly generates standardized directory trees, configures automated multi-line.gitignorepresets, 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
.venvfootprints 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)
| File | Size | Uploaded | |
|---|---|---|---|
| repopy-0.1.0.tar.gz | 9.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|