Spectomate jest zbudowany na modułowej architekturze, która umożliwia łatwe rozszerzanie i dodawanie nowych konwerterów między różnymi formatami zarządzania pakietami w Pythonie.
BaseConverterWszystkie konwertery dziedziczą po klasie bazowej BaseConverter, która definiuje wspólny interfejs i podstawową funkcjonalność:
read_source() - odczytuje plik źródłowy i konwertuje go na wewnętrzny format danychconvert() - konwertuje dane z formatu źródłowego na format docelowywrite_target() - zapisuje dane w formacie docelowym do plikuexecute() - wykonuje pełny proces konwersji (odczyt, konwersja, zapis)get_source_format() - zwraca identyfikator formatu źródłowegoget_target_format() - zwraca identyfikator formatu docelowegoKażdy format ma swój schemat danych, który definiuje strukturę danych i metody do pracy z danym formatem:
PipSchema - schemat dla formatu pip (requirements.txt)CondaSchema - schemat dla formatu conda (environment.yml)PoetrySchema - schemat dla formatu poetry (pyproject.toml)Konwertery implementują logikę konwersji między różnymi formatami:
CondaToPipConverter - konwersja z formatu conda do formatu pipPipToCondaConverter - konwersja z formatu pip do formatu condaPipToPoetryConverter - konwersja z formatu pip do formatu poetrySystem rejestracji konwerterów umożliwia dynamiczne odkrywanie i używanie dostępnych konwerterów:
register_converter - dekorator do rejestracji konwerteraget_converter - funkcja do pobierania konwertera na podstawie formatów źródłowego i docelowegolist_converters - funkcja do listowania wszystkich dostępnych konwerterówAby dodać nowy konwerter:
BaseConverterread_source(), convert(), write_target(), get_source_format() i get_target_format()@register_converterAby dodać nowy format: