# What `pip install besser` installs (setup.cfg reads this file). Keep it to what
# the modeling library and its generators import; optional parts are extras in
# setup.cfg, and the web editor backend has its own requirements file.
packaging>=24.2
jinja2>=3.1.2
antlr4-python3-runtime>=4.13.1
requests>=2.31.0
pydantic>=2.6.3
SQLAlchemy>=2.0.29
# The Docker Compose generator writes YAML; the BAF generator reads it.
PyYAML>=6.0
# Upper bound deliberate: httpx 0.28 removed the `app=` shortcut that
# starlette's TestClient passes through, so an unbounded install breaks
# every test written the legacy way with a TypeError at collection.
httpx>=0.27.0,<0.28
# RDF graph handling for the Knowledge Graph metamodel and its OWL/TTL
# importers, which are part of the library surface (besser.BUML.metamodel.kg).
# pyshacl, which only the KG consistency check needs, is the optional
# ``besser[kg]`` extra (setup.cfg) and a backend requirement.
rdflib>=7.0.0
