diff options
| author | Michael Merickel <github@m.merickel.org> | 2018-11-18 12:56:45 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-11-18 12:56:45 -0600 |
| commit | 880fcbdf366e231a746dc3ab694b1b88771d23c2 (patch) | |
| tree | b0349a9bfb006c26d454b96aaf7114f1714ba776 | |
| parent | d4ce9d3f915b18425b4ce5224a51a89342270371 (diff) | |
| parent | 847d1835a5b76da4925ee3248e69148cc4235df9 (diff) | |
| download | pyramid-880fcbdf366e231a746dc3ab694b1b88771d23c2.tar.gz pyramid-880fcbdf366e231a746dc3ab694b1b88771d23c2.tar.bz2 pyramid-880fcbdf366e231a746dc3ab694b1b88771d23c2.zip | |
Merge pull request #5 from stevepiercy/drop-py2
Drop py2
37 files changed, 69 insertions, 252 deletions
diff --git a/HACKING.txt b/HACKING.txt index acd65e4fd..901eb8518 100644 --- a/HACKING.txt +++ b/HACKING.txt @@ -34,10 +34,10 @@ In order to add a feature to Pyramid: - The feature must be documented in both the API and narrative documentation (in `docs/`). -- The feature must work fully on the following CPython versions: 2.7, 3.4, 3.5, - 3.6, and 3.7 on both UNIX and Windows. +- The feature must work fully on the following CPython versions: 3.4, 3.5, 3.6, + and 3.7 on both UNIX and Windows. -- The feature must work on the latest version of PyPy. +- The feature must work on the latest version of PyPy3. - The feature must not depend on any particular persistence layer (filesystem, SQL, etc). @@ -65,10 +65,9 @@ Running Tests $ tox -e py37 - This command will run tests on the latest versions of Python 2 and 3 with - coverage totaled for both versions. + This command will run tests on the latest version of Python 3 with coverage. - $ tox -e py2-cover,py3-cover,coverage + $ tox -e py3-cover,coverage - To run individual tests (i.e., during development), you can use `nosetests` syntax as follows, where `$VENV` is an environment variable set to the path @@ -105,7 +104,7 @@ Test Coverage ------------- - The codebase *must* have 100% test statement coverage after each commit. You - can test coverage via `tox -epy2-cover,py3-cover,coverage`. + can test coverage via `tox -epy3-cover,coverage`. Documentation Coverage and Building HTML Documentation diff --git a/RELEASING.txt b/RELEASING.txt index 94726f9f3..73e79d057 100644 --- a/RELEASING.txt +++ b/RELEASING.txt @@ -33,11 +33,6 @@ Prepare new release branch - Run tests on Windows if feasible. -- Make sure all scaffold tests pass (CPython 2.7, 3.4, 3.5, 3.6, and 3.7, and - PyPy on UNIX; this doesn't work on Windows): - - $ tox -e{py27,py34,py35,py36,py37,pypy}-scaffolds - - For each ``pyramid-cookiecutter-*``, make a new branch off "master" with the same name to align with the new Pyramid release branch name. diff --git a/docs/api/compat.rst b/docs/api/compat.rst deleted file mode 100644 index bb34f38e4..000000000 --- a/docs/api/compat.rst +++ /dev/null @@ -1,156 +0,0 @@ -.. _compat_module: - -:mod:`pyramid.compat` ----------------------- - -The ``pyramid.compat`` module provides platform and version compatibility for -Pyramid and its add-ons across Python platform and version differences. APIs -will be removed from this module over time as Pyramid ceases to support -systems which require compatibility imports. - -.. automodule:: pyramid.compat - - .. autofunction:: ascii_native_ - - .. attribute:: binary_type - - Binary type for this platform. For Python 3, it's ``bytes``. For - Python 2, it's ``str``. - - .. autofunction:: bytes_ - - .. attribute:: class_types - - Sequence of class types for this platform. For Python 3, it's - ``(type,)``. For Python 2, it's ``(type, types.ClassType)``. - - .. attribute:: configparser - - On Python 2, the ``ConfigParser`` module, on Python 3, the - ``configparser`` module. - - .. function:: escape(v) - - On Python 2, the ``cgi.escape`` function, on Python 3, the - ``html.escape`` function. - - .. function:: exec_(code, globs=None, locs=None) - - Exec code in a compatible way on both Python 2 and 3. - - .. attribute:: im_func - - On Python 2, the string value ``im_func``, on Python 3, the string - value ``__func__``. - - .. function:: input_(v) - - On Python 2, the ``raw_input`` function, on Python 3, the - ``input`` function. - - .. attribute:: integer_types - - Sequence of integer types for this platform. For Python 3, it's - ``(int,)``. For Python 2, it's ``(int, long)``. - - .. function:: is_nonstr_iter(v) - - Return ``True`` if ``v`` is a non-``str`` iterable on both Python 2 and - Python 3. - - .. function:: iteritems_(d) - - Return ``d.items()`` on Python 3, ``d.iteritems()`` on Python 2. - - .. function:: itervalues_(d) - - Return ``d.values()`` on Python 3, ``d.itervalues()`` on Python 2. - - .. function:: iterkeys_(d) - - Return ``d.keys()`` on Python 3, ``d.iterkeys()`` on Python 2. - - .. attribute:: long - - Long type for this platform. For Python 3, it's ``int``. For - Python 2, it's ``long``. - - .. function:: map_(v) - - Return ``list(map(v))`` on Python 3, ``map(v)`` on Python 2. - - .. attribute:: pickle - - ``cPickle`` module if it exists, ``pickle`` module otherwise. - - .. attribute:: PY3 - - ``True`` if running on Python 3, ``False`` otherwise. - - .. attribute:: PYPY - - ``True`` if running on PyPy, ``False`` otherwise. - - .. function:: reraise(tp, value, tb=None) - - Reraise an exception in a compatible way on both Python 2 and Python 3, - e.g. ``reraise(*sys.exc_info())``. - - .. attribute:: string_types - - Sequence of string types for this platform. For Python 3, it's - ``(str,)``. For Python 2, it's ``(basestring,)``. - - .. attribute:: SimpleCookie - - On Python 2, the ``Cookie.SimpleCookie`` class, on Python 3, the - ``http.cookies.SimpleCookie`` module. - - .. autofunction:: text_ - - .. attribute:: text_type - - Text type for this platform. For Python 3, it's ``str``. For Python - 2, it's ``unicode``. - - .. autofunction:: native_ - - .. attribute:: urlparse - - ``urlparse`` module on Python 2, ``urllib.parse`` module on Python 3. - - .. attribute:: url_quote - - ``urllib.quote`` function on Python 2, ``urllib.parse.quote`` function - on Python 3. - - .. attribute:: url_quote_plus - - ``urllib.quote_plus`` function on Python 2, ``urllib.parse.quote_plus`` - function on Python 3. - - .. attribute:: url_unquote - - ``urllib.unquote`` function on Python 2, ``urllib.parse.unquote`` - function on Python 3. - - .. attribute:: url_encode - - ``urllib.urlencode`` function on Python 2, ``urllib.parse.urlencode`` - function on Python 3. - - .. attribute:: url_open - - ``urllib2.urlopen`` function on Python 2, ``urllib.request.urlopen`` - function on Python 3. - - .. function:: url_unquote_text(v, encoding='utf-8', errors='replace') - - On Python 2, return ``url_unquote(v).decode(encoding(encoding, errors))``; - on Python 3, return the result of ``urllib.parse.unquote``. - - .. function:: url_unquote_native(v, encoding='utf-8', errors='replace') - - On Python 2, return ``native_(url_unquote_text_v, encoding, errors))``; - on Python 3, return the result of ``urllib.parse.unquote``. - diff --git a/docs/glossary.rst b/docs/glossary.rst index f42b298df..e15d28fa5 100644 --- a/docs/glossary.rst +++ b/docs/glossary.rst @@ -1071,7 +1071,7 @@ Glossary Green Unicorn Aka ``gunicorn``, a fast :term:`WSGI` server that runs on Unix under - Python 2.6+ or Python 3.1+. See https://gunicorn.org/ for detailed + Python 2.6+ or Python 3.4+. See https://gunicorn.org/ for detailed information. predicate factory diff --git a/docs/narr/commandline.rst b/docs/narr/commandline.rst index b571a7d7b..962193ec3 100644 --- a/docs/narr/commandline.rst +++ b/docs/narr/commandline.rst @@ -1006,8 +1006,8 @@ top-level directory, your ``setup.py`` file will look something like this: requires = ['pyramid', 'pyramid_debugtoolbar'] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest', # includes virtualenv + 'WebTest >= 1.3.1', + 'pytest', 'pytest-cov', ] @@ -1073,8 +1073,8 @@ The result will be something like: requires = ['pyramid', 'pyramid_debugtoolbar'] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest', # includes virtualenv + 'WebTest >= 1.3.1', + 'pytest', 'pytest-cov', ] diff --git a/docs/narr/install.rst b/docs/narr/install.rst index 248b432d3..268ae5f8d 100644 --- a/docs/narr/install.rst +++ b/docs/narr/install.rst @@ -21,8 +21,7 @@ the following sections. .. sidebar:: Python Versions - As of this writing, :app:`Pyramid` is tested against Python 2.7, - Python 3.4, Python 3.5, Python 3.6, Python 3.7, and PyPy. + As of this writing, :app:`Pyramid` is tested against Python 3.4, Python 3.5, Python 3.6, Python 3.7, Python 3.8 (with allowed failures), and PyPy3. :app:`Pyramid` is known to run on all popular Unix-like systems such as Linux, macOS, and FreeBSD, as well as on Windows platforms. It is also known to diff --git a/docs/narr/upgrading.rst b/docs/narr/upgrading.rst index 12e146cf1..87e4647c3 100644 --- a/docs/narr/upgrading.rst +++ b/docs/narr/upgrading.rst @@ -86,7 +86,6 @@ At the time of a Pyramid version release, each supports all versions of Python through the end of their lifespans. The end-of-life for a given version of Python is when security updates are no longer released. -- `Python 2.7 Lifespan <https://devguide.python.org/#status-of-python-branches>`_ 2020-01-01. - `Python 3.4 Lifespan <https://devguide.python.org/#status-of-python-branches>`_ 2019-03-16 . - `Python 3.5 Lifespan <https://devguide.python.org/#status-of-python-branches>`_ 2020-09-13 . - `Python 3.6 Lifespan <https://devguide.python.org/#status-of-python-branches>`_ 2021-12-23. diff --git a/docs/narr/webob.rst b/docs/narr/webob.rst index 89dc6e0f1..c9a5a68e1 100644 --- a/docs/narr/webob.rst +++ b/docs/narr/webob.rst @@ -188,8 +188,7 @@ of them. Here are a couple that might be useful: Text (Unicode) ++++++++++++++ -Many of the properties of the request object will be text values (``unicode`` -under Python 2 or ``str`` under Python 3) if the request encoding/charset is +Many of the properties of the request object will be text values (``str`` type) if the request encoding/charset is provided. If it is provided, the values in ``req.POST``, ``req.GET``, ``req.params``, and ``req.cookies`` will contain text. The client *can* indicate the charset with something like ``Content-Type: diff --git a/docs/quick_tour.rst b/docs/quick_tour.rst index 1e2c71cf0..fbafead66 100644 --- a/docs/quick_tour.rst +++ b/docs/quick_tour.rst @@ -15,12 +15,9 @@ If you would prefer to cut and paste the example code in this tour you may brows Installation ============ -Once you have a standard Python environment setup, getting started with Pyramid -is a breeze. Unfortunately "standard" is not so simple in Python. For this -Quick Tour, it means `Python <https://www.python.org/downloads/>`_, :mod:`python:venv` (or `virtualenv for -Python 2.7 <https://virtualenv.pypa.io/en/stable/>`_), -`pip <https://pypi.org/project/pip/>`_, and `Setuptools -<https://pypi.org/project/setuptools/>`_. +Once you have a standard Python environment setup, getting started with Pyramid is a breeze. +Unfortunately "standard" is not so simple in Python. +For this Quick Tour, it means `Python <https://www.python.org/downloads/>`_, :mod:`python:venv`, `pip <https://pypi.org/project/pip/>`_, and `Setuptools <https://pypi.org/project/setuptools/>`_. To save a little bit of typing and to be certain that we use the modules, scripts, and packages installed in our virtual environment, we'll set an @@ -52,10 +49,8 @@ For Windows: # or for a specific released version c:\\> %VENV%\\Scripts\\pip install "pyramid==\ |release|\ " -Of course Pyramid runs fine on Python 2.7+, as do the examples in this *Quick -Tour*. We're showing Python 3 for simplicity. (Pyramid had production support -for Python 3 in October 2011.) Also for simplicity, the remaining examples will -show only Unix commands. +As of version 2.0, Pyramid runs on Python 3 only. +For simplicity, the remaining examples will show only Unix commands. .. seealso:: See also: :ref:`Quick Tutorial section on Requirements <qtut_requirements>`, diff --git a/docs/quick_tour/logging/setup.py b/docs/quick_tour/logging/setup.py index 27b025384..e9c15db04 100644 --- a/docs/quick_tour/logging/setup.py +++ b/docs/quick_tour/logging/setup.py @@ -17,8 +17,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/quick_tour/package/setup.py b/docs/quick_tour/package/setup.py index 27b025384..e9c15db04 100644 --- a/docs/quick_tour/package/setup.py +++ b/docs/quick_tour/package/setup.py @@ -17,8 +17,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/quick_tour/sessions/setup.py b/docs/quick_tour/sessions/setup.py index 27b025384..e9c15db04 100644 --- a/docs/quick_tour/sessions/setup.py +++ b/docs/quick_tour/sessions/setup.py @@ -17,8 +17,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/quick_tour/sqla_demo/setup.py b/docs/quick_tour/sqla_demo/setup.py index 76cd518ca..28a8e0815 100644 --- a/docs/quick_tour/sqla_demo/setup.py +++ b/docs/quick_tour/sqla_demo/setup.py @@ -23,8 +23,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/quick_tour/views/views.py b/docs/quick_tour/views/views.py index 95a2b60ca..ffbe1d893 100644 --- a/docs/quick_tour/views/views.py +++ b/docs/quick_tour/views/views.py @@ -1,4 +1,4 @@ -from pyramid.compat import escape +from html import escape from pyramid.httpexceptions import HTTPFound from pyramid.response import Response @@ -16,7 +16,7 @@ def home_view(request): def hello_view(request): name = request.params.get('name', 'No Name') body = '<p>Hi %s, this <a href="/goto">redirects</a></p>' - # pyramid.compat.escape to prevent Cross-Site Scripting (XSS) [CWE 79] + # Python html.escape to prevent Cross-Site Scripting (XSS) [CWE 79] return Response(body % escape(name)) diff --git a/docs/quick_tutorial/cookiecutters/setup.py b/docs/quick_tutorial/cookiecutters/setup.py index 9482e7c32..d5d3d018b 100644 --- a/docs/quick_tutorial/cookiecutters/setup.py +++ b/docs/quick_tutorial/cookiecutters/setup.py @@ -17,8 +17,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/quick_tutorial/index.rst b/docs/quick_tutorial/index.rst index b5b7b3313..d727502e9 100644 --- a/docs/quick_tutorial/index.rst +++ b/docs/quick_tutorial/index.rst @@ -4,8 +4,7 @@ Quick Tutorial for Pyramid ========================== -Pyramid is a web framework for Python 2 and 3. This tutorial gives a Python -3/2-compatible, high-level tour of the major features. +This tutorial gives a high-level tour of the major features. This hands-on tutorial covers "a little about a lot": practical introductions to the most common facilities. Fun, fast-paced, and most certainly not aimed at diff --git a/docs/quick_tutorial/requirements.rst b/docs/quick_tutorial/requirements.rst index a74c07673..2ed9b8b55 100644 --- a/docs/quick_tutorial/requirements.rst +++ b/docs/quick_tutorial/requirements.rst @@ -19,12 +19,11 @@ virtual environment.) This *Quick Tutorial* is based on: -* **Python 3.7**. Pyramid fully supports Python 3.4+ and Python 2.7+. This - tutorial uses **Python 3.7** but runs fine under Python 2.7. +* **Python 3.7**. Pyramid fully supports Python 3.4+. + This tutorial uses **Python 3.7**. -* **venv**. We believe in virtual environments. For this tutorial, we use - Python 3's built-in solution :term:`venv`. For Python 2.7, you can install - :term:`virtualenv`. +* **venv**. We believe in virtual environments. + For this tutorial, we use Python 3's built-in solution :term:`venv`. * **pip**. We use :term:`pip` for package management. @@ -158,8 +157,7 @@ environment variable. # Windows python -m venv %VENV% -.. seealso:: See also Python 3's :mod:`venv module <python:venv>` and Python - 2's `virtualenv <https://virtualenv.pypa.io/en/latest/>`_ package. +.. seealso:: See also :mod:`venv module <python:venv>`. Update packaging tools in the virtual environment diff --git a/docs/tutorials/wiki/src/authorization/setup.py b/docs/tutorials/wiki/src/authorization/setup.py index 7011387f6..7b405745e 100644 --- a/docs/tutorials/wiki/src/authorization/setup.py +++ b/docs/tutorials/wiki/src/authorization/setup.py @@ -24,8 +24,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki/src/basiclayout/setup.py b/docs/tutorials/wiki/src/basiclayout/setup.py index e05e279e2..a4f143d24 100644 --- a/docs/tutorials/wiki/src/basiclayout/setup.py +++ b/docs/tutorials/wiki/src/basiclayout/setup.py @@ -22,8 +22,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki/src/installation/setup.py b/docs/tutorials/wiki/src/installation/setup.py index e05e279e2..a4f143d24 100644 --- a/docs/tutorials/wiki/src/installation/setup.py +++ b/docs/tutorials/wiki/src/installation/setup.py @@ -22,8 +22,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki/src/models/setup.py b/docs/tutorials/wiki/src/models/setup.py index e05e279e2..a4f143d24 100644 --- a/docs/tutorials/wiki/src/models/setup.py +++ b/docs/tutorials/wiki/src/models/setup.py @@ -22,8 +22,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki/src/tests/setup.py b/docs/tutorials/wiki/src/tests/setup.py index 7011387f6..7b405745e 100644 --- a/docs/tutorials/wiki/src/tests/setup.py +++ b/docs/tutorials/wiki/src/tests/setup.py @@ -24,8 +24,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki/src/views/setup.py b/docs/tutorials/wiki/src/views/setup.py index a11ae6c8f..3c19db7b9 100644 --- a/docs/tutorials/wiki/src/views/setup.py +++ b/docs/tutorials/wiki/src/views/setup.py @@ -23,8 +23,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki2/background.rst b/docs/tutorials/wiki2/background.rst index c14d3cb7d..09315a77d 100644 --- a/docs/tutorials/wiki2/background.rst +++ b/docs/tutorials/wiki2/background.rst @@ -17,6 +17,6 @@ variant, etc.) *or* a Windows system of any kind. .. note:: - This tutorial runs on both Python 2 and 3 without modification. + This tutorial runs on Python 3 without modification. Have fun! diff --git a/docs/tutorials/wiki2/installation.rst b/docs/tutorials/wiki2/installation.rst index 924927cd4..705979065 100644 --- a/docs/tutorials/wiki2/installation.rst +++ b/docs/tutorials/wiki2/installation.rst @@ -126,16 +126,6 @@ On Unix On Windows ^^^^^^^^^^ -Each version of Python uses different paths, so you will need to adjust the path to the command for your Python version. Recent versions of the Python 3 installer for Windows now install a Python launcher. - -Python 2.7: - -.. code-block:: doscon - - c:\Python27\Scripts\virtualenv %VENV% - -Python 3.7: - .. code-block:: doscon python -m venv %VENV% diff --git a/docs/tutorials/wiki2/src/authentication/setup.py b/docs/tutorials/wiki2/src/authentication/setup.py index e2a30c0e7..f71998afc 100644 --- a/docs/tutorials/wiki2/src/authentication/setup.py +++ b/docs/tutorials/wiki2/src/authentication/setup.py @@ -25,8 +25,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki2/src/authentication/tutorial/views/default.py b/docs/tutorials/wiki2/src/authentication/tutorial/views/default.py index 8ed90d5b2..2f0210255 100644 --- a/docs/tutorials/wiki2/src/authentication/tutorial/views/default.py +++ b/docs/tutorials/wiki2/src/authentication/tutorial/views/default.py @@ -1,4 +1,4 @@ -from pyramid.compat import escape +from html import escape import re from docutils.core import publish_parts diff --git a/docs/tutorials/wiki2/src/authorization/setup.py b/docs/tutorials/wiki2/src/authorization/setup.py index e2a30c0e7..f71998afc 100644 --- a/docs/tutorials/wiki2/src/authorization/setup.py +++ b/docs/tutorials/wiki2/src/authorization/setup.py @@ -25,8 +25,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki2/src/authorization/tutorial/views/default.py b/docs/tutorials/wiki2/src/authorization/tutorial/views/default.py index ad271fb46..ad8491b7b 100644 --- a/docs/tutorials/wiki2/src/authorization/tutorial/views/default.py +++ b/docs/tutorials/wiki2/src/authorization/tutorial/views/default.py @@ -1,4 +1,4 @@ -from pyramid.compat import escape +from html import escape import re from docutils.core import publish_parts diff --git a/docs/tutorials/wiki2/src/basiclayout/setup.py b/docs/tutorials/wiki2/src/basiclayout/setup.py index 11725dd51..746012a74 100644 --- a/docs/tutorials/wiki2/src/basiclayout/setup.py +++ b/docs/tutorials/wiki2/src/basiclayout/setup.py @@ -23,8 +23,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki2/src/installation/setup.py b/docs/tutorials/wiki2/src/installation/setup.py index 11725dd51..746012a74 100644 --- a/docs/tutorials/wiki2/src/installation/setup.py +++ b/docs/tutorials/wiki2/src/installation/setup.py @@ -23,8 +23,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki2/src/models/setup.py b/docs/tutorials/wiki2/src/models/setup.py index 09e3126ea..b9dc9d93f 100644 --- a/docs/tutorials/wiki2/src/models/setup.py +++ b/docs/tutorials/wiki2/src/models/setup.py @@ -24,8 +24,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki2/src/tests/setup.py b/docs/tutorials/wiki2/src/tests/setup.py index e2a30c0e7..f71998afc 100644 --- a/docs/tutorials/wiki2/src/tests/setup.py +++ b/docs/tutorials/wiki2/src/tests/setup.py @@ -25,8 +25,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki2/src/tests/tutorial/views/default.py b/docs/tutorials/wiki2/src/tests/tutorial/views/default.py index ad271fb46..ad8491b7b 100644 --- a/docs/tutorials/wiki2/src/tests/tutorial/views/default.py +++ b/docs/tutorials/wiki2/src/tests/tutorial/views/default.py @@ -1,4 +1,4 @@ -from pyramid.compat import escape +from html import escape import re from docutils.core import publish_parts diff --git a/docs/tutorials/wiki2/src/views/setup.py b/docs/tutorials/wiki2/src/views/setup.py index e2a30c0e7..f71998afc 100644 --- a/docs/tutorials/wiki2/src/views/setup.py +++ b/docs/tutorials/wiki2/src/views/setup.py @@ -25,8 +25,8 @@ requires = [ ] tests_require = [ - 'WebTest >= 1.3.1', # py3 compat - 'pytest>=3.7.4', + 'WebTest', + 'pytest', 'pytest-cov', ] diff --git a/docs/tutorials/wiki2/src/views/tutorial/views/default.py b/docs/tutorials/wiki2/src/views/tutorial/views/default.py index a866af1de..5e28b64fd 100644 --- a/docs/tutorials/wiki2/src/views/tutorial/views/default.py +++ b/docs/tutorials/wiki2/src/views/tutorial/views/default.py @@ -1,4 +1,4 @@ -from pyramid.compat import escape +from html import escape import re from docutils.core import publish_parts @@ -44,9 +44,9 @@ tests_require = [ docs_extras = [ - 'Sphinx >= 1.8.1', + 'Sphinx >= 1.8.1', # Unicode characters in tree diagrams 'docutils', - 'pylons-sphinx-themes >= 1.0.8', + 'pylons-sphinx-themes >= 1.0.8', # Ethical Ads 'pylons_sphinx_latesturl', 'repoze.sphinx.autointerface', 'sphinxcontrib-autoprogram', |
