Skip to main content

Modularny konwerter formatów pakietów Python

Project description

Spectomate

Spectomate to narzędzie do konwersji projektów między różnymi formatami zarządzania pakietami w Pythonie (pip, conda, poetry).

Kluczowe cechy Spectomate:

  1. Modułowa architektura - każdy konwerter jest oddzielnym modułem implementującym wspólny interfejs
  2. Wsparcie dla istniejących narzędzi - możliwość integracji z zewnętrznymi narzędziami konwersji
  3. Elastyczny system rozszerzeń - łatwe dodawanie nowych konwerterów bez modyfikacji kodu bazowego
  4. Kompleksowe wsparcie formatów:
    • pip (requirements.txt)
    • conda (environment.yml)
    • poetry (pyproject.toml)

Instalacja

# Instalacja podstawowa
pip install spectomate

Jak używać Spectomate:

Interfejs wiersza poleceń (CLI)

# Wyświetlenie dostępnych konwerterów
spectomate --list

# Konwersja z pip do conda
spectomate -s pip -t conda -i requirements.txt -o environment.yml --env-name myproject

# Konwersja z conda do pip
spectomate -s conda -t pip -i environment.yml -o requirements.txt

# Konwersja z pip do poetry
spectomate -s pip -t poetry -i requirements.txt -o pyproject.toml --project-name "mój-projekt" --version "0.1.0"

Użycie programistyczne

from spectomate.converters.pip_to_conda import PipToCondaConverter

# Konwersja z pip do conda
converter = PipToCondaConverter(
    source_file="requirements.txt",
    target_file="environment.yml",
    options={"env_name": "myproject"}
)
result_path = converter.execute()
print(f"Plik wyjściowy: {result_path}")

Struktura projektu

spectomate/
├── __init__.py
├── cli.py
├── core/
│   ├── __init__.py
│   ├── base_converter.py
│   ├── registry.py
│   └── utils.py
├── converters/
│   ├── __init__.py
│   ├── pip_to_conda.py
│   ├── pip_to_poetry.py
│   ├── conda_to_pip.py
│   └── ...
├── schemas/
│   ├── __init__.py
│   ├── pip_schema.py
│   ├── conda_schema.py
│   ├── poetry_schema.py
│   └── ...
└── tests/
    ├── __init__.py
    ├── test_pip_to_conda.py
    ├── test_conda_to_pip.py
    └── ...

Rozszerzalność

Spectomate pozwala na łatwe dodawanie nowych konwerterów przez:

  1. Utworzenie nowego modułu w katalogu converters/
  2. Implementację klasy dziedziczącej po BaseConverter
  3. Implementację metod read_source, convert i write_target
  4. Rejestrację konwertera w ConverterRegistry

Rozwój projektu

Wymagania dla deweloperów

# Klonowanie repozytorium
git clone https://github.com/spectomate/python.git
cd python

# Instalacja w trybie deweloperskim
pip install -e .

Aktualizacja wersji i publikacja

Projekt wykorzystuje skrypty w katalogu update/ do zarządzania wersjami i publikacji:

# Aktualizacja wersji i publikacja
bash update/version.sh

Skrypt wykonuje następujące operacje:

  1. Aktualizuje numer wersji w plikach źródłowych
  2. Generuje wpis w CHANGELOG.md
  3. Publikuje zmiany na GitHub
  4. Publikuje pakiet na PyPI

Więcej informacji na temat procesu publikacji znajduje się w update/README.md.

Licencja

Ten projekt jest udostępniany na licencji MIT. Szczegółowe informacje znajdują się w pliku LICENSE.

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

spectomate-0.1.4.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

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

spectomate-0.1.4-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file spectomate-0.1.4.tar.gz.

File metadata

  • Download URL: spectomate-0.1.4.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for spectomate-0.1.4.tar.gz
Algorithm Hash digest
SHA256 fccc52c39b089a1ad0b6cc6ba32b88a5d369295e062bea05726c4cb93bf5a5ca
MD5 73b616832f0ced5c7d247e9850ac48dd
BLAKE2b-256 039fe16282d99eb6382fe8724a3158c1307f508bf226b2b50158dd3b30971180

See more details on using hashes here.

File details

Details for the file spectomate-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: spectomate-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for spectomate-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 051621cb70e29731fdd2241b062727b31e36ade2d282c293cb5d618394963c4a
MD5 5cb0b7dfdc71ae8146837f84a3a02c59
BLAKE2b-256 b1bfe4a212e617664a679f984cb539852423acdd3c39ab83f9b7e5550c730757

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