summaryrefslogtreecommitdiff
path: root/pyramid
AgeCommit message (Collapse)Author
2013-01-29Merge pull request #820 from tshepang/masterTres Seaver
some renderers and view API doc improvements
2013-01-29Merge pull request #821 from tshepang/pathTres Seaver
some pyramid.path API doc improvements
2013-01-29Merge pull request #822 from tshepang/sessionTres Seaver
some pyramid.session API doc improvements
2013-01-29replace 'note' with the more correct 'versionadded' directiveTshepang Lekhonkhobe
2013-01-27avoid needless repetitionTshepang Lekhonkhobe
These are already stated on the function definition.
2013-01-27capitalizeTshepang Lekhonkhobe
2013-01-27add missing markupTshepang Lekhonkhobe
2013-01-27capitalizeTshepang Lekhonkhobe
2013-01-27make use of 'versionadded' and 'deprecated' directives in pyramid.viewTshepang Lekhonkhobe
2013-01-25make path API docs a bit more conciseTshepang Lekhonkhobe
2013-01-25replace 'note' with 'versionadded'Tshepang Lekhonkhobe
2013-01-25be a little more conciseTshepang Lekhonkhobe
2013-01-25typoTshepang Lekhonkhobe
2013-01-19user newer API in the exampleTshepang Lekhonkhobe
2013-01-16add missing commaTshepang Lekhonkhobe
2013-01-14Merge pull request #793 from ronnix/patch-4Chris McDonough
Fix forbidden_view_config docstring
2013-01-14Merge pull request #794 from tshepang/flowChris McDonough
improve flow
2013-01-14Merge pull request #796 from tshepang/typosChris McDonough
typo
2013-01-15yet another grammar fixTshepang Lekhonkhobe
2013-01-15improve flowTshepang Lekhonkhobe
2013-01-14grammarTshepang Lekhonkhobe
2013-01-14typoTshepang Lekhonkhobe
2013-01-14Update pyramid/view.pyRonan Amicel
Fix example function name in forbidden_view_config docstring
2013-01-06grammarTshepang Lekhonkhobe
2013-01-02eliminate other repeated wordsTshepang Lekhonkhobe
2013-01-01eliminate repeated "the" wordsTshepang Lekhonkhobe
2012-12-10Merge pull request #738 from ppaez/pep8_scaffoldsChris McDonough
Improve pep8 compliance of scaffolds
2012-12-06make _backframes work like _depth (but still leave undocumented)Chris McDonough
2012-12-06note custom_predicates deprecationChris McDonough
2012-12-06Merge branch '1.4-branch' of github.com:Pylons/pyramid into 1.4-branchChris McDonough
2012-12-06_depth argument to view_config is now relative to view_configMichael Merickel
This hides an implementation detail that view_config is at least 1 level away from user code.
2012-12-01unused importChris McDonough
2012-11-29make scaffolds pep8 compliantGael Pasgrimaud
Conflicts: pyramid/scaffolds/alchemy/+package+/views.py_tmpl pyramid/scaffolds/alchemy/setup.py_tmpl Solved the two conflicts
2012-11-27Merge pull request #732 from ppaez/transaction-dependencyChris McDonough
Transaction dependency in ZODB tutorial
2012-11-21missed adding this fileChris McDonough
2012-11-21fix for py3Chris McDonough
2012-11-21add an integration test for the eventonly behaviorChris McDonough
2012-11-21- In order to normalize the relationship between event subscribers andChris McDonough
subscriber predicates, we now allow both subscribers and subscriber predicates to accept only a single ``event`` argument even if they've been subscribed for notifications that involve multiple interfaces. Subscribers and subscriber predicates that accept only one argument will receive the first object passed to ``notify``; this is typically (but not always) the event object. The other objects involved in the subscription lookup will be discarded. For instance, if an event is sent by code like this:: registry.notify(event, context) In the past, in order to catch such an event, you were obligated to write and register an event subscriber that mentioned both the event and the context in its argument list:: @subscriber([SomeEvent, SomeContextType]) def subscriber(event, context): pass With the event-only feature you can now write an event subscriber that accepts only ``event`` even if it subscribes to multiple interfaces:: @subscriber([SomeEvent, SomeContextType]) def subscriber(event): # this will work! Note, however, that if the event object is not the first object in the call to ``notify``, you'll run into trouble. For example, if notify is called with the context argument first:: registry.notify(context, event) You won't be able to take advantage of the feature. It will "work", but the object received by your event handler won't be the event object, it will be the context object, which won't be very useful:: @subscriber([SomeContextType, SomeEvent]) def subscriber(event): # bzzt! you'll be getting the context here as ``event``, and it'll # be useless Existing multiple-argument subscribers continue to work without issue, so you should continue use those if your system notifies using multiple interfaces and the first interface is not the event interface. For example:: @subscriber([SomeContextType, SomeEvent]) def subscriber(context, event): # this will still work! The event-only feature makes it possible to use a subscriber predicate that accepts only a request argument within both multiple-interface subscriber registrations and single-interface subscriber registrations. In the past, if you had a subscriber predicate like this:: class RequestPathStartsWith(object): def __init__(self, val, config): self.val = val def text(self): return 'path_startswith = %s' % (self.val,) phash = text def __call__(self, event): return event.request.path.startswith(self.val) If you attempted to use the above predicate to condition a subscription that involved multiple interfaces, it would not work. You had to change it to accept the same arguments as the subscription itself. For example, you might have had to change its ``__call__`` method like so, adding a ``context`` argument:: def __call__(self, event, context): return event.request.path.startswith(self.val) With the event-only feature, you needn't make the change. Instead, you can write all predicates so they only accept ``event`` in their ``__call__`` and they'll be useful across all registrations for subscriptions that use an event as their first argument, even ones which accept more than just ``event``. However, the same caveat applies to predicates as to subscriptions: if you're subscribing to a multi-interface event, and the first interface is not the event interface, the predicate won't work properly. In such a case, you'll need to match the predicate ``__call__`` argument ordering and composition to the ordering of the interfaces. For example:: def __call__(self, context, event): return event.request.path.startswith(self.val) tl;dr: 1) Always use the event as the first argument to a multi-interface subscription and 2) Use only ``event`` in your subscriber and subscriber predicate parameter lists, no matter how many interfaces the subscriber is notified with, as long as the event object is the first argument passed to ``registry.notify``. This will result in the maximum amount of reusability of subscriber predicates.
2012-11-20add transaction dependency to zodb scaffoldericrasmussen
2012-11-20Merge branch 'master' into sontek-fix_commandsChris McDonough
2012-11-20coverageChris McDonough
2012-11-20Merge branch 'fix_commands' of git://github.com/sontek/pyramid into ↵Chris McDonough
sontek-fix_commands
2012-11-20- Small microspeed enhancement which anticipates that aChris McDonough
``pyramid.response.Response`` object is likely to be returned from a view. Some code is shortcut if the class of the object returned by a view is this class. A similar microoptimization was done to ``pyramid.request.Request.is_response``.
2012-11-18- A failure when trying to locate the attribute ``__text__`` on route and viewChris McDonough
predicates existed when the ``debug_routematch`` setting was true or when the ``pviews`` command was used. See https://github.com/Pylons/pyramid/pull/727 Closes #727.
2012-11-14Don't use a global mutable and updated the doc string to include optionsJohn Anderson
2012-11-14make an assertion in this testChris McDonough
2012-11-14Merge branch 'fix_commands' of git://github.com/sontek/pyramid into ↵Chris McDonough
sontek-fix_commands
2012-11-14ref #725; indicate how to join the result of render_view_to_iterableChris McDonough
2012-11-13indicate render_view returns a bytestring (see #725)Michael Merickel
2012-11-13simplfied change as response.app_iter must contain bytes per pep 3333Michael Merickel