Metadata-Version: 2.4
Name: universal-converter
Version: 1.0.0
Summary: Convert anything to anything - comprehensive file format conversion library
Author-email: Prajwall Narayana <sprajwalln.cs21@rvce.edu.in>
License: MIT
Project-URL: Homepage, https://github.com/Developer1010x/universal-converter
Project-URL: Repository, https://github.com/Developer1010x/universal-converter
Project-URL: Issues, https://github.com/Developer1010x/universal-converter/issues
Keywords: converter,convert,format,transform,utility,file-conversion
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: core
Provides-Extra: images
Requires-Dist: pillow; extra == "images"
Requires-Dist: cairosvg; extra == "images"
Requires-Dist: pytesseract; extra == "images"
Provides-Extra: pdf
Requires-Dist: PyPDF2; extra == "pdf"
Requires-Dist: reportlab; extra == "pdf"
Requires-Dist: pdf2image; extra == "pdf"
Provides-Extra: word
Requires-Dist: python-docx; extra == "word"
Provides-Extra: spreadsheets
Requires-Dist: pandas; extra == "spreadsheets"
Requires-Dist: openpyxl; extra == "spreadsheets"
Requires-Dist: xlrd; extra == "spreadsheets"
Requires-Dist: pyarrow; extra == "spreadsheets"
Provides-Extra: presentations
Requires-Dist: python-pptx; extra == "presentations"
Provides-Extra: markup
Requires-Dist: markdown; extra == "markup"
Requires-Dist: weasyprint; extra == "markup"
Requires-Dist: beautifulsoup4; extra == "markup"
Requires-Dist: html2text; extra == "markup"
Provides-Extra: odt
Requires-Dist: odfpy; extra == "odt"
Provides-Extra: audio
Requires-Dist: pydub; extra == "audio"
Requires-Dist: SpeechRecognition; extra == "audio"
Requires-Dist: gtts; extra == "audio"
Requires-Dist: pyttsx3; extra == "audio"
Provides-Extra: video
Requires-Dist: moviepy; extra == "video"
Provides-Extra: archives
Requires-Dist: rarfile; extra == "archives"
Requires-Dist: pyzipper; extra == "archives"
Provides-Extra: web
Requires-Dist: requests; extra == "web"
Requires-Dist: xmltodict; extra == "web"
Provides-Extra: scientific
Requires-Dist: numpy; extra == "scientific"
Requires-Dist: scipy; extra == "scientific"
Requires-Dist: h5py; extra == "scientific"
Provides-Extra: security
Requires-Dist: qrcode; extra == "security"
Requires-Dist: pyzbar; extra == "security"
Requires-Dist: bcrypt; extra == "security"
Requires-Dist: argon2; extra == "security"
Requires-Dist: PyJWT; extra == "security"
Provides-Extra: ebooks
Requires-Dist: ebooklib; extra == "ebooks"
Provides-Extra: units
Requires-Dist: pint; extra == "units"
Requires-Dist: forex-python; extra == "units"
Provides-Extra: ai
Requires-Dist: sentence-transformers; extra == "ai"
Requires-Dist: tiktoken; extra == "ai"
Requires-Dist: openai-whisper; extra == "ai"
Provides-Extra: cloud
Requires-Dist: boto3; extra == "cloud"
Requires-Dist: google-cloud-storage; extra == "cloud"
Requires-Dist: azure-storage-blob; extra == "cloud"
Provides-Extra: blockchain
Requires-Dist: eth-account; extra == "blockchain"
Requires-Dist: web3; extra == "blockchain"
Provides-Extra: bioinformatics
Requires-Dist: biopython; extra == "bioinformatics"
Provides-Extra: cad
Requires-Dist: ezdxf; extra == "cad"
Requires-Dist: trimesh; extra == "cad"
Provides-Extra: gis
Requires-Dist: geopandas; extra == "gis"
Requires-Dist: shapely; extra == "gis"
Provides-Extra: fonts
Requires-Dist: fonttools; extra == "fonts"
Provides-Extra: networking
Requires-Dist: scapy; extra == "networking"
Provides-Extra: serialization
Requires-Dist: msgpack; extra == "serialization"
Requires-Dist: protobuf; extra == "serialization"
Provides-Extra: email
Requires-Dist: extract-msg; extra == "email"
Provides-Extra: all
Requires-Dist: pillow; extra == "all"
Requires-Dist: cairosvg; extra == "all"
Requires-Dist: pytesseract; extra == "all"
Requires-Dist: PyPDF2; extra == "all"
Requires-Dist: reportlab; extra == "all"
Requires-Dist: pdf2image; extra == "all"
Requires-Dist: python-docx; extra == "all"
Requires-Dist: pandas; extra == "all"
Requires-Dist: openpyxl; extra == "all"
Requires-Dist: xlrd; extra == "all"
Requires-Dist: pyarrow; extra == "all"
Requires-Dist: python-pptx; extra == "all"
Requires-Dist: markdown; extra == "all"
Requires-Dist: weasyprint; extra == "all"
Requires-Dist: beautifulsoup4; extra == "all"
Requires-Dist: html2text; extra == "all"
Requires-Dist: odfpy; extra == "all"
Requires-Dist: pydub; extra == "all"
Requires-Dist: SpeechRecognition; extra == "all"
Requires-Dist: gtts; extra == "all"
Requires-Dist: pyttsx3; extra == "all"
Requires-Dist: moviepy; extra == "all"
Requires-Dist: rarfile; extra == "all"
Requires-Dist: pyzipper; extra == "all"
Requires-Dist: requests; extra == "all"
Requires-Dist: xmltodict; extra == "all"
Requires-Dist: numpy; extra == "all"
Requires-Dist: scipy; extra == "all"
Requires-Dist: h5py; extra == "all"
Requires-Dist: qrcode; extra == "all"
Requires-Dist: pyzbar; extra == "all"
Requires-Dist: bcrypt; extra == "all"
Requires-Dist: argon2; extra == "all"
Requires-Dist: PyJWT; extra == "all"
Requires-Dist: ebooklib; extra == "all"
Requires-Dist: pint; extra == "all"
Requires-Dist: forex-python; extra == "all"
Requires-Dist: sentence-transformers; extra == "all"
Requires-Dist: tiktoken; extra == "all"
Requires-Dist: openai-whisper; extra == "all"
Requires-Dist: boto3; extra == "all"
Requires-Dist: google-cloud-storage; extra == "all"
Requires-Dist: azure-storage-blob; extra == "all"
Requires-Dist: eth-account; extra == "all"
Requires-Dist: web3; extra == "all"
Requires-Dist: biopython; extra == "all"
Requires-Dist: ezdxf; extra == "all"
Requires-Dist: trimesh; extra == "all"
Requires-Dist: geopandas; extra == "all"
Requires-Dist: shapely; extra == "all"
Requires-Dist: fonttools; extra == "all"
Requires-Dist: scapy; extra == "all"
Requires-Dist: msgpack; extra == "all"
Requires-Dist: protobuf; extra == "all"
Requires-Dist: extract-msg; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Dynamic: license-file

