[Checkins] SVN: grokcore.view/trunk/ Moved to GitHub.
Stephen Richter
cvs-admin at zope.org
Fri Mar 1 15:42:52 UTC 2013
Log message for revision 129956:
Moved to GitHub.
Changed:
D grokcore.view/trunk/CHANGES.txt
D grokcore.view/trunk/COPYRIGHT.txt
D grokcore.view/trunk/CREDITS.txt
D grokcore.view/trunk/INSTALL.txt
D grokcore.view/trunk/LICENSE.txt
A grokcore.view/trunk/MOVED_TO_GITHUB
D grokcore.view/trunk/README.txt
D grokcore.view/trunk/TODO.txt
D grokcore.view/trunk/bootstrap.py
D grokcore.view/trunk/buildout.cfg
D grokcore.view/trunk/setup.py
D grokcore.view/trunk/src/
-=-
Deleted: grokcore.view/trunk/CHANGES.txt
===================================================================
--- grokcore.view/trunk/CHANGES.txt 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/CHANGES.txt 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,290 +0,0 @@
-Changes
-=======
-
-2.9 (unreleased)
-----------------
-
-- Nothing changed yet.
-
-
-2.8 (2012-12-11)
-----------------
-
-- Add a ``skin=[skin component]`` argument to the ``grokcore.view.util.url()``
- function and ``grokcore.view.components.View.url`` method. This allows for
- computing URLs on a specific skin. Note that it is not verified whether
- the computed URL actually exist on the specified skin.
-
-2.7 (2012-05-01)
-----------------
-
-- Use the component registration api in grokcore.component.
-
-- Improve error message when a templatedir() directive points to a non-
- existent directory. (fix launchpad issue 680528).
-
-- Improve error message when a template is required for a component
- but cannot be found (Fix Launchpad issue #225855, #242698).
-
-- Fix how the static resource are found. Instead of using as name the
- package name where the component is defined, using as name the
- package where the template for the component is defined, or the base
- component. This is done by setting an attribute ``__static_name__``
- on the component that specify which resource directory should be
- used. This fix missing resources when you extend the component and
- don't redefined the template.
-
-2.6.1 (2011-06-28)
-------------------
-
-- Fix bug where zope.browserpage was not correctly declared as a dependency.
-
-2.6 (2011-06-28)
-----------------
-
-- Add the ContentProvider component.
-
-2.5 (2011-04-04)
-----------------
-
-- Fix a test that relied on older zope.testbrowser behaviour.
-
-2.4 (2011-03-01)
-----------------
-
-- grok.View component can optionally use the ``grok.provides`` directive,
- specifying an interface that the component provides (instead of the
- zope.interface.Interface that views by default provide).
-
-- Add a new ZCML directive, ``ignoreTemplates`` that let you configure which
- template filename pattern should be ignored by the template registry. The
- pattern attribute of the directive accepts regular expresssion that will be
- matched against the (template) file extension.
-
-- Use the zope configuration action ordering feature to have templates
- registered for all packages and modules, before trying to associate the
- templates. Checking for unassociated templates is done very very late in the
- configuration action order.
-
-- Inherited grok.template() information is looked up against the module of
- the view class that uses the grok.template() directive. This allows for
- subclassing view components that use the grok.template() directive from other
- packages.
-
-2.3 (2011-01-04)
-----------------
-
-- Removed the static directory grokker in order to make way for using
- fanstatic.
-
-2.2 (2010-12-16)
-----------------
-
-- Factor out a base template grokker that associate templates for
- viewish components.
-
-- Merge support for a global template registry that removes
- unnecessary warnings about unassociated templates in "shared"
- template directories.
-
-2.1 (2010-11-03)
-----------------
-
-- Use an update martian and grokcore.component.
-
-- The custom zope publication has now moved from the grok package to
- grokcore.view. The registration of the publication is optional, and is used
- by grok and the grokcore.json package.
-
-- The util function `make_checker` has been moved from the `grok`
- package to ``grokcore.view``.
-
-2.0 (2010-11-01)
-----------------
-
-- The `view` directive has been moved from ``grokcore.viewlet`` to
- ``grokcore.view``.
-
-- The `IGrokSecurityView` has been moved from ``grok`` to
- ``grokcore.view``.
-
-- Fix the url() function to behave properly while passed an empty data dict.
-
-- Fix the url() method to accept the "status" and "trusted" arguments, passed
- on to the redirect method on the response object.
-
-- ``grokcore.view`` no longer depends on ``zope.app.testing`` and
- related packages. Instead we now use ``zope.app.wsgi.testlayer`` to
- run functional tests.
-
-- Made package comply to zope.org repository policy.
-
-- Fixed launchpad bug #395061 : removed the default_fallback_to_name
- function. It can be imported from ``grokcore.security`` if needed.
-
-- ``grokcore.view`` no longer depends on ``zope.app.zcmlfiles``. We
- removed all the extra dependencies and fixed one test that used
- ``zope.app.rotterdam`` and ``zope.app.basicskin``.
-
-- Back-ported the changes of the 1.13 branch related to the directory
- resource registration, using the latest ztk packages.
-
-- Factor out generally useful methods and properties for view-ish
- components into components.ViewSupport mixin.
-
-- Works with new Martian (0.13) and grokcore.component 2.1.
-
-- Test fix: support windows paths.
-
-- Warnings are now emitted as log messages with level
- `logging.WARNING` to a logger named ``grokcore.view`` with level
- `logging.ERROR`.
-
- That means that by default no warnings are emitted anymore (while
- errors will still appear).
-
- To get the warnings back, reduce the level of logger
- ``grokcore.view`` to `logging.WARNING` or lower. This can be done in
- Python or via a logging conf file, for instance in the .ini files of
- regular grokprojects. See the Python standard lib `logging` module
- for details.
-
-1.12.1 (2009-09-17)
--------------------
-
-- A compatibility fix to support ``grokcore.viewlet``.
-
-1.12 (2009-09-17)
------------------
-
-- Use 1.0b1 versions.cfg in Grok's release info instead of a local
- copy; a local copy for all grokcore packages is just too hard to
- maintain.
-
-- Revert the splitting CodeView/View. The original reasons for the
- split have been obsoleted by the recent martain developments
- regarding inheritted module level directives. At the same time the
- split up components proved cumbersome to use and a too big a change
- between the 1.0a and 1.0b releases of Grok.
-
- View components will now again behave like it did up until the latest alpha
- release of Grok.
-
- ``CodeView`` is still available as a backwards compatibility alias
- for ``View``. Please update all references to ``CodeView`` to
- ``View``.
-
-- Fix the template registry and grokker for views to let View and
- other components using View as base class to be associated with a
- template directly by setting it as 'template' attribute on the view
- class. Example::
-
- class MyView(grokcore.view.View):
-
- template = grokcore.view.PageTemplate('<p>hello</p>')
-
- This isn't exactly *officially* supported but enough people depend
- on it and have documented it so that we don't want to just break it.
-
-1.11 (2009-09-15)
------------------
-
-- The response attribute needs to be available in CodeView as well.
-
-1.10 (2009-09-14)
------------------
-
-- Up the version requirement for grokcore.security to 1.2.
-
-- Bring versions.cfg in line with current grok versions.cfg.
-
-
-1.9 (2009-07-04)
-----------------
-
-- Fix needed for grokcore.formlib: allow a base_method'ed render() on view.
- This allows grokcore.formlib to have a render() in addition to a template.
-
-- Reverted change to checkTemplates: for some formlib edge cases it detects
- the right templates again.
-
-
-1.8 (2009-07-04)
-----------------
-
-- Add validator to templatedir directive to disallow path separator.
-
-- Splitted CodeView out of View. View only uses templates, CodeView only uses
- a render() method. So views that have a render method must subclass from
- CodeView instead of View (that should be the only change needed).
-
-- Add grok.View permissions to functional tests (requires grokcore.security 1.1)
-
-
-1.7 (2009-05-19)
-----------------
-
-- Revert dependency from zope.container back to zope.app.container.
-
-
-1.6 (2009-04-28)
-----------------
-
-- Simplify the DirectoryResource and DirectoryResourceFactory
- implementations by making better use of the hook points provided by
- zope.app.publisher.browser.directoryresource.
-
-1.5 (2009-04-10)
-----------------
-
-- Don't register a 'static' resource directory if the 'static' directory does
- not exist.
-
-- Make it possible to instantiate an ungrokked view by being slightly more
- defensive in __init__. This makes it easier to write unit tests.
-
-1.4 (2009-04-08)
-----------------
-
-* Page template reloading now also works for macros. Fixes
- https://bugs.launchpad.net/grok/+bug/162261.
-
-* Use zope.container instead of zope.app.container.
-
-* Ignore '<tpl>.cache' files when looking up template files in a
- template dir. Fix bug https://bugs.launchpad.net/grok/+bug/332747
-
-1.3 (2009-01-28)
-----------------
-
-* Adapt tests to work also from eggs not only source checkouts by
- avoiding `src` in directory comparisons.
-
-* Fix the factory for subdirectories of the DirectoryResource implementation
- by using hooks in zope.app.publisher.browser.directoryresource.
-
-* Update APIs interfaces to include the new ``path`` directive and
- new ``DirectoryResource`` component.
-
-1.2 (2008-10-16)
-----------------
-
-* Expose the ``DirectoryResource`` class as a component for registering
- directories as resources. This is accompanied by the ``path`` directive that
- is used to point to the directory holding resources by way of an relative (to
- the module) or absolute path. ``DirectoryResource`` components can be
- differentiated by name and layer.
-
-1.1 (2008-09-22)
-----------------
-
-* ``meta.py`` module containing the grokkers has been split in a
- package with separate modules for the view, template, skin and
- static resources grokkers. This allows applications to use only
- grokkers they need (and maybe redefine others).
-
-1.0 (2006-08-07)
-----------------
-
-* Created ``grokcore.view`` in July 2008 by factoring security-related
- components, grokkers and directives out of Grok.
Deleted: grokcore.view/trunk/COPYRIGHT.txt
===================================================================
--- grokcore.view/trunk/COPYRIGHT.txt 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/COPYRIGHT.txt 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1 +0,0 @@
-Zope Foundation and Contributors
\ No newline at end of file
Deleted: grokcore.view/trunk/CREDITS.txt
===================================================================
--- grokcore.view/trunk/CREDITS.txt 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/CREDITS.txt 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,6 +0,0 @@
-CREDITS
-=======
-
-This package was extracted from the Grok web framework.
-
-For credits, see the CREDITS file in the main ``grok`` project itself.
Deleted: grokcore.view/trunk/INSTALL.txt
===================================================================
--- grokcore.view/trunk/INSTALL.txt 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/INSTALL.txt 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,63 +0,0 @@
-Preparing for grok development
-------------------------------
-
-The Grok development sandbox is set up via `zc.buildout`_
-
-.. _zc.buildout: http://cheeseshop.python.org/pypi/zc.buildout
-
-You may have setuptools already installed for your system Python. In
-that case, you may need to upgrade it first because buildout requires
-a very recent version::
-
- $ sudo easy_install -U setuptools
-
-If this command fails because easy_install is not available, there is
-a good chance you do not have setuptools available for your system
-Python. If so, there is no problem because setuptools will be
-installed locally by buildout.
-
-Bootstrap the buildout environment::
-
- $ python bootstrap/bootstrap.py
-
-and run the buildout command::
-
- $ bin/buildout
- [lots of stuff will be downloaded and installed here]
-
-Note that if you have more than one sandbox for a Zope-based web
-application, it will probably make sense to share the eggs between the
-different sandboxes. You can tell zc.buildout to use a central eggs
-directory by creating ``~/.buildout/default.cfg`` with the following
-contents::
-
- [buildout]
- eggs-directory = /home/bruno/buildout-eggs
-
-Running the demo applications
------------------------------
-
-You can start Zope with the demo applications installed with the
-following command:
-
- $ bin/zopectl fg
-
-If you now connect to port 8080 and log in with username 'grok',
-password 'grok', you should be able to add the grok-based applications
-(such as grokwiki) from the menu.
-
-Running the tests
------------------
-
-Grok's tests are easily run by executing the test runner that's
-installed in the ``bin`` directory::
-
- $ bin/test
-
-Generating the website files
-----------------------------
-
-Grok's tutorial documents for the website can easily be generated
-using the following script in ``bin``:
-
- $ bin/grok2html /path/of/output/directory
Deleted: grokcore.view/trunk/LICENSE.txt
===================================================================
--- grokcore.view/trunk/LICENSE.txt 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/LICENSE.txt 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,44 +0,0 @@
-Zope Public License (ZPL) Version 2.1
-
-A copyright notice accompanies this license document that identifies the
-copyright holders.
-
-This license has been certified as open source. It has also been designated as
-GPL compatible by the Free Software Foundation (FSF).
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions in source code must retain the accompanying copyright
-notice, this list of conditions, and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the accompanying copyright
-notice, this list of conditions, and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-3. Names of the copyright holders must not be used to endorse or promote
-products derived from this software without prior written permission from the
-copyright holders.
-
-4. The right to distribute this software or to use it for any purpose does not
-give you the right to use Servicemarks (sm) or Trademarks (tm) of the
-copyright
-holders. Use of them is covered by separate agreement with the copyright
-holders.
-
-5. If any files are modified, you must cause the modified files to carry
-prominent notices stating that you changed the files and the date of any
-change.
-
-Disclaimer
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Added: grokcore.view/trunk/MOVED_TO_GITHUB
===================================================================
--- grokcore.view/trunk/MOVED_TO_GITHUB (rev 0)
+++ grokcore.view/trunk/MOVED_TO_GITHUB 2013-03-01 15:42:51 UTC (rev 129956)
@@ -0,0 +1 @@
+See https://github.com/zopefoundation/grokcore.view
\ No newline at end of file
Deleted: grokcore.view/trunk/README.txt
===================================================================
--- grokcore.view/trunk/README.txt 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/README.txt 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,313 +0,0 @@
-This package provides support for writing browser pages for Zope
-and registering them directly in Python (without ZCML).
-
-.. contents::
-
-Setting up ``grokcore.view``
-============================
-
-This package is essentially set up like the `grokcore.component`_
-package, please refer to its documentation for details. The
-additional ZCML line you will need is::
-
- <include package="grokcore.view" file="meta.zcml" />
- <include package="grokcore.view" />
-
-Put the first line somewhere near the top of your root ZCML file (but
-below the line where you include ``grokcore.component``'s
-configuration) and the second line somewhere next to your other
-dependency includes.
-
-
-Examples
-========
-
-Simple browser page
--------------------
-
-A browser page is implemented by subclassing the
-``grokcore.view.View`` baseclass. At a minimum, a browser page must
-have
-
-1. an associated template (or implement the ``render`` method for direct
- control)
-
-2. a context that it's registered for as a view
-
-3. a name (which is, if not specified explicitly, the class's name in
- lower case characters).
-
-A browser page that does not use a template but just outputs some
-computed data also subclasses the ``grokcore.view.View`` baseclass.
-At a minimum, such a view must have
-
-1. a render() method
-
-2. a context that it's registered for as a view
-
-3. a name (which is, if not specified explicitly, the class's name in
- lower case characters).
-
-For example, the following class defines a view that's registered for
-all objects and simply prints "Hello World!"::
-
- import grokcore.view
- import zope.interface
-
- class Hello(grokcore.view.View):
- grokcore.view.context(zope.interface.Interface)
-
- def render(self):
- self.response.setHeader("Content-Type", "text/plain")
- return "Hello World!"
-
-Here we've made use of the implicit name feature. This class will be
-available as the ``hello`` view for all objects. So for instance,
-you'll be able to invoke it with URLs like::
-
- http://localhost/some/obj/hello
-
-We could also have spelled this out explicitly::
-
- class Hello(grokcore.view.View):
- grokcore.view.context(zope.interface.Interface)
- grokcore.view.name('hello')
-
- ...
-
-Browser page with template
---------------------------
-
-Of course, more than often a view should render HTML which you would
-construct using some sort of templating engine. ``grokcore.view``
-comes with built-in support for Zope's PageTemplate engine. By
-convention, PageTemplate templates end with the ``.pt`` extension.
-
-So let our ``Hello`` view render HTML instead of plain text, we remove
-the ``render()`` method from the class and instead we create a
-template, e.g. like so::
-
- <html>
- <body>
- <p>Hello <span tal:replace="request/principal/title" />!</p>
- </body>
- </html>
-
-This will greet a logged in user with his or her actual name.
-
-Such a template-using page is a subclass of ``grokcore.view.View``::
-
- import grokcore.view
- import zope.interface
-
- class Hello(grokcore.view.View):
- grokcore.view.context(zope.interface.Interface)
-
-
-To associate the template with the view, we have to put it in a
-certain place. Let's say the ``Hello`` view class from above was in
-an ``app.py`` module. Then we create an ``app_templates`` directory
-next to it and place the template file in there (the name of this
-directory can be customized with the ``templatedir`` directive, see
-below). The file name can be anything as long as the extension is
-``.pt``. However, we can again make use of a convention here. If we
-name the template like the class (except in lower case characters),
-then the template and the class are associated automatically. If not,
-we would have to use the ``template`` directive on the view class to
-spell out the name of the template file explicitly.
-
-To cut a long story short, if we named it ``app_templates/hello.pt``,
-it would be found automatically.
-
-Static resources
-----------------
-
-Browser pages often need additional static resources like CSS and JavaScript
-files. These can be conveniently placed into a directory called ``static`` in
-the package that contains the view code. When this directory exists it will
-automatically be registered as a resource directory. It then is available as
-the ``static`` variable in all views of this package and you can refer to files
-inside this directory like so::
-
- <img src="hello.png" tal:attributes="src static/hello.png" />
-
-DirectoryResource
------------------
-
-In addition to the very convenient "static resources", one can use more
-explicitly configured and flexible DirectoryResource components.
-DirectoryResource component allow for differentiating resources based on layers
-and names and provide a way to register resources in one package and make use
-of these resources in another package's views::
-
- class FooResource(grokcore.view.DirectoryResource):
- grokcore.view.path('foo')
-
-Or with an explicit name::
-
- class BarResource(grokcore.view.DirectoryResource):
- grokcore.view.name('bar')
- grokcore.view.path('bar')
-
-Registered for a layer::
-
- class BazResource(grokcore.view.DirectoryResource):
- grokcore.view.layer(ISomeLayer)
- grokcore.view.path('baz/qux')
-
-Layers and skins
-----------------
-
-To define a browser layer, simply extend the ``IBrowserRequest``
-interface::
-
- class IGreenLayer(grokcore.view.IBrowserRequest):
- pass
-
-If you then wanted to define a skin, simply inherit from all the layer
-interfaces that should be in the skin and use the ``skin()`` directive
-to give the layer a name::
-
- class IGreenSkin(IGreenLayer, grokcore.view.IDefaultBrowserLayer):
- grokcore.view.skin('Green')
-
-To place a view on a layer, simply use the ``layer`` directive::
-
- class Hello(grokcore.view.View):
- grokcore.view.context(zope.interface.Interface)
- grokcore.view.layer(IGreenLayer)
-
- ...
-
-
-API overview
-============
-
-Base classes
-------------
-
-``View``
- Base class for browser pages. Use the ``context`` directive to
- specify the view's context. Use the ``name`` directive to set the
- view's name; if not used, the view's name will be the class's name
- in lower case characters. You may also use the ``template``
- directive to specify the name of the template file that should be
- associated with the view as well as the ``layer`` directive to
- specify which layer it should be on if not the default layer.
- Implement the ``render`` method to forgo looking up a template
- and show the result of calling the render method instead.
-
-View API
---------
-
-``grokcore.view.View`` is a regular Zope browser page, so it behaves
-exactly like a regular browser page from the outside. It provides a
-bit more to the developer using it as a base class, though:
-
-``context``
- The view's context object. This can be discriminated by using the
- ``context`` directive on the view class.
-
-``request``
- The request object, typically provides ``IBrowserRequest``.
-
-``response``
- The response object, typically provides ``IHTTPResponse``.
-
-``static``
- Directory resource representing the package's ``static`` directory or None
- if no such directory was found during grokking.
-
-``redirect(url)``
- Redirect to the given URL.
-
-``url(obj=None, name=None, data=None)``
- Constructs a URL:
-
- * If no arguments are given, the URL to the view itself is
- constructed.
-
- * If only the ``obj`` argument is given, the URL to that object is
- constructed.
-
- * If both ``obj`` and ``name`` arguments are supplied, construct
- the URL to the object and append ``name`` (presumably the name
- of a view).
-
- Optionally, ``data`` can be a dictionary whose contents is added to
- the URL as a query string.
-
-Method for developers to implement:
-
-``update(**kw)``
- This method will be called before the view's associated template
- is rendered. If you therefore want to pre-compuate values for the
- template, implement this method. You can save the values on
- ``self`` (the view object) and later access them through the
- ``view`` variable from the template. The method can take
- arbitrary keyword parameters which are filled from request values.
-
-``render(**kw)``
- Return either an encoded 8-bit string or a unicode string. The method can
- take arbitrary keyword parameters which are filled from request values.
- If not implemented, a template is looked up in the template dir instead.
-
-
-Directives
-----------
-
-``templatedir(dirname)``
- Module-level directive that tells the template machinery which
- directory to look in for templates that should associated with
- views in a particular module. If not used, it defaults to
- ``<module_name>_templates``.
-
-``template(filename_wo_ext)``
- Class-level directive that specifies the name a template file
- that's associated with a view class, *without* the file extension.
- If not used, it defaults to the class's name in lower case
- characters.
-
-``layer(layer_interface)``
- Class-level directive that defines which layer the view is
- registered on. If not used, it defaults to the
- ``IDefaultBrowserLayer``.
-
-``skin(skin_name)``
- Directive used on a layer interface to register it as skin using a
- human-readable name (``skin_name``).
-
-``path(relative_or_absolute_path)``
- Directove used in a DirectoryResource registration to point to a non-
- package directory(hierarchy) containing resources like images, css files,
- etc.
-
-Other
------
-
-``url(request, obj, name=None, data=None)``
- Generate the URL to an object, with an optional view name
- attached. The ``data`` argument can be a dictionary whose
- contents is converted into the a query string that's appended to
- the URL.
-
-``PageTemplate(template_code)``
- Create an inline PageTemplate object.
-
-``PageTemplateFile(filename)``
- Create a PageTemplate object from a file.
-
-``IBrowserRequest``
- Browser request interface from ``zope.publisher``.
-
-``IDefaultBrowserLayer``
- Default layer for browser components from ``zope.publisher``.
-
-
-In addition, the ``grokcore.view`` package exposes the
-`grokcore.component`_ and `grokcore.security`_ APIs.
-
-.. _grokcore.component: http://pypi.python.org/pypi/grokcore.component
-.. _grokcore.security: http://pypi.python.org/pypi/grokcore.security
-.. _grokcore.view: http://pypi.python.org/pypi/grokcore.view
-
Deleted: grokcore.view/trunk/TODO.txt
===================================================================
--- grokcore.view/trunk/TODO.txt 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/TODO.txt 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,5 +0,0 @@
-TODO
-====
-
-* Untangle the whole ITemplateFactory and ITemplate mess (less obscure
- method names and less indirection would be nice)
Deleted: grokcore.view/trunk/bootstrap.py
===================================================================
--- grokcore.view/trunk/bootstrap.py 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/bootstrap.py 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,258 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2006 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.
-#
-##############################################################################
-"""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.
-"""
-
-import os, shutil, sys, tempfile, textwrap, urllib, urllib2, subprocess
-from optparse import OptionParser
-
-if sys.platform == 'win32':
- def quote(c):
- if ' ' in c:
- return '"%s"' % c # work around spawn lamosity on windows
- else:
- return c
-else:
- quote = str
-
-# See zc.buildout.easy_install._has_broken_dash_S for motivation and comments.
-stdout, stderr = subprocess.Popen(
- [sys.executable, '-Sc',
- 'try:\n'
- ' import ConfigParser\n'
- 'except ImportError:\n'
- ' print 1\n'
- 'else:\n'
- ' print 0\n'],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
-has_broken_dash_S = bool(int(stdout.strip()))
-
-# In order to be more robust in the face of system Pythons, we want to
-# run without site-packages loaded. This is somewhat tricky, in
-# particular because Python 2.6's distutils imports site, so starting
-# with the -S flag is not sufficient. However, we'll start with that:
-if not has_broken_dash_S and 'site' in sys.modules:
- # We will restart with python -S.
- args = sys.argv[:]
- args[0:0] = [sys.executable, '-S']
- args = map(quote, args)
- os.execv(sys.executable, args)
-# Now we are running with -S. We'll get the clean sys.path, import site
-# because distutils will do it later, and then reset the path and clean
-# out any namespace packages from site-packages that might have been
-# loaded by .pth files.
-clean_path = sys.path[:]
-import site
-sys.path[:] = clean_path
-for k, v in sys.modules.items():
- if (hasattr(v, '__path__') and
- len(v.__path__)==1 and
- not os.path.exists(os.path.join(v.__path__[0],'__init__.py'))):
- # This is a namespace package. Remove it.
- sys.modules.pop(k)
-
-is_jython = sys.platform.startswith('java')
-
-setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py'
-distribute_source = 'http://python-distribute.org/distribute_setup.py'
-
-# parsing arguments
-def normalize_to_url(option, opt_str, value, parser):
- if value:
- if '://' not in value: # It doesn't smell like a URL.
- value = 'file://%s' % (
- urllib.pathname2url(
- os.path.abspath(os.path.expanduser(value))),)
- if opt_str == '--download-base' and not value.endswith('/'):
- # Download base needs a trailing slash to make the world happy.
- value += '/'
- else:
- value = None
- name = opt_str[2:].replace('-', '_')
- setattr(parser.values, name, value)
-
-usage = '''\
-[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options]
-
-Bootstraps a buildout-based project.
-
-Simply run this script in a directory containing a buildout.cfg, using the
-Python that you want bin/buildout to use.
-
-Note that by using --setup-source and --download-base to point to
-local resources, you can keep this script from going over the network.
-'''
-
-parser = OptionParser(usage=usage)
-parser.add_option("-v", "--version", dest="version",
- help="use a specific zc.buildout version")
-parser.add_option("-d", "--distribute",
- action="store_true", dest="use_distribute", default=False,
- help="Use Distribute rather than Setuptools.")
-parser.add_option("--setup-source", action="callback", dest="setup_source",
- callback=normalize_to_url, nargs=1, type="string",
- help=("Specify a URL or file location for the setup file. "
- "If you use Setuptools, this will default to " +
- setuptools_source + "; if you use Distribute, this "
- "will default to " + distribute_source +"."))
-parser.add_option("--download-base", action="callback", dest="download_base",
- callback=normalize_to_url, nargs=1, type="string",
- help=("Specify a URL or directory for downloading "
- "zc.buildout and either Setuptools or Distribute. "
- "Defaults to PyPI."))
-parser.add_option("--eggs",
- help=("Specify a directory for storing eggs. Defaults to "
- "a temporary directory that is deleted when the "
- "bootstrap script completes."))
-parser.add_option("-t", "--accept-buildout-test-releases",
- dest='accept_buildout_test_releases',
- action="store_true", default=False,
- help=("Normally, if you do not specify a --version, the "
- "bootstrap script and buildout gets the newest "
- "*final* versions of zc.buildout and its recipes and "
- "extensions for you. If you use this flag, "
- "bootstrap and buildout will get the newest releases "
- "even if they are alphas or betas."))
-parser.add_option("-c", None, action="store", dest="config_file",
- help=("Specify the path to the buildout configuration "
- "file to be used."))
-
-options, args = parser.parse_args()
-
-# if -c was provided, we push it back into args for buildout's main function
-if options.config_file is not None:
- args += ['-c', options.config_file]
-
-if options.eggs:
- eggs_dir = os.path.abspath(os.path.expanduser(options.eggs))
-else:
- eggs_dir = tempfile.mkdtemp()
-
-if options.setup_source is None:
- if options.use_distribute:
- options.setup_source = distribute_source
- else:
- options.setup_source = setuptools_source
-
-if options.accept_buildout_test_releases:
- args.append('buildout:accept-buildout-test-releases=true')
-args.append('bootstrap')
-
-try:
- import pkg_resources
- import setuptools # A flag. Sometimes pkg_resources is installed alone.
- if not hasattr(pkg_resources, '_distribute'):
- raise ImportError
-except ImportError:
- ez_code = urllib2.urlopen(
- options.setup_source).read().replace('\r\n', '\n')
- ez = {}
- exec ez_code in ez
- setup_args = dict(to_dir=eggs_dir, download_delay=0)
- if options.download_base:
- setup_args['download_base'] = options.download_base
- if options.use_distribute:
- setup_args['no_fake'] = True
- ez['use_setuptools'](**setup_args)
- reload(sys.modules['pkg_resources'])
- import pkg_resources
- # This does not (always?) update the default working set. We will
- # do it.
- for path in sys.path:
- if path not in pkg_resources.working_set.entries:
- pkg_resources.working_set.add_entry(path)
-
-cmd = [quote(sys.executable),
- '-c',
- quote('from setuptools.command.easy_install import main; main()'),
- '-mqNxd',
- quote(eggs_dir)]
-
-if not has_broken_dash_S:
- cmd.insert(1, '-S')
-
-find_links = options.download_base
-if not find_links:
- find_links = os.environ.get('bootstrap-testing-find-links')
-if find_links:
- cmd.extend(['-f', quote(find_links)])
-
-if options.use_distribute:
- setup_requirement = 'distribute'
-else:
- setup_requirement = 'setuptools'
-ws = pkg_resources.working_set
-setup_requirement_path = ws.find(
- pkg_resources.Requirement.parse(setup_requirement)).location
-env = dict(
- os.environ,
- PYTHONPATH=setup_requirement_path)
-
-requirement = 'zc.buildout'
-version = options.version
-if version is None and not options.accept_buildout_test_releases:
- # Figure out the most recent final version of zc.buildout.
- import setuptools.package_index
- _final_parts = '*final-', '*final'
- def _final_version(parsed_version):
- for part in parsed_version:
- if (part[:1] == '*') and (part not in _final_parts):
- return False
- return True
- index = setuptools.package_index.PackageIndex(
- search_path=[setup_requirement_path])
- if find_links:
- index.add_find_links((find_links,))
- req = pkg_resources.Requirement.parse(requirement)
- if index.obtain(req) is not None:
- best = []
- bestv = None
- for dist in index[req.project_name]:
- distv = dist.parsed_version
- if _final_version(distv):
- if bestv is None or distv > bestv:
- best = [dist]
- bestv = distv
- elif distv == bestv:
- best.append(dist)
- if best:
- best.sort()
- version = best[-1].version
-if version:
- requirement = '=='.join((requirement, version))
-cmd.append(requirement)
-
-if is_jython:
- import subprocess
- exitcode = subprocess.Popen(cmd, env=env).wait()
-else: # Windows prefers this, apparently; otherwise we would prefer subprocess
- exitcode = os.spawnle(*([os.P_WAIT, sys.executable] + cmd + [env]))
-if exitcode != 0:
- sys.stdout.flush()
- sys.stderr.flush()
- print ("An error occurred when trying to install zc.buildout. "
- "Look above this message for any errors that "
- "were output by easy_install.")
- sys.exit(exitcode)
-
-ws.add_entry(eggs_dir)
-ws.require(requirement)
-import zc.buildout.buildout
-zc.buildout.buildout.main(args)
-if not options.eggs: # clean up temporary egg directory
- shutil.rmtree(eggs_dir)
Deleted: grokcore.view/trunk/buildout.cfg
===================================================================
--- grokcore.view/trunk/buildout.cfg 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/buildout.cfg 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,22 +0,0 @@
-[buildout]
-develop = .
-extends = http://svn.zope.org/repos/main/groktoolkit/trunk/grok.cfg
-parts =
- interpreter
- test
-versions = versions
-extensions = buildout.dumppickedversions
-
-[versions]
-grokcore.view =
-
-[interpreter]
-recipe = zc.recipe.egg
-eggs = grokcore.view
-interpreter = python
-
-[test]
-recipe = zc.recipe.testrunner
-eggs = grokcore.view
- grokcore.view[test]
-defaults = ['--tests-pattern', '^f?tests$', '-v', '--auto-color', '--auto-progress']
Deleted: grokcore.view/trunk/setup.py
===================================================================
--- grokcore.view/trunk/setup.py 2013-03-01 15:42:38 UTC (rev 129955)
+++ grokcore.view/trunk/setup.py 2013-03-01 15:42:51 UTC (rev 129956)
@@ -1,76 +0,0 @@
-from setuptools import setup, find_packages
-import os
-
-def read(*rnames):
- return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
-
-long_description = (
- read('README.txt')
- + '\n' +
- read('CHANGES.txt')
- )
-
-install_requires = [
- 'grokcore.component >= 2.5dev',
- 'grokcore.security >= 1.5',
- 'martian >= 0.13',
- 'setuptools',
- 'zope.browserpage',
- 'zope.browserresource >= 3.9.0',
- 'zope.component',
- 'zope.contentprovider',
- 'zope.interface',
- 'zope.pagetemplate',
- 'zope.ptresource >= 3.9.0',
- 'zope.publisher',
- 'zope.security',
- 'zope.traversing',
- ]
-
-tests_require = [
- 'zope.app.appsetup',
- 'zope.app.publication',
- 'zope.app.wsgi',
- 'zope.configuration',
- 'zope.container',
- 'zope.login',
- 'zope.password',
- 'zope.principalregistry',
- 'zope.securitypolicy',
- 'zope.site',
- 'zope.testing',
- ]
-
-publication_require = [
- 'zope.app.publication'
- ]
-
-setup(
- name='grokcore.view',
- version='2.9.dev0',
- author='Grok Team',
- author_email='grok-dev at zope.org',
- url='http://grok.zope.org',
- download_url='http://pypi.python.org/pypi/grok/',
- description='Grok-like configuration for Zope browser pages',
- long_description=long_description,
- license='ZPL',
- classifiers=['Environment :: Web Environment',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: Zope Public License',
- 'Programming Language :: Python',
- 'Framework :: Zope3',
- ],
-
- packages=find_packages('src'),
- package_dir = {'': 'src'},
- namespace_packages=['grokcore'],
- include_package_data = True,
- zip_safe=False,
- install_requires=install_requires,
- tests_require=tests_require,
- extras_require={
- 'test': tests_require,
- 'security_publication': publication_require
- },
-)
More information about the checkins
mailing list