[Zope3-dev] Mail delivery failed: returning message to sender

Mail Delivery System Mailer-Daemon at python.org
Thu Apr 8 07:04:11 EDT 2004


This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  rdmurray+keyword+z3wiki2.24c5b9 at twirl.bitdance.com
    SMTP error from remote mailer after RCPT TO:<rdmurray+keyword+z3wiki2.24c5b9 at twirl.bitdance.com>:
    host twirl.bitdance.com [208.210.83.50]: 550 <rdmurray+keyword+z3wiki2.24c5b9 at twirl.bitdance.com>:
    User unknown in local recipient table

------ This is a copy of the message, including all the headers. ------

Return-path: <zope3-dev at zope.org>
Received: from cache1.zope.org ([12.155.117.38])
	by mail.python.org with esmtp (Exim 4.22)
	id 1BBXJm-0001B7-8a; Thu, 08 Apr 2004 07:03:34 -0400
From: zope3-dev at zope.org (srichter)
Reply-To: zope3-dev at zope.org
To: ;
Subject: [InterfaceStyle] updated
Message-ID: <20040408070333EST at dev.zope.org>
X-BeenThere: zope3-dev at zope.org
X-Zwiki-Version: 0.21.1
Precedence: bulk
List-Id:  <zope3-dev at zope.org>
List-Post: <mailto:zope3-dev at zope.org>
List-Subscribe: <http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/InterfaceStyle/subscribeform>
List-Unsubscribe: <http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/InterfaceStyle/subscribeform>
List-Archive: <http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/InterfaceStyle>
List-Help: <http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture>
Date: Thu, 08 Apr 2004 07:03:33 -0400
X-Spam-Status: OK (default 0.000)

??changed:
-1. There should be one interface per file and the file should have the same
-   name as the interface.
-
-2. The interface name should always start with an "I", for example 
-   "ITranslationService".
-
-3. One function of interfaces is to document functionality, so be very 
-   verbose with the documentation strings.
-
-4. You should use always the Interface "class" somewhere in your inheritance 
-   tree.
-
-
-Example::
-
-  from Interface import Interface
-
-  class IDublinCoreTitle(Interface):
-       """This interface will provide a title handler for common 
-[7 more lines...]
  Status: IsDraft

  1. All public interfaces should go into a file called 'interfaces.py'. 
     By "public" I mean interfaces that you expect to be implemented more
     than once. Interfaces that are likely to be implemented only once,
     like 'IGlobalAdapterService', should live in the same module as their
     implementation.

  2. The interface name should always start with an "I", for example 
     "ITranslationDomain".

  3. One function of interfaces is to document functionality, so be very 
     verbose with the documentation strings.

  4. You should use always the Interface "class" somewhere in your inheritance 
     tree.


  Example::

    from Interface import Interface

    class IDublinCoreTitle(Interface):
         """This interface will provide a title handler for common 
            content objects.
         """

         def getTitle():
             """Get the title from the object."""
 
         def setTitle(title):
             """Set the title of the object."""

??changed: -1. When subclassing a class that declares it implements
one or more Interfaces, - be explicit about the Interfaces you are
inheriting. That is, - either list the interfaces in you class
definition, or explicitly - inherit the parent's Interfaces by doing::
- - __implements__ = superclassname.__implements__ 1. Declare an
interface as being implemented by a class or module by using
'zope.interface.implements'::

       from zope.interface import Interface, implements

       class IFoo(Interface):
            pass

       class Foo(object):
            implements(IFoo)

  2. To declare that an object provides an interface directly, use 
     'zope.interface.directlyProvides'::

       from zope.interface import Interface, directlyProvides

       class IFoo(Interface):
            pass

       class Foo(object):
            pass

	foo = Foo()
        directlyProvides(foo, IFoo)

      But be careful, 'direclyProvides()' can only be used once and does not 
      accumulate provided interfaces.   
--
forwarded from http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/InterfaceStyle



More information about the Zope3-dev mailing list