• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python interfaces.IInterface类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中zope.interface.interfaces.IInterface的典型用法代码示例。如果您正苦于以下问题:Python IInterface类的具体用法?Python IInterface怎么用?Python IInterface使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



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

示例1: manage_FTPget

 def manage_FTPget(self, REQUEST=None, RESPONSE=None):
     """Return the body of the content item in an FTP or WebDAV response.
     
     This adapts self to IRawReadFile(), which is then returned as an
     iterator. The adapter should provide IStreamIterator.
     """
     reader = IRawReadFile(self, None)
     if reader is None:
         return ''
     
     request = REQUEST is not None and REQUEST or self.REQUEST
     response = RESPONSE is not None and RESPONSE or request.response
     
     mimeType = reader.mimeType
     encoding = reader.encoding
     
     if mimeType is not None:
         if encoding is not None:
             response.setHeader('Content-Type', '%s; charset="%s"' % (mimeType, encoding,))
         else:
             response.setHeader('Content-Type', mimeType)
     
     size = reader.size()
     if size is not None:
         response.setHeader('Content-Length', str(size))
     
     # if the reader is an iterator that the publisher can handle, return
     # it as-is. Otherwise, read the full contents
     
     if ((IInterface.providedBy(IStreamIterator) and IStreamIterator.providedBy(reader))
      or (not IInterface.providedBy(IStreamIterator) and IStreamIterator.isImplementedBy(reader))
     ):
         return reader
     else:
         return reader.read()
开发者ID:chaoflow,项目名称:plone.dexterity,代码行数:35,代码来源:filerepresentation.py


示例2: _get_post_metric_name

 def _get_post_metric_name(self, iresource: IInterface) -> str:
     name = 'process.post'
     if iresource.isOrExtends(IProposalVersion):
         name = 'process.post.proposalversion'
     elif iresource.isOrExtends(IRateVersion):
         name = 'process.post.rateversion'
     return name
开发者ID:andantic,项目名称:adhocracy3,代码行数:7,代码来源:views.py


示例3: referential_integrity

def referential_integrity(event):
    if event.moving:
        return
    obj = event.object
    obj_oid = oid_of(obj, None)
    objectmap = find_objectmap(obj)
    if objectmap is None:
        return
    for reftype in objectmap.get_reftypes():

        is_iface = IInterface.providedBy(reftype)

        if is_iface and reftype.queryTaggedValue('source_integrity', False):
            targetids = objectmap.targetids(obj, reftype)
            if obj_oid in targetids:
                targetids.remove(obj_oid) # self-referential
            if targetids:
                # object is a source
                raise SourceIntegrityError(obj, reftype, targetids)

        if is_iface and reftype.queryTaggedValue('target_integrity', False):
            sourceids = objectmap.sourceids(obj, reftype)
            if obj_oid in sourceids:
                sourceids.remove(obj_oid) # self-referential
            if sourceids:
                # object is a target
                raise TargetIntegrityError(obj, reftype, sourceids)
开发者ID:reebalazs,项目名称:substanced,代码行数:27,代码来源:__init__.py


示例4: find_parents

def find_parents(context, findone=False, start_depth=2, **kwargs):
    typename = kwargs.get("typename", None)
    iface = kwargs.get("iface", None)
    if IInterface.providedBy(iface):
        iface = iface.__identifier__
    if findone and typename is None and iface is None:
        parent = getattr(context, "__parent__", None)
        if parent:
            return parent  # immediate parent of context
    result = []
    catalog = getToolByName(context, "portal_catalog")
    path = context.getPhysicalPath()
    subpaths = reversed([path[0:i] for i in range(len(path) + 1)][start_depth:])
    for subpath in subpaths:
        query = {"path": {"query": "/".join(subpath), "depth": 0}}
        if typename is not None:
            query["portal_type"] = typename
        if iface is not None:
            query["object_provides"] = iface
        brains = catalog.unrestrictedSearchResults(query)
        if not brains:
            continue
        else:
            item = brains[0]._unrestrictedGetObject()
            if aq_base(item) is aq_base(context):
                continue  # don't return or append the context itself!
            if findone:
                return item
            result.append(item)
    if findone:
        return None  # never found one
    return result
