[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