summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTres Seaver <tseaver@palladion.com>2009-05-13 20:52:19 +0000
committerTres Seaver <tseaver@palladion.com>2009-05-13 20:52:19 +0000
commite4606fb77ec39f75f64954b22cdfdf90800a9387 (patch)
tree0cb953ea06c842aaa8f9cbd5dcc83f5ef68f2715 /src
parent97e30537a10ac446da0f44776a5eccd3d7d105d2 (diff)
downloadzope-browser-e4606fb77ec39f75f64954b22cdfdf90800a9387.tar.gz
Move ``IView`` and ``IBrowserView`` interfaces here from
``zope.publisher.interfaces`` to break undesirable dependencies.
Diffstat (limited to 'src')
-rw-r--r--src/zope/browser/README.txt59
-rw-r--r--src/zope/browser/interfaces.py29
2 files changed, 65 insertions, 23 deletions
diff --git a/src/zope/browser/README.txt b/src/zope/browser/README.txt
index 4db3d51..d6ae4d2 100644
--- a/src/zope/browser/README.txt
+++ b/src/zope/browser/README.txt
@@ -1,23 +1,54 @@
-======
-README
-======
+IView
+-----
-This package provides shared browser components for Zope 3.
+Views adapt both a context and a request.
+There is not much we can test except that ``IView`` is importable
+and an interface:
+
+.. doctest::
+
+ >>> from zope.interface import Interface
+ >>> from zope.browser.interfaces import IView
+ >>> Interface.providedBy(IView)
+ True
+
+IBrowserView
+-------------
+
+Browser views are views specialized for requests from a browser (e.g.,
+as distinct from WebDAV, FTP, XML-RPC, etc.).
+
+There is not much we can test except that ``IBrowserView`` is importable
+and an interface derived from ``IView``:
+
+.. doctest::
+
+ >>> from zope.interface import Interface
+ >>> from zope.browser.interfaces import IBrowserView
+ >>> Interface.providedBy(IBrowserView)
+ True
+ >>> IBrowserView.extends(IView)
+ True
ITerms
------
-The ITerms interface is used as a base for ISource widget implementations. This
-interfaces get used by zope.app.form and was initially defined in
-zope.app.form.browser.interfaces.py. This makes it impossible to use for other
-packages like z3c.form wihtout to depend on zope.app.form. Moving such base
-components or interfaces to zope.browser will make it possible to share such
-base components.
+The ``ITerms`` interface is used as a base for ``ISource`` widget
+implementations. This interfaces get used by ``zope.app.form`` and was
+initially defined in ``zope.app.form.browser.interfaces``, which made it
+impossible to use for other packages like ``z3c.form`` wihtout depending on
+``zope.app.form``.
+
+Moving such base components / interfaces to ``zope.browser`` makes it
+possible to share them without undesirable dependencies.
+
+There is not much we can test except that ITerms is importable
+and an interface:
-There is not much we can test except that ITerms is importable and an interface:
+.. doctest::
- >>> import zope.interface
- >>> from zope.browser import interfaces
- >>> zope.interface.Interface.providedBy(interfaces.ITerms)
+ >>> from zope.interface import Interface
+ >>> from zope.browser.interfaces import ITerms
+ >>> Interface.providedBy(ITerms)
True
diff --git a/src/zope/browser/interfaces.py b/src/zope/browser/interfaces.py
index e212bb0..b0c5788 100644
--- a/src/zope/browser/interfaces.py
+++ b/src/zope/browser/interfaces.py
@@ -1,6 +1,6 @@
##############################################################################
#
-# Copyright (c) 2004 Zope Corporation and Contributors.
+# Copyright (c) 2004-2009 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
@@ -12,17 +12,28 @@
#
##############################################################################
"""Shared dependency less Zope3 brwoser components.
-
-$Id:$
"""
-
-import zope.interface
-
__docformat__ = 'restructuredtext'
-
-class ITerms(zope.interface.Interface):
-
+from zope.interface import Attribute
+from zope.interface import Interface
+
+class IView(Interface):
+ """ Views are multi-adapters for context and request objects.
+ """
+ context = Attribute("The context object the view renders")
+ request = Attribute("The request object driving the view")
+
+class IBrowserView(IView):
+ """ Views which are specialized for requests from a browser
+
+ o Such views are distinct from those geerated via WebDAV, FTP, XML-RPC,
+ etc..
+ """
+
+class ITerms(Interface):
+ """ Adapter providing lookups for vocabulary terms.
+ """
def getTerm(value):
"""Return an ITitledTokenizedTerm object for the given value