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:
- Modułowa architektura - każdy konwerter jest oddzielnym modułem implementującym wspólny interfejs
- Wsparcie dla istniejących narzędzi - możliwość integracji z zewnętrznymi narzędziami konwersji
- Elastyczny system rozszerzeń - łatwe dodawanie nowych konwerterów bez modyfikacji kodu bazowego
- 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:
- Utworzenie nowego modułu w katalogu
converters/ - Implementację klasy dziedziczącej po
BaseConverter - Implementację metod
read_source,convertiwrite_target - 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:
- Aktualizuje numer wersji w plikach źródłowych
- Generuje wpis w CHANGELOG.md
- Publikuje zmiany na GitHub
- 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fccc52c39b089a1ad0b6cc6ba32b88a5d369295e062bea05726c4cb93bf5a5ca
|
|
| MD5 |
73b616832f0ced5c7d247e9850ac48dd
|
|
| BLAKE2b-256 |
039fe16282d99eb6382fe8724a3158c1307f508bf226b2b50158dd3b30971180
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
051621cb70e29731fdd2241b062727b31e36ade2d282c293cb5d618394963c4a
|
|
| MD5 |
5cb0b7dfdc71ae8146837f84a3a02c59
|
|
| BLAKE2b-256 |
b1bfe4a212e617664a679f984cb539852423acdd3c39ab83f9b7e5550c730757
|