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


Python IBCCVLMetadata.setdefault方法代码示例

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


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

示例1: DatasetMetadataAdapter

# 需要导入模块: from org.bccvl.site.interfaces import IBCCVLMetadata [as 别名]
# 或者: from org.bccvl.site.interfaces.IBCCVLMetadata import setdefault [as 别名]
class DatasetMetadataAdapter(object):
    """
    Gives z3c.form datamanagers attribute access to the metadata object.

    This class takes care of properly updateing the underlying storage object.
    """

    # There is a datamanager problem.
    # The Datamanager is looked up for the context (which returns an AttributeField manager)
    # but then the Datamanager adapts the context to this adapter and tries attribute
    # access which fails.

    def __init__(self, context):
        self._data = IBCCVLMetadata(context)

    def __getattr__(self, name):
        ob = self._data
        try:
            if name in ('scientificName', 'taxonID', 'vernacularName'):
                return ob['species'][name]
            else:
                return ob[name]
        except:
            raise AttributeError('Attribute %s not found' % name)

    def __setattr__(self, name, value):
        if name == '_data':
            self.__dict__['_data'] = value
            # shortcut here to not store _data in metadata dictionary
            return
        if name in ('scientificName', 'taxonID', 'vernacularName'):
            # FIXME: need a new dict here?
            ob = self._data.setdefault('species', {})
        else:
            ob = self._data
        ob[name] = value

    def __delattr__(self, name):
        if name in ('scientificName', 'taxonID', 'vernacularName'):
            # FIXME: update dict?
            ob = self._data['species']
            del ob[name]
            if not ob:
                del self._data['species']
        else:
            del self._data[name]
开发者ID:sarahrichmond,项目名称:org.bccvl.site,代码行数:48,代码来源:dataset_base.py


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