__init__.py
93 lines
| 3.0 KiB
| text/x-python
|
PythonLexer
Gregory Szorc
|
r37193 | ############################################################################## | ||
# | ||||
# Copyright (c) 2001, 2002 Zope Foundation and Contributors. | ||||
# All Rights Reserved. | ||||
# | ||||
# This software is subject to the provisions of the Zope Public License, | ||||
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. | ||||
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED | ||||
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS | ||||
# FOR A PARTICULAR PURPOSE. | ||||
# | ||||
############################################################################## | ||||
"""Interfaces | ||||
This package implements the Python "scarecrow" proposal. | ||||
The package exports two objects, `Interface` and `Attribute` directly. It also | ||||
exports several helper methods. Interface is used to create an interface with | ||||
a class statement, as in: | ||||
class IMyInterface(Interface): | ||||
'''Interface documentation | ||||
''' | ||||
def meth(arg1, arg2): | ||||
'''Documentation for meth | ||||
''' | ||||
# Note that there is no self argument | ||||
To find out what you can do with interfaces, see the interface | ||||
interface, `IInterface` in the `interfaces` module. | ||||
The package has several public modules: | ||||
o `declarations` provides utilities to declare interfaces on objects. It | ||||
also provides a wide range of helpful utilities that aid in managing | ||||
declared interfaces. Most of its public names are however imported here. | ||||
o `document` has a utility for documenting an interface as structured text. | ||||
o `exceptions` has the interface-defined exceptions | ||||
o `interfaces` contains a list of all public interfaces for this package. | ||||
o `verify` has utilities for verifying implementations of interfaces. | ||||
See the module doc strings for more information. | ||||
""" | ||||
Gregory Szorc
|
r37195 | |||
from __future__ import absolute_import | ||||
Gregory Szorc
|
r37193 | __docformat__ = 'restructuredtext' | ||
Gregory Szorc
|
r37195 | from .interface import Interface | ||
from .interface import _wire | ||||
Gregory Szorc
|
r37193 | |||
# Need to actually get the interface elements to implement the right interfaces | ||||
_wire() | ||||
del _wire | ||||
Gregory Szorc
|
r37195 | from .declarations import Declaration | ||
from .declarations import alsoProvides | ||||
from .declarations import classImplements | ||||
from .declarations import classImplementsOnly | ||||
from .declarations import classProvides | ||||
from .declarations import directlyProvidedBy | ||||
from .declarations import directlyProvides | ||||
from .declarations import implementedBy | ||||
from .declarations import implementer | ||||
from .declarations import implementer_only | ||||
from .declarations import implements | ||||
from .declarations import implementsOnly | ||||
from .declarations import moduleProvides | ||||
from .declarations import named | ||||
from .declarations import noLongerProvides | ||||
from .declarations import providedBy | ||||
from .declarations import provider | ||||
from .exceptions import Invalid | ||||
from .interface import Attribute | ||||
from .interface import invariant | ||||
from .interface import taggedValue | ||||
Gregory Szorc
|
r37193 | |||
# The following are to make spec pickles cleaner | ||||
Gregory Szorc
|
r37195 | from .declarations import Provides | ||
Gregory Szorc
|
r37193 | |||
Gregory Szorc
|
r37195 | from .interfaces import IInterfaceDeclaration | ||
Gregory Szorc
|
r37193 | |||
moduleProvides(IInterfaceDeclaration) | ||||
__all__ = ('Interface', 'Attribute') + tuple(IInterfaceDeclaration) | ||||