From a213519dc2fefc9b393d034a1a4a69541bf59095 Mon Sep 17 00:00:00 2001 From: jacquesfize Date: Mon, 17 Aug 2026 10:13:31 +0200 Subject: [PATCH] chore: sqla2: parse models to new syntax --- src/pypn_habref_api/models.py | 140 +++++++++++++++++----------------- 1 file changed, 72 insertions(+), 68 deletions(-) diff --git a/src/pypn_habref_api/models.py b/src/pypn_habref_api/models.py index 7553a63..165ca10 100644 --- a/src/pypn_habref_api/models.py +++ b/src/pypn_habref_api/models.py @@ -1,5 +1,8 @@ # coding: utf8 -from sqlalchemy import ForeignKey +from typing import Optional + +from sqlalchemy import Boolean, Column, ForeignKey, Integer, Table, Unicode +from sqlalchemy.orm import Mapped, mapped_column from utils_flask_sqla.serializers import serializable from pypn_habref_api.env import db as DB @@ -9,31 +12,31 @@ class BibHabrefTypoRel(DB.Model): __tablename__ = "bib_habref_typo_rel" __table_args__ = {"schema": "ref_habitats"} - cd_type_rel = DB.Column(DB.Integer, primary_key=True) - lb_type_rel = DB.Column(DB.Unicode) - lb_rel = DB.Column(DB.Unicode) - corresp_hab = DB.Column(DB.Boolean) - corresp_esp = DB.Column(DB.Boolean) - corresp_syn = DB.Column(DB.Boolean) + cd_type_rel: Mapped[int] = mapped_column(Integer, primary_key=True) + lb_type_rel: Mapped[Optional[str]] = mapped_column(Unicode) + lb_rel: Mapped[Optional[str]] = mapped_column(Unicode) + corresp_hab: Mapped[Optional[bool]] = mapped_column(Boolean) + corresp_esp: Mapped[Optional[bool]] = mapped_column(Boolean) + corresp_syn: Mapped[Optional[bool]] = mapped_column(Boolean) @serializable class CorespHab(DB.Model): __tablename__ = "habref_corresp_hab" __table_args__ = {"schema": "ref_habitats"} - cd_corresp_hab = DB.Column(DB.Integer, primary_key=True) - cd_hab_entre = DB.Column(DB.Integer, ForeignKey("ref_habitats.habref.cd_hab")) - cd_hab_sortie = DB.Column(DB.Integer) - cd_type_relation = DB.Column( - DB.Integer, ForeignKey("ref_habitats.bib_habref_typo_rel.cd_type_rel") + cd_corresp_hab: Mapped[int] = mapped_column(Integer, primary_key=True) + cd_hab_entre: Mapped[int] = mapped_column(Integer, ForeignKey("ref_habitats.habref.cd_hab")) + cd_hab_sortie: Mapped[Optional[int]] = mapped_column(Integer) + cd_type_relation: Mapped[Optional[int]] = mapped_column( + Integer, ForeignKey("ref_habitats.bib_habref_typo_rel.cd_type_rel") ) - lb_condition = DB.Column(DB.Unicode) - lb_remarques = DB.Column(DB.Unicode) - validite = DB.Column(DB.Boolean) - cd_typo_entre = DB.Column(DB.Integer) - cd_typo_sortie = DB.Column(DB.Integer) - date_crea = DB.Column(DB.Integer) - diffusion = DB.Column(DB.Boolean) + lb_condition: Mapped[Optional[str]] = mapped_column(Unicode) + lb_remarques: Mapped[Optional[str]] = mapped_column(Unicode) + validite: Mapped[Optional[bool]] = mapped_column(Boolean) + cd_typo_entre: Mapped[Optional[int]] = mapped_column(Integer) + cd_typo_sortie: Mapped[Optional[int]] = mapped_column(Integer) + date_crea: Mapped[Optional[int]] = mapped_column(Integer) + diffusion: Mapped[Optional[bool]] = mapped_column(Boolean) type_rel = DB.relationship("BibHabrefTypoRel", lazy="select") @@ -42,39 +45,40 @@ class CorespHab(DB.Model): class TypoRef(DB.Model): __tablename__ = "typoref" __table_args__ = {"schema": "ref_habitats"} - cd_typo = DB.Column(DB.Integer, primary_key=True) - cd_table = DB.Column(DB.Unicode) - lb_nom_typo = DB.Column(DB.Unicode) - nom_jeu_donnees = DB.Column(DB.Unicode) - date_creation = DB.Column(DB.Unicode) - date_mise_jour_table = DB.Column(DB.Unicode) - date_mise_jour_metadonnees = DB.Column(DB.Unicode) - auteur_typo = DB.Column(DB.Unicode) - auteur_table = DB.Column(DB.Unicode) - territoire = DB.Column(DB.Unicode) - organisme = DB.Column(DB.Unicode) - langue = DB.Column(DB.Unicode) - presentation = DB.Column(DB.Unicode) - description = DB.Column(DB.Unicode) - origine = DB.Column(DB.Unicode) - ref_biblio = DB.Column(DB.Unicode) - mots_cles = DB.Column(DB.Unicode) - referencement = DB.Column(DB.Unicode) - diffusion = DB.Column(DB.Unicode) - derniere_modif = DB.Column(DB.Unicode) - type_table = DB.Column(DB.Unicode) - cd_typo_entre = DB.Column(DB.Integer) - cd_typo_sortie = DB.Column(DB.Integer) - niveau_inpn = DB.Column(DB.Integer) + cd_typo: Mapped[int] = mapped_column(Integer, primary_key=True) + cd_table: Mapped[Optional[str]] = mapped_column(Unicode) + lb_nom_typo: Mapped[Optional[str]] = mapped_column(Unicode) + nom_jeu_donnees: Mapped[Optional[str]] = mapped_column(Unicode) + date_creation: Mapped[Optional[str]] = mapped_column(Unicode) + date_mise_jour_table: Mapped[Optional[str]] = mapped_column(Unicode) + date_mise_jour_metadonnees: Mapped[Optional[str]] = mapped_column(Unicode) + auteur_typo: Mapped[Optional[str]] = mapped_column(Unicode) + auteur_table: Mapped[Optional[str]] = mapped_column(Unicode) + territoire: Mapped[Optional[str]] = mapped_column(Unicode) + organisme: Mapped[Optional[str]] = mapped_column(Unicode) + langue: Mapped[Optional[str]] = mapped_column(Unicode) + presentation: Mapped[Optional[str]] = mapped_column(Unicode) + description: Mapped[Optional[str]] = mapped_column(Unicode) + origine: Mapped[Optional[str]] = mapped_column(Unicode) + ref_biblio: Mapped[Optional[str]] = mapped_column(Unicode) + mots_cles: Mapped[Optional[str]] = mapped_column(Unicode) + referencement: Mapped[Optional[str]] = mapped_column(Unicode) + diffusion: Mapped[Optional[str]] = mapped_column(Unicode) + derniere_modif: Mapped[Optional[str]] = mapped_column(Unicode) + type_table: Mapped[Optional[str]] = mapped_column(Unicode) + cd_typo_entre: Mapped[Optional[int]] = mapped_column(Integer) + cd_typo_sortie: Mapped[Optional[int]] = mapped_column(Integer) + niveau_inpn: Mapped[Optional[int]] = mapped_column(Integer) habitats = DB.relationship("Habref", back_populates="typo") -cor_list_habitat = DB.Table( +cor_list_habitat = Table( "cor_list_habitat", - DB.Column("id_cor_list", DB.Integer, primary_key=True), - DB.Column("id_list", DB.Integer, ForeignKey("ref_habitats.bib_list_habitat.id_list")), - DB.Column("cd_hab", DB.Integer, ForeignKey("ref_habitats.habref.cd_hab")), + DB.metadata, + Column("id_cor_list", Integer, primary_key=True), + Column("id_list", Integer, ForeignKey("ref_habitats.bib_list_habitat.id_list")), + Column("cd_hab", Integer, ForeignKey("ref_habitats.habref.cd_hab")), schema="ref_habitats", ) @@ -83,20 +87,20 @@ class TypoRef(DB.Model): class Habref(DB.Model): __tablename__ = "habref" __table_args__ = {"schema": "ref_habitats"} - cd_hab = DB.Column(DB.Integer, primary_key=True) - fg_validite = DB.Column(DB.Unicode) - cd_typo = DB.Column(DB.Integer, ForeignKey("ref_habitats.typoref.cd_typo")) - lb_code = DB.Column(DB.Unicode) - lb_hab_fr = DB.Column(DB.Unicode) - lb_hab_fr_complet = DB.Column(DB.Unicode) - lb_hab_en = DB.Column(DB.Unicode) - lb_auteur = DB.Column(DB.Unicode) - niveau = DB.Column(DB.Integer) - lb_niveau = DB.Column(DB.Unicode) - cd_hab_sup = DB.Column(DB.Integer) - path_cd_hab = DB.Column(DB.Unicode) - france = DB.Column(DB.Unicode) - lb_description = DB.Column(DB.Unicode) + cd_hab: Mapped[int] = mapped_column(Integer, primary_key=True) + fg_validite: Mapped[str] = mapped_column(Unicode) + cd_typo: Mapped[int] = mapped_column(Integer, ForeignKey("ref_habitats.typoref.cd_typo")) + lb_code: Mapped[Optional[str]] = mapped_column(Unicode) + lb_hab_fr: Mapped[Optional[str]] = mapped_column(Unicode) + lb_hab_fr_complet: Mapped[Optional[str]] = mapped_column(Unicode) + lb_hab_en: Mapped[Optional[str]] = mapped_column(Unicode) + lb_auteur: Mapped[Optional[str]] = mapped_column(Unicode) + niveau: Mapped[Optional[int]] = mapped_column(Integer) + lb_niveau: Mapped[Optional[str]] = mapped_column(Unicode) + cd_hab_sup: Mapped[Optional[int]] = mapped_column(Integer) + path_cd_hab: Mapped[Optional[str]] = mapped_column(Unicode) + france: Mapped[Optional[str]] = mapped_column(Unicode) + lb_description: Mapped[Optional[str]] = mapped_column(Unicode) typo = DB.relationship("TypoRef", lazy="joined", back_populates="habitats") correspondances = DB.relationship("CorespHab", lazy="select") @@ -109,8 +113,8 @@ class Habref(DB.Model): class BibListHabitat(DB.Model): __tablename__ = "bib_list_habitat" __table_args__ = {"schema": "ref_habitats"} - id_list = DB.Column(DB.Integer, primary_key=True) - list_name = DB.Column(DB.Unicode) + id_list: Mapped[int] = mapped_column(Integer, primary_key=True) + list_name: Mapped[str] = mapped_column(Unicode) habitats = DB.relationship("Habref", secondary=cor_list_habitat, back_populates="lists") @@ -118,11 +122,11 @@ class BibListHabitat(DB.Model): class AutoCompleteHabitat(DB.Model): __tablename__ = "autocomplete_habitat" __table_args__ = {"schema": "ref_habitats"} - cd_hab = DB.Column(DB.Integer, primary_key=True) - cd_typo = DB.Column(DB.Integer) - lb_code = DB.Column(DB.Unicode) - lb_nom_typo = DB.Column(DB.Unicode) - search_name = DB.Column(DB.Unicode) + cd_hab: Mapped[int] = mapped_column(Integer, primary_key=True) + cd_typo: Mapped[int] = mapped_column(Integer) + lb_code: Mapped[Optional[str]] = mapped_column(Unicode) + lb_nom_typo: Mapped[str] = mapped_column(Unicode) + search_name: Mapped[str] = mapped_column(Unicode) lists = DB.relationship( BibListHabitat, primaryjoin=(cor_list_habitat.c.cd_hab == cd_hab),