开发者ID:upiq,项目名称:collective.teamwork,代码行数:32,代码来源:__init__.py


示例5: resolve_isheet_field_from_dotted_string

    def resolve_isheet_field_from_dotted_string(self, dotted: str) -> tuple:
        """Resolve `dotted` string to isheet and field name and schema node.

        :dotted: isheet.__identifier__ and field_name separated by ':'
        :return: tuple with isheet (ISheet), field_name (str), field schema
                 node (colander.SchemaNode).
        :raise ValueError: If the string is not dotted or it cannot be
            resolved to isheet and field name.
        """
        if ':' not in dotted:
            raise ValueError(
                'Not a colon-separated dotted string: {}'.format(dotted))
        name = ''.join(dotted.split(':')[:-1])
        field = dotted.split(':')[-1]
        try:
            isheet = resolver.resolve(name)
        except ImportError:
            raise ValueError('No such sheet: {}'.format(name))
        if not (IInterface.providedBy(isheet) and isheet.isOrExtends(ISheet)):
            raise ValueError('Not a sheet: {}'.format(name))
        schema = self.sheets_meta[isheet].schema_class()
        node = schema.get(field, None)
        if not node:
            raise ValueError('No such field: {}'.format(dotted))
        return isheet, field, node
开发者ID:andantic,项目名称:adhocracy3,代码行数:25,代码来源:__init__.py


示例6: available

 def available(self):
     # We are available if we have sublevel menu or a screen.
     return (
         (len(self.submenu) != 0)
         or IUIScreen.implementedBy(self.screen)
         or (IInterface.providedBy(self.interface) and self.interface.extends(IUIScreen))
     )
开发者ID:silvacms,项目名称:silva.ui,代码行数:7,代码来源:menu.py


示例7: __init__

 def __init__(self, context, schema):
     if not IComposedQuery.providedBy(context):
         raise ValueError('context must provide IComposedQuery')
     if not IInterface.providedBy(schema):
         raise ValueError('schema provided must be interface')
     self.context = context
     self.schema = schema
开发者ID:upiq,项目名称:uu.formlibrary,代码行数:7,代码来源:filters.py


示例8: referential_integrity

def referential_integrity(event):
    if event.moving is not None: # being moved
        return

    objectmap = find_objectmap(event.object)

    if objectmap is None:
        return

    reftypes = list(objectmap.get_reftypes())

    for oid in event.removed_oids:

        for reftype in reftypes:

            is_iface = IInterface.providedBy(reftype)

            if is_iface and reftype.queryTaggedValue('source_integrity', False):
                targetids = objectmap.targetids(oid, reftype)
                if oid in targetids:
                    targetids.remove(oid) # self-referential
                if targetids:
                    # object is a source
                    obj = objectmap.object_for(oid)
                    raise SourceIntegrityError(obj, reftype, targetids)

            if is_iface and reftype.queryTaggedValue('target_integrity', False):
                sourceids = objectmap.sourceids(oid, reftype)
                if oid in sourceids:
                    sourceids.remove(oid) # self-referential
                if sourceids:
                    # object is a target
                    obj = objectmap.object_for(oid)
                    raise TargetIntegrityError(obj, reftype, sourceids)
开发者ID:dhavlik,项目名称:substanced,代码行数:34,代码来源:__init__.py


示例9: _validate

 def _validate(self, value):
     super(InterfaceField, self)._validate(value)
     if not IInterface.providedBy(value):
         raise NotAnInterface(
             value,
             self.__name__
         ).with_field_and_value(self, value)
开发者ID:marcosptf,项目名称:fedora,代码行数:7,代码来源:_field.py


示例10: __get__

 def __get__(self, inst, cls=None):
     global generated
     if inst is None:
         return getObjectSpecification(cls)
     spec = getattr(inst, '__provides__', None)
     if spec is None:
         spec = implementedBy(cls)
     signature = getattr(inst, 'signature', None)
     if signature is None:
         return spec
     if not ismd5hex(signature):
         if not isdottedname(signature):
             return spec
         # not an md5 signature, so perhaps we have a dotted name
         try:
             iface = resolve(signature)
             if not IInterface.providedBy(iface):
                 raise ValueError('Not interface: %s' % signature)
             return Implements(iface, spec)
         except ImportError:
             logger.warning('SignatureAwareDescriptor: '
                            'unabled to resolve interface '
                            '%s by dotted name.')
             return spec
     iface_name = 'I%s' % signature
     dynamic = [getattr(generated, iface_name)]
     dynamic.append(spec)
     spec = Implements(*dynamic)
     return spec
开发者ID:upiq,项目名称:uu.dynamicschema,代码行数:29,代码来源:schema.py


示例11: factory

 def factory(self, schema):
     if not IInterface.providedBy(schema):
         raise GrokImportError(
             "You can only pass an interface to the "
             "provides argument of %s." % self.name)
     return schema
     
开发者ID:mailcone,项目名称:raptus.mailcone.core,代码行数:6,代码来源:database.py


示例12: setup

    def setup(self, catalog, name, context, module_info):
        # If the user supplied attribute= when instantiating us, we
        # allow that value to override the attribute name under which we
        # are actually stored inside of the `grokcore.catalog.Indexes`
        # instance.
        if self._attribute is not None:
            field_name = self._attribute
        else:
            field_name = name

        if IInterface.providedBy(context):
            try:
                method = context[field_name]
            except KeyError:
                raise GrokError(
                    "grokcore.catalog.Indexes in %r refers to an attribute or "
                    "method %r on interface %r, but this does not "
                    "exist." % (module_info.getModule(),
                                field_name, context), None)
            call = IMethod.providedBy(method)
        else:
            call = callable(getattr(context, field_name, None))
            context = None  # no interface lookup
        catalog[name] = self.index_class(
            field_name=field_name,
            interface=context,
            field_callable=call,
            *self._args, **self._kw)
开发者ID:jean,项目名称:grokcore.catalog,代码行数:28,代码来源:index.py


示例13: resolve

def resolve(name):
    """Resolve the name.
    """
    obj = pythonResolve(name)
    if not IInterface.providedBy(obj):
        return obj.__provides__._implements
    return obj
开发者ID:silvacms,项目名称:silva.core.layout,代码行数:7,代码来源:customization.py


示例14: identifier

def identifier(obj):
    """Gives the Python identifier for the given object, so after we
    can do resolve on it to get it back.
    """
    if IInterface.providedBy(obj):
        return obj.__identifier__
    return obj.__name__
开发者ID:silvacms,项目名称:silva.core.layout,代码行数:7,代码来源:customization.py


示例15: forget

 def forget(self, schema):
     name = str(schema)
     if IInterface.providedBy(schema):
         name = identify_interface(schema)
     if name not in self._names:
         return
     self._names.remove(name)
开发者ID:upiq,项目名称:uu.retrieval,代码行数:7,代码来源:__init__.py


示例16: bind

 def bind(self, schema):
     if not IInterface.providedBy(schema):
         raise TypeError("Cannot bind non-interface object %s" % schema)
     name = identify_interface(schema)
     if name in self._names:
         raise KeyError("duplicate schema: Interface %s already managed." % (name,))
     self._names.append(name)
开发者ID:upiq,项目名称:uu.retrieval,代码行数:7,代码来源:__init__.py


示例17: __init__

    def __init__(self, schema=_NotGiven, **kw):
        """
        Object(schema=<Not Given>, *, validate_invariants=True, **kwargs)

        Create an `~.IObject` field. The keyword arguments are as for `~.Field`.

        .. versionchanged:: 4.6.0
           Add the keyword argument *validate_invariants*. When true (the default),
           the schema's ``validateInvariants`` method will be invoked to check
           the ``@invariant`` properties of the schema.
        .. versionchanged:: 4.6.0
           The *schema* argument can be ommitted in a subclass
           that specifies a ``schema`` attribute.
        """
        if schema is _NotGiven:
            schema = self.schema

        if not IInterface.providedBy(schema):
            # Note that we don't provide 'self' as the 'field'
            # by calling with_field_and_value(): We're not fully constructed,
            # we don't want this instance to escape.
            raise NotAnInterface(schema, self.__name__)

        self.schema = schema
        self.validate_invariants = kw.pop('validate_invariants', True)
        super(Object, self).__init__(**kw)
