Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERROR [ckan.views.api] 'NoneType' object is not iterable #28

Open
streino opened this issue Jun 20, 2023 · 1 comment
Open

ERROR [ckan.views.api] 'NoneType' object is not iterable #28

streino opened this issue Jun 20, 2023 · 1 comment

Comments

@streino
Copy link
Contributor

streino commented Jun 20, 2023

Une requête sur https://integration.data.e2.rie.gouv.fr/api/action/package_search contenant :

{
    "fq": "+dataset_type:harvest",
    "fl": "id,name",
    "start": 0,
    "rows": 10
}

Provoque un 500 avec le log suivant :

2023-06-20 15:19:44,132 ERROR [ckan.views.api] 'NoneType' object is not iterable
Traceback (most recent call last):
  File "/srv/app/src/ckan/ckan/config/middleware/../../views/api.py", line 293, in action
    result = function(context, request_data)
  File "/srv/app/src/ckan/ckan/logic/__init__.py", line 504, in wrapped
    result = _action(context, data_dict, **kw)
  File "/srv/app/src/ckan/ckan/logic/action/get.py", line 1961, in package_search
    search_results = item.after_search(search_results, data_dict)
  File "/srv/app/src/ckanext-ecospheres/ckanext/ecospheres/dcat/plugin.py", line 272, in after_search
    for resource in _dict_resources:
TypeError: 'NoneType' object is not iterable

Si on retire le paramètre fl, la requête passe.

@alhyss
Copy link
Contributor

alhyss commented Jun 21, 2023

D'une manière générale, ce que fait cette méthode ecospheres.dcat.plugin.DcatFrenchPlugin.after_search est douteux... Mais il suffit pour ne plus avoir de plantage de remplacer ça :

            _dict_resources = _dict.get('resources')

par ça (ou équivalent) :

            _dict_resources = _dict.get('resources', [])

https://github.com/ecolabdata/ckanext-ecospheres/blob/7895d43b00864f623aee6dda23637717258ee5ea/ckanext/ecospheres/dcat/plugin.py#LL391

Est-ce que c'est beaucoup plus long de faire cette correction-là et de la répercuter sur intégration ?

J'ai un peu envie de conserver fl - sous réserve qu'il fonctionne, ce qui nécessite sans doute de corriger sa syntaxe. Ça représente tout de même beaucoup de champs en moins sur beaucoup de jeux de données, non ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants