News ==== .. contents:: 3.10.1 ------ * Correct packaging and testing when not in a clean virtualenv. 3.10.0 ------ * Move development to https://github.com/pasteorg/paste * Vendor cgi.FieldStorage and cgitb.Hook * More cleaning of Python 2 style code. With version 3.10.0 Paste development moves to the pasteorg GitHub organization and will be going deeper into maintenance mode unless more active maintainers step forward to take over. "Deeper" in this case means that releases will be much less frequent and patches will only be accepted for security issues or major problems. Current consumers of Paste should prepare to migrate away to more modern solutions. 3.9.0 ----- * Remove dead format_environ code in watchthread.py app. 3.8.0 ----- * Remove remainder of Python 2 code. Thanks a-detiste. 3.7.0 ----- * End Python 2 support. * Remove use of distutils. * Fix double query processing in parse_formvars. 3.6.1 ----- * Tiny release to confirm release automation. 3.6.0 ----- * Provide kwarg for timestamp format in Translogger. 3.5.3 ----- * Use importlib instead of imp with Python 3. 3.5.2 ----- * Additional fixes to next in iterators. Thanks to cjwatson. 3.5.1 ----- * Replace deprecated threading.currentThread, getName and setDaemon with threading.current_thread, name and daemon. Thanks to hugovk. 3.5.0 ----- * Python 3 fixes to auth and wsgi.errors handling; notably making wsgi.errors text. Thanks to brondsem. 3.4.6 ----- * Explicit pkg_resource dependency to easy packaging. Thanks to mgorny. 3.4.5 ----- * Remove deprecated dependencies paste/fixture.py. Thanks to jhance. 3.4.4 ----- * Update setup.py to work with setuptools 50.1.0+ Thanks to hrnciar for the patch. 3.4.3 ----- * Patch auth ticket to be python3 compatible. Thanks to TilmanSchaefer for the patch. 3.4.2 ----- * Correct sorting of items() in EvalHTMLFormatter. Thanks to amitmarkel for the patch. 3.4.1 ----- * Fix next in iterators in wsgilib.py. 3.4.0 ----- * Allow binding IPv6 address when starting a server. Thanks to Lekinho for this patch. 3.3.0 ----- * Use six.BytesIO when reading wsgi.input. * Remove use of pytest-runner. 3.2.7 ----- * Python 3 updates for use of StringIO and auth_tkt.py. 3.2.6 ----- * Correctly handle HEAD requests (to send empty body) when gzip encoding requested. 3.2.4 ----- * Use is_alive instead of isAlive for Python 3.9 compatibility. * Use encodebytes instead of deprecated encodestring. * Fix Python 2 and 3 compatibility for base64. Thanks to tirkarthi for these fixes. 3.2.3 ----- * Correct ``100 Continue`` in Python 3 3.2.2 ----- * Avoid some reference cycles through tracebacks in httpserver.py 3.2.1 ----- * Handle io.UnsupportedOperation from socket.tell() 3.2.0 ----- * Ensure unicode URLs work in TestApp. * Make LimitedLengthFile file return empty bytes. * Protect against accidental close in FieldStorage. Thanks to benjaminp for many recent contributions. 3.1.1 ----- * TestApp.encode_multipart handles bytes filenames and params. 3.1.0 ----- * Allow anything that can read() for a file-like response, not just a ``file`` instance. 3.0.8 ----- * Fix quoting of bytestrings (#23, via jelmer). 3.0.7 ----- * Send bytestrings when writing chunks from ``paste/httpserver.py``. 3.0.6 ----- * Revert the changes in the 3.0.5, which introduced unexpected errors in ``paste/httpserver.py`` when using SSL. 3.0.5 ----- * Quiet a deprecation warning in OpenSSL. 3.0.4 ----- * Python 3 fix for deleting items from a dict. 3.0.3 ----- * Ensure pytest requirements set properly. 3.0.2 ----- * Encoding fixes in ``paste.fixture``. 3.0.1 ----- * Remove use of future for sake of html.escape and use own. Using future was causing installation loops. See: https://github.com/pasteorg/paste/issues/6 3.0.0 ----- * Fixes for use with Python 3.7, mostly to do with ``StopIteration``. * Moving to https://github.com/cdent/paste to keep things maintained. 2.0.3 ----- * #26: Change six requirement to >=1.4.0 from [Linus Heckemann](https://bitbucket.org/sphalerite/) https://bitbucket.org/ianb/paste/pull-requests/26/change-six-requirement-to-140/diff * #28: Py3k fixes from [Nils Philippsen](https://bitbucket.org/nilsph/) https://bitbucket.org/ianb/paste/pull-requests/28/py3k-fixes/diff * #29: paste.wsgilib.add_close: Add __next__ method to support using `add_close` objects as iterators on Python 3. fixes https://bitbucket.org/ianb/pastedeploy/issues/18/py3-test_config_middleware-failed from [Marc Abramowitz](https://bitbucket.org/msabramo/) https://bitbucket.org/ianb/paste/pull-requests/29/pastewsgilibadd_close-add-__next__-method/diff * #30: tox.ini: Add py35 to envlist from [Marc Abramowitz](https://bitbucket.org/msabramo/) https://bitbucket.org/ianb/paste/pull-requests/30/toxini-add-py35-to-envlist/diff * #31: Enable testing with pypy from [Marc Abramowitz](https://bitbucket.org/msabramo/) https://bitbucket.org/ianb/paste/pull-requests/31/enable-testing-with-pypy/diff * #33: tox.ini: Measure test coveraage from [Marc Abramowitz](https://bitbucket.org/msabramo/) https://bitbucket.org/ianb/paste/pull-requests/33/toxini-measure-test-coverage/diff 2.0.2 ----- * #22: Fix improper commas in request headers in wsgi_environ (https://bitbucket.org/ianb/paste/pull-request/22/fix-improper-commas-in-request-headers-in) Fixes issue #4 ("WSGI environ totally borked") (https://bitbucket.org/ianb/paste/issue/4/wsgi-environ-totally-borked) * #24: test_wsgirequest_charset: Use UTF-8 instead of iso-8859-1 (https://bitbucket.org/ianb/paste/pull-request/24/test_wsgirequest_charset-use-utf-8-instead) Fixes issue #7 ("Python 3 test failure") (https://bitbucket.org/ianb/paste/issue/7/python-3-test-failure) * #23: Replace cgi.parse_qsl w/ six.moves.urllib.parse.parse_qsl (https://bitbucket.org/ianb/paste/pull-request/23/replace-cgiparse_qsl-w) Fixes issue #8 ("cgi.parse_qsl is pending deprecation") (https://bitbucket.org/ianb/paste/issue/8/cgiparse_qsl-is-pending-deprecation) * #20: Escape CGI environment variables in HTTP 404 responses (https://bitbucket.org/ianb/paste/pull-request/20/escape-cgi-environment-variables-in-http) * #6: Add HTTP exception for new code 429 "Too Many Requests" (https://bitbucket.org/ianb/paste/pull-request/6/add-http-exception-for-new-code-429-too) * #25: replace ``has_key`` method to ``in`` operator #9 (https://bitbucket.org/ianb/paste/pull-request/25/replace-has_key-method-to-in-operator-9) Fixes #9 ("used methods removed from py3") (https://bitbucket.org/ianb/paste/issue/9/used-methods-removed-from-py3) * #5: Invalid error message when the socket is already in use (https://bitbucket.org/ianb/paste/issue/5/invalid-error-message-when-the-socket-is) 2.0.1 ----- * Fix setup.py for six dependency: move the six dependency from extras_require to install_requires. * Port paste.proxy to Python 3. * Fix paste.exceptions.serial_number_generator.hash_identifier() on Python 3. * Fix paste.util.threadedprint.uninstall(). Rename duplicated uninstall() function to uninstall_stdin() and fix typo in variable name (_oldstin => _oldstdin). * Add README.rst file. 2.0 --- * Experimental Python 3 support. * paste now requires the six module. * Drop support of Python 2.5 and older. * Fixed ``egg:Paste#cgi`` * In ``paste.httpserver``: give a 100 Continue response even when the server has been configured as an HTTP/1.0 server (clients may send ``Expect: 100-Continue`` before they know the version), and wrap 100 Continue ``environ['wsgi.input']`` files with LimitedLengthFile just like normal request bodies are wrapped, keeping WSGI applications from over-reading from the socket. * Fixed parsing of paths beginning with multiple forward slashes. * Add tox.ini to run tests with tox on Python 2.6, 2.7 and 3.4. 1.7.5.1 ------- * Fix bug introduced in :mod:`paste.auth.auth_tkt` (with ``url_unquote``) 1.7.5 ----- * Won't install ``tests/`` directory (also caused installation problems on some Mac systems). * Fixed problem with gzip middleware and zero-length responses. * Use ``X-Forwarded-For`` header in :mod:`paste.translogger` * Fixed problems with mimeparse code * Fixed some corner cases with CGI scripts * :mod:`paste.auth.auth_tkt` will URL-quote usernames, avoiding some errors with usernames with ``!`` in them. * Improve handling of errors in fetching error pages in :mod:`paste.errordocument`. 1.7.4 ----- * Fix XSS bug (security issue) with not found handlers for :class:`paste.urlparser.StaticURLParser` and :class:`paste.urlmap.URLMap`. If you ask for a path with ``/-->