Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
devel:languages:python
python-Routes
remove-six.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File remove-six.patch of Package python-Routes
From 44d96530bb52642a52e2a14921ebda6af0f7afc5 Mon Sep 17 00:00:00 2001 From: Alexandre Detiste <alexandre.detiste@gmail.com> Date: Fri, 20 Oct 2023 15:39:04 +0200 Subject: [PATCH] remove python2 support --- routes/mapper.py | 27 +++++------- routes/route.py | 12 +++-- routes/util.py | 44 +++++++++---------- setup.py | 13 ++---- tests/test_functional/test_generation.py | 3 +- tests/test_functional/test_nonminimization.py | 2 +- tests/test_functional/test_recognition.py | 3 +- 7 files changed, 45 insertions(+), 59 deletions(-) diff --git a/routes/mapper.py b/routes/mapper.py index 72981cb..9de7e60 100644 --- a/routes/mapper.py +++ b/routes/mapper.py @@ -5,7 +5,6 @@ import threading from repoze.lru import LRUCache -import six from routes import request_config from routes.util import ( @@ -168,7 +167,7 @@ def connect(self, routename, path=None, **kwargs): newkargs = {} _routename = routename _path = path - for key, value in six.iteritems(self.kwargs): + for key, value in self.kwargs.items(): if key == 'path_prefix': if path is not None: # if there's a name_prefix, add it to the route name @@ -595,7 +594,7 @@ def _create_gens(self): if 'controller' in route.hardcoded: clist = [route.defaults['controller']] if 'action' in route.hardcoded: - alist = [six.text_type(route.defaults['action'])] + alist = [str(route.defaults['action'])] for controller in clist: for action in alist: actiondict = gendict.setdefault(controller, {}) @@ -625,7 +624,7 @@ def _create_regs(self, clist=None): else: clist = self.controller_scan - for key, val in six.iteritems(self.maxkeys): + for key, val in self.maxkeys.items(): for route in val: route.makeregexp(clist) @@ -801,15 +800,11 @@ def generate(self, *args, **kargs): # If the URL didn't depend on the SCRIPT_NAME, we'll cache it # keyed by just by kargs; otherwise we need to cache it with # both SCRIPT_NAME and kargs: - cache_key = six.text_type(args).encode('utf8') + \ - six.text_type(kargs).encode('utf8') + cache_key = str(args).encode('utf8') + str(kargs).encode('utf8') if self.urlcache is not None: - if six.PY3: - cache_key_script_name = b':'.join((script_name.encode('utf-8'), - cache_key)) - else: - cache_key_script_name = '%s:%s' % (script_name, cache_key) + cache_key_script_name = b':'.join((script_name.encode('utf-8'), + cache_key)) # Check the url cache to see if it exists, use it if it does val = self.urlcache.get(cache_key_script_name, self) @@ -829,7 +824,7 @@ def generate(self, *args, **kargs): keys = frozenset(kargs.keys()) cacheset = False - cachekey = six.text_type(keys) + cachekey = str(keys) cachelist = sortcache.get(cachekey) if args: keylist = args @@ -1110,7 +1105,7 @@ def resource(self, member_name, collection_name, **kwargs): def swap(dct, newdct): """Swap the keys and values in the dict, and uppercase the values from the dict during the swap.""" - for key, val in six.iteritems(dct): + for key, val in dct.items(): newdct.setdefault(val.upper(), []).append(key) return newdct collection_methods = swap(collection, {}) @@ -1153,7 +1148,7 @@ def requirements_for(meth): return opts # Add the routes for handling collection methods - for method, lst in six.iteritems(collection_methods): + for method, lst in collection_methods.items(): primary = (method != 'GET' and lst.pop(0)) or None route_options = requirements_for(method) for action in lst: @@ -1177,7 +1172,7 @@ def requirements_for(meth): action='index', conditions={'method': ['GET']}, **options) # Add the routes that deal with new resource methods - for method, lst in six.iteritems(new_methods): + for method, lst in new_methods.items(): route_options = requirements_for(method) for action in lst: name = "new_" + member_name @@ -1196,7 +1191,7 @@ def requirements_for(meth): requirements_regexp = '[^\\/]+(?<!\\\\)' # Add the routes that deal with member methods of a resource - for method, lst in six.iteritems(member_methods): + for method, lst in member_methods.items(): route_options = requirements_for(method) route_options['requirements'] = {'id': requirements_regexp} if method not in ['POST', 'GET', 'any']: diff --git a/routes/route.py b/routes/route.py index 719636a..b3f5dca 100644 --- a/routes/route.py +++ b/routes/route.py @@ -1,8 +1,6 @@ import re import sys - -import six -from six.moves.urllib import parse as urlparse +from urllib import parse as urlparse from routes.util import _url_quote as url_quote, _str_encode, as_unicode @@ -97,7 +95,7 @@ def _setup_route(self): # Build a req list with all the regexp requirements for our args self.req_regs = {} - for key, val in six.iteritems(self.reqs): + for key, val in self.reqs.items(): self.req_regs[key] = re.compile('^' + val + '$') # Update our defaults and set new default keys if needed. defaults # needs to be saved @@ -133,14 +131,14 @@ def make_full_route(self): def make_unicode(self, s): """Transform the given argument into a unicode string.""" - if isinstance(s, six.text_type): + if isinstance(s, str): return s elif isinstance(s, bytes): return s.decode(self.encoding) elif callable(s): return s else: - return six.text_type(s) + return str(s) def _pathkeys(self, routepath): """Utility function to walk the route, and pull out the valid @@ -567,7 +565,7 @@ def match(self, url, environ=None, sub_domains=False, matchdict = match.groupdict() result = {} extras = self._default_keys - frozenset(matchdict.keys()) - for key, val in six.iteritems(matchdict): + for key, val in matchdict.items(): if key != 'path_info' and self.encoding: # change back into python unicode objects from the URL # representation diff --git a/routes/util.py b/routes/util.py index 54c8951..be229ae 100644 --- a/routes/util.py +++ b/routes/util.py @@ -7,9 +7,7 @@ """ import os import re - -import six -from six.moves import urllib +import urllib from routes import request_config @@ -34,8 +32,8 @@ def _screenargs(kargs, mapper, environ, force_explicit=False): """ # Coerce any unicode args with the encoding encoding = mapper.encoding - for key, val in six.iteritems(kargs): - if isinstance(val, six.text_type): + for key, val in kargs.items(): + if isinstance(val, str): kargs[key] = val.encode(encoding) if mapper.explicit and mapper.sub_domains and not force_explicit: @@ -60,7 +58,7 @@ def _screenargs(kargs, mapper, environ, force_explicit=False): memory_kargs = {} # Remove keys from memory and kargs if kargs has them as None - empty_keys = [key for key, value in six.iteritems(kargs) if value is None] + empty_keys = [key for key, value in kargs.items() if value is None] for key in empty_keys: del kargs[key] memory_kargs.pop(key, None) @@ -79,7 +77,7 @@ def _subdomain_check(kargs, mapper, environ): on the current subdomain or lack therof.""" if mapper.sub_domains: subdomain = kargs.pop('sub_domain', None) - if isinstance(subdomain, six.text_type): + if isinstance(subdomain, str): subdomain = str(subdomain) fullhost = environ.get('HTTP_HOST') or environ.get('SERVER_NAME') @@ -112,13 +110,13 @@ def _subdomain_check(kargs, mapper, environ): def _url_quote(string, encoding): """A Unicode handling version of urllib.quote.""" if encoding: - if isinstance(string, six.text_type): + if isinstance(string, str): s = string.encode(encoding) - elif isinstance(string, six.text_type): + elif isinstance(string, str): # assume the encoding is already correct s = string else: - s = six.text_type(string).encode(encoding) + s = str(string).encode(encoding) else: s = str(string) return urllib.parse.quote(s, '/') @@ -126,13 +124,13 @@ def _url_quote(string, encoding): def _str_encode(string, encoding): if encoding: - if isinstance(string, six.text_type): + if isinstance(string, str): s = string.encode(encoding) - elif isinstance(string, six.text_type): + elif isinstance(string, str): # assume the encoding is already correct s = string else: - s = six.text_type(string).encode(encoding) + s = str(string).encode(encoding) return s @@ -216,16 +214,16 @@ def url_for(*args, **kargs): if kargs: url += '?' query_args = [] - for key, val in six.iteritems(kargs): + for key, val in kargs.items(): if isinstance(val, (list, tuple)): for value in val: query_args.append("%s=%s" % ( - urllib.parse.quote(six.text_type(key).encode(encoding)), - urllib.parse.quote(six.text_type(value).encode(encoding)))) + urllib.parse.quote(str(key).encode(encoding)), + urllib.parse.quote(str(value).encode(encoding)))) else: query_args.append("%s=%s" % ( - urllib.parse.quote(six.text_type(key).encode(encoding)), - urllib.parse.quote(six.text_type(val).encode(encoding)))) + urllib.parse.quote(str(key).encode(encoding)), + urllib.parse.quote(str(val).encode(encoding)))) url += '&'.join(query_args) environ = getattr(config, 'environ', {}) if 'wsgiorg.routing_args' not in environ: @@ -366,16 +364,16 @@ def __call__(self, *args, **kargs): if kargs: url += '?' query_args = [] - for key, val in six.iteritems(kargs): + for key, val in kargs.items(): if isinstance(val, (list, tuple)): for value in val: query_args.append("%s=%s" % ( - urllib.parse.quote(six.text_type(key).encode(encoding)), - urllib.parse.quote(six.text_type(value).encode(encoding)))) + urllib.parse.quote(str(key).encode(encoding)), + urllib.parse.quote(str(value).encode(encoding)))) else: query_args.append("%s=%s" % ( - urllib.parse.quote(six.text_type(key).encode(encoding)), - urllib.parse.quote(six.text_type(val).encode(encoding)))) + urllib.parse.quote(str(key).encode(encoding)), + urllib.parse.quote(str(val).encode(encoding)))) url += '&'.join(query_args) if not static: route_args = [] diff --git a/setup.py b/setup.py index 18d886f..b6052cc 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,6 @@ README = f.read() with io.open(os.path.join(here, 'CHANGELOG.rst'), encoding='utf8') as f: CHANGES = f.read() -PY3 = sys.version_info[0] == 3 extra_options = { "packages": find_packages(), @@ -24,11 +23,10 @@ } extras_require['docs'] = ['Sphinx'] + extras_require['middleware'] -if PY3: - if "test" in sys.argv or "develop" in sys.argv: - for root, directories, files in os.walk("tests"): - for directory in directories: - extra_options["packages"].append(os.path.join(root, directory)) +if "test" in sys.argv or "develop" in sys.argv: + for root, directories, files in os.walk("tests"): + for directory in directories: + extra_options["packages"].append(os.path.join(root, directory)) setup(name="Routes", version=__version__, @@ -42,8 +40,6 @@ "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: Implementation :: CPython", 'Programming Language :: Python', - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", @@ -67,7 +63,6 @@ zip_safe=False, tests_require=["soupsieve<2.0", 'nose', 'webtest', 'webob', 'coverage'], install_requires=[ - "six", "repoze.lru>=0.3" ], extras_require=extras_require, diff --git a/tests/test_functional/test_generation.py b/tests/test_functional/test_generation.py index b461b5f..cb6732d 100644 --- a/tests/test_functional/test_generation.py +++ b/tests/test_functional/test_generation.py @@ -1,6 +1,5 @@ """test_generation""" -import sys, time, unittest -from six.moves import urllib +import sys, time, unittest, urllib from nose.tools import eq_, assert_raises from routes import * diff --git a/tests/test_functional/test_nonminimization.py b/tests/test_functional/test_nonminimization.py index 1b152c4..7f2d0e1 100644 --- a/tests/test_functional/test_nonminimization.py +++ b/tests/test_functional/test_nonminimization.py @@ -1,5 +1,5 @@ """Test non-minimization recognition""" -from six.moves import urllib +import urllib from nose.tools import eq_ diff --git a/tests/test_functional/test_recognition.py b/tests/test_functional/test_recognition.py index 03fe6a7..6295979 100644 --- a/tests/test_functional/test_recognition.py +++ b/tests/test_functional/test_recognition.py @@ -3,7 +3,8 @@ import sys import time import unittest -from six.moves import urllib +import urllib + from nose.tools import eq_, assert_raises from routes import * from routes.util import RoutesException
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor