[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