paula: removed empty dirs
[paula.git] / paula.properties / trunk / src / paula / properties / interfaces.py
blobd94d2c971b2cc988b737470726fa37bb0a90dd44
1 # Copyright (c) 2008 by Florian Friesdorf
3 # GNU Affero General Public License (AGPL)
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License as
7 # published by the Free Software Foundation; either version 3 of the
8 # License, or (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU Affero General Public License for more details.
15 # You should have received a copy of the GNU Affero General Public
16 # License along with this program. If not, see
17 # <http://www.gnu.org/licenses/>.
18 """
19 """
20 __author__ = "Florian Friesdorf <flo@chaoflow.net>"
21 __docformat__ = "plaintext"
23 from zope.interface import Interface
24 from zope.interface.interfaces import IInterface
25 from zope.schema import TextLine
28 class IPropertyInterface(IInterface):
29 """Interfaces providing this interface are recognizes as interfaces defining
30 properties.
31 """
33 class IPropertyProvider(Interface):
34 """A property provider provides certain interfaces that provide
35 IPropertyInterface, and makes property values available through attribute
36 access. Other interfaces that might be provided also are ignored.
38 For each attribute a value needs to be retrievable (at least None),
39 otherwise an AttributeError will be raised.
41 The principal will carry copies of the properties as attributes and provide
42 the same IPropertyInterface-providing interfaces.
43 """
44 id = TextLine(
45 title=u"Id",
46 description=u"The principal id this provider works for",
49 class IPropertyProviders(Interface):
50 """A utility that returns property providers for principals
51 """
52 def __getitem__(id):
53 """returns list of IPropertyProvider for principal id
54 """