Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 485 lines (370 sloc) 21.25 kB
5065a51 @pauleveritt Added a note to CHANGES.txt, push the quick tutorial.
pauleveritt authored
1 Unreleased
2 ==========
3
4 Documentation
5 -------------
6
7 - Added a "Quick Tutorial" to go with the Quick Tour
8
97f3660 @mmerickel set custom request methods when doing a pview lookup
mmerickel authored
9 Bug Fixes
10 ---------
11
12 - The ``pviews`` script did not work when a url required custom request
13 methods in order to perform traversal. Custom methods and descriptors added
14 via ``pyramid.config.Configurator.add_request_method`` will now be present,
15 allowing traversal to continue.
16 See https://github.com/Pylons/pyramid/issues/1104
17
18
78b41e5 @mcdonc prep for 1.5a2
mcdonc authored
19 1.5a2 (2013-09-22)
20 ==================
f6f1d16 @mmerickel remove the deprecated request.response_* attributes
mmerickel authored
21
c390f4b @bertjwregeer Add feature update to CHANGES.txt
bertjwregeer authored
22 Features
23 --------
24
cbcd4d2 @mcdonc wording
mcdonc authored
25 - Users can now provide dotted Python names to as the ``factory`` argument
26 the Configurator methods named ``add_{view,route,subscriber}_predicate``
27 (instead of passing the predicate factory directly, you can pass a
28 dotted name which refers to the factory).
c390f4b @bertjwregeer Add feature update to CHANGES.txt
bertjwregeer authored
29
c062d5a @dhellmann Update package_name() to work with namespace pkgs
dhellmann authored
30 Bug Fixes
31 ---------
32
f504ccc @mcdonc add change notes
mcdonc authored
33 - Fix an exception in ``pyramid.path.package_name`` when resolving the package
34 name for namespace packages that had no ``__file__`` attribute.
c062d5a @dhellmann Update package_name() to work with namespace pkgs
dhellmann authored
35
f6f1d16 @mmerickel remove the deprecated request.response_* attributes
mmerickel authored
36 Backwards Incompatibilities
37 ---------------------------
38
0778eea @mcdonc better description of mako/chameleon bw incompat in changelog, update…
mcdonc authored
39 - Pyramid no longer depends on or configures the Mako and Chameleon templating
40 system renderers by default. Disincluding these templating systems by
41 default means that the Pyramid core has fewer dependencies and can run on
42 future platforms without immediate concern for the compatibility of its
43 templating add-ons. It also makes maintenance slightly more effective, as
44 different people can maintain the templating system add-ons that they
45 understand and care about without needing commit access to the Pyramid core,
46 and it allows users who just don't want to see any packages they don't use
47 come along for the ride when they install Pyramid.
82f9702 @mmerickel update changelog
mmerickel authored
48
0778eea @mcdonc better description of mako/chameleon bw incompat in changelog, update…
mcdonc authored
49 This means that upon upgrading to Pyramid 1.5a2+, projects that use either
50 of these templating systems will see a traceback that ends something like
51 this when their application attempts to render a Chameleon or Mako template::
52
53 ValueError: No such renderer factory .pt
54
55 Or::
56
57 ValueError: No such renderer factory .mako
58
59 Or::
60
61 ValueError: No such renderer factory .mak
62
63 Support for Mako templating has been moved into an add-on package named
64 ``pyramid_mako``, and support for Chameleon templating has been moved into
65 an add-on package named ``pyramid_chameleon``. These packages are drop-in
66 replacements for the old built-in support for these templating langauges.
67 All you have to do is install them and make them active in your configuration
68 to register renderer factories for ``.pt`` and/or ``.mako`` (or ``.mak``) to
69 make your application work again.
70
71 To re-add support for Chameleon and/or Mako template renderers into your
72 existing projects, follow the below steps.
73
74 If you depend on Mako templates:
75
76 * Make sure the ``pyramid_mako`` package is installed. One way to do this
77 is by adding ``pyramid_mako`` to the ``install_requires`` section of your
78 package's ``setup.py`` file and afterwards rerunning ``setup.py develop``::
ce138c8 @mmerickel add install_requires example as well
mmerickel authored
79
80 setup(
81 #...
82 install_requires=[
83 'pyramid_mako', # new dependency
84 'pyramid',
85 #...
86 ],
87 )
82f9702 @mmerickel update changelog
mmerickel authored
88
0778eea @mcdonc better description of mako/chameleon bw incompat in changelog, update…
mcdonc authored
89 * Within the portion of your application which instantiates a Pyramid
90 ``pyramid.config.Configurator`` (often the ``main()`` function in
91 your project's ``__init__.py`` file), tell Pyramid to include the
92 ``pyramid_mako`` includeme::
82f9702 @mmerickel update changelog
mmerickel authored
93
0778eea @mcdonc better description of mako/chameleon bw incompat in changelog, update…
mcdonc authored
94 config = Configurator(.....)
82f9702 @mmerickel update changelog
mmerickel authored
95 config.include('pyramid_mako')
96
0778eea @mcdonc better description of mako/chameleon bw incompat in changelog, update…
mcdonc authored
97 If you depend on Chameleon templates:
9ed074e @mmerickel add example of rendering to the changelog
mmerickel authored
98
0778eea @mcdonc better description of mako/chameleon bw incompat in changelog, update…
mcdonc authored
99 * Make sure the ``pyramid_chameleon`` package is installed. One way to do
100 this is by adding ``pyramid_chameleon`` to the ``install_requires`` section
101 of your package's ``setup.py`` file and afterwards rerunning
102 ``setup.py develop``::
9ed074e @mmerickel add example of rendering to the changelog
mmerickel authored
103
0778eea @mcdonc better description of mako/chameleon bw incompat in changelog, update…
mcdonc authored
104 setup(
105 #...
106 install_requires=[
107 'pyramid_chameleon', # new dependency
108 'pyramid',
109 #...
110 ],
111 )
112
113 * Within the portion of your application which instantiates a Pyramid
114 ``~pyramid.config.Configurator`` (often the ``main()`` function in
115 your project's ``__init__.py`` file), tell Pyramid to include the
116 ``pyramid_chameleon`` includeme::
117
118 config = Configurator(.....)
119 config.include('pyramid_chameleon')
82f9702 @mmerickel update changelog
mmerickel authored
120
0778eea @mcdonc better description of mako/chameleon bw incompat in changelog, update…
mcdonc authored
121 Note that it's also fine to install these packages into *older* Pyramids for
122 forward compatibility purposes. Even if you don't upgrade to Pyramid 1.5
123 immediately, performing the above steps in a Pyramid 1.4 installation is
124 perfectly fine, won't cause any difference, and will give you forward
125 compatibility when you eventually do upgrade to Pyramid 1.5.
126
127 With the removal of Mako and Chameleon support from the core, some
128 unit tests that use the ``pyramid.renderers.render*`` methods may begin to
129 fail. If any of your unit tests are invoking either
130 ``pyramid.renderers.render()`` or ``pyramid.renderers.render_to_response()``
131 with either Mako or Chameleon templates then the
132 ``pyramid.config.Configurator`` instance in effect during
133 the unit test should be also be updated to include the addons, as shown
134 above. For example::
135
136 class ATest(unittest.TestCase):
137 def setUp(self):
138 self.config = pyramid.testing.setUp()
139 self.config.include('pyramid_mako')
140
141 def test_it(self):
142 result = pyramid.renderers.render('mypkg:templates/home.mako', {})
143
144 Or::
145
146 class ATest(unittest.TestCase):
147 def setUp(self):
148 self.config = pyramid.testing.setUp()
149 self.config.include('pyramid_chameleon')
150
151 def test_it(self):
152 result = pyramid.renderers.render('mypkg:templates/home.pt', {})
153
154 - If you're using the Pyramid debug toolbar, when you upgrade Pyramid to
155 1.5a2+, you'll also need to upgrade the ``pyramid_debugtoolbar`` package to
156 at least version 1.0.8, as older toolbar versions are not compatible with
157 Pyramid 1.5a2+ due to the removal of Mako support from the core. It's
158 fine to use this newer version of the toolbar code with older Pyramids too.
ec0c5ca @mcdonc add note about requiring a later pyramid_debugtoolbar package if you …
mcdonc authored
159
f6f1d16 @mmerickel remove the deprecated request.response_* attributes
mmerickel authored
160 - Removed the ``request.response_*`` varying attributes. These attributes
161 have been deprecated since Pyramid 1.1, and as per the deprecation policy,
162 have now been removed.
163
027c980 @mcdonc resolve conflicts, reword change entry a bit
mcdonc authored
164 - ``request.response`` will no longer be mutated when using the
165 ``pyramid.renderers.render()`` API. Almost all renderers mutate the
fbdc3a0 @mmerickel s/view execution machinery/generating a response/
mmerickel authored
166 ``request.response`` response object (for example, the JSON renderer sets
167 ``request.response.content_type`` to ``application/json``), but this is
168 only necessary when the renderer is generating a response; it was a bug
169 when it was done as a side effect of calling ``pyramid.renderers.render()``.
3803d92 @mmerickel update render() to preserve the original response object
mmerickel authored
170
f504ccc @mcdonc add change notes
mcdonc authored
171 - Removed the ``bfg2pyramid`` fixer script.
172
fc477b2 @mcdonc - The ``pyramid.events.NewResponse`` event is now sent **after** resp…
mcdonc authored
173 - The ``pyramid.events.NewResponse`` event is now sent **after** response
174 callbacks are executed. It previously executed before response callbacks
175 were executed. Rationale: it's more useful to be able to inspect the response
176 after response callbacks have done their jobs instead of before.
177
2c4f4e3 @mcdonc - Removed the class named ``pyramid.view.static`` that had been depre…
mcdonc authored
178 - Removed the class named ``pyramid.view.static`` that had been deprecated
179 since Pyramid 1.1. Instead use ``pyramid.static.static_view`` with
180 ``use_subpath=True`` argument.
181
780bbf9 @mcdonc - Removed the ``pyramid.view.is_response`` function that had been dep…
mcdonc authored
182 - Removed the ``pyramid.view.is_response`` function that had been deprecated
183 since Pyramid 1.1. Use the ``pyramid.request.Request.is_response`` method
184 instead.
185
fdf30b3 @mcdonc - Removed the ability to pass the following arguments to
mcdonc authored
186 - Removed the ability to pass the following arguments to
6c42933 @mcdonc typo
mcdonc authored
187 ``pyramid.config.Configurator.add_route``: ``view``, ``view_context``.
fdf30b3 @mcdonc - Removed the ability to pass the following arguments to
mcdonc authored
188 ``view_for``, ``view_permission``, ``view_renderer``, and ``view_attr``.
189 Using these arguments had been deprecated since Pyramid 1.1. Instead of
190 passing view-related arguments to ``add_route``, use a separate call to
191 ``pyramid.config.Configurator.add_view`` to associate a view with a route
192 using its ``route_name`` argument. Note that this impacts the
193 ``pyramid.config.Configurator.add_static_view`` function too, because it
194 delegates to ``add_route``.
195
8fe57d8 @mcdonc - Removed the ability to influence and query a ``pyramid.request.Requ…
mcdonc authored
196 - Removed the ability to influence and query a ``pyramid.request.Request``
197 object as if it were a dictionary. Previously it was possible to use methods
198 like ``__getitem__``, ``get``, ``items``, and other dictlike methods to
199 access values in the WSGI environment. This behavior had been deprecated
200 since Pyramid 1.1. Use methods of ``request.environ`` (a real dictionary)
201 instead.
202
95e9711 @mcdonc - Removed ancient backwards compatibily hack in
mcdonc authored
203 - Removed ancient backwards compatibily hack in
204 ``pyramid.traversal.DefaultRootFactory`` which populated the ``__dict__`` of
205 the factory with the matchdict values for compatibility with BFG 0.9.
206
c6601f7 @mcdonc - The ``renderer_globals_factory`` argument to the
mcdonc authored
207 - The ``renderer_globals_factory`` argument to the
208 ``pyramid.config.Configurator` constructor and its ``setup_registry`` method
209 has been removed. The ``set_renderer_globals_factory`` method of
210 ``pyramid.config.Configurator`` has also been removed. The (internal)
211 ``pyramid.interfaces.IRendererGlobals`` interface was also removed. These
212 arguments, methods and interfaces had been deprecated since 1.1. Use a
213 ``BeforeRender`` event subscriber as documented in the "Hooks" chapter of the
214 Pyramid narrative documentation instead of providing renderer globals values
215 to the configurator.
216
75f3857 @mcdonc - The ``pyramid.config.Configurator.set_request_property`` method now…
mcdonc authored
217 Deprecations
218 ------------
219
220 - The ``pyramid.config.Configurator.set_request_property`` method now issues
221 a deprecation warning when used. It had been docs-deprecated in 1.4
222 but did not issue a deprecation warning when used.
223
00bb95f @mcdonc prep for 1.5a1
mcdonc authored
224 1.5a1 (2013-08-30)
225 ==================
2d93140 @mmerickel support acl as a callable
mmerickel authored
226
227 Features
228 --------
229
c5ed549 @mcdonc add HTTPSuccessful base class, allowing HTTPOk to be caught independe…
mcdonc authored
230 - A new http exception subclass named ``pyramid.httpexceptions.HTTPSuccessful``
231 was added. You can use this class as the ``context`` of an exception
232 view to catch all 200-series "exceptions" (e.g. "raise HTTPOk"). This
233 also allows you to catch *only* the ``HTTPOk`` exception itself; previously
234 this was impossible because a number of other exceptions
235 (such as ``HTTPNoContent``) inherited from ``HTTPOk``, but now they do not.
236
0a4aed1 @mcdonc documentation for hybrid url generation
mcdonc authored
237 - You can now generate "hybrid" urldispatch/traversal URLs more easily
c29603e @mcdonc get rid of remainder_name on route, and just default to passing trave…
mcdonc authored
238 by using the new ``route_name``, ``route_kw`` and ``route_remainder_name``
239 arguments to ``request.resource_url`` and ``request.resource_path``. See
240 the new section of the "Combining Traversal and URL Dispatch" documentation
241 chapter entitled "Hybrid URL Generation".
0a4aed1 @mcdonc documentation for hybrid url generation
mcdonc authored
242
1930ebf @mcdonc Permit escaping of double braces in scaffolds, see #862
mcdonc authored
243 - It is now possible to escape double braces in Pyramid scaffolds (unescaped,
244 these represent replacement values). You can use ``\{\{a\}\}`` to
245 represent a "bare" ``{{a}}``. See
246 https://github.com/Pylons/pyramid/pull/862
247
330164c @mcdonc make local_name an attribute of Request, move logic from get_localize…
mcdonc authored
248 - Add ``localizer`` and ``locale_name`` properties (reified) to the request.
249 See https://github.com/Pylons/pyramid/issues/508. Note that the
250 ``pyramid.i18n.get_localizer`` and ``pyramid.i18n.get_locale_name`` functions
251 now simply look up these properties on the request.
c614ffc @witsch add ``localizer`` property to the request (refs #508)
witsch authored
252
b210ce3 @mcdonc add pdistreport command
mcdonc authored
253 - Add ``pdistreport`` script, which prints the Python version in use, the
254 Pyramid version in use, and the version number and location of all Python
255 distributions currently installed.
256
32333e4 @mcdonc add not_ predicate feature
mcdonc authored
257 - Add the ability to invert the result of any view, route, or subscriber
258 predicate using the ``not_`` class. For example::
259
260 from pyramid.config import not_
261
262 @view_config(route_name='myroute', request_method=not_('POST'))
263 def myview(request): ...
264
265 The above example will ensure that the view is called if the request method
266 is not POST (at least if no other view is more specific).
267
5e8eadb @mcdonc fix rst rendering of changes
mcdonc authored
268 The ``pyramid.config.not_`` class can be used against any value that is
32333e4 @mcdonc add not_ predicate feature
mcdonc authored
269 a predicate value passed in any of these contexts:
270
271 - ``pyramid.config.Configurator.add_view``
272
273 - ``pyramid.config.Configurator.add_route``
274
275 - ``pyramid.config.Configurator.add_subscriber``
276
277 - ``pyramid.view.view_config``
278
279 - ``pyramid.events.subscriber``
280
a178631 @mcdonc add an entry to changes about code merged from feature.prequest_login…
mcdonc authored
281 - ``scripts/prequest.py``: add support for submitting ``PUT`` and ``PATCH``
282 requests. See https://github.com/Pylons/pyramid/pull/1033. add support for
0d96b77 @mcdonc version bump in setup.py conf.py CHANGES.txt, rejigger changes bugs v…
mcdonc authored
283 submitting ``OPTIONS`` and ``PROPFIND`` requests, and allow users to specify
a178631 @mcdonc add an entry to changes about code merged from feature.prequest_login…
mcdonc authored
284 basic authentication credentials in the request via a ``--login`` argument to
285 the script. See https://github.com/Pylons/pyramid/pull/1039.
f0f92b0 @tseaver Changelog for PR #1033.
tseaver authored
286
2d93140 @mmerickel support acl as a callable
mmerickel authored
287 - ``ACLAuthorizationPolicy`` supports ``__acl__`` as a callable. This
288 removes the ambiguity between the potential ``AttributeError`` that would
289 be raised on the ``context`` when the property was not defined and the
290 ``AttributeError`` that could be raised from any user-defined code within
291 a dynamic property. It is recommended to define a dynamic ACL as a callable
292 to avoid this ambiguity. See https://github.com/Pylons/pyramid/issues/735.
293
ff41f86 @wosc Fixes #798: Allow a protocol-relative URL to be passed to add_static_…
wosc authored
294 - Allow a protocol-relative URL (e.g. ``//example.com/images``) to be passed to
295 ``pyramid.config.Configurator.add_static_view``. This allows
296 externally-hosted static URLs to be generated based on the current protocol.
297
a1f768c @wichert Allow explicit cookie domain setting.
wichert authored
298 - The ``AuthTktAuthenticationPolicy`` has two new options to configure its
299 domain usage:
58c5fef @tshepang fix some rST issues
tshepang authored
300
a1f768c @wichert Allow explicit cookie domain setting.
wichert authored
301 * ``parent_domain``: if set the authentication cookie is set on
302 the parent domain. This is useful if you have multiple sites sharing the
303 same domain.
304 * ``domain``: if provided the cookie is always set for this domain, bypassing
58c5fef @tshepang fix some rST issues
tshepang authored
305 all usual logic.
306
3ea7883 @tomster Add reference to the pull requests
tomster authored
307 See https://github.com/Pylons/pyramid/pull/1028,
308 https://github.com/Pylons/pyramid/pull/1072 and
309 https://github.com/Pylons/pyramid/pull/1078.
188aa7e @wichert Add a parent_domain option for auth_tkt policy
wichert authored
310
23a7c6d @mmerickel update CHANGES.txt
mmerickel authored
311 - The ``AuthTktAuthenticationPolicy`` now supports IPv6 addresses when using
312 the ``include_ip=True`` option. This is possibly incompatible with
313 alternative ``auth_tkt`` implementations, as the specification does not
314 define how to properly handle IPv6. See
315 https://github.com/Pylons/pyramid/issues/831.
316
38844f7 @mmerickel update CHANGES.txt
mmerickel authored
317 - Make it possible to use variable arguments via
318 ``pyramid.paster.get_appsettings``. This also allowed the generated
319 ``initialize_db`` script from the ``alchemy`` scaffold to grow support
320 for options in the form ``a=1 b=2`` so you can fill in
321 values in a parameterized ``.ini`` file, e.g.
322 ``initialize_myapp_db etc/development.ini a=1 b=2``.
323 See https://github.com/Pylons/pyramid/pull/911
324
fab8454 @mcdonc add changelog note
mcdonc authored
325 - The ``request.session.check_csrf_token()`` method and the ``check_csrf`` view
326 predicate now take into account the value of the HTTP header named
327 ``X-CSRF-Token`` (as well as the ``csrf_token`` form parameter, which they
328 always did). The header is tried when the form parameter does not exist.
329
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
330 - View lookup will now search for valid views based on the inheritance
331 hierarchy of the context. It tries to find views based on the most
332 specific context first, and upon predicate failure, will move up the
333 inheritance chain to test views found by the super-type of the context.
334 In the past, only the most specific type containing views would be checked
335 and if no matching view could be found then a PredicateMismatch would be
336 raised. Now predicate mismatches don't hide valid views registered on
5e8eadb @mcdonc fix rst rendering of changes
mcdonc authored
337 super-types. Here's an example that now works::
9e1e6d3 @latteier Change log note.
latteier authored
338
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
339 class IResource(Interface):
07c189d @stevepiercy Fix whitespace in CHANGES.txt to permit build.
stevepiercy authored
340
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
341 ...
9e1e6d3 @latteier Change log note.
latteier authored
342
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
343 @view_config(context=IResource)
344 def get(context, request):
07c189d @stevepiercy Fix whitespace in CHANGES.txt to permit build.
stevepiercy authored
345
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
346 ...
9e1e6d3 @latteier Change log note.
latteier authored
347
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
348 @view_config(context=IResource, request_method='POST')
349 def post(context, request):
07c189d @stevepiercy Fix whitespace in CHANGES.txt to permit build.
stevepiercy authored
350
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
351 ...
9e1e6d3 @latteier Change log note.
latteier authored
352
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
353 @view_config(context=IResource, request_method='DELETE')
354 def delete(context, request):
07c189d @stevepiercy Fix whitespace in CHANGES.txt to permit build.
stevepiercy authored
355
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
356 ...
9e1e6d3 @latteier Change log note.
latteier authored
357
e01b1ca @mcdonc update whatsnew
mcdonc authored
358 @implementer(IResource)
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
359 class MyResource:
07c189d @stevepiercy Fix whitespace in CHANGES.txt to permit build.
stevepiercy authored
360
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
361 ...
9e1e6d3 @latteier Change log note.
latteier authored
362
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
363 @view_config(context=MyResource, request_method='POST')
364 def override_post(context, request):
07c189d @stevepiercy Fix whitespace in CHANGES.txt to permit build.
stevepiercy authored
365
b6a4d40 @mmerickel Merge branch 'master' of latteier/pyramid into pull.786
mmerickel authored
366 ...
9e1e6d3 @latteier Change log note.
latteier authored
367
368 Previously the override_post view registration would hide the get
369 and delete views in the context of MyResource -- leading to a
370 predicate mismatch error when trying to use GET or DELETE
371 methods. Now the views are found and no predicate mismatch is
372 raised.
6b97003 @mmerickel update changlog
mmerickel authored
373 See https://github.com/Pylons/pyramid/pull/786 and
75fc4ac @mmerickel update changelog
mmerickel authored
374 https://github.com/Pylons/pyramid/pull/1004 and
375 https://github.com/Pylons/pyramid/pull/1046
9e1e6d3 @latteier Change log note.
latteier authored
376
1377480 @mcdonc add change note
mcdonc authored
377 - The ``pserve`` command now takes a ``-v`` (or ``--verbose``) flag and a
378 ``-q`` (or ``--quiet``) flag. Output from running ``pserve`` can be
379 controlled using these flags. ``-v`` can be specified multiple times to
380 increase verbosity. ``-q`` sets verbosity to ``0`` unconditionally. The
381 default verbosity level is ``1``.
382
986dc5f @mcdonc add change note
mcdonc authored
383 - The ``alchemy`` scaffold tests now provide better coverage. See
384 https://github.com/Pylons/pyramid/pull/1029
385
d07d167 @mcdonc raise ValueError instead of generating just path when _app_url is pro…
mcdonc authored
386 - The ``pyramid.config.Configurator.add_route`` method now supports being
387 called with an external URL as pattern. See
67674f9 @mcdonc point at docs section
mcdonc authored
388 https://github.com/Pylons/pyramid/issues/611 and the documentation section
389 in the "URL Dispatch" chapter entitled "External Routes" for more information.
8a8eff5 @tomster update changelog
tomster authored
390
0d96b77 @mcdonc version bump in setup.py conf.py CHANGES.txt, rejigger changes bugs v…
mcdonc authored
391 Bug Fixes
392 ---------
393
97ed56d @mcdonc allow exception view registrations for HTTPException to override defa…
mcdonc authored
394 - It was not possible to use ``pyramid.httpexceptions.HTTPException`` as
395 the ``context`` of an exception view as very general catchall for
396 http-related exceptions when you wanted that exception view to override the
397 default exception view. See https://github.com/Pylons/pyramid/issues/985
398
8a7e80d @mcdonc - When the ``pyramid.reload_templates`` setting was true, and a Chame…
mcdonc authored
399 - When the ``pyramid.reload_templates`` setting was true, and a Chameleon
400 template was reloaded, and the renderer specification named a macro
401 (e.g. ``foo#macroname.pt``), renderings of the template after the template
402 was reloaded due to a file change would produce the entire template body
403 instead of just a rendering of the macro. See
404 https://github.com/Pylons/pyramid/issues/1013.
405
ece96f6 @mcdonc - Fix an obscure problem when combining a virtual root with a route w…
mcdonc authored
406 - Fix an obscure problem when combining a virtual root with a route with a
407 ``*traverse`` in its pattern. Now the traversal path generated in
408 such a configuration will be correct, instead of an element missing
409 a leading slash.
410
24c9326 @blaflamme added bug fix to changes
blaflamme authored
411 - Fixed a Mako renderer bug returning a tuple with a previous defname value
3de54e3 @blaflamme fixed line indentation
blaflamme authored
412 in some circumstances. See https://github.com/Pylons/pyramid/issues/1037
413 for more information.
24c9326 @blaflamme added bug fix to changes
blaflamme authored
414
0d96b77 @mcdonc version bump in setup.py conf.py CHANGES.txt, rejigger changes bugs v…
mcdonc authored
415 - Make the ``pyramid.config.assets.PackageOverrides`` object implement the API
416 for ``__loader__`` objects specified in PEP 302. Proxies to the
417 ``__loader__`` set by the importer, if present; otherwise, raises
418 ``NotImplementedError``. This makes Pyramid static view overrides work
419 properly under Python 3.3 (previously they would not). See
420 https://github.com/Pylons/pyramid/pull/1015 for more information.
421
422 - ``mako_templating``: added defensive workaround for non-importability of
423 ``mako`` due to upstream ``markupsafe`` dropping Python 3.2 support. Mako
424 templating will no longer work under the combination of MarkupSafe 0.17 and
425 Python 3.2 (although the combination of MarkupSafe 0.17 and Python 3.3 or any
426 supported Python 2 version will work OK).
427
ea278e1 @mmerickel update changelog
mmerickel authored
428 - Spaces and dots may now be in mako renderer template paths. This was
429 broken when support for the new makodef syntax was added in 1.4a1.
430 See https://github.com/Pylons/pyramid/issues/950
431
20c57e6 @mmerickel update changelog
mmerickel authored
432 - ``pyramid.debug_authorization=true`` will now correctly print out
433 ``Allowed`` for views registered with ``NO_PERMISSION_REQUIRED`` instead
434 of invoking the ``permits`` method of the authorization policy.
435 See https://github.com/Pylons/pyramid/issues/954
436
c35b298 @mmerickel update changes.txt
mmerickel authored
437 - Pyramid failed to install on some systems due to being packaged with
438 some test files containing higher order characters in their names. These
439 files have now been removed. See
440 https://github.com/Pylons/pyramid/issues/981
441
050b71c @mcdonc - ``pyramid.testing.DummyResource`` didn't define ``__bool__``, so co…
mcdonc authored
442 - ``pyramid.testing.DummyResource`` didn't define ``__bool__``, so code under
0d96b77 @mcdonc version bump in setup.py conf.py CHANGES.txt, rejigger changes bugs v…
mcdonc authored
443 Python 3 would use ``__len__`` to find truthiness; this usually caused an
444 instance of DummyResource to be "falsy" instead of "truthy". See
445 https://github.com/Pylons/pyramid/pull/1032
050b71c @mcdonc - ``pyramid.testing.DummyResource`` didn't define ``__bool__``, so co…
mcdonc authored
446
0a8d50f @mcdonc add change note
mcdonc authored
447 - The ``alchemy`` scaffold would break when the database was MySQL during
448 tables creation. See https://github.com/Pylons/pyramid/pull/1049
449
6a4a341 @odontomachus Fixed documentation width, signed contributors agreement and added a …
odontomachus authored
450 - The ``current_route_url`` method now attaches the query string to the URL by
451 default. See
0f1bc52 @odontomachus Updated CHANGES
odontomachus authored
452 https://github.com/Pylons/pyramid/issues/1040
453
d6e8b86 @tomster Make ``pserve.cherrypy_server_runner`` Python 3 compatible.
tomster authored
454 - Make ``pserve.cherrypy_server_runner`` Python 3 compatible. See
455 https://github.com/Pylons/pyramid/issues/718
456
33e0fe1 @odontomachus Fixes to documentation, added change to what's new.
odontomachus authored
457 Backwards Incompatibilities
458 ---------------------------
459
6a4a341 @odontomachus Fixed documentation width, signed contributors agreement and added a …
odontomachus authored
460 - Modified the ``current_route_url`` method in pyramid.Request. The method
461 previously returned the URL without the query string by default, it now does
462 attach the query string unless it is overriden.
33e0fe1 @odontomachus Fixes to documentation, added change to what's new.
odontomachus authored
463
58951c0 @mcdonc - The ``route_url`` and ``route_path`` APIs no longer quote ``/``
mcdonc authored
464 - The ``route_url`` and ``route_path`` APIs no longer quote ``/``
465 to ``%2F`` when a replacement value contains a ``/``. This was pointless,
466 as WSGI servers always unquote the slash anyway, and Pyramid never sees the
467 quoted value.
468
330164c @mcdonc make local_name an attribute of Request, move logic from get_localize…
mcdonc authored
469 - It is no longer possible to set a ``locale_name`` attribute of the request,
470 nor is it possible to set a ``localizer`` attribute of the request. These
471 are now "reified" properties that look up a locale name and localizer
472 respectively using the machinery described in the "Internationalization"
473 chapter of the documentation.
474
db0185f @mcdonc first cut at hybrid url generation; still needs tests for resource_ur…
mcdonc authored
475 - If you send an ``X-Vhm-Root`` header with a value that ends with a slash (or
476 any number of slashes), the trailing slash(es) will be removed before a URL
477 is generated when you use use ``request.resource_url`` or
478 ``request.resource_path``. Previously the virtual root path would not have
479 trailing slashes stripped, which would influence URL generation.
480
481 - The ``pyramid.interfaces.IResourceURL`` interface has now grown two new
482 attributes: ``virtual_path_tuple`` and ``physical_path_tuple``. These should
483 be the tuple form of the resource's path (physical and virtual).
484
Something went wrong with that request. Please try again.