[Checkins] SVN: z3c.noop/trunk/ initial import
Wolfgang Schnerring
wosc at wosc.de
Mon Jun 15 07:14:34 EDT 2009
Log message for revision 100976:
initial import
Changed:
A z3c.noop/trunk/CHANGES.txt
A z3c.noop/trunk/bootstrap.py
A z3c.noop/trunk/buildout.cfg
A z3c.noop/trunk/setup.py
A z3c.noop/trunk/src/
A z3c.noop/trunk/src/z3c/
A z3c.noop/trunk/src/z3c/__init__.py
A z3c.noop/trunk/src/z3c/noop/
A z3c.noop/trunk/src/z3c/noop/README.txt
A z3c.noop/trunk/src/z3c/noop/__init__.py
A z3c.noop/trunk/src/z3c/noop/configure.zcml
A z3c.noop/trunk/src/z3c/noop/ftesting.zcml
A z3c.noop/trunk/src/z3c/noop/tests.py
A z3c.noop/trunk/src/z3c/noop/traverser.py
-=-
Added: z3c.noop/trunk/CHANGES.txt
===================================================================
--- z3c.noop/trunk/CHANGES.txt (rev 0)
+++ z3c.noop/trunk/CHANGES.txt 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,8 @@
+=======
+CHANGES
+=======
+
+0.1 (unreleased)
+================
+
+- first released version
Added: z3c.noop/trunk/bootstrap.py
===================================================================
--- z3c.noop/trunk/bootstrap.py (rev 0)
+++ z3c.noop/trunk/bootstrap.py 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,55 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation 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.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id$
+"""
+
+import os, shutil, sys, tempfile, urllib2
+
+tmpeggs = tempfile.mkdtemp()
+
+try:
+ import pkg_resources
+except ImportError:
+ ez = {}
+ exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+ ).read() in ez
+ ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+ import pkg_resources
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+if sys.platform == 'win32':
+ cmd = '"%s"' % cmd # work around spawn lamosity on windows
+
+ws = pkg_resources.working_set
+assert os.spawnle(
+ os.P_WAIT, sys.executable, sys.executable,
+ '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
+ dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse('setuptools')).location
+ ),
+ ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout')
+import zc.buildout.buildout
+zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
+shutil.rmtree(tmpeggs)
Added: z3c.noop/trunk/buildout.cfg
===================================================================
--- z3c.noop/trunk/buildout.cfg (rev 0)
+++ z3c.noop/trunk/buildout.cfg 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,7 @@
+[buildout]
+develop = .
+parts = test
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = z3c.noop[test]
Added: z3c.noop/trunk/setup.py
===================================================================
--- z3c.noop/trunk/setup.py (rev 0)
+++ z3c.noop/trunk/setup.py 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,40 @@
+import os
+from setuptools import setup, find_packages
+
+
+setup(
+ name='z3c.noop',
+ version = '0.1dev',
+ author='Wolfgang Schnerring',
+ author_email='ws at gocept.com',
+ description='z3c.noop provides traverser that simply skips a path element, so /foo/++noop++qux/bar is equivalent to /foo/bar.',
+ url='http://pypi.python.org/pypi/z3c.noop',
+ long_description= (
+ open(os.path.join('src', 'z3c', 'noop', 'README.txt')).read()
+ + '\n\n'
+ + open('CHANGES.txt').read()),
+ classifiers = [
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: Zope Public License',
+ 'Programming Language :: Python',
+ 'Operating System :: OS Independent',
+ 'Framework :: Zope3'],
+ license='ZPL 2.1',
+ packages=find_packages('src'),
+ package_dir = {'': 'src'},
+ namespace_packages=['z3c'],
+ install_requires=[
+ 'setuptools',
+ 'zope.component',
+ 'zope.interface',
+ 'zope.publisher',
+ 'zope.traversing',
+ ],
+ extras_require=dict(test=[
+ 'zope.app.testing',
+ 'zope.app.zcmlfiles',
+ 'zope.testing',
+ ]),
+ include_package_data = True,
+ zip_safe = False,
+)
Added: z3c.noop/trunk/src/z3c/__init__.py
===================================================================
--- z3c.noop/trunk/src/z3c/__init__.py (rev 0)
+++ z3c.noop/trunk/src/z3c/__init__.py 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,5 @@
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError, e:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
Added: z3c.noop/trunk/src/z3c/noop/README.txt
===================================================================
--- z3c.noop/trunk/src/z3c/noop/README.txt (rev 0)
+++ z3c.noop/trunk/src/z3c/noop/README.txt 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,29 @@
+========
+z3c.noop
+========
+
+z3c.noop provides traverser that simply skips a path element,
+so /foo/++noop++qux/bar is equivalent to /foo/bar.
+
+This is useful for example to generate varying URLs to work around browser
+caches[#test-setup]_.
+
+>>> dummy = object()
+>>> root['foo'] = dummy
+>>> traverse('/foo') == dummy
+True
+>>> traverse('/++noop++12345/foo') == dummy
+True
+
+
+
+.. [#test-setup]
+
+ >>> import zope.traversing.api
+ >>> import zope.publisher.browser
+
+ >>> root = getRootFolder()
+ >>> request = zope.publisher.browser.TestRequest()
+
+ >>> def traverse(path):
+ ... return zope.traversing.api.traverse(root, path, request=request)
Added: z3c.noop/trunk/src/z3c/noop/__init__.py
===================================================================
--- z3c.noop/trunk/src/z3c/noop/__init__.py (rev 0)
+++ z3c.noop/trunk/src/z3c/noop/__init__.py 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1 @@
+# python package
Added: z3c.noop/trunk/src/z3c/noop/configure.zcml
===================================================================
--- z3c.noop/trunk/src/z3c/noop/configure.zcml (rev 0)
+++ z3c.noop/trunk/src/z3c/noop/configure.zcml 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,7 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ >
+
+ <adapter factory=".traverser.NoOpTraverser" name="noop"/>
+</configure>
\ No newline at end of file
Added: z3c.noop/trunk/src/z3c/noop/ftesting.zcml
===================================================================
--- z3c.noop/trunk/src/z3c/noop/ftesting.zcml (rev 0)
+++ z3c.noop/trunk/src/z3c/noop/ftesting.zcml 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,8 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ >
+
+ <include package="zope.app.zcmlfiles" />
+ <include package="z3c.noop"/>
+</configure>
\ No newline at end of file
Added: z3c.noop/trunk/src/z3c/noop/tests.py
===================================================================
--- z3c.noop/trunk/src/z3c/noop/tests.py (rev 0)
+++ z3c.noop/trunk/src/z3c/noop/tests.py 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,29 @@
+#############################################################################
+#
+# Copyright (c) 2006-2007 Zope Corporation 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.
+#
+##############################################################################
+
+from zope.testing import doctest
+import pkg_resources
+import zope.app.testing.functional
+
+
+layer = zope.app.testing.functional.ZCMLLayer(
+ pkg_resources.resource_filename(__name__, 'ftesting.zcml'),
+ __name__, 'z3c.noop.tests.layer', allow_teardown=True)
+
+def test_suite():
+ suite = zope.app.testing.functional.FunctionalDocFileSuite(
+ 'README.txt',
+ optionflags=doctest.INTERPRET_FOOTNOTES)
+ suite.layer = layer
+ return suite
Added: z3c.noop/trunk/src/z3c/noop/traverser.py
===================================================================
--- z3c.noop/trunk/src/z3c/noop/traverser.py (rev 0)
+++ z3c.noop/trunk/src/z3c/noop/traverser.py 2009-06-15 11:14:34 UTC (rev 100976)
@@ -0,0 +1,37 @@
+#############################################################################
+#
+# Copyright (c) 2006-2007 Zope Corporation 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.
+#
+##############################################################################
+
+from zope.component import adapts
+from zope.interface import implements, Interface
+import zope.publisher.interfaces.browser
+import zope.traversing.interfaces
+
+
+class NoOpTraverser(object):
+ """This traverser simply skips a path element,
+ so /foo/++noop++qux/bar is equivalent to /foo/bar.
+
+ This is useful for example to generate varying URLs to work around browser
+ caches.
+ """
+
+ adapts(Interface, zope.publisher.interfaces.browser.IDefaultBrowserLayer)
+ implements(zope.traversing.interfaces.ITraversable)
+
+ def __init__(self, context, request):
+ self.context = context
+ self.request = request
+
+ def traverse(self, name, furtherPath):
+ return self.context
More information about the Checkins
mailing list