Skip to main content

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 load

# Załaduj repozytorium i uruchom interaktywne menu
load('github.com/pyfunc/free-on-pypi')

Wiersz poleceń

# Załaduj repozytorium
digy load github.com/pyfunc/free-on-pypi

# Z określoną gałęzią
digy load 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 load

# Załaduj repozytorium
load('github.com/pyfunc/free-on-pypi')

Po załadowaniu zobaczysz menu z opcjami uruchomienia:

  1. pypi.py from_file - Sprawdzenie nazw z pliku
  2. pypi.py generator - Generator kombinacji nazw
  3. github.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

load(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 load
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:

  1. Forkowanie repozytorium
  2. Tworzenie feature branch
  3. Commit zmian
  4. Push do branch
  5. Tworzenie Pull Request

📞 Wsparcie


DIGY - Twój interaktywny asystent do deploymentu aplikacji Python! 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

digy-0.1.1.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

digy-0.1.1-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file digy-0.1.1.tar.gz.

File metadata

  • Download URL: digy-0.1.1.tar.gz
  • Upload date:
  • Size: 17.6 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

Hashes for digy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d987d096200778292f3a765a2d6fa741c1fad93d55adcd5bd958d0f2e8d8fe6b
MD5 e6e6fbbe969ee5a053fad8be1e6da08d
BLAKE2b-256 ecf9aa1b453d8640477b73ba50e97a85fe1e79c4d25a516dd59aac56deb86851

See more details on using hashes here.

File details

Details for the file digy-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: digy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.9 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

Hashes for digy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f5068bc66ab098f5e556eeb9b8698baa793bcb9f486ee68f5a39a24dbf5e98e9
MD5 24af905052eb463c53e6481c21d3dcaf
BLAKE2b-256 b41cb592c08041ddf46bd24a6cac60ea955f64978b3ae8389f506f3a3e2c2f3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page