[Python-modules-commits] [python-pyramid] 02/04: New upstream version 1.9.1+dfsg
Takaki Taniguchi
takaki at moszumanska.debian.org
Mon Jul 17 10:00:16 UTC 2017
This is an automated email from the git hooks/post-receive script.
takaki pushed a commit to branch master
in repository python-pyramid.
commit 67611bfe6ce9fa86d91d80ce94d2586aa18d802e
Author: TANIGUCHI Takaki <takaki at debian.org>
Date: Mon Jul 17 18:44:19 2017 +0900
New upstream version 1.9.1+dfsg
---
.travis.yml | 4 +
CHANGES.txt | 472 ++++++++-----------
CONTRIBUTORS.txt | 18 +
HACKING.txt | 2 +-
HISTORY.txt | 305 +++++++++++++
PKG-INFO | 503 +++++++++------------
README.rst | 26 +-
RELEASING.txt | 49 +-
TODO.txt | 2 -
contributing.md | 10 +-
pyramid.egg-info/PKG-INFO | 503 +++++++++------------
pyramid.egg-info/SOURCES.txt | 5 +
pyramid.egg-info/requires.txt | 2 +
pyramid/authentication.py | 12 +-
pyramid/config/__init__.py | 52 ++-
pyramid/config/factories.py | 25 +
pyramid/config/security.py | 36 +-
pyramid/config/settings.py | 1 +
pyramid/config/util.py | 81 +---
pyramid/config/views.py | 27 +-
pyramid/csrf.py | 332 ++++++++++++++
pyramid/encode.py | 45 +-
pyramid/events.py | 25 +-
pyramid/httpexceptions.py | 2 +-
pyramid/interfaces.py | 126 +++++-
pyramid/paster.py | 59 +--
pyramid/predicates.py | 2 +-
pyramid/registry.py | 4 +-
pyramid/renderers.py | 5 +-
pyramid/request.py | 2 +-
pyramid/response.py | 30 +-
pyramid/router.py | 106 +++--
pyramid/scaffolds/__init__.py | 8 +-
.../alchemy/+package+/models/__init__.py_tmpl | 1 +
.../alchemy/+package+/templates/layout.jinja2_tmpl | 12 +-
pyramid/scaffolds/alchemy/development.ini_tmpl | 6 +-
pyramid/scaffolds/alchemy/production.ini_tmpl | 4 +-
.../starter/+package+/templates/layout.jinja2_tmpl | 12 +-
pyramid/scaffolds/starter/development.ini_tmpl | 6 +-
pyramid/scaffolds/starter/production.ini_tmpl | 4 +-
pyramid/scaffolds/zodb/+package+/__init__.py | 2 +
.../zodb/+package+/templates/mytemplate.pt_tmpl | 12 +-
pyramid/scaffolds/zodb/development.ini_tmpl | 6 +-
pyramid/scaffolds/zodb/production.ini_tmpl | 4 +-
pyramid/scripts/common.py | 27 +-
pyramid/scripts/prequest.py | 19 +-
pyramid/scripts/proutes.py | 35 +-
pyramid/scripts/pserve.py | 142 +++---
pyramid/scripts/pshell.py | 31 +-
pyramid/scripts/ptweens.py | 8 +-
pyramid/scripts/pviews.py | 10 +-
pyramid/security.py | 114 +++--
pyramid/session.py | 169 +------
pyramid/testing.py | 1 +
pyramid/tests/pkgs/subrequestapp/__init__.py | 4 +-
pyramid/tests/test_config/test_factories.py | 19 +-
pyramid/tests/test_config/test_init.py | 26 ++
pyramid/tests/test_config/test_settings.py | 25 +-
pyramid/tests/test_config/test_util.py | 204 +--------
pyramid/tests/test_config/test_views.py | 4 +-
pyramid/tests/test_csrf.py | 406 +++++++++++++++++
pyramid/tests/test_encode.py | 11 +-
pyramid/tests/test_events.py | 15 +-
pyramid/tests/test_httpexceptions.py | 6 +
pyramid/tests/test_integration.py | 30 +-
pyramid/tests/test_paster.py | 190 +++-----
pyramid/tests/test_renderers.py | 8 +
pyramid/tests/test_response.py | 21 +-
pyramid/tests/test_router.py | 109 +++--
.../+package+/templates/mytemplate.pt_tmpl | 2 +-
pyramid/tests/test_scripts/dummy.py | 70 ++-
pyramid/tests/test_scripts/test_prequest.py | 62 +--
pyramid/tests/test_scripts/test_proutes.py | 74 +--
pyramid/tests/test_scripts/test_pserve.py | 102 +++--
pyramid/tests/test_scripts/test_pshell.py | 55 +--
pyramid/tests/test_scripts/test_ptweens.py | 3 +-
pyramid/tests/test_scripts/test_pviews.py | 3 +-
pyramid/tests/test_security.py | 28 +-
pyramid/tests/test_session.py | 138 ------
pyramid/tests/test_tweens.py | 17 +-
pyramid/tests/test_url.py | 32 ++
pyramid/tests/test_util.py | 200 +++++++-
pyramid/tests/test_view.py | 117 ++++-
pyramid/tests/test_viewderivers.py | 1 +
pyramid/threadlocal.py | 29 +-
pyramid/tweens.py | 76 ++--
pyramid/url.py | 180 +++-----
pyramid/util.py | 61 ++-
pyramid/view.py | 144 ++++--
pyramid/viewderivers.py | 17 +-
setup.cfg | 4 +
setup.py | 19 +-
92 files changed, 3624 insertions(+), 2394 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index b0e63ba..ffc6caa 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -31,6 +31,10 @@ install:
script:
- travis_retry tox
+cache:
+ directories:
+ - $HOME/.cache/pip
+
notifications:
email:
- pyramid-checkins at lists.repoze.org
diff --git a/CHANGES.txt b/CHANGES.txt
index 9729019..e00fdbd 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,308 +1,222 @@
-.. _changes_1.8.1:
+.. _changes_1.9.1:
-1.8.1 (2017-01-24)
+1.9.1 (2017-07-13)
==================
-- Restore the ``pyramid.registry.Registry`` signature that forwards extra
- ``*args, **kwargs`` to ``zope.interface.registry.Components`` allowing
- implementations to specify a custom registry with ``bases``.
- See https://github.com/Pylons/pyramid/pull/2918
-
-1.8 (2017-01-21)
+- 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 https://github.com/Pylons/pyramid/pull/3121 and
+ https://github.com/Pylons/pyramid/pull/3123
+
+- Fix a circular import which made it impossible to import
+ ``pyramid.viewderivers`` before ``pyramid.config``.
+ See https://github.com/Pylons/pyramid/pull/3124
+
+- Improve documentation to show the ``pyramid.config.Configurator`` being
+ used as a context manager in more places.
+ See https://github.com/Pylons/pyramid/pull/3126
+
+1.9 (2017-06-26)
================
-- No major changes from 1.8b1.
-
-1.8b1 (2017-01-17)
-==================
-
-Features
---------
-
-- Added an ``override`` option to ``config.add_translation_dirs`` to allow
- later calls to place translation directories at a higher priority than
- earlier calls. See https://github.com/Pylons/pyramid/pull/2902
-
-Documentation Changes
----------------------
-
-- Improve registry documentation to discuss uses as a component registry
- and as a dictionary. See https://github.com/Pylons/pyramid/pull/2893
-
-- Quick Tour, Quick Tutorial, and most other remaining documentation updated to
- use cookiecutters instead of pcreate and scaffolds.
- See https://github.com/Pylons/pyramid/pull/2888 and
- https://github.com/Pylons/pyramid/pull/2889
-
-- Fix unittests in wiki2 to work without different dependencies between
- py2 and py3. See https://github.com/Pylons/pyramid/pull/2899
+- No major changes from 1.9b1.
-- Update Windows documentation to track newer Python 3 improvements to the
- installer. See https://github.com/Pylons/pyramid/pull/2900
+- Updated documentation links for ``docs.pylonsproject.org`` to use HTTPS.
-- Updated the ``mod_wsgi`` tutorial to use cookiecutters and Apache 2.4+.
- See https://github.com/Pylons/pyramid/pull/2901
+1.9b1 (2017-06-19)
+==================
-1.8a1 (2016-12-25)
+- Add an informative error message when unknown predicates are supplied. The
+ new message suggests alternatives based on the list of known predicates.
+ See https://github.com/Pylons/pyramid/pull/3054
+
+- Added integrity attributes for JavaScripts in cookiecutters, scaffolds, and
+ resulting source files in tutorials.
+ See https://github.com/Pylons/pyramid/issues/2548
+
+- Update RELEASING.txt for updating cookiecutters. Change cookiecutter URLs to
+ use shortcut.
+ See https://github.com/Pylons/pyramid/issues/3042
+
+- Ensure the correct threadlocals are pushed during view execution when
+ invoked from ``request.invoke_exception_view``.
+ See https://github.com/Pylons/pyramid/pull/3060
+
+- Fix a bug in which ``pyramid.security.ALL_PERMISSIONS`` failed to return
+ a valid iterator in its ``__iter__`` implementation.
+ See https://github.com/Pylons/pyramid/pull/3074
+
+- Normalize the permission results to a proper class hierarchy.
+ ``pyramid.security.ACLAllowed`` is now a subclass of
+ ``pyramid.security.Allowed`` and ``pyramid.security.ACLDenied`` is now a
+ subclass of ``pyramid.security.Denied``.
+ See https://github.com/Pylons/pyramid/pull/3084
+
+- Add a ``quote_via`` argument to ``pyramid.encode.urlencode`` to follow
+ the stdlib's version and enable custom quoting functions.
+ See https://github.com/Pylons/pyramid/pull/3088
+
+- Support `_query=None` and `_anchor=None` in ``request.route_url`` as well
+ as ``query=None`` and ``anchor=None`` in ``request.resource_url``.
+ Previously this would cause an `?` and a `#`, respectively, in the url
+ with nothing after it. Now the unnecessary parts are dropped from the
+ generated URL. See https://github.com/Pylons/pyramid/pull/3034
+
+- Revamp the ``IRouter`` API used by ``IExecutionPolicy`` to force
+ pushing/popping the request threadlocals. The
+ ``IRouter.make_request(environ)`` API has been replaced by
+ ``IRouter.request_context(environ)`` which should be used as a context
+ manager. See https://github.com/Pylons/pyramid/pull/3086
+
+1.9a2 (2017-05-09)
==================
Backward Incompatibilities
--------------------------
-- Support for the ``IContextURL`` interface that was deprecated in Pyramid 1.3
- has been removed. See https://github.com/Pylons/pyramid/pull/2822
-
-- Following the Pyramid deprecation period (1.6 -> 1.8),
- daemon support for pserve has been removed. This includes removing the
- daemon commands (start, stop, restart, status) as well as the following
- arguments: ``--daemon``, ``--pid-file``, ``--log-file``,
- ``--monitor-restart``, ``--status``, ``--user``, ``--group``,
- ``--stop-daemon``
-
- To run your server as a daemon you should use a process manager instead of
- pserve.
-
- See https://github.com/Pylons/pyramid/pull/2615
-
-- ``pcreate`` is now interactive by default. You will be prompted if a file
- already exists with different content. Previously if there were similar
- files it would silently skip them unless you specified ``--interactive``
- or ``--overwrite``.
- See https://github.com/Pylons/pyramid/pull/2775
-
-- Removed undocumented argument ``cachebust_match`` from
- ``pyramid.static.static_view``. This argument was shipped accidentally
- in Pyramid 1.6. See https://github.com/Pylons/pyramid/pull/2681
-
-- Change static view to avoid setting the ``Content-Encoding`` response header
- to an encoding guessed using Python's ``mimetypes`` module. This was causing
- clients to decode the content of gzipped files when downloading them. The
- client would end up with a ``foo.txt.gz`` file on disk that was already
- decoded, thus should really be ``foo.txt``. Also, the ``Content-Encoding``
- should only have been used if the client itself broadcast support for the
- encoding via ``Accept-Encoding`` request headers.
- See https://github.com/Pylons/pyramid/pull/2810
-
-- Settings are no longer accessible as attributes on the settings object
- (e.g. ``request.registry.settings.foo``). This was deprecated in Pyramid 1.2.
- See https://github.com/Pylons/pyramid/pull/2823
-
-Features
---------
-
-- Python 3.6 compatibility.
- https://github.com/Pylons/pyramid/issues/2835
-
-- ``pcreate`` learned about ``--package-name`` to allow you to create a new
- project in an existing folder with a different package name than the project
- name. See https://github.com/Pylons/pyramid/pull/2783
-
-- The ``_get_credentials`` private method of ``BasicAuthAuthenticationPolicy``
- has been extracted into standalone function ``extract_http_basic_credentials``
- in ``pyramid.authentication`` module, this function extracts HTTP Basic
- credentials from a ``request`` object, and returns them as a named tuple.
- See https://github.com/Pylons/pyramid/pull/2662
-
-- Pyramid 1.4 silently dropped a feature of the configurator that has been
- restored. It's again possible for action discriminators to conflict across
- different action orders.
- See https://github.com/Pylons/pyramid/pull/2757
-
-- ``pyramid.paster.bootstrap`` and its sibling ``pyramid.scripting.prepare``
- can now be used as context managers to automatically invoke the ``closer``
- and pop threadlocals off of the stack to prevent memory leaks.
- See https://github.com/Pylons/pyramid/pull/2760
-
-- Added ``pyramid.config.Configurator.add_exception_view`` and the
- ``pyramid.view.exception_view_config`` decorator. It is now possible using
- these methods or via the new ``exception_only=True`` option to ``add_view``
- to add a view which will only be matched when handling an exception.
- Previously any exception views were also registered for a traversal
- context that inherited from the exception class which prevented any
- exception-only optimizations.
- See https://github.com/Pylons/pyramid/pull/2660
-
-- Added the ``exception_only`` boolean to
- ``pyramid.interfaces.IViewDeriverInfo`` which can be used by view derivers
- to determine if they are wrapping a view which only handles exceptions.
- This means that it is no longer necessary to perform request-time checks
- for ``request.exception`` to determine if the view is handling an exception
- - the pipeline can be optimized at config-time.
- See https://github.com/Pylons/pyramid/pull/2660
-
-- ``pserve`` should now work with ``gevent`` and other workers that need
- to monkeypatch the process, assuming the server and / or the app do so
- as soon as possible before importing the rest of pyramid.
- See https://github.com/Pylons/pyramid/pull/2797
-
-- Pyramid no longer copies the settings object passed to the
- ``pyramid.config.Configurator(settings=)``. The original ``dict`` is kept.
- See https://github.com/Pylons/pyramid/pull/2823
-
-- The csrf trusted origins setting may now be a whitespace-separated list of
- domains. Previously only a python list was allowed. Also, it can now be set
- using the ``PYRAMID_CSRF_TRUSTED_ORIGINS`` environment variable similar to
- other settings. See https://github.com/Pylons/pyramid/pull/2823
-
-- ``pserve --reload`` now uses the
- `hupper <http://docs.pylonsproject.org/projects/hupper/en/latest/>`
- library to monitor file changes. This comes with many improvements:
-
- - If the `watchdog <http://pythonhosted.org/watchdog/>`_ package is
- installed then monitoring will be done using inotify instead of
- cpu and disk-intensive polling.
-
- - The monitor is now a separate process that will not crash and starts up
- before any of your code.
-
- - The monitor will not restart the process after a crash until a file is
- saved.
-
- - The monitor works on windows.
-
- - You can now trigger a reload manually from a pyramid view or any other
- code via ``hupper.get_reloader().trigger_reload()``. Kind of neat.
-
- - You can trigger a reload by issuing a ``SIGHUP`` to the monitor process.
-
- See https://github.com/Pylons/pyramid/pull/2805
-
-- A new ``[pserve]`` section is supported in your config files with a
- ``watch_files`` key that can configure ``pserve --reload`` to monitor custom
- file paths. See https://github.com/Pylons/pyramid/pull/2827
-
-- Allow streaming responses to be made from subclasses of
- ``pyramid.httpexceptions.HTTPException``. Previously the response would
- be unrolled while testing for a body, making it impossible to stream
- a response.
- See https://github.com/Pylons/pyramid/pull/2863
-
-- Update starter, alchemy and zodb scaffolds to support IPv6 by using the
- new ``listen`` directives in waitress.
- See https://github.com/Pylons/pyramid/pull/2853
-
-- All p* scripts now use argparse instead of optparse. This improves their
- ``--help`` output as well as enabling nicer documentation of their options.
- See https://github.com/Pylons/pyramid/pull/2864
-
-- Any deferred configuration action registered via ``config.action`` may now
- depend on threadlocal state, such as asset overrides, being active when
- the action is executed.
- See https://github.com/Pylons/pyramid/pull/2873
-
-- Asset specifications for directories passed to
- ``config.add_translation_dirs`` now support overriding the entire asset
- specification, including the folder name. Previously only the package name
- was supported and the folder would always need to have the same name.
- See https://github.com/Pylons/pyramid/pull/2873
-
-- ``config.begin()`` will propagate the current threadlocal request through
- as long as the registry is the same. For example:
-
- .. code-block:: python
-
- request = Request.blank(...)
- config.begin(request) # pushes a request
- config.begin() # propagates the previous request through unchanged
- assert get_current_request() is request
+- ``request.exception`` and ``request.exc_info`` will only be set if the
+ response was generated by the EXCVIEW tween. This is to avoid any confusion
+ where a response was generated elsewhere in the pipeline and not in
+ direct relation to the original exception. If anyone upstream wants to
+ catch and render responses for exceptions they should set
+ ``request.exception`` and ``request.exc_info`` themselves to indicate
+ the exception that was squashed when generating the response.
+
+ Similar behavior occurs with ``request.invoke_exception_view`` in which
+ the exception properties are set to reflect the exception if a response
+ is successfully generated by the method.
+
+ This is a very minor incompatibility. Most tweens right now would give
+ priority to the raised exception and ignore ``request.exception``. This
+ change just improves and clarifies that bookkeeping by trying to be
+ more clear about the relationship between the response and its squashed
+ exception. See https://github.com/Pylons/pyramid/pull/3029 and
+ https://github.com/Pylons/pyramid/pull/3031
+
+1.9a1 (2017-05-01)
+==================
- See https://github.com/Pylons/pyramid/pull/2873
+Major Features
+--------------
+
+- The file format used by all ``p*`` command line scripts such as ``pserve``
+ and ``pshell``, as well as the ``pyramid.paster.bootstrap`` function
+ is now replaceable thanks to a new dependency on
+ `plaster <https://docs.pylonsproject.org/projects/plaster/en/latest/>`_.
+
+ For now, Pyramid is still shipping with integrated support for the
+ PasteDeploy INI format by depending on the
+ `plaster_pastedeploy <https://github.com/Pylons/plaster_pastedeploy>`_
+ binding library. This may change in the future.
+
+ See https://github.com/Pylons/pyramid/pull/2985
+
+- Added an execution policy hook to the request pipeline. An execution
+ policy has the ability to control creation and execution of the request
+ objects before they enter the rest of the pipeline. This means for a single
+ request environ the policy may create more than one request object.
+
+ The first library to use this feature is
+ `pyramid_retry
+ <https://docs.pylonsproject.org/projects/pyramid-retry/en/latest/>`_.
+
+ See https://github.com/Pylons/pyramid/pull/2964
+
+- CSRF support has been refactored out of sessions and into its own
+ independent API in the ``pyramid.csrf`` module. It supports a pluggable
+ ``pyramid.interfaces.ICSRFStoragePolicy`` which can be used to define your
+ own mechanism for generating and validating CSRF tokens. By default,
+ Pyramid continues to use the ``pyramid.csrf.LegacySessionCSRFStoragePolicy``
+ that uses the ``request.session.get_csrf_token`` and
+ ``request.session.new_csrf_token`` APIs under the hood to preserve
+ compatibility. Two new policies are shipped as well,
+ ``pyramid.csrf.SessionCSRFStoragePolicy`` and
+ ``pyramid.csrf.CookieCSRFStoragePolicy`` which will store the CSRF tokens
+ in the session and in a standalone cookie, respectively. The storage policy
+ can be changed by using the new
+ ``pyramid.config.Configurator.set_csrf_storage_policy`` config directive.
+
+ CSRF tokens should be used via the new ``pyramid.csrf.get_csrf_token``,
+ ``pyramid.csrf.new_csrf_token`` and ``pyramid.csrf.check_csrf_token`` APIs
+ in order to continue working if the storage policy is changed. Also, the
+ ``pyramid.csrf.get_csrf_token`` function is injected into templates to be
+ used conveniently in UI code.
+
+ See https://github.com/Pylons/pyramid/pull/2854 and
+ https://github.com/Pylons/pyramid/pull/3019
+
+Minor Features
+--------------
+
+- Support an ``open_url`` config setting in the ``pserve`` section of the
+ config file. This url is used to open a web browser when ``pserve --browser``
+ is invoked. When this setting is unavailable the ``pserve`` script will
+ attempt to guess the port the server is using from the
+ ``server:<server_name>`` section of the config file but there is no
+ requirement that the server is being run in this format so it may fail.
+ See https://github.com/Pylons/pyramid/pull/2984
+
+- The ``pyramid.config.Configurator`` can now be used as a context manager
+ which will automatically push/pop threadlocals (similar to
+ ``config.begin()`` and ``config.end()``). It will also automatically perform
+ a ``config.commit()`` and thus it is only recommended to be used at the
+ top-level of your app. See https://github.com/Pylons/pyramid/pull/2874
+
+- The threadlocals are now available inside any function invoked via
+ ``config.include``. This means the only config-time code that cannot rely
+ on threadlocals is code executed from non-actions inside the main. This
+ can be alleviated by invoking ``config.begin()`` and ``config.end()``
+ appropriately or using the new context manager feature of the configurator.
+ See https://github.com/Pylons/pyramid/pull/2989
Bug Fixes
---------
-- Fixed bug in ``proutes`` such that it now shows the correct view when a
- class and ``attr`` is involved.
- See: https://github.com/Pylons/pyramid/pull/2687
-
-- Fix a ``FutureWarning`` in Python 3.5 when using ``re.split`` on the
- ``format`` setting to the ``proutes`` script.
- See https://github.com/Pylons/pyramid/pull/2714
-
-- Fix a ``RuntimeWarning`` emitted by WebOb when using arbitrary objects
- as the ``userid`` in the ``AuthTktAuthenticationPolicy``. This is now caught
- by the policy and the object is serialized as a base64 string to avoid
- the cryptic warning. Since the userid will be read back as a string on
- subsequent requests a more useful warning is emitted encouraging you to
- use a primitive type instead.
- See https://github.com/Pylons/pyramid/pull/2715
-
-- Pyramid 1.6 introduced the ability for an action to invoke another action.
- There was a bug in the way that ``config.add_view`` would interact with
- custom view derivers introduced in Pyramid 1.7 because the view's
- discriminator cannot be computed until view derivers and view predicates
- have been created in earlier orders. Invoking an action from another action
- would trigger an unrolling of the pipeline and would compute discriminators
- before they were ready. The new behavior respects the ``order`` of the action
- and ensures the discriminators are not computed until dependent actions
- from previous orders have executed.
- See https://github.com/Pylons/pyramid/pull/2757
-
-- Fix bug in i18n where the default domain would always use the Germanic plural
- style, even if a different plural function is defined in the relevant
- messages file. See https://github.com/Pylons/pyramid/pull/2859
-
-- The ``config.override_asset`` method now occurs during
- ``pyramid.config.PHASE1_CONFIG`` such that it is ordered to execute before
- any calls to ``config.add_translation_dirs``.
- See https://github.com/Pylons/pyramid/pull/2873
+- HTTPException's accepts a detail kwarg that may be used to pass additional
+ details to the exception. You may now pass objects so long as they have a
+ valid __str__ method. See https://github.com/Pylons/pyramid/pull/2951
-Deprecations
-------------
+- Fix a reference cycle causing memory leaks in which the registry
+ would keep a ``Configurator`` instance alive even after the configurator
+ was discarded. Another fix was also added for the ``global_registries``
+ object in which the registry was stored in a closure preventing it from
+ being deallocated. See https://github.com/Pylons/pyramid/pull/2967
-- The ``pcreate`` script and related scaffolds have been deprecated in favor
- of the popular
- `cookiecutter <https://cookiecutter.readthedocs.io/en/latest/>`_ project.
+- Fix a bug directly invoking ``pyramid.scripts.pserve.main`` with the
+ ``--reload`` option in which ``sys.argv`` is always used in the subprocess
+ instead of the supplied ``argv``.
+ See https://github.com/Pylons/pyramid/pull/2962
- All of Pyramid's official scaffolds as well as the tutorials have been
- ported to cookiecutters:
+Deprecations
+------------
- - `pyramid-cookiecutter-starter
- <https://github.com/Pylons/pyramid-cookiecutter-starter>`_
+- Pyramid currently depends on ``plaster_pastedeploy`` to simplify the
+ transition to ``plaster`` by maintaining integrated support for INI files.
+ This dependency on ``plaster_pastedeploy`` should be considered subject to
+ Pyramid's deprecation policy and may be removed in the future.
+ Applications should depend on the appropriate plaster binding to satisfy
+ their needs.
- - `pyramid-cookiecutter-alchemy
- <https://github.com/Pylons/pyramid-cookiecutter-alchemy>`_
+- Retrieving CSRF token from the session has been deprecated in favor of
+ equivalent methods in the ``pyramid.csrf`` module. The CSRF methods
+ (``ISession.get_csrf_token`` and ``ISession.new_csrf_token``) are no longer
+ required on the ``ISession`` interface except when using the default
+ ``pyramid.csrf.LegacySessionCSRFStoragePolicy``.
- - `pyramid-cookiecutter-zodb
- <https://github.com/Pylons/pyramid-cookiecutter-zodb>`_
+ Also, ``pyramid.session.check_csrf_token`` is now located at
+ ``pyramid.csrf.check_csrf_token``.
- See https://github.com/Pylons/pyramid/pull/2780
+ See https://github.com/Pylons/pyramid/pull/2854 and
+ https://github.com/Pylons/pyramid/pull/3019
Documentation Changes
---------------------
-- Update Typographical Conventions.
- https://github.com/Pylons/pyramid/pull/2838
-
-- Add `pyramid_nacl_session
- <http://docs.pylonsproject.org/projects/pyramid-nacl-session/en/latest/>`_
- to session factories. See https://github.com/Pylons/pyramid/issues/2791
-
-- Update ``HACKING.txt`` from stale branch that was never merged to master.
- See https://github.com/Pylons/pyramid/pull/2782
-
-- Updated Windows installation instructions and related bits.
- See https://github.com/Pylons/pyramid/issues/2661
-
-- Fix an inconsistency in the documentation between view predicates and
- route predicates and highlight the differences in their APIs.
- See https://github.com/Pylons/pyramid/pull/2764
-
-- Clarify a possible misuse of the ``headers`` kwarg to subclasses of
- ``pyramid.httpexceptions.HTTPException`` in which more appropriate
- kwargs from the parent class ``pyramid.response.Response`` should be
- used instead. See https://github.com/Pylons/pyramid/pull/2750
-
-- The SQLAlchemy + URL Dispatch + Jinja2 (``wiki2``) and
- ZODB + Traversal + Chameleon (``wiki``) tutorials have been updated to
- utilize the new cookiecutters and drop support for the ``pcreate``
- scaffolds.
-
- See https://github.com/Pylons/pyramid/pull/2881 and
- https://github.com/Pylons/pyramid/pull/2883.
-
-- Improve output of p* script descriptions for help.
- See https://github.com/Pylons/pyramid/pull/2886
-
-- Quick Tour updated to use cookiecutters instead of pcreate and scaffolds.
- See https://github.com/Pylons/pyramid/pull/2888
+- Added the execution policy to the routing diagram in the Request Processing
+ chapter. See https://github.com/Pylons/pyramid/pull/2993
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index d5c1784..062dcaf 100644
--- a/CONTRIBUTORS.txt
+++ b/CONTRIBUTORS.txt
@@ -291,4 +291,22 @@ Contributors
- Mikko Ohtamaa, 2016/12/6
+- Jure Cerjak, 2016/12/7
+
- Martin Frlin, 2016/12/7
+
+- Kirill Kuzminykh, 2017/03/01
+
+- Aleph Melo, 2017/04/16
+
+- Jeremy(Ching-Rui) Chen, 2017/04/19
+
+- Russell Ballestrini, 2017/05/06
+
+- Fang-Pen Lin, 2017/05/22
+
+- Volker Diels-Grabsch, 2017/06/09
+
+- Denis Rykov, 2017/06/15
+
+- Tosh Lyons, 2017/06/27
diff --git a/HACKING.txt b/HACKING.txt
index bbebb51..3e7ddd0 100644
--- a/HACKING.txt
+++ b/HACKING.txt
@@ -140,7 +140,7 @@ Coding Style
- PEP8 compliance. Whitespace rules are relaxed: not necessary to put two
newlines between classes. But 79-column lines, in particular, are mandatory.
- See http://docs.pylonsproject.org/en/latest/community/codestyle.html for more
+ See https://pylonsproject.org/community-coding-style-standards.html for more
information.
- Please do not remove trailing whitespace. Configure your editor to reduce
diff --git a/HISTORY.txt b/HISTORY.txt
index 5de5b20..c69d951 100644
--- a/HISTORY.txt
+++ b/HISTORY.txt
@@ -1,3 +1,308 @@
+1.8 (2017-01-21)
+================
+
+- No major changes from 1.8b1.
+
+1.8b1 (2017-01-17)
+==================
+
+Features
+--------
+
+- Added an ``override`` option to ``config.add_translation_dirs`` to allow
+ later calls to place translation directories at a higher priority than
+ earlier calls. See https://github.com/Pylons/pyramid/pull/2902
+
+Documentation Changes
+---------------------
+
+- Improve registry documentation to discuss uses as a component registry
+ and as a dictionary. See https://github.com/Pylons/pyramid/pull/2893
+
+- Quick Tour, Quick Tutorial, and most other remaining documentation updated to
+ use cookiecutters instead of pcreate and scaffolds.
+ See https://github.com/Pylons/pyramid/pull/2888 and
+ https://github.com/Pylons/pyramid/pull/2889
+
+- Fix unittests in wiki2 to work without different dependencies between
+ py2 and py3. See https://github.com/Pylons/pyramid/pull/2899
+
+- Update Windows documentation to track newer Python 3 improvements to the
+ installer. See https://github.com/Pylons/pyramid/pull/2900
+
+- Updated the ``mod_wsgi`` tutorial to use cookiecutters and Apache 2.4+.
+ See https://github.com/Pylons/pyramid/pull/2901
+
+1.8a1 (2016-12-25)
+==================
+
+Backward Incompatibilities
+--------------------------
+
+- Support for the ``IContextURL`` interface that was deprecated in Pyramid 1.3
+ has been removed. See https://github.com/Pylons/pyramid/pull/2822
+
+- Following the Pyramid deprecation period (1.6 -> 1.8),
+ daemon support for pserve has been removed. This includes removing the
+ daemon commands (start, stop, restart, status) as well as the following
+ arguments: ``--daemon``, ``--pid-file``, ``--log-file``,
+ ``--monitor-restart``, ``--status``, ``--user``, ``--group``,
+ ``--stop-daemon``
+
+ To run your server as a daemon you should use a process manager instead of
+ pserve.
+
+ See https://github.com/Pylons/pyramid/pull/2615
+
+- ``pcreate`` is now interactive by default. You will be prompted if a file
+ already exists with different content. Previously if there were similar
+ files it would silently skip them unless you specified ``--interactive``
+ or ``--overwrite``.
+ See https://github.com/Pylons/pyramid/pull/2775
+
+- Removed undocumented argument ``cachebust_match`` from
+ ``pyramid.static.static_view``. This argument was shipped accidentally
+ in Pyramid 1.6. See https://github.com/Pylons/pyramid/pull/2681
+
+- Change static view to avoid setting the ``Content-Encoding`` response header
+ to an encoding guessed using Python's ``mimetypes`` module. This was causing
+ clients to decode the content of gzipped files when downloading them. The
+ client would end up with a ``foo.txt.gz`` file on disk that was already
+ decoded, thus should really be ``foo.txt``. Also, the ``Content-Encoding``
+ should only have been used if the client itself broadcast support for the
+ encoding via ``Accept-Encoding`` request headers.
+ See https://github.com/Pylons/pyramid/pull/2810
+
+- Settings are no longer accessible as attributes on the settings object
+ (e.g. ``request.registry.settings.foo``). This was deprecated in Pyramid 1.2.
+ See https://github.com/Pylons/pyramid/pull/2823
+
+Features
+--------
+
+- Python 3.6 compatibility.
+ https://github.com/Pylons/pyramid/issues/2835
+
+- ``pcreate`` learned about ``--package-name`` to allow you to create a new
+ project in an existing folder with a different package name than the project
+ name. See https://github.com/Pylons/pyramid/pull/2783
+
+- The ``_get_credentials`` private method of ``BasicAuthAuthenticationPolicy``
+ has been extracted into standalone function ``extract_http_basic_credentials``
+ in ``pyramid.authentication`` module, this function extracts HTTP Basic
+ credentials from a ``request`` object, and returns them as a named tuple.
+ See https://github.com/Pylons/pyramid/pull/2662
+
+- Pyramid 1.4 silently dropped a feature of the configurator that has been
+ restored. It's again possible for action discriminators to conflict across
+ different action orders.
+ See https://github.com/Pylons/pyramid/pull/2757
+
+- ``pyramid.paster.bootstrap`` and its sibling ``pyramid.scripting.prepare``
+ can now be used as context managers to automatically invoke the ``closer``
+ and pop threadlocals off of the stack to prevent memory leaks.
+ See https://github.com/Pylons/pyramid/pull/2760
+
+- Added ``pyramid.config.Configurator.add_exception_view`` and the
+ ``pyramid.view.exception_view_config`` decorator. It is now possible using
+ these methods or via the new ``exception_only=True`` option to ``add_view``
+ to add a view which will only be matched when handling an exception.
+ Previously any exception views were also registered for a traversal
+ context that inherited from the exception class which prevented any
+ exception-only optimizations.
+ See https://github.com/Pylons/pyramid/pull/2660
+
+- Added the ``exception_only`` boolean to
+ ``pyramid.interfaces.IViewDeriverInfo`` which can be used by view derivers
+ to determine if they are wrapping a view which only handles exceptions.
+ This means that it is no longer necessary to perform request-time checks
+ for ``request.exception`` to determine if the view is handling an exception
+ - the pipeline can be optimized at config-time.
+ See https://github.com/Pylons/pyramid/pull/2660
+
+- ``pserve`` should now work with ``gevent`` and other workers that need
+ to monkeypatch the process, assuming the server and / or the app do so
+ as soon as possible before importing the rest of pyramid.
+ See https://github.com/Pylons/pyramid/pull/2797
+
+- Pyramid no longer copies the settings object passed to the
+ ``pyramid.config.Configurator(settings=)``. The original ``dict`` is kept.
+ See https://github.com/Pylons/pyramid/pull/2823
+
+- The csrf trusted origins setting may now be a whitespace-separated list of
+ domains. Previously only a python list was allowed. Also, it can now be set
+ using the ``PYRAMID_CSRF_TRUSTED_ORIGINS`` environment variable similar to
+ other settings. See https://github.com/Pylons/pyramid/pull/2823
+
+- ``pserve --reload`` now uses the
+ `hupper <http://docs.pylonsproject.org/projects/hupper/en/latest/>`
+ library to monitor file changes. This comes with many improvements:
+
+ - If the `watchdog <http://pythonhosted.org/watchdog/>`_ package is
+ installed then monitoring will be done using inotify instead of
+ cpu and disk-intensive polling.
+
+ - The monitor is now a separate process that will not crash and starts up
+ before any of your code.
+
+ - The monitor will not restart the process after a crash until a file is
+ saved.
+
+ - The monitor works on windows.
+
+ - You can now trigger a reload manually from a pyramid view or any other
+ code via ``hupper.get_reloader().trigger_reload()``. Kind of neat.
+
+ - You can trigger a reload by issuing a ``SIGHUP`` to the monitor process.
+
+ See https://github.com/Pylons/pyramid/pull/2805
+
+- A new ``[pserve]`` section is supported in your config files with a
+ ``watch_files`` key that can configure ``pserve --reload`` to monitor custom
+ file paths. See https://github.com/Pylons/pyramid/pull/2827
+
+- Allow streaming responses to be made from subclasses of
+ ``pyramid.httpexceptions.HTTPException``. Previously the response would
+ be unrolled while testing for a body, making it impossible to stream
+ a response.
+ See https://github.com/Pylons/pyramid/pull/2863
+
+- Update starter, alchemy and zodb scaffolds to support IPv6 by using the
+ new ``listen`` directives in waitress.
+ See https://github.com/Pylons/pyramid/pull/2853
+
+- All p* scripts now use argparse instead of optparse. This improves their
+ ``--help`` output as well as enabling nicer documentation of their options.
+ See https://github.com/Pylons/pyramid/pull/2864
+
+- Any deferred configuration action registered via ``config.action`` may now
+ depend on threadlocal state, such as asset overrides, being active when
+ the action is executed.
+ See https://github.com/Pylons/pyramid/pull/2873
+
+- Asset specifications for directories passed to
+ ``config.add_translation_dirs`` now support overriding the entire asset
+ specification, including the folder name. Previously only the package name
+ was supported and the folder would always need to have the same name.
+ See https://github.com/Pylons/pyramid/pull/2873
+
+- ``config.begin()`` will propagate the current threadlocal request through
+ as long as the registry is the same. For example:
+
+ .. code-block:: python
+
+ request = Request.blank(...)
+ config.begin(request) # pushes a request
+ config.begin() # propagates the previous request through unchanged
+ assert get_current_request() is request
+
+ See https://github.com/Pylons/pyramid/pull/2873
+
+- Added a new ``callback`` option to ``config.set_default_csrf_options`` which
+ can be used to determine per-request whether CSRF checking should be enabled
+ to allow for a mix authentication methods. Only cookie-based methods
+ generally require CSRF checking.
+ See https://github.com/Pylons/pyramid/pull/2778
+
+Bug Fixes
+---------
+
+- Fixed bug in ``proutes`` such that it now shows the correct view when a
+ class and ``attr`` is involved.
+ See: https://github.com/Pylons/pyramid/pull/2687
+
+- Fix a ``FutureWarning`` in Python 3.5 when using ``re.split`` on the
+ ``format`` setting to the ``proutes`` script.
+ See https://github.com/Pylons/pyramid/pull/2714
+
+- Fix a ``RuntimeWarning`` emitted by WebOb when using arbitrary objects
+ as the ``userid`` in the ``AuthTktAuthenticationPolicy``. This is now caught
+ by the policy and the object is serialized as a base64 string to avoid
+ the cryptic warning. Since the userid will be read back as a string on
+ subsequent requests a more useful warning is emitted encouraging you to
+ use a primitive type instead.
+ See https://github.com/Pylons/pyramid/pull/2715
+
+- Pyramid 1.6 introduced the ability for an action to invoke another action.
+ There was a bug in the way that ``config.add_view`` would interact with
+ custom view derivers introduced in Pyramid 1.7 because the view's
+ discriminator cannot be computed until view derivers and view predicates
+ have been created in earlier orders. Invoking an action from another action
+ would trigger an unrolling of the pipeline and would compute discriminators
+ before they were ready. The new behavior respects the ``order`` of the action
+ and ensures the discriminators are not computed until dependent actions
+ from previous orders have executed.
+ See https://github.com/Pylons/pyramid/pull/2757
+
+- Fix bug in i18n where the default domain would always use the Germanic plural
+ style, even if a different plural function is defined in the relevant
+ messages file. See https://github.com/Pylons/pyramid/pull/2859
+
+- The ``config.override_asset`` method now occurs during
+ ``pyramid.config.PHASE1_CONFIG`` such that it is ordered to execute before
+ any calls to ``config.add_translation_dirs``.
+ See https://github.com/Pylons/pyramid/pull/2873
+
+Deprecations
+------------
+
+- The ``pcreate`` script and related scaffolds have been deprecated in favor
+ of the popular
+ `cookiecutter <https://cookiecutter.readthedocs.io/en/latest/>`_ project.
+
+ All of Pyramid's official scaffolds as well as the tutorials have been
+ ported to cookiecutters:
+
+ - `pyramid-cookiecutter-starter
+ <https://github.com/Pylons/pyramid-cookiecutter-starter>`_
+
+ - `pyramid-cookiecutter-alchemy
+ <https://github.com/Pylons/pyramid-cookiecutter-alchemy>`_
+
+ - `pyramid-cookiecutter-zodb
+ <https://github.com/Pylons/pyramid-cookiecutter-zodb>`_
+
+ See https://github.com/Pylons/pyramid/pull/2780
+
+Documentation Changes
+---------------------
+
+- Update Typographical Conventions.
+ https://github.com/Pylons/pyramid/pull/2838
+
+- Add `pyramid_nacl_session
+ <http://docs.pylonsproject.org/projects/pyramid-nacl-session/en/latest/>`_
+ to session factories. See https://github.com/Pylons/pyramid/issues/2791
+
+- Update ``HACKING.txt`` from stale branch that was never merged to master.
+ See https://github.com/Pylons/pyramid/pull/2782
+
+- Updated Windows installation instructions and related bits.
+ See https://github.com/Pylons/pyramid/issues/2661
+
+- Fix an inconsistency in the documentation between view predicates and
+ route predicates and highlight the differences in their APIs.
+ See https://github.com/Pylons/pyramid/pull/2764
+
+- Clarify a possible misuse of the ``headers`` kwarg to subclasses of
+ ``pyramid.httpexceptions.HTTPException`` in which more appropriate
+ kwargs from the parent class ``pyramid.response.Response`` should be
+ used instead. See https://github.com/Pylons/pyramid/pull/2750
+
+- The SQLAlchemy + URL Dispatch + Jinja2 (``wiki2``) and
+ ZODB + Traversal + Chameleon (``wiki``) tutorials have been updated to
+ utilize the new cookiecutters and drop support for the ``pcreate``
+ scaffolds.
+
+ See https://github.com/Pylons/pyramid/pull/2881 and
+ https://github.com/Pylons/pyramid/pull/2883.
+
+- Improve output of p* script descriptions for help.
+ See https://github.com/Pylons/pyramid/pull/2886
+
+- Quick Tour updated to use cookiecutters instead of pcreate and scaffolds.
+ See https://github.com/Pylons/pyramid/pull/2888
+
1.7 (2016-05-19)
================
diff --git a/PKG-INFO b/PKG-INFO
index 1bb90be..3455391 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: pyramid
-Version: 1.8.1
+Version: 1.9.1
Summary: The Pyramid Web Framework, a Pylons project
Home-page: https://trypyramid.com
Author: Chris McDonough, Agendaless Consulting
@@ -9,17 +9,13 @@ License: BSD-derived (http://www.repoze.org/LICENSE.txt)
Description: Pyramid
=======
- .. image:: https://travis-ci.org/Pylons/pyramid.png?branch=1.8-branch
+ .. image:: https://travis-ci.org/Pylons/pyramid.png?branch=1.9-branch
:target: https://travis-ci.org/Pylons/pyramid
- :alt: 1.8-branch Travis CI Status
+ :alt: 1.9-branch Travis CI Status
- .. image:: https://readthedocs.org/projects/pyramid/badge/?version=1.8-branch
- :target: http://docs.pylonsproject.org/projects/pyramid/en/1.8-branch/
- :alt: 1.8-branch Documentation Status
... 8243 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-pyramid.git
More information about the Python-modules-commits
mailing list