src.utils_flask_sqla.generic

Module Contents

Classes

GenericTable

Classe permettant de créer à la volée un mapping

GenericQuery

Classe permettant de manipuler des objets GenericTable

Functions

testDataType(value, sqlType, paramName)

Test the type of a filter

test_type_and_generate_query(param_name, value, model, q)

Generate a query with the filter given, checking the params is the good type of the columns, and formmatting it

serializeQuery(data, columnDef)

serializeQueryOneResult(row, column_def)

serializeQueryTest(data, column_def)

Attributes

SERIALIZERS

src.utils_flask_sqla.generic.testDataType(value, sqlType, paramName)[source]

Test the type of a filter #TODO: antipatern: should raise something which can be exect by the function which use it # and not return the error

src.utils_flask_sqla.generic.test_type_and_generate_query(param_name, value, model, q)[source]

Generate a query with the filter given, checking the params is the good type of the columns, and formmatting it Params:

  • param_name (str): the name of the column

  • value (any): the value of the filter

  • model (SQLA model)

  • q (SQLA Query)

src.utils_flask_sqla.generic.SERIALIZERS[source]
class src.utils_flask_sqla.generic.GenericTable(tableName, schemaName, engine)[source]
Classe permettant de créer à la volée un mapping

d’une vue avec la base de données par rétroingénierie

get_serialized_columns(serializers=SERIALIZERS)[source]

Return a tuple of serialize_columns, and db_cols from the generic table

as_dict(data, columns=[], fields=[])[source]
class src.utils_flask_sqla.generic.GenericQuery(DB, tableName, schemaName, filters=[], limit=100, offset=0)[source]

Classe permettant de manipuler des objets GenericTable

params:
  • DB: sqlalchemy instantce (DB if DB = Sqlalchemy())

  • tableName

  • schemaName

  • filters: array of filter of the query

  • enginesqlalchemy instance engine

    for exemple : DB.engine if DB = Sqlalchemy()

  • limit

  • offset

as_dict[source]
build_query_filters(query, parameters)[source]

Construction des filtres

build_query_filter(query, param_name, param_value)[source]
build_query_order(query, parameters)[source]
set_limit(q)[source]
raw_query(process_filter=True, with_limit=True)[source]

Renvoie la requete “brute” (sans .all) - process_filter: application des filtres (et du sort) - with_limit: application de la limite sur la query

query()[source]

Lance la requete et retourne l’objet sqlalchemy

return_query()[source]
Lance la requete (execute self.query())

et retourne les résutats dans un format standard

src.utils_flask_sqla.generic.serializeQuery(data, columnDef)[source]
src.utils_flask_sqla.generic.serializeQueryOneResult(row, column_def)[source]
src.utils_flask_sqla.generic.serializeQueryTest(data, column_def)[source]