Пример #1
0
def _refresh_packages():
    setup_orgs = app.config.get("SETUP_ORGS", [])
    counter = app.config.get("SETUP_PKG_COUNTER", None)

    for package in packages_from_iati_registry(REGISTRY_URL):
        package_name = package["name"]
        if len(setup_orgs) and ('-' in package_name):
            org, country = package_name.split('-', 1)
            if org not in setup_orgs:
                continue
        registry = ckanclient.CkanClient(base_location=CKANurl)
        pkg = registry.package_entity_get(package_name)

        #FIXME: could remove the next 5 lines and just
        # fix refresh_package()

        if pkg.get('organization') and pkg['organization'].get('name'):
            packagegroup_name = pkg['organization']['name']
        else:
            packagegroup_name = None
        packages_groups = {pkg['name']: packagegroup_name}

        refresh_package(pkg, packages_groups)
        if counter is not None:
            counter -= 1
            if counter <= 0:
                break
Пример #2
0
def matching_packages(regexp):
    import re
    import itertools
    r = re.compile(regexp)

    pkgs = packages_from_iati_registry(REGISTRY_URL)
    pkgs = itertools.ifilter(lambda i: r.match(i["name"]), pkgs)
    for package in pkgs:
        yield package["name"]
Пример #3
0
def check_deleted_packages():
    offset = 0
    # all packages on IATI currently
    registry_packages = [x['id'] for x in packages_from_iati_registry(REGISTRY_URL)]
    # all packages in the database currently
    db_packages = models.Package.query.all()
    count_deleted = 0
    for pkg in db_packages:
        # Need to do both in case a package is deleted and then resurrected
        if pkg.package_ckan_id in registry_packages:
            _set_deleted_package(pkg, False)
        else:
            print "Should delete package", pkg.package_name
            if _set_deleted_package(pkg, True):
                count_deleted += 1
    return count_deleted
Пример #4
0
def _refresh_packages():
    setup_orgs = app.config.get("SETUP_ORGS", [])
    counter = app.config.get("SETUP_PKG_COUNTER", None)

    for package in packages_from_iati_registry(REGISTRY_URL):
        package_name = package["name"]
        if len(setup_orgs) and ('-' in package_name):
            org, country = package_name.split('-', 1)
            if org not in setup_orgs:
                continue
        registry = ckanclient.CkanClient(base_location=CKANurl)
        pkg = registry.package_entity_get(package_name)
        refresh_package(pkg)
        if counter is not None:
            counter -= 1
            if counter <= 0:
                break