Exemple #1
0
 def process(self, *av, **kw):
     ckan = CkanClient(*av, **kw)
     for dataset, descr in self:
         _, pkgname = dataset.rsplit("/", 1)
         pkg = ckan.package_entity_get(pkgname)
         self.__unmerge__(pkg, self.removals.get(dataset, {}))
         self.__merge__(pkg, descr)
         groups = pkg.get("groups", [])
         self.__fixup__(pkg)
         ckan.package_entity_put(pkg)
         self.log_api_result(pkgname, ckan)
         for groupname in groups:
             group = ckan.group_entity_get(groupname)
             pkglist = group.setdefault("packages", [])
             if pkgname not in pkglist:
                 pkglist.append(pkgname)
             ckan.group_entity_put(group)
             self.log_api_result(groupname, ckan)
     self.flush()