{"id":29134054,"url":"https://github.com/pyfunc/digy","last_synced_at":"2026-01-20T17:53:47.252Z","repository":{"id":300543444,"uuid":"1006433989","full_name":"pyfunc/digy","owner":"pyfunc","description":"Deploy Interactive Git ","archived":false,"fork":false,"pushed_at":"2025-06-22T10:02:59.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T10:18:54.472Z","etag":null,"topics":["deploy","in","interactive","ram"],"latest_commit_sha":null,"homepage":"http://digy.pyfunc.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyfunc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-22T09:02:58.000Z","updated_at":"2025-06-22T10:03:03.000Z","dependencies_parsed_at":"2025-06-22T10:18:58.650Z","dependency_job_id":"827b505e-442a-4460-8782-81a18611652a","html_url":"https://github.com/pyfunc/digy","commit_stats":null,"previous_names":["pyfunc/digy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pyfunc/digy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Fdigy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Fdigy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Fdigy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Fdigy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyfunc","download_url":"https://codeload.github.com/pyfunc/digy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Fdigy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262736668,"owners_count":23356152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deploy","in","interactive","ram"],"created_at":"2025-06-30T08:12:32.544Z","updated_at":"2026-01-20T17:53:47.223Z","avatar_url":"https://github.com/pyfunc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DIGY - Dynamic Interactive Git deploY\n\n\u003e **Note**: DIGY is in active development. Some features may be experimental.\n\n[![PyPI version](https://img.shields.io/pypi/v/digy?style=flat-square)](https://pypi.org/project/digy/)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/digy?style=flat-square)](https://pypistats.org/packages/digy)\n[![Python Version](https://img.shields.io/pypi/pyversions/digy?style=flat-square)](https://www.python.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)\n[![GitHub last commit](https://img.shields.io/github/last-commit/pyfunc/digy?style=flat-square)](https://github.com/pyfunc/digy/commits/main)\n[![GitHub issues](https://img.shields.io/github/issues-raw/pyfunc/digy?style=flat-square)](https://github.com/pyfunc/digy/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/pyfunc/digy?style=flat-square)](https://github.com/pyfunc/digy/pulls)\n[![GitHub contributors](https://img.shields.io/github/contributors/pyfunc/digy?style=flat-square)](https://github.com/pyfunc/digy/graphs/contributors)\n\nDIGY is a powerful tool for executing Python code in various environments with minimal setup. It provides a consistent interface for running code locally, in Docker containers, in-memory, or on remote machines.\n\n## 🚀 Quick Links\n- [Features](#-features)\n- [Installation](#-installation)\n- [Quick Start](#-quick-start)\n- [Examples](#-examples)\n- [Documentation](#-documentation)\n- [Contributing](#-contributing)\n- [License](#-license)\n- [Support](#-support)\n\n## 🌟 Features\n\n### 🛠️ Multi-Environment Execution\n- **Local**: Run code in isolated virtual environments\n- **Docker**: Containerized execution for reproducibility\n- **RAM**: In-memory execution for maximum performance\n- **Remote**: Execute on remote machines via SSH\n- **JVM**: Run Java/Scala code with Python interop\n\n### 💻 Interactive \u0026 Scriptable\n- Rich terminal interface with auto-completion\n- Command-line automation support\n- Scriptable execution flows\n- Jupyter notebook integration\n\n### 🔄 Flexible Code Loading\n- Direct Git repository cloning\n- Automatic zip download fallback\n- Support for private repositories\n- Branch/tag/commit selection\n\n### 📁 File \u0026 Data Management\n- Interactive file selection\n- File attachment support\n- Volume mounting for persistent data\n- Built-in data processing utilities\n\n### 🔒 Security \u0026 Authentication\n- Multiple authentication methods\n- Secure credential management\n- Environment-based configuration\n- Custom authentication providers\n\n### 📊 Monitoring \u0026 Debugging\n- Real-time resource usage\n- Detailed logging\n- Debug mode for troubleshooting\n- Performance metrics\n\n### 🔄 Integration \u0026 Extensibility\n- Plugin system for custom environments\n- Webhook support\n- REST API\n- CLI and programmatic interfaces\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Python 3.8 or higher\n- Git (recommended for direct Git operations)\n- Docker (optional, for containerized execution)\n- Poetry (for development)\n\n### Installation\n\n#### Using pip (recommended)\n```bash\npip install digy\n```\n\n#### Development Installation\n```bash\n# Clone the repository\ngit clone https://github.com/pyfunc/digy.git\ncd digy\n\n# Install with development dependencies\npip install -e .[dev]\n\n# Or use Poetry\npoetry install\n```\n\n### Basic Usage\n\n#### For Local Scripts (Recommended)\n\nFor running local scripts directly, use Python directly:\n\n```bash\n# Run a local script directly with Python\npython -m examples.basic.hello_world\n\n# For machine learning example\npython -m examples.machine_learning.iris_classifier\n```\n\n#### Using DIGY (Repository-based Execution)\n\nDIGY is designed to work with git repositories. To use DIGY:\n\n1. **Initialize a git repository** if you haven't already:\n   ```bash\n   git init\n   git add .\n   git commit -m \"Initial commit\"\n   ```\n\n2. **Run with DIGY**:\n   ```bash\n   # Start interactive mode\n   digy local .\n   \n   # Or specify the script directly (requires git repository)\n   digy docker examples/basic/hello_world.py\n   ```\n\n#### Common Issues\n\nIf you see errors about missing manifest files, create a basic `digy.yaml`:\n```bash\necho \"python: 3.10\" \u003e digy.yaml\n```\n\nFor \"Failed to clone repository\" errors, ensure:\n1. The directory is a git repository\n2. Remote repository is properly set up if using `digy run`\n3. You have proper git permissions for the repository\n\n## 📚 Documentation\n\n### Command Reference\n\n#### `digy local [REPO_URL]`\nStart an interactive session for a git repository.\n\n**Options:**\n- `--python VERSION`: Python version to use (e.g., 3.10)\n- `--cwd PATH`: Working directory\n- `--debug`: Enable debug output\n\n**Examples:**\n```bash\n# Start interactive mode in current directory\ndigy local .\n\n# Specify Python version\ndigy local --python 3.10 .\n```\n\n#### `digy run \u003cREPO_URL\u003e \u003cSCRIPT_PATH\u003e [args...]`\nRun a specific script from a git repository.\n\n**Options:**\n- `--python VERSION`: Python version to use\n- `--debug`: Enable debug output\n\n**Examples:**\n```bash\n# Run a script from the current repository\ndigy run . examples/basic/hello_world.py\n\n# With arguments\ndigy run . examples/basic/script.py arg1 arg2\n```\n\n#### `digy docker [options] \u003cscript\u003e [args...]`\nRun a script in a Docker container.\n\n**Options:**\n- `--image IMAGE`: Docker image to use (default: python:3.9-slim)\n- `--build`: Build Docker image from Dockerfile\n- `--dockerfile PATH`: Path to Dockerfile\n- `--no-cache`: Disable Docker cache\n- `--volume SRC:DST`: Mount a volume\n\n**Examples:**\n```bash\n# Basic usage\ndigy docker script.py\n\n# Specify custom image\ndigy docker --image tensorflow/tensorflow script.py\n\n# Mount volumes\ndigy docker -v $(pwd)/data:/data script.py\n```\n\n#### `digy ram \u003cscript\u003e [args...]`\nRun a script in memory for maximum performance.\n\n**Examples:**\n```bash\n# Basic usage\ndigy ram script.py\n\n# With dependencies\npip install -r requirements.txt\ndigy ram script.py\n```\n\n#### `digy remote \u003cuser@host\u003e \u003crepo\u003e \u003cscript\u003e [args...]`\nRun a script on a remote machine.\n\n**Options:**\n- `--key PATH`: SSH private key\n- `--port PORT`: SSH port (default: 22)\n- `--ssh-args ARGS`: Additional SSH arguments\n\n**Examples:**\n```bash\n# Basic usage\ndigy remote user@example.com github.com/owner/repo script.py\n\n# With custom SSH key\ndigy remote --key ~/.ssh/id_rsa user@example.com github.com/owner/repo script.py\n```\n\n## 📦 Configuration\n\nDIGY can be configured using environment variables or a configuration file.\n\n### Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `DIGY_DEBUG` | `false` | Enable debug output |\n| `DIGY_CACHE_DIR` | `~/.cache/digy` | Cache directory |\n| `DIGY_CONFIG` | `~/.config/digy/config.toml` | Config file path |\n| `DIGY_DOCKER_IMAGE` | `python:3.9-slim` | Default Docker image |\n| `DIGY_PYTHON_BIN` | `python3` | Python interpreter |\n\n### Configuration File\n\nCreate `~/.config/digy/config.toml`:\n\n```toml\n[core]\ndebug = false\ncache_dir = \"~/.cache/digy\"\n\n[docker]\nimage = \"python:3.9-slim\"\nbuild = false\nno_cache = false\n\n[remote]\nport = 22\nkey = \"~/.ssh/id_rsa\"\n\n[local]\npython = \"python3\"\n```\npip install -e .\n\n# Or using Poetry\npoetry install\n```\n\n### Basic Usage\n\n#### Interactive Mode\n```bash\n# Clone and interact with a repository\ndigy local https://github.com/octocat/Hello-World.git\n\n# Run with a specific branch\ndigy local https://github.com/octocat/Hello-World.git --branch main\n\n# Attach local files (available in interactive menu)\ndigy local https://github.com/pyfunc/repo.git --file ./local_script.py\n```\n\n#### Non-Interactive Mode\n```bash\n# Run a specific script from a repository\ndigy local https://github.com/pyfunc/digy.git --script path/to/script.py\n\n# With command-line arguments\ndigy local https://github.com/pyfunc/digy.git --script main.py -- --arg1 value1\n\n# Using environment variables\nDIGY_RAM_SIZE=4 digy local https://github.com/pyfunc/digy.git\n```\n\n#### Docker Execution\n```bash\n# Run in a Docker container\ndigy docker https://github.com/pyfunc/digy.git\n\n# Specify custom Docker image\ndigy docker --image python:3.12 https://github.com/pyfunc/digy.git\n```\n\n#### RAM-Based Execution\n```bash\n# Run with RAM disk for temporary files\ndigy ram https://github.com/pyfunc/digy.git --ram-size 2  # 2GB RAM\n```\n\n#### Getting Help\n```bash\n# Show help\ndigy --help\n\n# Show version\ndigy --version\n\n# Command-specific help\ndigy local --help\ndigy docker --help\ndigy ram --help\n```\n\n## 🔧 Known Limitations\n\n- Docker support requires the `docker` Python package and Docker daemon running\n- Private repository access requires proper SSH/Git credentials setup\n- Large repositories may require additional memory allocation\n- Windows support has limited testing\n- Some edge cases in error handling may need improvement\n\n## 🔄 Fallback Behavior\n\nDIGY implements a robust fallback mechanism for repository loading:\n\n1. **Primary Method**: Direct Git clone (requires Git)\n2. **Fallback 1**: HTTPS Git clone (if SSH fails)\n3. **Fallback 2**: Download repository as zip archive\n4. **Fallback 3**: Use local cache if available\n\nThis ensures maximum compatibility across different environments and network conditions.\n\n## 🐳 Docker Support (Optional)\n\nDIGY's Docker integration provides isolated execution environments with these benefits:\n\n- **Isolation**: Projects run in complete isolation\n- **Reproducibility**: Consistent environments across different systems\n- **Security**: No host system modifications\n- **Cleanup**: Automatic resource cleanup\n- **Performance**: RAM-based storage for temporary files\n\n### When to Use Docker\n\n- When you need complete environment isolation\n- For consistent testing across different systems\n- When working with system dependencies\n- For security-sensitive operations\n\n### Docker Prerequisites\n\n- Docker Engine installed and running\n- Python `docker` package (`pip install docker`)\n- Sufficient permissions to run Docker commands\n- Minimum 2GB of available RAM (4GB recommended)\n- At least 1GB of free disk space\n\n## ⚙️ Configuration\n\nDIGY can be configured through multiple methods (in order of precedence):\n\n1. **Command-line arguments** (highest priority)\n2. **Environment variables**\n3. **Configuration file** (`~/.config/digy/config.toml`)\n4. **Default values** (lowest priority)\n\n### Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `DIGY_RAM_SIZE` | `1` | RAM disk size in GB |\n| `DIGY_DOCKER_IMAGE` | `python:3.12-slim` | Default Docker image |\n| `DIGY_LOG_LEVEL` | `INFO` | Logging level (DEBUG, INFO, WARNING, ERROR) |\n| `DIGY_CACHE_DIR` | `~/.cache/digy` | Cache directory |\n| `DIGY_TIMEOUT` | `300` | Operation timeout in seconds |\n| `DIGY_AUTO_CLEANUP` | `true` | Automatically clean up temporary files |\n| `DIGY_GIT_BIN` | `git` | Path to Git executable |\n| `DIGY_PYTHON_BIN` | `python3` | Path to Python interpreter |\n\n### Configuration File Example\n\nCreate `~/.config/digy/config.toml`:\n\n```toml\n[core]\nram_size = 2\ntimeout = 600\nauto_cleanup = true\nlog_level = \"INFO\"\n\n[docker]\nimage = \"python:3.12-slim\"\nuse_sudo = false\n\n[git]\nbin = \"/usr/bin/git\"\ntimeout = 300\n\n[cache]\nenabled = true\nmax_size = \"1GB\"\npath = \"~/.cache/digy\"\n```\n\n## 🚀 Advanced Usage\n\n### Authentication\n\n#### GitHub Personal Access Token\n```bash\nexport GITHUB_TOKEN=\"your_github_token\"\ndigy local https://github.com/username/private-repo.git\n```\n\n#### SSH Authentication\n1. Ensure your SSH key is added to the SSH agent:\n   ```bash\n   eval \"$(ssh-agent -s)\"\n   ssh-add ~/.ssh/your_private_key\n   ```\n2. Use SSH URL:\n   ```bash\n   digy local git@github.com:username/private-repo.git\n   ```\n\n### Advanced Docker Usage\n\n#### Custom Docker Network\n```bash\ndigy docker --network host https://github.com/pyfunc/digy.git\n```\n\n#### Volume Mounts\n```bash\n# Read-only mount\ndigy docker --mount ./config:/app/config:ro https://github.com/pyfunc/digy.git\n\n# Read-write mount\ndigy docker --mount ./data:/app/data:rw https://github.com/pyfunc/digy.git\n```\n\n#### Environment Variables\n```bash\n# Set environment variables\ndigy docker -e DEBUG=1 -e API_KEY=secret https://github.com/pyfunc/digy.git\n\n# Load from .env file\ndigy docker --env-file .env https://github.com/pyfunc/digy.git\n```\n\n### Resource Management\n\n#### Memory Limits\n```bash\n# Set memory limit (Docker only)\ndigy docker --memory 4g https://github.com/pyfunc/digy.git\n\n# CPU limits\ndigy docker --cpus 2 https://github.com/pyfunc/digy.git\n```\n\n#### Cleanup\n```bash\n# Clean all temporary files\ndigy clean --all\n\n# Remove cached repositories\ndigy clean --cache\n\n# Remove Docker resources\ndigy clean --docker\n```\n\n## 🔍 Troubleshooting\n\n### Common Issues\n\n#### Git Authentication Failures\n```\nError: Failed to clone repository: Authentication failed\n```\n**Solution**:\n1. Verify your SSH key is added to the SSH agent\n2. For HTTPS, ensure you have a valid GitHub token\n3. Check repository access permissions\n\n#### Docker Permission Denied\n```\nGot permission denied while trying to connect to the Docker daemon\n```\n**Solution**:\n1. Add your user to the `docker` group:\n   ```bash\n   sudo usermod -aG docker $USER\n   newgrp docker\n   ```\n2. Or use `sudo` (not recommended for security reasons)\n\n#### Out of Memory\n```\nError: Container ran out of memory\n```\n**Solution**:\n1. Increase memory allocation:\n   ```bash\n   digy docker --memory 8g https://github.com/pyfunc/digy.git\n   ```\n2. Or reduce memory usage in your application\n\n### Debugging\n\nEnable debug logging:\n```bash\ndigy --log-level DEBUG local https://github.com/pyfunc/digy.git\n```\n\nView logs:\n```bash\n# System logs (Linux)\njournalctl -u docker.service\n\n# Application logs\ncat ~/.cache/digy/logs/digy.log\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### Development Setup\n\n1. Fork the repository\n2. Clone your fork:\n   ```bash\n   git clone https://github.com/your-username/digy.git\n   cd digy\n   ```\n3. Install development dependencies:\n   ```bash\n   poetry install --with dev\n   ```\n4. Run tests:\n   ```bash\n   pytest\n   ```\n\n5. Run linters:\n   ```bash\n   black .\n   flake8\n   mypy .\n   ```\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 📬 Contact\n\n- GitHub: [@pyfunc](https://github.com/pyfunc)\n- Twitter: [@yourhandle](https://twitter.com/yourhandle)\n- Email: your.email@example.com\n\n## 🙏 Acknowledgments\n\n- Thanks to all contributors who have helped make DIGY better\n- Inspired by tools like Docker, Git, and Jupyter\n- Built with ❤️ and Python\n\n## 📄 Examples\n\n### Basic Examples\n\n#### Hello World\n```python\n# hello_world.py\nprint(\"Hello, DIGY!\")\n```\n\n```bash\ndigy local hello_world.py\n```\n\n#### Environment Information\n```python\n# env_info.py\nimport platform\nimport sys\n\nprint(\"Python Version:\", sys.version)\nprint(\"Platform:\", platform.platform())\nprint(\"Current Directory:\", os.getcwd())\n```\n\n```bash\ndigy local env_info.py\n```\n\n### Data Processing\n\n```python\n# data_analysis.py\nimport pandas as pd\n\n# Load data\ndf = pd.read_csv('data.csv')\n\n# Process data\nsummary = df.describe()\nprint(summary)\n\n# Save results\nsummary.to_csv('results/summary.csv')\n```\n\n```bash\ndigy local data_analysis.py\n```\n\n### Web Scraping\n\n```python\n# scraper.py\nimport requests\nfrom bs4 import BeautifulSoup\n\ndef scrape(url):\n    response = requests.get(url)\n    soup = BeautifulSoup(response.text, 'html.parser')\n    return {\n        'title': soup.title.string,\n        'links': [a['href'] for a in soup.find_all('a', href=True)]\n    }\n\nif __name__ == '__main__':\n    result = scrape('https://example.com')\n    print(result)\n```\n\n```bash\npip install requests beautifulsoup4\ndigy local scraper.py\n```\n\n### Machine Learning\n\n```python\n# train.py\nfrom sklearn.datasets import load_iris\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.model_selection import train_test_split\nimport joblib\n\n# Load data\nX, y = load_iris(return_X_y=True)\nX_train, X_test, y_train, y_test = train_test_split(X, y)\n\n# Train model\nmodel = RandomForestClassifier()\nmodel.fit(X_train, y_train)\n\n# Evaluate\nscore = model.score(X_test, y_test)\nprint(f\"Accuracy: {score:.2f}\")\n\n# Save model\njoblib.dump(model, 'model.joblib')\n```\n\n```bash\npip install scikit-learn joblib\ndigy local train.py\n```\n\nFor more examples, see the [examples](examples/) directory.\n\n## 📦 Installation\n\n```bash\n# Install from PyPI\npip install digy\n\n# Or install from source\ngit clone https://github.com/pyfunc/digy\ncd digy\npip install -e .\n```\n\n### Dependencies\n\nDIGY requires:\n- Python 3.8+\n- Git\n- Docker (for container execution)\n- SSH (for remote execution)\n\nInstall development dependencies:\n```bash\npip install -e \".[dev]\"\n```\n\n## 🔄 Execution Environments\n\nDIGY supports multiple execution environments:\n\n### 1. Local Execution\n```bash\ndigy local github.com/pyfunc/digy\n```\n- Uses local Python environment\n- Creates virtual environment if needed\n- Supports file attachments\n\n### 2. Remote Execution\n```bash\ndigy remote user@host github.com/pyfunc/digy script.py\n```\n- Executes code on remote host via SSH\n- Supports authentication\n- Transfers necessary files automatically\n\n### 3. Docker Execution\n```bash\ndigy docker --image python:3.12 github.com/pyfunc/digy script.py\n```\n- Runs in isolated container\n- Customizable Docker images\n- Volume mounting support\n\n### 4. RAM Execution\n```bash\ndigy ram github.com/pyfunc/digy script.py\n```\n- Runs code directly in RAM for maximum performance\n- No disk I/O overhead\n- Ideal for high-performance computing\n\n### 5. JVM Execution\n```bash\ndigy jvm github.com/pyfunc/digy script.py\n```\n- Executes Python code on JVM using Jython\n- Java integration\n- Cross-platform compatibility\n\n## 🎯 Akronim DIGY\n\n**DIGY** = **Dynamic Interactive Git deploY**\n- **Dynamic** - Dynamiczne ładowanie repozytoriów\n- **Interactive** - Interaktywne menu z nawigacją strzałkami\n- **Git** - Integracja z repozytoriami Git\n- **deploY** - Deployment w izolowanych środowiskach\n\n## 🚀 Funkcjonalności\n\n- ⚡ **Szybkie ładowanie** - Pobieranie repozytoriów bezpośrednio do pamięci RAM (100MB bazowo)\n- 🔒 **Izolowane środowiska** - Automatyczne tworzenie virtual environment\n- 🎮 **Interaktywne menu** - Nawigacja strzałkami z pomocą\n- 📊 **Zarządzanie pamięcią** - Monitoring i kontrola użycia RAM\n- 🔍 **Inspekcja kodu** - Przeglądanie plików z podświetlaniem składni\n\n## 📝 API Reference\n\n### `digy(repo_url, branch='main')`\nGłówna funkcja ładująca repozytorium i uruchamiająca interaktywne menu.\n\n**Parametry:**\n- `repo_url` (str): URL repozytorium (github.com/pyfunc/digy lub pełny URL)\n- `branch` (str): Gałąź do pobrania (domyślnie 'main')\n\n**Zwraca:**\n- `str | None`: Ścieżka do lokalnego repozytorium lub None przy błędzie\n\n### Klasa `Deployer`\nZarządza deploymentem aplikacji w izolowanych środowiskach.\n\n### Klasa `InteractiveMenu`\nZapewnia interaktywne menu z nawigacją strzałkami.\n\n### Klasa `MemoryManager`\nZarządza alokacją pamięci dla załadowanych repozytoriów.\n\n## 🔍 Przykłady zaawansowane\n\n### Niestandardowa ścieżka\n```python\nfrom digy.loader import GitLoader\nfrom digy.deployer import Deployer\n\nloader = GitLoader(\"/custom/path\")\nlocal_path = loader.download_repo(\"github.com/pyfunc/digy\")\ndeployer = Deployer(local_path)\n```\n\n### Programowe uruchamianie\n```python\nfrom digy import digy\n\n# Uruchomienie z kodu Pythona\n# Lokalnie\nresult = digy.local('github.com/pyfunc/digy', 'script.py', ['arg1', 'arg2'])\n\n# W pamięci RAM\nresult = digy.ram('github.com/pyfunc/digy', 'script.py', ['arg1', 'arg2'])\n\n# W Dockerze\nresult = digy.docker('github.com/pyfunc/digy', 'script.py', ['arg1', 'arg2'])\n\n# Wynik zawiera (success, stdout, stderr)\nprint(f\"Sukces: {result[0]}\")\nprint(f\"Wyjście: {result[1]}\")\nif result[2]:\n    print(f\"Błędy: {result[2]}\")\n```\n\n## 🛠️ Rozwój\n\n### Wymagania deweloperskie\n- Python 3.8+\n- Poetry\n- Git\n\n### Instalacja deweloperska\n```bash\ngit clone https://github.com/pyfunc/digy\ncd digy\npoetry install\npoetry run pytest\n```\n\n### Struktura projektu\n```\ndigy/\n├── digy/\n│   ├── __init__.py      # Główny moduł\n│   ├── loader.py        # Ładowanie repozytoriów\n│   ├── deployer.py      # Deployment and execution\n│   ├── interactive.py   # Interactive menu\n│   ├── cli.py          # Command line interface\n│   ├── environment.py   # Environment management\n│   ├── auth.py         # Authentication providers\n│   └── version.py      # Version information\n├── tests/              # Tests\n├── examples/           # Usage examples\n│   ├── basic/          # Basic examples\n│   ├── env/            # Environment examples\n│   └── attachments/    # File attachment examples\n├── pyproject.toml      # Konfiguracja Poetry\n└── README.md          # Dokumentacja\n```\n\n## 📄 Licencja\n\nApache Software License - Zobacz plik LICENSE dla szczegółów.\n\n## 🤝 Wkład\n\nZapraszamy do współpracy! Prosimy o:\n1. Forkowanie repozytorium\n2. Tworzenie feature branch\n3. Commit zmian\n4. Push do branch\n5. Tworzenie Pull Request\n\n## 📞 Wsparcie\n\n- **Issues**: https://github.com/pyfunc/digy/issues\n- **Email**: info@softreck.dev\n- **Dokumentacja**: https://github.com/pyfunc/digy\n\n---\n\n**DIGY** - Twój interaktywny asystent do deploymentu aplikacji Python! 🚀","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyfunc%2Fdigy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyfunc%2Fdigy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyfunc%2Fdigy/lists"}