当前位置: 首页>>代码示例>>Python>>正文


Python Status.record方法代码示例

本文整理汇总了Python中status.Status.record方法的典型用法代码示例。如果您正苦于以下问题:Python Status.record方法的具体用法?Python Status.record怎么用?Python Status.record使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在status.Status的用法示例。


在下文中一共展示了Status.record方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: sort_out_tags

# 需要导入模块: from status import Status [as 别名]
# 或者: from status.Status import record [as 别名]
def sort_out_tags(source_ckan_uri,
                  dest_ckan_uri, dest_api_key,
                  ):
    ckan1 = ckanclient.CkanClient(base_location=source_ckan_uri)
    ckan2 = ckanclient.CkanClient(base_location=dest_ckan_uri,
                                  api_key=dest_api_key)

    # ensure group exists
    group = 'country-ca'
    assert group in set(ckan2.group_register_get())
    group_to_change = 'canadagov'

    # work out tag mappings
    tag_status = Status('tag mapping')
    tag_replace_map = {}
    source_tags = ckan1.tag_register_get()
    for tag in source_tags:
        mangled_tag = re.sub('[-._]', '', tag)
        replacement_tag = tag
        # Change underscores to hyphens
        replacement_tag = replacement_tag.replace('_', '-')
        # Remove trailing punctuation
        if replacement_tag[-1] in '_-.':
            replacement_tag = replacement_tag[:-1]
        if replacement_tag[0] in '_-.':
            replacement_tag = replacement_tag[1:]
        if mangled_tag == replacement_tag:
            tag_status.record('Unchanged', mangled_tag, do_print=False)
            continue
        if mangled_tag in tag_replace_map and tag_replace_map[mangled_tag] != replacement_tag:
            print 'Warning - can\'t differentiate %s : %s / %s' % \
                  (mangled_tag, tag_replace_map[mangled_tag], replacement_tag)
        tag_status.record('Mapping added', '%s:%s' % (mangled_tag, replacement_tag), do_print=False)
        tag_replace_map[mangled_tag] = replacement_tag
    example_map = tag_replace_map.items()[0]
    print tag_status

    # Custom mappings
    tag_replace_map['metaimportedfromcackannet'] = 'meta.imported-from-ca-ckan-net'

    # edit packages
    pkg_status = Status('Packages')
    pkgs = ckan2.group_entity_get(group)['packages']
    print 'Packages in the group: %i' % len(pkgs)
    for pkg_name in pkgs:
        pkg = ckan2.package_entity_get(pkg_name)
        original_pkg = copy.deepcopy(pkg)

        # Change tags
        edited_tags = [tag_replace_map.get(tag, tag) for tag in pkg['tags']]
        if 'canada' in edited_tags:
            edited_tags.remove('canada')

        if group_to_change in pkg['groups']:
            pkg['groups'].remove(group_to_change)
            edited_tags.append('canada-gov')

        if set(pkg['tags']) != set(edited_tags):
            pkg['tags'] = edited_tags
            print '%s: %r -> %r' % (pkg_name, sorted(original_pkg['tags']), sorted(edited_tags))

        if pkg == original_pkg:
            pkg_status.record('Unchanged', pkg_name)
            continue

        try:
            ckan2.package_entity_put(pkg)
        except ckanclient.CkanApiError, e:
            pkg_status.record('Error: %r' % e.args, pkg_name)
            continue
        
        pkg_status.record('Successfully changed', pkg_name)
开发者ID:1sha1,项目名称:ckan,代码行数:74,代码来源:canada.py


注:本文中的status.Status.record方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。