def quote_ident(name): """Encadre un identifiant SQL (nom de colonne) de guillemets doubles — forme standard SQL, supportée par SQLite, pour pouvoir utiliser un nom de colonne qui serait sinon un mot réservé (ex. un champ appelé "order" : sans ça, "CREATE TABLE ... (order INTEGER)" plantait avec "OperationalError: near \"order\": syntax error", et comme le crash survient APRÈS l'INSERT de la ligne _definitions mais AVANT le commit(), rien n'était jamais persisté — l'objet entier disparaissait silencieusement, pas seulement le champ en cause). Les noms de colonne viennent tous de slugify() (utilisateur), jamais les noms de TABLE (toujours préfixés "obj_" par table_name_for.py, donc jamais un mot réservé à eux seuls) — seules les colonnes ont besoin de ça. Double les guillemets internes (échappement standard SQL), au cas improbable où un nom en contiendrait déjà un.""" return '"' + str(name).replace('"', '""') + '"'