Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
TheoLechemia committed Jan 27, 2021
2 parents d709c4b + 2bf5820 commit e162ee1
Show file tree
Hide file tree
Showing 5 changed files with 247 additions and 219 deletions.
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,23 @@ Elle est composée de trois outils principaux :
### Les serialisers

Le décorateur de classe ``@serializable`` permet la sérialisation JSON d'objets Python issus des classes SQLAlchemy. Il rajoute dynamiquement une méthode ``as_dict()`` aux classes qu'il décore. Cette méthode transforme l'objet de la classe en dictionnaire en transformant les types Python non compatibles avec le format JSON. Pour cela, elle se base sur les types des colonnes décrits dans le modèle SQLAlchemy.

Le décorateur ``@serializable`` peut être utilisé tel quel, ou être appelé avec les arguments suivants :

- ``exclude`` (iterable, default=()). Spécifie les colonnes qui doivent être exclues lors de la sérialisation. Par défaut, toutes les colonnes sont sérialisées.

La méthode contient les paramètre suivants :
La méthode ``as_dict()`` contient les paramètre suivants :

- ``recursif`` (boolean, default = False) : contrôle si la serialisation doit sérialiser les modèles enfants (relationships) de manière recursive
- ``columns`` (iterable, default=()). Spécifie les colonnes qui doivent être présentes dans le dictionnaire en sortie. Par défaut toutes les colonnes sont prises.
- ``columns`` (iterable, default=()). Spécifie les colonnes qui doivent être présentes dans le dictionnaire en sortie. Si non spécifié, le comportement par défaut du décorateur est adopté.
- ``relationships`` (iterable, default=()). Spécifie les relationnships qui doivent être présentes dans le dictionnaire en sortie. Par défaut toutes les relationships sont prises si ``recursif=True``.

### Les réponses

Le fichier contient des décorateurs de route Flask :

- Le décorateur ``@json_resp`` transforme l'objet retourné par la fonction en JSON.
- Le décorateur ``@json_resp`` transforme l'objet retourné par la fonction en JSON. Renvoie une 404 si la valeur retournée par la fonction est None ou un tableau vide
- Le décorateur ``@json_resp_accept_empty_list`` transforme l'objet retourné par la fonction en JSON. Renvoie une 404 si la valeur retournée par la fonction est None et 200 si c'est un tableau vide
- Le décorateur ``@csv_resp`` tranforme l'objet retourné par la fonction en fichier CSV. La fonction doit retourner un tuple de ce format ``(file_name, data, columns, separator)``

### Le mapping à la volée
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.2.dev0
0.1.3
11 changes: 11 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@
CHANGELOG
=========

0.1.3 (2021-01-27)
------------------

**🚀 Nouveautés**

* Ajout du paramètre `exclude` (list) sur le décorateur `serializable` pour exclure une colonne de la sérialisation

**🐛 Corrections**

* Les dépendances du fichier requirements.txt ne sont plus fixé à une version

0.1.2 (2020-10-17)
------------------

Expand Down
8 changes: 4 additions & 4 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
flask-sqlalchemy==2.3.2
flask==1.1.1
sqlalchemy==1.3.19
werkzeug==0.15.3
flask-sqlalchemy>=2.3.2
flask>=1.1.1
sqlalchemy>=1.3.19
werkzeug>=0.15.3
Loading

0 comments on commit e162ee1

Please sign in to comment.