<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pyramid/repoze/bfg/tests/grokkedapp, branch main</title>
<subtitle>Pyramid web framework (fork of https://github.com/Pylons/pyramid).</subtitle>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/'/>
<entry>
<title>first pass at converting bfg to pyramid namespace</title>
<updated>2010-10-25T14:29:31+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@plope.com</email>
</author>
<published>2010-10-25T14:29:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=64372401084889a440c9d990a0febc221e3e4b5c'/>
<id>64372401084889a440c9d990a0febc221e3e4b5c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- Replace martian with something simpler.</title>
<updated>2009-11-25T16:36:29+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-11-25T16:36:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=2aa86c1a5227a675d32c4ede06e0c031ae3edfad'/>
<id>2aa86c1a5227a675d32c4ede06e0c031ae3edfad</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- The ``@bfg_view`` decorator can now be used against a class method::</title>
<updated>2009-10-18T05:50:54+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-10-18T05:50:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=1dc3907e59995852d5ee0251c1c92a360f03ed35'/>
<id>1dc3907e59995852d5ee0251c1c92a360f03ed35</id>
<content type='text'>
    from webob import Response
    from repoze.bfg.view import bfg_view

    class MyView(object):
        def __init__(self, context, request):
            self.context = context
            self.request = request

        @bfg_view(name='hello')
        def amethod(self):
            return Response('hello from %s!' % self.context)

  When the bfg_view decorator is used against a class method, a view
  is registered for the *class* (it's a "class view" where the "attr"
  happens to be the method they're attached to), so the view class
  must have a suitable constructor.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
    from webob import Response
    from repoze.bfg.view import bfg_view

    class MyView(object):
        def __init__(self, context, request):
            self.context = context
            self.request = request

        @bfg_view(name='hello')
        def amethod(self):
            return Response('hello from %s!' % self.context)

  When the bfg_view decorator is used against a class method, a view
  is registered for the *class* (it's a "class view" where the "attr"
  happens to be the method they're attached to), so the view class
  must have a suitable constructor.


</pre>
</div>
</content>
</entry>
<entry>
<title>- More than one ``@bfg_view`` decorator may now be stacked on top of</title>
<updated>2009-10-18T02:27:43+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-10-18T02:27:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=2cce431f02a37c119eacfc3dfa94af9fe3305de1'/>
<id>2cce431f02a37c119eacfc3dfa94af9fe3305de1</id>
<content type='text'>
  any number of others.  Each invocation of the decorator registers a
  single view.  For instance, the following combination of decorators
  and a function will register two views::

    from repoze.bfg.view import bfg_view

    @bfg_view(name='edit')
    @bfg_view(name='change')
    def edit(context, request):
        pass

  This makes it possible to associate more than one view configuration
  for a single callable without requiring ZCML.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  any number of others.  Each invocation of the decorator registers a
  single view.  For instance, the following combination of decorators
  and a function will register two views::

    from repoze.bfg.view import bfg_view

    @bfg_view(name='edit')
    @bfg_view(name='change')
    def edit(context, request):
        pass

  This makes it possible to associate more than one view configuration
  for a single callable without requiring ZCML.


</pre>
</div>
</content>
</entry>
<entry>
<title>Make instance grokking work again.</title>
<updated>2009-09-20T22:56:37+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-09-20T22:56:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=022873d909055040a39f24fe3df34f4c154f9102'/>
<id>022873d909055040a39f24fe3df34f4c154f9102</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- The way ``bfg_view`` declarations are scanned for has been modified.</title>
<updated>2009-09-20T22:13:11+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-09-20T22:13:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=e4610566d881f707c01d266a7e336084029c83e4'/>
<id>e4610566d881f707c01d266a7e336084029c83e4</id>
<content type='text'>
  This should have no external effects.

- An object implementing the ``IRenderer`` interface (and
  ``ITemplateRenderer`, which is a subclass of ``IRenderer``) must now
  accept an extra ``system`` argument in its ``__call__`` method
  implementation.  Values computed by the system (as opposed to by the
  view) are passed by the system in the ``system`` parameter, which
  will always be a dictionary.  Keys in the dictionary include:
  ``view`` (the view object that returned the value),
  ``renderer_name`` (the template name or simple name of the
  renderer), ``context`` (the context object passed to the view), and
  ``request`` (the request object passed to the view).  Previously
  only ITemplateRenderers received system arguments as elements inside
  the main ``value`` dictionary.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  This should have no external effects.

- An object implementing the ``IRenderer`` interface (and
  ``ITemplateRenderer`, which is a subclass of ``IRenderer``) must now
  accept an extra ``system`` argument in its ``__call__`` method
  implementation.  Values computed by the system (as opposed to by the
  view) are passed by the system in the ``system`` parameter, which
  will always be a dictionary.  Keys in the dictionary include:
  ``view`` (the view object that returned the value),
  ``renderer_name`` (the template name or simple name of the
  renderer), ``context`` (the context object passed to the view), and
  ``request`` (the request object passed to the view).  Previously
  only ITemplateRenderers received system arguments as elements inside
  the main ``value`` dictionary.


</pre>
</div>
</content>
</entry>
<entry>
<title>Test string request type in bfg_view decorators.</title>
<updated>2009-05-31T21:14:06+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-05-31T21:14:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=22a2b1f024fb4b3336cde2cadace7e47e3bf2e14'/>
<id>22a2b1f024fb4b3336cde2cadace7e47e3bf2e14</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- Class objects may now be used as view callables (both via ZCML and</title>
<updated>2009-05-21T16:01:58+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-05-21T16:01:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=5a11e2ad0828b7c763d0c81211f686a85bc0324c'/>
<id>5a11e2ad0828b7c763d0c81211f686a85bc0324c</id>
<content type='text'>
  via use of the ``bfg_view`` decorator in Python 2.6 as a class
  decorator).  The calling semantics when using a class as a view
  callable is similar to that of using a class as a Zope "browser
  view": the class' ``__init__`` must accept two positional parameters
  (conventionally named ``context``, and ``request``).  The resulting
  instance must be callable (it must have a ``__call__`` method).
  When called, the instance should return a response.  For example::

    from webob import Response

    class MyView(object):
        def __init__(self, context, request):
            self.context = context
            self.request = request

        def __call__(self):
            return Response('hello from %s!' % self.context)

   See the "Views" chapter in the documentation and the
   ``repoze.bfg.view`` API documentation for more information.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  via use of the ``bfg_view`` decorator in Python 2.6 as a class
  decorator).  The calling semantics when using a class as a view
  callable is similar to that of using a class as a Zope "browser
  view": the class' ``__init__`` must accept two positional parameters
  (conventionally named ``context``, and ``request``).  The resulting
  instance must be callable (it must have a ``__call__`` method).
  When called, the instance should return a response.  For example::

    from webob import Response

    class MyView(object):
        def __init__(self, context, request):
            self.context = context
            self.request = request

        def __call__(self):
            return Response('hello from %s!' % self.context)

   See the "Views" chapter in the documentation and the
   ``repoze.bfg.view`` API documentation for more information.


</pre>
</div>
</content>
</entry>
<entry>
<title>grok -&gt; scan to prevent confusion.</title>
<updated>2009-01-18T05:49:41+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-01-18T05:49:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=58afb33d70dece410b998a9c064eba42e3f843d7'/>
<id>58afb33d70dece410b998a9c064eba42e3f843d7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Features</title>
<updated>2009-01-16T18:58:16+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-01-16T18:58:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08'/>
<id>5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08</id>
<content type='text'>
--------

- The functionality of ``repoze.bfg.convention`` has been merged into
  the core.  Applications which make use of ``repoze.bfg.convention``
  will continue to work indefinitely, but it is recommended that apps
  stop depending upon it.  To do so, substitute imports of
  ``repoze.bfg.convention.bfg_view`` with imports of
  ``repoze.bfg.view.bfg_view``, and change the stanza in ZCML from
  ``&lt;convention package="."&gt;`` to ``&lt;grok package="."&gt;``.  As a result
  of the merge, bfg has grown a new dependency: ``martian``.

- View functions which use the pushpage decorator are now pickleable
  (meaning their use won't prevent a ``configure.zcml.cache`` file
  from being written to disk).

Implementation Changes
----------------------

- The ``wsgiapp`` decorator now uses ``webob.Request.get_response`` to
  do its work rather than relying on howgrown WSGI code.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
--------

- The functionality of ``repoze.bfg.convention`` has been merged into
  the core.  Applications which make use of ``repoze.bfg.convention``
  will continue to work indefinitely, but it is recommended that apps
  stop depending upon it.  To do so, substitute imports of
  ``repoze.bfg.convention.bfg_view`` with imports of
  ``repoze.bfg.view.bfg_view``, and change the stanza in ZCML from
  ``&lt;convention package="."&gt;`` to ``&lt;grok package="."&gt;``.  As a result
  of the merge, bfg has grown a new dependency: ``martian``.

- View functions which use the pushpage decorator are now pickleable
  (meaning their use won't prevent a ``configure.zcml.cache`` file
  from being written to disk).

Implementation Changes
----------------------

- The ``wsgiapp`` decorator now uses ``webob.Request.get_response`` to
  do its work rather than relying on howgrown WSGI code.


</pre>
</div>
</content>
</entry>
</feed>
