Hello community, here is the log from the commit of package python-pecan for openSUSE:Factory checked in at 2018-08-24 17:10:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pecan (Old) and /work/SRC/openSUSE:Factory/.python-pecan.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pecan" Fri Aug 24 17:10:49 2018 rev:22 rq:631039 version:1.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pecan/python-pecan.changes 2017-08-28 15:16:25.374984471 +0200 +++ /work/SRC/openSUSE:Factory/.python-pecan.new/python-pecan.changes 2018-08-24 17:10:51.298552849 +0200 @@ -1,0 +2,24 @@ +Wed Aug 22 14:50:34 UTC 2018 - [email protected] + +- Add python-pysqlite dependency + * Needed for the unit tests + +------------------------------------------------------------------- +Thu Aug 16 09:31:01 UTC 2018 - [email protected] + +- Ensure neutrality of description. + +------------------------------------------------------------------- +Thu Aug 9 09:54:40 UTC 2018 - [email protected] + +- Do not depend on Kajiki as it is Genshi clone: + * pecan-no-kajiki.patch + +------------------------------------------------------------------- +Thu Aug 9 09:44:14 UTC 2018 - [email protected] + +- Version update to 1.3.2: + * Fixes for newer webob and other dependencies +- Drop merged patch pull-request-91.patch + +------------------------------------------------------------------- Old: ---- pecan-1.2.1.tar.gz pull-request-91.patch New: ---- pecan-1.3.2.tar.gz pecan-no-kajiki.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pecan.spec ++++++ --- /var/tmp/diff_new_pack.WCKVBZ/_old 2018-08-24 17:10:51.742553378 +0200 +++ /var/tmp/diff_new_pack.WCKVBZ/_new 2018-08-24 17:10:51.742553378 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-pecan # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,74 +18,66 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pecan -Version: 1.2.1 +Version: 1.3.2 Release: 0 -Summary: A WSGI object-dispatching web framework, designed to be lean and fast +Summary: A WSGI object-dispatching web framework License: BSD-3-Clause Group: Development/Languages/Python -Url: http://github.com/dreamhost/pecan +URL: https://github.com/pecan/pecan Source: https://files.pythonhosted.org/packages/source/p/pecan/pecan-%{version}.tar.gz -# # PATCH-FIX-UPSTREAM pull-request-91.patch -- https://github.com/pecan/pecan/pull/91 -Patch1: pull-request-91.patch -BuildRequires: %{python_module devel} -BuildRequires: %{python_module setuptools} -BuildRequires: python-rpm-macros -# Test requirements: -%if 0%{?suse_version} >= 1230 && 0%{?suse_version} != 1315 -BuildRequires: %{python_module Genshi} +Patch0: pecan-no-kajiki.patch +BuildRequires: %{python_module Genshi >= 0.7} BuildRequires: %{python_module Jinja2} -BuildRequires: %{python_module Kajiki} BuildRequires: %{python_module Mako >= 0.4.0} BuildRequires: %{python_module SQLAlchemy} +BuildRequires: %{python_module WebOb >= 1.2} BuildRequires: %{python_module WebTest >= 1.3.1} BuildRequires: %{python_module gunicorn} BuildRequires: %{python_module logutils} BuildRequires: %{python_module mock} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module six} BuildRequires: %{python_module virtualenv} +BuildRequires: fdupes +BuildRequires: python-pysqlite +BuildRequires: python-rpm-macros BuildRequires: python2-singledispatch -%endif -BuildRequires: %{python_module six} Requires: python-Mako >= 0.4.0 -Requires: python-WebOb >= 1.2dev +Requires: python-WebOb >= 1.2 Requires: python-WebTest >= 1.3.1 Requires: python-logutils >= 0.3 +Requires: python-six +Requires(post): update-alternatives +Requires(postun): update-alternatives +BuildArch: noarch %ifpython2 Requires: python-singledispatch %endif -Requires: python-six %if 0%{?suse_version} -Suggests: python-Jinja2 Suggests: python-Genshi +Suggests: python-Jinja2 Suggests: python-gunicorn %endif -BuildRoot: %{_tmppath}/%{name}-%{version}-build -Requires(post): update-alternatives -Requires(postun): update-alternatives -BuildArch: noarch - %python_subpackages %description -A WSGI object-dispatching web framework, designed to be lean and fast with few dependencies. +A WSGI object-dispatching web framework. %prep %setup -q -n pecan-%{version} -# Let's not depend on Kajiki, a Genshi clone. Genshi should be enough: -sed -i "/'Kajiki',/d" setup.py -%patch1 -p1 +%patch0 -p1 %build %python_build %install %python_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} %python_clone -a %{buildroot}%{_bindir}/pecan %python_clone -a %{buildroot}%{_bindir}/gunicorn_pecan -%if 0%{?suse_version} >= 1230 && 0%{?suse_version} != 1315 %check %python_exec setup.py test -%endif %post %python_install_alternative pecan @@ -96,8 +88,8 @@ %python_uninstall_alternative gunicorn_pecan %files %{python_files} -%defattr(-,root,root,-) -%doc LICENSE README.rst +%license LICENSE +%doc README.rst %python_alternative %{_bindir}/pecan %python_alternative %{_bindir}/gunicorn_pecan %{python_sitelib}/* ++++++ pecan-1.2.1.tar.gz -> pecan-1.3.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/PKG-INFO new/pecan-1.3.2/PKG-INFO --- old/pecan-1.2.1/PKG-INFO 2016-09-27 02:09:24.000000000 +0200 +++ new/pecan-1.3.2/PKG-INFO 2018-01-31 16:28:20.000000000 +0100 @@ -1,11 +1,12 @@ Metadata-Version: 1.1 Name: pecan -Version: 1.2.1 +Version: 1.3.2 Summary: A WSGI object-dispatching web framework, designed to be lean and fast, with few dependencies. Home-page: http://github.com/pecan/pecan Author: Jonathan LaCour Author-email: [email protected] License: BSD +Description-Content-Type: UNKNOWN Description: UNKNOWN Keywords: web framework wsgi object-dispatch http Platform: UNKNOWN @@ -20,12 +21,12 @@ Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Internet :: WWW/HTTP :: WSGI Classifier: Topic :: Software Development :: Libraries :: Application Frameworks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/core.py new/pecan-1.3.2/pecan/core.py --- old/pecan-1.2.1/pecan/core.py 2016-09-27 02:05:33.000000000 +0200 +++ new/pecan-1.3.2/pecan/core.py 2018-01-31 16:27:53.000000000 +0100 @@ -18,7 +18,7 @@ from .secure import handle_security from .templating import RendererFactory from .routing import lookup_controller, NonCanonicalPath -from .util import _cfg, encode_if_needed, getargspec +from .util import _cfg, getargspec from .middleware.recursive import ForwardRequestException if six.PY3: @@ -399,7 +399,7 @@ if argspec[2]: for name, value in six.iteritems(all_params): if name not in argspec[0]: - kwargs[encode_if_needed(name)] = value + kwargs[name] = value return args, varargs, kwargs @@ -480,7 +480,7 @@ if not pecan_state['content_type']: # attempt to find a best match based on accept headers (if they # exist) - accept = getattr(req.accept, 'header_value', '*/*') + accept = getattr(req.accept, 'header_value', '*/*') or '*/*' if accept == '*/*' or ( accept.startswith('text/html,') and list(content_types.keys()) in self.SIMPLEST_CONTENT_TYPES): @@ -686,7 +686,7 @@ if isinstance(e, exc.HTTPException): # if the client asked for JSON, do our best to provide it best_match = acceptparse.MIMEAccept( - getattr(req.accept, 'header_value', '*/*') + getattr(req.accept, 'header_value', '*/*') or '*/*' ).best_match(('text/plain', 'text/html', 'application/json')) state.response = e if best_match == 'application/json': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/jsonify.py new/pecan-1.3.2/pecan/jsonify.py --- old/pecan-1.2.1/pecan/jsonify.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/jsonify.py 2018-01-31 16:27:53.000000000 +0100 @@ -1,10 +1,6 @@ -try: - from simplejson import JSONEncoder -except ImportError: # pragma: no cover - from json import JSONEncoder # noqa - from datetime import datetime, date from decimal import Decimal +from json import JSONEncoder # depending on the version WebOb might have 2 types of dicts try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/routing.py new/pecan-1.3.2/pecan/routing.py --- old/pecan-1.2.1/pecan/routing.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/routing.py 2018-01-31 16:27:53.000000000 +0100 @@ -1,3 +1,4 @@ +import logging import re import warnings from inspect import getmembers, ismethod @@ -12,6 +13,8 @@ __observed_controllers__ = set() __custom_routes__ = {} +logger = logging.getLogger(__name__) + def route(*args): """ @@ -170,18 +173,16 @@ def handle_lookup_traversal(obj, args): try: result = obj(*args) + except TypeError as te: + logger.debug('Got exception calling lookup(): %s (%s)', + te, te.args) + else: if result: prev_obj = obj obj, remainder = result # crossing controller boundary cross_boundary(prev_obj, obj) return result - except TypeError as te: - msg = 'Got exception calling lookup(): %s (%s)' - warnings.warn( - msg % (te, te.args), - RuntimeWarning - ) def find_object(obj, remainder, notfound_handlers, request): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/__init__.py new/pecan-1.3.2/pecan/tests/__init__.py --- old/pecan-1.2.1/pecan/tests/__init__.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/__init__.py 2018-01-31 16:27:53.000000000 +0100 @@ -1,9 +1,6 @@ import sys import os -if sys.version_info < (2, 7): - from unittest2 import TestCase # pragma: nocover -else: - from unittest import TestCase # pragma: nocover +from unittest import TestCase from pecan.testing import reset_global_config diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/scaffold_builder.py new/pecan-1.3.2/pecan/tests/scaffold_builder.py --- old/pecan-1.2.1/pecan/tests/scaffold_builder.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/scaffold_builder.py 2018-01-31 16:27:53.000000000 +0100 @@ -8,10 +8,7 @@ from pecan.compat import urlopen, URLError from pecan.tests import PecanTestCase -if sys.version_info < (2, 7): - import unittest2 as unittest -else: - import unittest # noqa +import unittest if __name__ == '__main__': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/test_base.py new/pecan-1.3.2/pecan/tests/test_base.py --- old/pecan-1.2.1/pecan/tests/test_base.py 2016-09-27 02:05:33.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/test_base.py 2018-01-31 16:27:53.000000000 +0100 @@ -25,10 +25,7 @@ from pecan.decorators import accept_noncanonical from pecan.tests import PecanTestCase -if sys.version_info < (2, 7): - import unittest2 as unittest # pragma: nocover -else: - import unittest # pragma: nocover +import unittest class SampleRootController(object): @@ -339,11 +336,20 @@ def _lookup(self, someID): return 'Bad arg spec' # pragma: nocover - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - app = TestApp(Pecan(RootController())) - r = app.get('/foo/bar', expect_errors=True) - assert r.status_int == 404 + app = TestApp(Pecan(RootController())) + r = app.get('/foo/bar', expect_errors=True) + assert r.status_int == 404 + + def test_lookup_with_wrong_return(self): + class RootController(object): + @expose() + def _lookup(self, someID, *remainder): + return 1 + + app = TestApp(Pecan(RootController())) + self.assertRaises(TypeError, + app.get, + '/foo/bar', expect_errors=True) class TestCanonicalLookups(PecanTestCase): @@ -1523,6 +1529,13 @@ return TestApp(Pecan(RootController())) + def test_missing_accept(self): + r = self.app_.get('/', headers={ + 'Accept': '' + }) + assert r.status_int == 200 + assert r.content_type == 'text/html' + def test_quality(self): r = self.app_.get('/', headers={ 'Accept': 'text/html,application/json;q=0.9,*/*;q=0.8' @@ -1916,11 +1929,6 @@ assert 'support for "mako3" was not found;' in str(expected) def test_json(self): - try: - from simplejson import loads - except: - from json import loads # noqa - expected_result = dict( name='Jonathan', age=30, nested=dict(works=True) @@ -1934,7 +1942,7 @@ app = TestApp(Pecan(RootController())) r = app.get('/') assert r.status_int == 200 - result = dict(loads(r.body.decode())) + result = json.loads(r.body.decode()) assert result == expected_result def test_custom_renderer(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/test_conf.py new/pecan-1.3.2/pecan/tests/test_conf.py --- old/pecan-1.2.1/pecan/tests/test_conf.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/test_conf.py 2018-01-31 16:27:53.000000000 +0100 @@ -157,7 +157,7 @@ try: configuration.conf_from_file(f.name) - except (ValueError, SystemError) as e: + except (ValueError, SystemError, ImportError) as e: assert 'relative import' in str(e) else: raise AssertionError( @@ -181,11 +181,10 @@ def test_config_dir(self): from pecan import configuration - if sys.version_info >= (2, 6): - conf = configuration.Config({}) - self.assertEqual([], dir(conf)) - conf = configuration.Config({'a': 1}) - self.assertEqual(['a'], dir(conf)) + conf = configuration.Config({}) + self.assertEqual([], dir(conf)) + conf = configuration.Config({'a': 1}) + self.assertEqual(['a'], dir(conf)) def test_config_bad_key(self): from pecan import configuration diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/test_generic.py new/pecan-1.3.2/pecan/tests/test_generic.py --- old/pecan-1.2.1/pecan/tests/test_generic.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/test_generic.py 2018-01-31 16:27:53.000000000 +0100 @@ -1,8 +1,5 @@ +from json import dumps from webtest import TestApp -try: - from simplejson import dumps -except: - from json import dumps # noqa from six import b as b_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/test_jsonify.py new/pecan-1.3.2/pecan/tests/test_jsonify.py --- old/pecan-1.2.1/pecan/tests/test_jsonify.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/test_jsonify.py 2018-01-31 16:27:53.000000000 +0100 @@ -1,9 +1,6 @@ from datetime import datetime, date from decimal import Decimal -try: - from simplejson import loads -except: - from json import loads # noqa +from json import loads try: from sqlalchemy import orm, schema, types from sqlalchemy.engine import create_engine diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/test_rest.py new/pecan-1.3.2/pecan/tests/test_rest.py --- old/pecan-1.2.1/pecan/tests/test_rest.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/test_rest.py 2018-01-31 16:27:53.000000000 +0100 @@ -1,19 +1,11 @@ # -*- coding: utf-8 -*- +from json import dumps, loads +import unittest import struct import sys import warnings -if sys.version_info < (2, 7): - import unittest2 as unittest # pragma: nocover -else: - import unittest # pragma: nocover - -try: - from simplejson import dumps, loads -except: - from json import dumps, loads # noqa - from six import b as b_, PY3 from webtest import TestApp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/test_scaffolds.py new/pecan-1.3.2/pecan/tests/test_scaffolds.py --- old/pecan-1.2.1/pecan/tests/test_scaffolds.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/test_scaffolds.py 2018-01-31 16:27:53.000000000 +0100 @@ -1,17 +1,13 @@ import os +import shutil import sys import tempfile -import shutil +import unittest from six.moves import cStringIO as StringIO from pecan.tests import PecanTestCase -if sys.version_info < (2, 7): - import unittest2 as unittest -else: - import unittest # noqa - class TestPecanScaffold(PecanTestCase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/tests/test_secure.py new/pecan-1.3.2/pecan/tests/test_secure.py --- old/pecan-1.2.1/pecan/tests/test_secure.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/tests/test_secure.py 2018-01-31 16:27:53.000000000 +0100 @@ -1,4 +1,5 @@ import sys +import unittest from six import b as b_ from webtest import TestApp @@ -7,11 +8,6 @@ from pecan.secure import secure, unlocked, SecureController from pecan.tests import PecanTestCase -if sys.version_info < (2, 7): - import unittest2 as unittest -else: - import unittest # noqa - try: set() except: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan/util.py new/pecan-1.3.2/pecan/util.py --- old/pecan-1.2.1/pecan/util.py 2016-09-27 02:05:11.000000000 +0200 +++ new/pecan-1.3.2/pecan/util.py 2018-01-31 16:27:53.000000000 +0100 @@ -58,11 +58,3 @@ if not hasattr(f, '_pecan'): f._pecan = {} return f._pecan - - -if sys.version_info >= (2, 6, 5): - def encode_if_needed(s): - return s -else: - def encode_if_needed(s): # noqa - return s.encode('utf-8') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/pecan.egg-info/PKG-INFO new/pecan-1.3.2/pecan.egg-info/PKG-INFO --- old/pecan-1.2.1/pecan.egg-info/PKG-INFO 2016-09-27 02:09:24.000000000 +0200 +++ new/pecan-1.3.2/pecan.egg-info/PKG-INFO 2018-01-31 16:28:20.000000000 +0100 @@ -1,11 +1,12 @@ Metadata-Version: 1.1 Name: pecan -Version: 1.2.1 +Version: 1.3.2 Summary: A WSGI object-dispatching web framework, designed to be lean and fast, with few dependencies. Home-page: http://github.com/pecan/pecan Author: Jonathan LaCour Author-email: [email protected] License: BSD +Description-Content-Type: UNKNOWN Description: UNKNOWN Keywords: web framework wsgi object-dispatch http Platform: UNKNOWN @@ -20,12 +21,12 @@ Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Internet :: WWW/HTTP :: WSGI Classifier: Topic :: Software Development :: Libraries :: Application Frameworks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/setup.cfg new/pecan-1.3.2/setup.cfg --- old/pecan-1.2.1/setup.cfg 2016-09-27 02:09:24.000000000 +0200 +++ new/pecan-1.3.2/setup.cfg 2018-01-31 16:28:20.000000000 +0100 @@ -11,5 +11,4 @@ [egg_info] tag_build = tag_date = 0 -tag_svn_revision = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.2.1/setup.py new/pecan-1.3.2/setup.py --- old/pecan-1.2.1/setup.py 2016-09-27 02:06:12.000000000 +0200 +++ new/pecan-1.3.2/setup.py 2018-01-31 16:27:53.000000000 +0100 @@ -3,7 +3,7 @@ from setuptools import setup, find_packages -version = '1.2.1' +version = '1.3.2' # # determine requirements @@ -15,23 +15,6 @@ ] try: - import json # noqa -except: - try: - import simplejson # noqa - except: - requirements.append("simplejson >= 2.1.1") - -try: - import argparse # noqa -except: - # - # This was introduced in Python 2.7 - the argparse package contains - # a backported replacement for 2.6 - # - requirements.append('argparse') - -try: from functools import singledispatch # noqa except: # @@ -52,8 +35,6 @@ 'mock', 'sqlalchemy' ] -if sys.version_info < (2, 7): - tests_require += ['unittest2'] if sys.version_info < (3, 0): # These don't support Python3 yet - don't run their tests @@ -86,12 +67,12 @@ 'Operating System :: POSIX', 'Programming Language :: Python', 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Internet :: WWW/HTTP :: WSGI', 'Topic :: Software Development :: Libraries :: Application Frameworks' ++++++ pecan-no-kajiki.patch ++++++ Index: pecan-1.3.2/setup.py =================================================================== --- pecan-1.3.2.orig/setup.py +++ pecan-1.3.2/setup.py @@ -35,16 +35,8 @@ tests_require = requirements + [ 'mock', 'sqlalchemy' ] - -if sys.version_info < (3, 0): - # These don't support Python3 yet - don't run their tests - if platform.python_implementation() != 'PyPy': - # Kajiki is not pypy-compatible - tests_require += ['Kajiki'] - tests_require += ['Genshi'] -else: - # Genshi added Python3 support in 0.7 - tests_require += ['Genshi>=0.7'] +# Genshi added Python3 support in 0.7 +tests_require += ['Genshi>=0.7'] # # call setup
