Skip to content

Split backend/main.py into modules #13

@gordonmurray

Description

@gordonmurray

backend/main.py is ~600 lines and mixes request models, DuckDB orchestration, Iceberg conversion, and route handlers.

Proposed split:

  • models.py — Pydantic request/response models
  • duckdb_manager.pyDuckDBManager class
  • iceberg.py_convert_to_iceberg_query + _validate_iceberg_table helpers
  • routes.py — FastAPI route handlers
  • main.py — app factory + lifespan only

No behaviour change. Makes tests (#6) and future changes easier to review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    qualityCode quality, tests, CI, maintainability

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions