Skip to main content

Modularny konwerter formatów pakietów Python

Project description

Spectomate

Spectomate is a tool for converting projects between different Python package management formats (pip, conda, poetry).

Key Features of Spectomate:

  1. Modular architecture - each converter is a separate module implementing a common interface
  2. Support for existing tools - ability to integrate with external conversion tools
  3. Flexible extension system - easy addition of new converters without modifying the base code
  4. Comprehensive format support:
    • pip (requirements.txt)
    • conda (environment.yml)
    • poetry (pyproject.toml)

Installation

# Basic installation
pip install spectomate

How to Use Spectomate:

Command Line Interface (CLI)

# Display available converters
spectomate --list

# Convert from pip to conda
spectomate -s pip -t conda -i requirements.txt -o environment.yml --env-name myproject

# Convert from conda to pip
spectomate -s conda -t pip -i environment.yml -o requirements.txt

# Convert from pip to poetry
spectomate -s pip -t poetry -i requirements.txt -o pyproject.toml --project-name "my-project" --version "0.1.0"

Programmatic Usage

from spectomate.converters.pip_to_conda import PipToCondaConverter

# Convert from pip to conda
converter = PipToCondaConverter(
    source_file="requirements.txt",
    target_file="environment.yml",
    options={"env_name": "myproject"}
)
result_path = converter.execute()
print(f"Output file: {result_path}")

Project Structure

spectomate/
├── __init__.py                  # Package initialization
├── cli.py                       # Command line interface
├── core/                        # Core components
│   ├── __init__.py
│   ├── base_converter.py        # Base class for converters
│   ├── registry.py              # Converter registration system
│   └── utils.py                 # Helper functions
├── converters/                  # Converter implementations
│   ├── __init__.py
│   ├── conda_to_pip.py          # Converter from conda to pip
│   ├── pip_to_conda.py          # Converter from pip to conda
│   ├── pip_to_poetry.py         # Converter from pip to poetry
│   └── ...
└── schemas/                     # Data schemas for formats
    ├── __init__.py
    ├── conda_schema.py          # Schema for conda format
    ├── pip_schema.py            # Schema for pip format
    ├── poetry_schema.py         # Schema for poetry format
    └── ...

Documentation

Detailed documentation is available in the docs/ directory:

  • Architecture - description of the system architecture
  • Converters - description of available converters and their implementation
  • Schemas - description of data schemas for different formats

Diagrams

Visual documentation in the form of Mermaid diagrams:

Note: Polish documentation is available in the docs/pl/ directory.

Extending Spectomate

Spectomate is designed as a modular system that can be easily extended with new formats and converters. To add a new converter:

  1. Create a new converter class inheriting from BaseConverter
  2. Implement the required abstract methods:
    • get_source_format() - returns the source format identifier
    • get_target_format() - returns the target format identifier
    • read_source() - reads the source file
    • convert() - converts the data
    • write_target() - writes the data to the target file
  3. Register the converter using the @register_converter decorator

Detailed information on creating custom converters can be found in the converters documentation.

License

This project is licensed under the MIT License. See the LICENSE file for details.

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.41.tar.gz (40.4 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.41-py3-none-any.whl (47.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: spectomate-0.1.41.tar.gz
  • Upload date:
  • Size: 40.4 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.41.tar.gz
Algorithm Hash digest
SHA256 7cfb1d932c0b3a2b8dfa37c4a10cade0a686b32566706e1636e87dd7ff08bbdc
MD5 2095012e3a8be3d28ce8f84fd9767a0e
BLAKE2b-256 5f6e44c72f0405962a066f4275c54787e5193e12a1b91bda97adbfe7f7a79320

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spectomate-0.1.41-py3-none-any.whl
  • Upload date:
  • Size: 47.4 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.41-py3-none-any.whl
Algorithm Hash digest
SHA256 611a5d639f1272670cb0c31f16dd8727ca3d3dc5168d142fe2c75b4abb26cbe8
MD5 91f45d024e4201142d82d6602da64e99
BLAKE2b-256 5ea3bfe4a6bbd38bfa6130a6c6d2ae77853eb0256d196ab8c77a4f5ad0d2b3a2

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