• refactor: A28 lot 3 — collections.py (2 622 L) → package 13 fichiers (v7.31.0)
    FlowDeck CI / docker (push) Successful in 1m54s
    FlowDeck CI / lint (push) Successful in 1m55s
    FlowDeck CI / test (push) Successful in 15m28s

    bruno released this 2026-10-02 08:16:03 -04:00

    Découpe par concern de l'ancien app/routers/collections.py (2 622 lignes,
    53 endpoints / 52 fonctions) en package app/routers/collections/ :

    • 10 modules de routes : crud 337 L (6 r.), properties 322 (8),
      linked 286 (7), structure 267 (8), dashboard_views 214 (3),
      meta 197 (5), views 187 (6), pages 184 (4), data_api 122 (2),
      boards 61 (3)
    • _common.py (220 L) : 8 helpers auth/permissions/validation
    • _renderers.py (667 L) : 15 rendus HTML des vues + CHART_MAX_GROUPS
    • __init__.py : ré-exports connus (_validate_page_properties pour
      automations ; _chart_values/_chart_aggregate/_fmt_number/_render_chart
      pour les tests) + all

    Preuve contractuelle : docs/openapi-v2.json régénéré = IDENTIQUE
    byte-à-byte (509 chemins, ordre préservé).

    Pièges rattrapés :

    • docstring d'origine conservée dans le header copié → F404
      (from future après un statement) → slice [1:30]
    • décorateurs empilés (view_collection ×2) : segment sans def →
      skip du 2e décorateur (53 endpoints = 52 unités)
    • CHART_MAX_GROUPS hors détection des helpers (F821) → import ._renderers
    • test_csp_no_cdn_and_vendor lisait collections.py → balayage du package

    Reste A28 : board.py 2 101 L (lot 4).

    suite 1091/1091 · ruff OK · OpenAPI 509 identique · docs à jour

    Downloads