开发者ID:marcosptf,项目名称:fedora,代码行数:26,代码来源:_bootstrapfields.py


示例18: __init__

 def __init__(self, context, request):
     super(ModuleDetails, self).__init__(context, request)
     items = list(self.context.items())
     items.sort()
     self.text_files = []
     self.zcml_files = []
     self.modules = []
     self.interfaces = []
     self.classes = []
     self.functions = []
     for name, obj in items:
         entry = {'name': name, 'url': absoluteURL(obj, self.request)}
         if IFunctionDocumentation.providedBy(obj):
             entry['doc'] = formatDocString(
                 obj.getDocString(), self.context.getPath())
             entry['signature'] = obj.getSignature()
             self.functions.append(entry)
         elif IModuleDocumentation.providedBy(obj):
             entry['doc'] = formatDocString(
                 obj.getDocString(), obj.getPath(), True)
             self.modules.append(entry)
         elif IInterface.providedBy(obj):
             entry['path'] = getPythonPath(removeAllProxies(obj))
             entry['doc'] = formatDocString(
                 obj.__doc__, obj.__module__, True)
             self.interfaces.append(entry)
         elif IClassDocumentation.providedBy(obj):
             entry['doc'] = formatDocString(
                 obj.getDocString(), self.context.getPath(), True)
             self.classes.append(entry)
         elif IZCMLFile.providedBy(obj):
             self.zcml_files.append(entry)
         elif ITextFile.providedBy(obj):
             self.text_files.append(entry)
开发者ID:jean,项目名称:zope.app.apidoc,代码行数:34,代码来源:module.py


示例19: MultiChecker

def MultiChecker(specs):
    """Create a checker from a sequence of specifications

    A specification is:

    - A two-tuple with:

      o a sequence of names or an interface

      o a permission id

      All the names in the sequence of names or the interface are
      protected by the permission.

    - A dictionoid (having an items method), with items that are
      name/permission-id pairs.
    """
    data = {}

    for spec in specs:
        if type(spec) is tuple:
            names, permission_id = spec
            if IInterface.providedBy(names):
                names = names.names(all=True)
            for name in names:
                if data.get(name, permission_id) is not permission_id:
                    raise DuplicationError(name)
                data[name] = permission_id
        else:
            for name, permission_id in spec.items():
                if data.get(name, permission_id) is not permission_id:
                    raise DuplicationError(name)
                data[name] = permission_id

    return Checker(data)
开发者ID:jean,项目名称:zope.security,代码行数:35,代码来源:checker.py


示例20: register

    def register(template=template):
        if isinstance(template, basestring):
            helper = renderers.RendererHelper(name=template, package=config.package, registry=config.registry)
            template = helper.renderer.implementation()

        layout_intr.update(dict(name=name, filename=template.filename, context=context, callable=layout))
        introspectables.append(layout_intr)

        def derived_layout(context, request):
            wrapped = layout(context, request)
            wrapped.__layout__ = name
            wrapped.__template__ = template
            return wrapped

        r_context = context
        if r_context is None:
            r_context = Interface
        if not IInterface.providedBy(r_context):
            r_context = implementedBy(r_context)

        reg_layout = config.registry.adapters.lookup((r_context,), ILayout, name=name)
        if isinstance(reg_layout, _MultiLayout):
            reg_layout[containment] = derived_layout
            return
        elif containment:
            reg_layout = _MultiLayout(reg_layout)
            reg_layout[containment] = derived_layout
        else:
            reg_layout = derived_layout

        config.registry.registerAdapter(reg_layout, (context,), ILayout, name=name)
开发者ID:essentialed,项目名称:pyramid_layout,代码行数:31,代码来源:config.py



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python registry.Components类代码示例发布时间:2022-05-26
下一篇:
Python interface.InterfaceClass类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap