コード例 #1
0
def datapackage_show(context, data_dict):
    """
    Generate the data required for a datapackage for the specified package.
    """
    model = context['model']

    try:
        p.toolkit.check_access('package_show', context, data_dict)
        pkg = get_package_object(context, data_dict).as_dict()
    except logic.NotFound:
        p.toolkit.abort(404)

    datapackage = {
        'id': pkg['id'],
        'name': pkg['name'],
        'title': pkg['title'],
        'license': LICENSE_LOOKUP.get(pkg['license_id'], ''),
        'resources': [],
    }

    if pkg['notes']:
        datapackage['description'] = pkg['notes']

    try:
        package_zip = PackageZip.get_for_package(pkg['id'])
        datapackage['filepath'] = package_zip.filepath
    except Exception, ex:
        pass
コード例 #2
0
def datapackage_show(context, data_dict):
    """
    Generate the data required for a datapackage for the specified package.
    """
    model = context["model"]

    try:
        p.toolkit.check_access("package_show", context, data_dict)
        pkg = get_package_object(context, data_dict).as_dict()
    except logic.NotFound:
        p.toolkit.abort(404)

    datapackage = {
        "id": pkg["id"],
        "name": pkg["name"],
        "title": pkg["title"],
        "license": LICENSE_LOOKUP.get(pkg["license_id"], ""),
        "resources": [],
    }

    if pkg["notes"]:
        datapackage["description"] = pkg["notes"]

    try:
        package_zip = PackageZip.get_for_package(pkg["id"])
        datapackage["filepath"] = package_zip.filepath
    except Exception, ex:
        pass
コード例 #3
0
def has_packagezip(pkg):
    return PackageZip.get_for_package(pkg.id) != None
コード例 #4
0
def packagezip_has_data(pkg):
    pz = PackageZip.get_for_package(pkg.id)
    if pz:
        return pz.has_data
コード例 #5
0
def packagezip_size(pkg):
    pz = PackageZip.get_for_package(pkg.id)
    if pz:
        return pz.size
コード例 #6
0
ファイル: tasks.py プロジェクト: datagovuk/ckanext-packagezip
                      template.render(datapackage=datapackage,
                                      date=datetime.datetime.now()).encode('utf8'))

        # Strip out unnecessary data from datapackage
        for res in datapackage['resources']:
            del res['has_data']
            if 'cache_filepath' in res:
                del res['cache_filepath']
            if 'reason' in res:
                del res['reason']
            if 'detected_format' in res:
                del res['detected_format']

        zipf.writestr('datapackage.json', json.dumps(datapackage, indent=4))

    statinfo = os.stat(filepath)
    filesize = statinfo.st_size

    package_zip = PackageZip.get_for_package(package_id)
    if not package_zip:
        PackageZip.create(package_id, filepath, filesize, has_data=any_have_data)
        log.info('Package zip created: %s', filepath)
    else:
        package_zip.filepath = filepath
        package_zip.updated = datetime.datetime.now()
        package_zip.size = filesize
        package_zip.has_data = any_have_data
        log.info('Package zip updated: %s', filepath)

        model.Session.add(package_zip)
        model.Session.commit()