utils-flask-sqlalchemy 0.3.3__tar.gz → 0.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {utils-flask-sqlalchemy-0.3.3/src/utils_flask_sqlalchemy.egg-info → utils-flask-sqlalchemy-0.3.4}/PKG-INFO +1 -1
- utils-flask-sqlalchemy-0.3.4/VERSION +1 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/generic.py +33 -19
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/serializers.py +1 -6
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4/src/utils_flask_sqlalchemy.egg-info}/PKG-INFO +1 -1
- utils-flask-sqlalchemy-0.3.3/VERSION +0 -1
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/LICENSE +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/MANIFEST.in +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/README.md +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/pyproject.toml +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/requirements.in +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/setup.cfg +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/setup.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/__init__.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/commands.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/errors.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/migrations/__init__.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/migrations/utils.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/migrations/versions/3842a6d800a0_sql_utils.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/migrations/versions/__init__.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/migrations/versions/ba207b468e31_create_fr_numeric_collation.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/response.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/schema.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/__init__.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/fixtures.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/plugin.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/test_schema.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/test_serializers.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/utils.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/utils.py +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqlalchemy.egg-info/SOURCES.txt +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqlalchemy.egg-info/dependency_links.txt +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqlalchemy.egg-info/entry_points.txt +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqlalchemy.egg-info/requires.txt +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqlalchemy.egg-info/top_level.txt +0 -0
- {utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/tox.ini +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.4
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/generic.py
RENAMED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
from itertools import chain
|
|
2
2
|
from warnings import warn
|
|
3
3
|
|
|
4
|
-
from
|
|
4
|
+
from dateutil import parser
|
|
5
5
|
from flask_sqlalchemy import SQLAlchemy
|
|
6
|
-
from
|
|
6
|
+
from sqlalchemy import MetaData
|
|
7
7
|
from sqlalchemy.dialects.postgresql import UUID
|
|
8
|
-
from sqlalchemy.types import
|
|
9
|
-
|
|
8
|
+
from sqlalchemy.types import Boolean, Date, DateTime, Integer, Numeric
|
|
9
|
+
|
|
10
|
+
from .errors import UtilsSqlaError
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
def testDataType(value, sqlType, paramName):
|
|
@@ -198,10 +199,12 @@ class GenericQuery:
|
|
|
198
199
|
if param_name.startswith("filter_d_"):
|
|
199
200
|
col = self.view.tableDef.columns[param_name[12:]]
|
|
200
201
|
col_type = col.type.__class__.__name__
|
|
201
|
-
test_type = testDataType(param_value, DateTime, col)
|
|
202
|
+
test_type = testDataType(param_value, DateTime, col) and testDataType(
|
|
203
|
+
param_value, Integer, col
|
|
204
|
+
)
|
|
202
205
|
if test_type:
|
|
203
206
|
raise UtilsSqlaError(message=test_type)
|
|
204
|
-
if col_type in ("Date", "DateTime", "TIMESTAMP"):
|
|
207
|
+
if col_type in ("Date", "DateTime", "TIMESTAMP", "INTEGER"):
|
|
205
208
|
if param_name.startswith("filter_d_up_"):
|
|
206
209
|
query = query.filter(col >= param_value)
|
|
207
210
|
if param_name.startswith("filter_d_lo_"):
|
|
@@ -225,7 +228,7 @@ class GenericQuery:
|
|
|
225
228
|
# Ordonnancement
|
|
226
229
|
# L'ordonnancement se base actuellement sur une seule colonne
|
|
227
230
|
# et prend la forme suivante : nom_colonne[:ASC|DESC]
|
|
228
|
-
if parameters.get("orderby",
|
|
231
|
+
if parameters.get("orderby", "").replace(" ", ""):
|
|
229
232
|
order_by = parameters.get("orderby")
|
|
230
233
|
col, *sort = order_by.split(":")
|
|
231
234
|
if col in self.view.tableDef.columns.keys():
|
|
@@ -235,26 +238,37 @@ class GenericQuery:
|
|
|
235
238
|
return query.order_by(ordel_col)
|
|
236
239
|
return query
|
|
237
240
|
|
|
238
|
-
def
|
|
241
|
+
def raw_query(self, process_filter=True):
|
|
239
242
|
"""
|
|
240
|
-
|
|
243
|
+
Renvoie la requete 'brute' (sans .all)
|
|
244
|
+
- process_filter: application des filtres (et du sort)
|
|
241
245
|
"""
|
|
246
|
+
|
|
242
247
|
q = self.DB.session.query(self.view.tableDef)
|
|
243
|
-
|
|
248
|
+
|
|
249
|
+
if not process_filter:
|
|
250
|
+
return q
|
|
244
251
|
|
|
245
252
|
if self.filters:
|
|
246
253
|
unordered_q = self.build_query_filters(q, self.filters)
|
|
247
254
|
q = self.build_query_order(unordered_q, self.filters)
|
|
248
|
-
nb_results = unordered_q.count()
|
|
249
|
-
else:
|
|
250
|
-
nb_results = q.count()
|
|
251
255
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
256
|
+
if self.limit != -1:
|
|
257
|
+
q.limit(self.limit).offset(self.offset * self.limit)
|
|
258
|
+
|
|
259
|
+
return q
|
|
260
|
+
|
|
261
|
+
def query(self):
|
|
262
|
+
"""
|
|
263
|
+
Lance la requete et retourne l'objet sqlalchemy
|
|
264
|
+
"""
|
|
265
|
+
q = self.raw_query(process_filter=False)
|
|
266
|
+
nb_result_without_filter = q.count()
|
|
267
|
+
|
|
268
|
+
q = self.raw_query()
|
|
269
|
+
nb_results = q.count() if self.filters else nb_result_without_filter
|
|
270
|
+
|
|
271
|
+
data = q.all()
|
|
258
272
|
|
|
259
273
|
return data, nb_result_without_filter, nb_results
|
|
260
274
|
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/serializers.py
RENAMED
|
@@ -408,12 +408,7 @@ def get_serializable_decorator(fields=[], exclude=[], stringify=True):
|
|
|
408
408
|
v_obj = []
|
|
409
409
|
|
|
410
410
|
for data in values:
|
|
411
|
-
id_value = data.
|
|
412
|
-
|
|
413
|
-
# si id_value est null
|
|
414
|
-
# creation -> on supprime id_value
|
|
415
|
-
if not id_value:
|
|
416
|
-
data.pop(id_field_name)
|
|
411
|
+
id_value = data.pop(id_field_name, None)
|
|
417
412
|
|
|
418
413
|
res = (
|
|
419
414
|
# si on a une id -> on recupère dans la liste preload_res_with_ids
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.3.3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/__init__.py
RENAMED
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/commands.py
RENAMED
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/response.py
RENAMED
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/schema.py
RENAMED
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/__init__.py
RENAMED
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/fixtures.py
RENAMED
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/plugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{utils-flask-sqlalchemy-0.3.3 → utils-flask-sqlalchemy-0.3.4}/src/utils_flask_sqla/tests/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|