# Runtime dependencies for the tracebloc_ingestor package.
#
# Dev / test / lint / release tooling lives in requirements-dev.txt so it is
# NOT pulled into `pip install tracebloc_ingestor` or baked into the signed
# Docker image. setup.py reads THIS file for install_requires (comment and
# -r/-c lines are filtered out there).

# Database
sqlalchemy>=2.0.0
mysql-connector-python>=8.0.0

# API and HTTP
requests
urllib3

# Retry mechanism
tenacity>=8.0.1

# Image processing (image validators / file transfer)
Pillow>=10.0.0

# CSV / JSON handling
pandas>=2.0.0
# numpy is imported DIRECTLY by csv_ingestor / data_validator (not only via
# pandas), so declare it explicitly instead of relying on it transitively.
numpy>=1.23

# Streaming JSON parser — JSONIngestor.read_data streams multi-GB JSON without
# materialising the whole file (backend/#772 P2).
ijson>=3.2.0

# YAML config + JSON Schema validation (declarative ingest.yaml flow)
PyYAML>=6.0
jsonschema>=4.0.0

# Structured logging
python-json-logger>=2.0.0

# The shared contract emitter (RFC-BACKEND-1872 D2), pinned exactly as the other
# Python services pin it. Safe to add to a PUBLIC package's runtime deps: it is
# published on PyPI and declares NO dependencies of its own — the OpenTelemetry
# SDK is an optional [otlp] extra we deliberately do not take, so without it the
# contract is still enforced and records go to the standard library logger, which
# is the only route out of a customer's cluster this Job has anyway.
tracebloc-telemetry==0.1.0

# Progress bar
tqdm>=4.65.0
