Skip to content

Latest commit

 

History

History
210 lines (166 loc) · 9.13 KB

CHANGES.rst

File metadata and controls

210 lines (166 loc) · 9.13 KB

unreleased

Bug Fixes

  • Fix the pyramid.testing.DummyRequest to support the new request.accept API so that acceptable_offers is available even when code sets the value to a string. See #3396
  • Fix deprecated escape sequences in preparation for Python 3.8. See #3400

1.10a1 (2018-10-15)

Features

  • Add a _depth and _category arguments to all of the venusian decorators. The _category argument can be used to affect which actions are registered when performing a config.scan(..., category=...) with a specific category. The _depth argument should be used when wrapping the decorator in your own. This change affects pyramid.view.view_config, pyramid.view.exception_view_config, pyramid.view.forbidden_view_config, pyramid.view.notfound_view_config, pyramid.events.subscriber and pyramid.response.response_adapter decorators. See #3105 and #3122
  • Fix the pyramid.request.Request class name after using set_property or config.add_request_method such that the str(request.__class__) would appear as pyramid.request.Request instead of pyramid.util.Request. See #3129
  • In cherrypy_server_runner, prefer imports from the cheroot package over the legacy imports from cherrypy.wsgiserver. See #3235
  • Add a context manager route_prefix_context to the pyramid.config.Configurator to allow for convenient setting of the route_prefix for include and add_route calls inside the context. See #3279
  • Modify the builtin session implementations to support SameSite options on cookies and set the default to 'Lax'. This affects pyramid.session.BaseCookieSessionFactory, pyramid.session.SignedCookieSessionFactory, and pyramid.session.UnencryptedCookieSessionFactoryConfig. See #3300
  • Modify pyramid.authentication.AuthTktAuthenticationPolicy and pyramid.csrf.CookieCSRFStoragePolicy to support the SameSite option on cookies and set the default to 'Lax'. See #3319
  • Added new pyramid.httpexceptions.HTTPPermanentRedirect exception/response object for a HTTP 308 redirect. See #3302
  • Within pshell, allow the user-defined setup function to be a generator, in which case it may wrap the command's lifecycle. See #3318
  • Within pshell, variables defined by the [pshell] settings are available within the user-defined setup function. See #3318
  • Add support for Python 3.7. Add testing on Python 3.8 with allowed failures. See #3333
  • Added the pyramid.config.Configurator.add_accept_view_order directive, allowing users to specify media type preferences in ambiguous situations such as when several views match. A default ordering is defined for media types that prefers human-readable html/text responses over JSON. See #3326
  • Support a list of media types in the accept predicate used in pyramid.config.Configurator.add_route. See #3326
  • Added pyramid.session.JSONSerializer. See "Upcoming Changes to ISession in Pyramid 2.0" in the "Sessions" chapter of the documentation for more information about this feature. See #3353
  • Add a registry argument to pyramid.renderers.get_renderer to allow users to avoid threadlocals during renderer lookup. See #3358
  • Pyramid's test suite is no longer distributed with the universal wheel. See #3387
  • All Python code is now formatted automatically using black. See #3388

Bug Fixes

  • Set appropriate code and title attributes on the HTTPClientError and HTTPServerError exception classes. This prevents inadvertently returning a 520 error code. See #3280
  • Replace webob.acceptparse.MIMEAccept from WebOb with webob.acceptparse.create_accept_header in the HTTP exception handling code. The old MIMEAccept has been deprecated. The new methods follow the RFC's more closely. See #3251
  • Catch extra errors like AttributeError when unpickling "trusted" session cookies with bad pickle data in them. This would occur when sharing a secret between projects that shouldn't actually share session cookies, like when reusing secrets between projects in development. See #3325

Deprecations

  • The pyramid.intefaces.ISession interface will move to require JSON-serializable objects in Pyramid 2.0. See "Upcoming Changes to ISession in Pyramid 2.0" in the "Sessions" chapter of the documentation for more information about this change. See #3353
  • The pyramid.session.signed_serialize and pyramid.session.signed_deserialize functions will be removed in Pyramid 2.0, along with the removal of pyramid.session.UnencryptedCookieSessionFactoryConfig which was deprecated in Pyramid 1.5. Please switch to using the SignedCookieSessionFactory, copying the code, or another session implementation if you're still using these features. See #3353
  • Media ranges are deprecated in the accept argument of pyramid.config.Configurator.add_route. Use a list of explicit media types to add_route to support multiple types.
  • Media ranges are deprecated in the accept argument of pyramid.config.Configurator.add_view. There is no replacement for ranges to add_view, but after much discussion the workflow is fundamentally ambiguous in the face of various client-supplied values for the Accept header. See #3326

Backward Incompatibilities

  • On Python 3.4+ the repoze.lru dependency is dropped. If you were using this package directly in your apps you should make sure that you are depending on it directly within your project. See #3140
  • Remove the permission argument from pyramid.config.Configurator.add_route. This was an argument left over from a feature removed in Pyramid 1.5 and has had no effect since then. See #3299
  • Modify the builtin session implementations to set SameSite='Lax' on cookies. This affects pyramid.session.BaseCookieSessionFactory, pyramid.session.SignedCookieSessionFactory, and pyramid.session.UnencryptedCookieSessionFactoryConfig. See #3300
  • Variables defined in the [pshell] section of the settings will no longer override those set by the setup function. See #3318
  • pyramid.config.Configurator.add_notfound_view uses default redirect class exception pyramid.httpexceptions.HTTPTemporaryRedirect instead of previous pyramid.httpexceptions.HTTPFound. See #3328
  • Removed pyramid.config.Configurator.set_request_property which had been deprecated since Pyramid 1.5. Instead use pyramid.config.Configurator.add_request_method with reify=True or property=True. See #3368
  • Removed the principal keyword argument from pyramid.security.remember which had been deprecated since Pyramid 1.6 and replaced by the userid argument. See #3369
  • Removed the pyramid.tests subpackage that used to contain the Pyramid test suite. These changes also changed the format of the repository to move the code into a src folder. See #3387

Documentation Changes