Skip to content

Commit

Permalink
Convierto la lectura de datasets de un portal CKAN en un iterador con…
Browse files Browse the repository at this point in the history
… un print para seguir el progreso respecto del total de datasets para leer. Es necesario cuando se está leyendo un portal CKAN lento o con muchos datasets.
  • Loading branch information
abenassi committed Mar 27, 2018
1 parent f662441 commit afc2856
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions pydatajson/ckan_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,21 @@ def read_ckan_catalog(portal_url):
groups_list = portal.call_action(
'group_list', requests_kwargs={"verify": False})

packages = [portal.call_action(
'package_show', {'name_or_id': pkg},
requests_kwargs={"verify": False})
for pkg in packages_list]

# itera leyendo todos los datasets del portal
packages = []
num_packages = len(packages_list)
for index, pkg in enumerate(packages_list):
# progreso (necesario cuando son muchos)
msg = "Leyendo dataset {} de {}".format(index + 1, num_packages)
print(msg, end="\r")

# agrega un nuevo dataset a la lista
packages.append(portal.call_action(
'package_show', {'name_or_id': pkg},
requests_kwargs={"verify": False}
))

# itera leyendo todos los temas del portal
groups = [portal.call_action(
'group_show', {'id': grp},
requests_kwargs={"verify": False})
Expand Down

0 comments on commit afc2856

Please sign in to comment.