def packages(self): try: c.packages = ckan.openspending_packages() except ckan.CkanApiError as e: log.error(e) return render('load/_packages.html')
def command(self): super(ImportReportCommand, self).command() self._check_args_length(0) print("-- Finding OpenSpending packages on CKAN...", file=sys.stderr) packages = [ p for p in ckan.openspending_packages() ] packages = filter(lambda x: x.is_importable(), packages) kwargs = { 'build_indices': False, 'max_lines': 30, 'max_errors': 1 } def first_error(package): importer = CKANImporter(package) try: importer.run(**kwargs) # If we reach the next line, no errors have been thrown, as # max_errors is set to 1. return "No errors" except ImporterError as e: return e import_errors = {} for p in packages: print("-- Starting import of '%s'" % p.name, file=sys.stderr) import_errors[p.name] = str(first_error(p)) print("-- Results:", file=sys.stderr) for name, err in import_errors.iteritems(): indented_err = "\n".join(" " +l for l in err.split("\n")) print("%s:\n%s" % (name, indented_err), file=sys.stderr)