# Universal Converter

A comprehensive Python library for converting between file formats, data types, and domain-specific formats.

## Overview

Universal Converter provides a unified interface for hundreds of conversion operations across multiple domains:

- **Data formats**: JSON, CSV, XML, YAML, TOML, Parquet
- **Documents**: PDF, DOCX, Markdown, HTML, RTF
- **Media**: Images (PNG, JPG, WebP, TIFF), Audio (MP3, WAV, FLAC), Video (MP4, AVI, MKV)
- **Scientific**: Bioinformatics (FASTA, FASTQ, GenBank, VCF), GIS (GeoJSON, Shapefile, KML)
- **ML/AI**: PyTorch, ONNX, TensorFlow, Keras model formats
- **Infrastructure**: Terraform, Kubernetes manifests, cloud configs

## Installation

```bash
pip install universal-converter
```

Install with specific extras for additional features:

```bash
pip install universal-converter[images]    # Image processing
pip install universal-converter[audio]     # Audio conversion
pip install universal-converter[video]     # Video conversion
pip install universal-converter[ai]         # ML model conversion
pip install universal-converter[database]  # Database formats
pip install universal-converter[all]       # All features
```

## Architecture

The library follows a modular, plugin-based architecture:

```
universal_converter/
├── converters/          # Format-specific converters
│   ├── data.py         # JSON, CSV, XML, YAML
│   ├── images.py       # Image formats
│   ├── audio.py        # Audio formats
│   ├── video.py        # Video formats
│   ├── documents.py    # Document formats
│   ├── ai.py          # ML model formats
│   ├── cloud.py        # Cloud configs
│   ├── bioinformatics.py
│   ├── gis.py
│   ├── network.py
│   └── database.py
└── utils/
    └── platform.py     # System utilities
```

All converters inherit from `BaseConverter` and implement a consistent interface.

## Usage

### Python API

```python
from universal_converter import convert_file, resize_image

# Convert between data formats
convert_file('data.json', 'output.xml')

# Resize an image
resize_image('photo.png', 'thumb.png', width=200)

# Access specific converters directly
from universal_converter.converters import DataConverter, ImageConverter

converter = DataConverter()
result = converter.convert(task)
```

### Command Line

```bash
# Convert a file
python -m universal_converter input.json -t csv -o output.csv

# List supported formats
python -m universal_converter -l
```

## Supported Formats

| Category | Formats |
|----------|---------|
| Data | json, csv, xml, yaml, toml, parquet |
| Images | png, jpg, gif, bmp, tiff, webp |
| Audio | mp3, wav, flac, ogg, aac, m4a |
| Video | mp4, avi, mkv, mov, webm |
| Documents | pdf, docx, txt, html, md |
| ML Models | pt, h5, onnx, tflite, pkl |
| Bioinformatics | fasta, fastq, genbank, vcf, bed |
| GIS | shp, geojson, kml, gpx, tif |
| Database | sqlite, sql, xlsx |

## Design Principles

1. **Lazy loading**: Converters are loaded on-demand to minimize startup time
2. **Optional dependencies**: Heavy dependencies are optional; the core works without them
3. **Clear error messages**: Missing dependencies return actionable installation instructions
4. **Type hints**: Full type annotations for IDE support

## Requirements

- Python 3.9+
- Core dependencies installed automatically

## License

MIT

## Repository

https://github.com/Developer1010x/universal-converter
