Ga naar inhoud

Technische Stack

Afhankelijkheden

Runtime

Categorie Bibliotheek Versie Toepassing
ORM / Database SQLAlchemy 2.0.20+ Object-Relational Mapping, multi-DB support
XML Parsing lxml 4.9.3+ XMI/XML parsing (in-huis bibliotheken)
Data Processing pandas 2.2.2+ CSV, Excel verwerking
Excel openpyxl 3.0.10+ Excel lezen en schrijven
Templating Jinja2 3.1.2+ Template-gebaseerde rendering
Linked Data rdflib 7.0.0+ RDF/OWL/TTL/JSON-LD
HTTP requests 2.32.3+ Remote URL parsing
Validatie jsonschema 4.22+ JSON Schema validatie
Vertaling translators 5.9.2+ Machine translation i18n
HTML beautifulsoup4 4.12.2+ HTML parsing
HTML→MD markdownify 1.2.2+ HTML-to-Markdown conversie
Strings inflection 0.5.1+ String inflection
URL Validatie validators 0.28.0+ URL validatie
Encoding chardet, charset-normalizer Encoding detectie

Development

Categorie Bibliotheek Versie Toepassing
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 (profiel: 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

Beoogde toevoegingen

Bibliotheek Toepassing
Alembic Database migraties
FastAPI REST API interface
Snowflake connector Cloud database
Azure SQL connector Cloud database
ijson Streaming JSON parsing
uvicorn ASGI server

Python Compatibiliteit

crunch_uml ondersteunt Python 3.9 t/m 3.12.

Configuratie

Code Quality

# pyproject.toml

[tool.black]
line-length = 120

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

[tool.mypy]
# Type checking enabled

Logging

# Configuratie 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"
# Ondersteunt elke SQLAlchemy-compatible connection string

Entry Points

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

Distributie