Skip to content

Technical Stack

Dependencies

Runtime

Category Library Version Application
ORM / Database SQLAlchemy 2.0.20+ Object-Relational Mapping, multi-DB support
XML Parsing lxml 4.9.3+ XMI/XML parsing (in-house libraries)
Data Processing pandas 2.2.2+ CSV, Excel processing
Excel openpyxl 3.0.10+ Excel reading and writing
Templating Jinja2 3.1.2+ Template-based rendering
Linked Data rdflib 7.0.0+ RDF/OWL/TTL/JSON-LD
HTTP requests 2.32.3+ Remote URL parsing
Validation jsonschema 4.22+ JSON Schema validation
Translation translators 5.9.2+ Machine translation i18n
HTML beautifulsoup4 4.12.2+ HTML parsing
HTML→MD markdownify 1.2.2+ HTML-to-Markdown conversion
Strings inflection 0.5.1+ String inflection
URL Validation validators 0.28.0+ URL validation
Encoding chardet, charset-normalizer Encoding detection

Development

Category Library Version Application
Testing pytest 8.x Unit testing
Coverage pytest-cov 5.x Code coverage
Formatting black 24.x Code formatting (line length: 120)
Imports isort 5.x Import sorting (profile: black)
Type Checking mypy 1.11.x Static type checking
Linting flake8 7.x Code linting
Security bandit 1.7.x Security scanning
Build build 1.1.x Package building
Publish twine 5.x PyPI publishing

Planned Additions

Library Application
Alembic Database migrations
FastAPI REST API interface
Snowflake connector Cloud database
Azure SQL connector Cloud database
ijson Streaming JSON parsing
uvicorn ASGI server

Python Compatibility

crunch_uml supports Python 3.9 through 3.12.

Configuration

Code Quality

# pyproject.toml

[tool.black]
line-length = 120

[tool.isort]
profile = "black"
skip = ["cli.py"]

[tool.mypy]
# Type checking enabled

Logging

# Configuration in cli.py
FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
# Levels: DEBUG (-d), INFO (-v), WARNING (default)
# Output: stderr

Database

# Default in const.py
DATABASE_URL = "sqlite:///crunch_uml.db"
# Supports any SQLAlchemy-compatible connection string

Entry Points

[project.scripts]
crunch_uml = "crunch_uml.cli:main"

Distribution