Projet

Général

Profil

Development #32535

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Dans #32403 on se met à vouloir extraire extraite plusieurs fichiers contenu dans une réponse JSON or les réponses de WS ne sont disponibles que via la donnée non structurée @workflow_data@ qui se retrouve dans les variables de substitution après un passage par @flattent_dict@ qui supprime toute structure, donc si on a un dico au format {filename:..,b64_content:} on ne peut pas l'exploiter directement (mais ce serait pareil pour d'autres structures genre {lat:.., lon:..} on est obligé de la reconstruire.

À mon avis l'aplatissement des données a perdu de son intérêt depuis qu'on fait du Django, on pourrait se permettre d'avoir les deux ensembles de clés en parallèle, via peu ou prou ce patch :

<pre>
--- a/wcs/formdata.py
+++ b/wcs/formdata.py
@@ -92,13 +92,14 @@ def get_dict_with_varnames(fields, data, formdata=None, varnames_only=False):
new_data['var_%s_%s_%s' % (field.varname, i, k)] = v
return new_data

+
def flatten_dict(d):
for k, v in d.items():
- if type(v) is dict:
+ if isinstance(v, dict):
flatten_dict(v)
for k2, v2 in v.items():
- d['%s_%s' % (k, k2)] = v2
- del d[k]
+ if not isinstance(v2, dict):
+ d['%s_%s' % (k, k2)] = v2


def get_json_dict(fields, data, include_files=True, anonymise=False):
</pre>

Retour