Dynamic Interactive Git deploY - Deploy Python applications from Git repositories in isolated environments with interactive menu
Project description
DIGY - Dynamic Interactive Git deploY
DIGY to narzędzie do deploymentu aplikacji Python z repozytoriów Git w izolowanych środowiskach z interaktywnym menu nawigacyjnym.
🎯 Akronim DIGY
DIGY = Dynamic Interactive Git deploY
- Dynamic - Dynamiczne ładowanie repozytoriów
- Interactive - Interaktywne menu z nawigacją strzałkami
- Git - Integracja z repozytoriami Git
- deploY - Deployment w izolowanych środowiskach
🚀 Funkcjonalności
- ⚡ Szybkie ładowanie - Pobieranie repozytoriów bezpośrednio do pamięci RAM (100MB bazowo)
- 🔒 Izolowane środowiska - Automatyczne tworzenie virtual environment
- 🎮 Interaktywne menu - Nawigacja strzałkami z pomocą
- 🐍 Uruchamianie kodu - Wykonywanie plików Python z wyświetlaniem wyników
- 📊 Zarządzanie pamięcią - Monitoring i kontrola użycia RAM
- 🔍 Inspekcja kodu - Przeglądanie plików z podświetlaniem składni
📦 Instalacja
# Instalacja z pip (gdy będzie dostępne)
pip install digy
# Lub instalacja z źródeł
git clone https://github.com/pyfunc/digy
cd digy
poetry install
🎯 Użycie
Podstawowe użycie
from digy import digy
# Załaduj repozytorium i uruchom interaktywne menu
digy('github.com/pyfunc/free-on-pypi')
Wiersz poleceń
# Proste uruchomienie (automatycznie wykrywa repo URL)
digy github.com/pyfunc/free-on-pypi
# Lub z komendą start
digy start github.com/pyfunc/free-on-pypi
# Z określoną gałęzią
digy start github.com/user/repo --branch develop
# Szybkie uruchomienie konkretnego pliku
digy run github.com/pyfunc/free-on-pypi pypi.py --args "from_file"
# Status i informacje
digy status
digy info
📋 Interaktywne Menu
Po załadowaniu repozytorium DIGY wyświetli interaktywne menu z opcjami:
📋 Show Repository Info - Informacje o repozytorium
📖 View README - Wyświetl plik README
🔧 Setup Environment - Skonfiguruj środowisko
📁 List Python Files - Lista plików Python
🚀 Run Python File - Uruchom plik Python
🔍 Inspect File - Zbadaj zawartość pliku
💻 Interactive Shell - Interaktywna powłoka Python
🧹 Cleanup & Exit - Wyczyść i wyjdź
Nawigacja
- ↑/↓ lub j/k - Poruszanie się po menu
- Enter - Wybór opcji
- 1-8 - Bezpośredni wybór numerem
- q - Wyjście
🔧 Przykład użycia z repozytorium free-on-pypi
from digy import digy
# Załaduj repozytorium
digy('github.com/pyfunc/free-on-pypi')
Po załadowaniu zobaczysz menu z opcjami uruchomienia:
pypi.py from_file- Sprawdzenie nazw z plikupypi.py generator- Generator kombinacji nazwgithub.py from_file- Sprawdzenie nazw na GitHub
Każde uruchomienie pokaże:
- Pełne wyjście konsoli
- Błędy (jeśli wystąpią)
- Pytanie o uruchomienie kolejnej komendy
🎮 Funkcje interaktywne
Uruchamianie plików Python
- Wybór pliku z listy
- Podanie argumentów
- Wyświetlenie pełnego wyjścia
- Monitoring czasu wykonania
Inspekcja kodu
- Podświetlanie składni
- Informacje o pliku (linie, rozmiar)
- Lista importów
- Wykrywanie bloku
if __name__ == "__main__"
Zarządzanie środowiskiem
- Automatyczne tworzenie virtual environment
- Instalacja requirements.txt
- Instalacja pakietu w trybie deweloperskim
- Monitoring pamięci RAM
🔧 Konfiguracja
Zmienne środowiskowe
export DIGY_MEMORY_BASE=100 # Bazowa alokacja pamięci w MB
export DIGY_TIMEOUT=300 # Timeout wykonania w sekundach
Programowa konfiguracja
from digy.loader import memory_manager
# Zmień bazową alokację pamięci
memory_manager.base_size_mb = 200
# Sprawdź dostępną pamięć
available = memory_manager.check_available_memory()
print(f"Dostępne: {available} MB")
📝 API Reference
digy(repo_url, branch='main')
Główna funkcja ładująca repozytorium i uruchamiająca interaktywne menu.
Parametry:
repo_url(str): URL repozytorium (github.com/user/repo lub pełny URL)branch(str): Gałąź do pobrania (domyślnie 'main')
Zwraca:
str | None: Ścieżka do lokalnego repozytorium lub None przy błędzie
Klasa Deployer
Zarządza deploymentem aplikacji w izolowanych środowiskach.
Klasa InteractiveMenu
Zapewnia interaktywne menu z nawigacją strzałkami.
Klasa MemoryManager
Zarządza alokacją pamięci dla załadowanych repozytoriów.
🔍 Przykłady zaawansowane
Niestandardowa ścieżka
from digy.loader import GitLoader
from digy.deployer import Deployer
loader = GitLoader("/custom/path")
local_path = loader.download_repo("github.com/user/repo")
deployer = Deployer(local_path)
Programowe uruchamianie
from digy import digy
from digy.deployer import Deployer
# Załaduj bez menu
deployer = Deployer("/path/to/repo")
deployer.setup_environment()
# Uruchom konkretny plik
success, stdout, stderr = deployer.run_python_file("script.py", ["arg1", "arg2"])
🛠️ Rozwój
Wymagania deweloperskie
- Python 3.8+
- Poetry
- Git
Instalacja deweloperska
git clone https://github.com/pyfunc/digy
cd digy
poetry install
poetry run pytest
Struktura projektu
digy/
├── digy/
│ ├── __init__.py # Główny moduł
│ ├── loader.py # Ładowanie repozytoriów
│ ├── deployer.py # Deployment i uruchamianie
│ ├── interactive.py # Interaktywne menu
│ ├── cli.py # Interface wiersza poleceń
│ └── version.py # Informacje o wersji
├── tests/ # Testy
├── pyproject.toml # Konfiguracja Poetry
└── README.md # Dokumentacja
📄 Licencja
Apache Software License - Zobacz plik LICENSE dla szczegółów.
🤝 Wkład
Zapraszamy do współpracy! Prosimy o:
- Forkowanie repozytorium
- Tworzenie feature branch
- Commit zmian
- Push do branch
- Tworzenie Pull Request
📞 Wsparcie
- Issues: https://github.com/pyfunc/digy/issues
- Email: info@softreck.dev
- Dokumentacja: https://github.com/pyfunc/digy
DIGY - Twój interaktywny asystent do deploymentu aplikacji Python! 🚀
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
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
File details
Details for the file digy-0.1.2.tar.gz.
File metadata
- Download URL: digy-0.1.2.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.11.12 Linux/6.14.11-300.fc42.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e386801bec93e2a1f734d1a9a408ef17b4056607333afbc7716b99ff787df5e2
|
|
| MD5 |
2c8d0b8eb0e32a05f92f9fc4036a6029
|
|
| BLAKE2b-256 |
dfbe7f1b24cd58ea406f12ce39163bfc75e62954cdc19673f3869dc728636be7
|
File details
Details for the file digy-0.1.2-py3-none-any.whl.
File metadata
- Download URL: digy-0.1.2-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.11.12 Linux/6.14.11-300.fc42.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e336e475a31e201ee86445a7cb5bf740e42f576c34b779cb684ffab96bf4a05
|
|
| MD5 |
cb5dc813e423401976b947885fcd9cd0
|
|
| BLAKE2b-256 |
ffef94db54563a470865eac4c88e3341f8425a71b008c544299daf11563f5a45
|