예제 #1
0
    def packages(self):
        try:
            c.packages = ckan.openspending_packages()
        except ckan.CkanApiError as e:
            log.error(e)

        return render('load/_packages.html')
예제 #2
0
    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)