Log In
Log In
Places
All Projects
Status Monitor
Collapse sidebar
matrix-synapse
python-paste
paste-python3.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File paste-python3.patch of Package python-paste
diff -r a159cd816e01 paste/exceptions/collector.py --- a/paste/exceptions/collector.py Mon May 11 08:31:12 2015 -0700 +++ b/paste/exceptions/collector.py Tue Oct 27 04:08:41 2015 +0000 @@ -266,7 +266,7 @@ name = co.co_name globals = f.f_globals locals = f.f_locals - if not hasattr(locals, 'has_key'): + if not hasattr(locals, 'keys'): # Something weird about this frame; it's not a real dict warnings.warn( "Frame %s has an invalid locals(): %r" % ( diff -r a159cd816e01 paste/exceptions/formatter.py --- a/paste/exceptions/formatter.py Mon May 11 08:31:12 2015 -0700 +++ b/paste/exceptions/formatter.py Tue Oct 27 04:08:41 2015 +0000 @@ -216,8 +216,7 @@ return '%s: %s' % (title, s) elif isinstance(value, dict): lines = ['\n', title, '-'*len(title)] - items = value.items() - items.sort() + items = sorted(value.items()) for n, v in items: try: v = repr(v) @@ -302,8 +301,7 @@ def zebra_table(self, title, rows, table_class="variables"): if isinstance(rows, dict): - rows = rows.items() - rows.sort() + rows = sorted(rows.items()) table = ['<table class="%s">' % table_class, '<tr class="header"><th colspan="2">%s</th></tr>' % self.quote(title)] diff -r a159cd816e01 paste/fixture.py --- a/paste/fixture.py Mon May 11 08:31:12 2015 -0700 +++ b/paste/fixture.py Tue Oct 27 04:08:41 2015 +0000 @@ -210,7 +210,7 @@ req = TestRequest(url, environ, expect_errors) return self.do_request(req, status=status) - def _gen_request(self, method, url, params=b'', headers=None, extra_environ=None, + def _gen_request(self, method, url, params='', headers=None, extra_environ=None, status=None, upload_files=None, expect_errors=False): """ Do a generic request. @@ -226,8 +226,6 @@ if hasattr(params, 'items'): # Some other multi-dict like format params = urlencode(params.items()) - if six.PY3: - params = params.encode('utf8') if upload_files: params = urlparse.parse_qsl(params, keep_blank_values=True) content_type, params = self.encode_multipart( @@ -235,6 +233,8 @@ environ['CONTENT_TYPE'] = content_type elif params: environ.setdefault('CONTENT_TYPE', 'application/x-www-form-urlencoded') + if six.PY3 and isinstance(params, six.text_type): + params = params.encode('utf8') if '?' in url: url, environ['QUERY_STRING'] = url.split('?', 1) else: @@ -247,7 +247,7 @@ req = TestRequest(url, environ, expect_errors) return self.do_request(req, status=status) - def post(self, url, params=b'', headers=None, extra_environ=None, + def post(self, url, params='', headers=None, extra_environ=None, status=None, upload_files=None, expect_errors=False): """ Do a POST request. Very like the ``.get()`` method. @@ -266,7 +266,7 @@ upload_files=upload_files, expect_errors=expect_errors) - def put(self, url, params=b'', headers=None, extra_environ=None, + def put(self, url, params='', headers=None, extra_environ=None, status=None, upload_files=None, expect_errors=False): """ Do a PUT request. Very like the ``.get()`` method. @@ -285,7 +285,7 @@ upload_files=upload_files, expect_errors=expect_errors) - def delete(self, url, params=b'', headers=None, extra_environ=None, + def delete(self, url, params='', headers=None, extra_environ=None, status=None, expect_errors=False): """ Do a DELETE request. Very like the ``.get()`` method. diff -r a159cd816e01 paste/request.py --- a/paste/request.py Mon May 11 08:31:12 2015 -0700 +++ b/paste/request.py Tue Oct 27 04:08:41 2015 +0000 @@ -108,7 +108,7 @@ environ['paste.parsed_querystring'] = (parsed, source) return parsed -def parse_dict_querystring(environ): +def parse_dict_querystring(environ, **kwargs): """Parses a query string like parse_querystring, but returns a MultiDict Caches this value in case parse_dict_querystring is called again @@ -135,12 +135,12 @@ if check_source == source: return parsed parsed = parse_qsl(source, keep_blank_values=True, - strict_parsing=False) + strict_parsing=False, **kwargs) multi = MultiDict(parsed) environ['paste.parsed_dict_querystring'] = (multi, source) return multi -def parse_formvars(environ, include_get_vars=True): +def parse_formvars(environ, include_get_vars=True, **kwargs): """Parses the request, returning a MultiDict of form variables. If ``include_get_vars`` is true then GET (query string) variables @@ -184,7 +184,8 @@ input = environ['wsgi.input'] fs = cgi.FieldStorage(fp=input, environ=environ, - keep_blank_values=1) + keep_blank_values=1, + **kwargs) environ['QUERY_STRING'] = old_query_string if fake_out_cgi: environ['CONTENT_TYPE'] = old_content_type diff -r a159cd816e01 paste/wsgiwrappers.py --- a/paste/wsgiwrappers.py Mon May 11 08:31:12 2015 -0700 +++ b/paste/wsgiwrappers.py Tue Oct 27 04:08:41 2015 +0000 @@ -176,7 +176,11 @@ languages = property(languages, doc=languages.__doc__) def _GET(self): - return parse_dict_querystring(self.environ) + if six.PY3 and self.charset: + kwargs = {'encoding': self.charset} + else: + kwargs = {} + return parse_dict_querystring(self.environ, **kwargs) def GET(self): """ @@ -191,7 +195,7 @@ ``charset`` is set. """ params = self._GET() - if self.charset: + if not six.PY3 and self.charset: params = UnicodeMultiDict(params, encoding=self.charset, errors=self.errors, decode_keys=self.decode_param_names) @@ -199,7 +203,11 @@ GET = property(GET, doc=GET.__doc__) def _POST(self): - return parse_formvars(self.environ, include_get_vars=False) + if six.PY3 and self.charset: + kwargs = {'encoding': self.charset} + else: + kwargs = {} + return parse_formvars(self.environ, include_get_vars=False, **kwargs) def POST(self): """Dictionary-like object representing the POST body. @@ -218,7 +226,7 @@ ``charset`` is set. """ params = self._POST() - if self.charset: + if not six.PY3 and self.charset: params = UnicodeMultiDict(params, encoding=self.charset, errors=self.errors, decode_keys=self.decode_param_names) @@ -243,7 +251,7 @@ params = MultiDict() params.update(self._POST()) params.update(self._GET()) - if self.charset: + if not six.PY3 and self.charset: params = UnicodeMultiDict(params, encoding=self.charset, errors=self.errors, decode_keys=self.decode_param_names) diff -r a159cd816e01 tests/test_doctests.py --- a/tests/test_doctests.py Mon May 11 08:31:12 2015 -0700 +++ b/tests/test_doctests.py Tue Oct 27 04:08:41 2015 +0000 @@ -25,7 +25,7 @@ 'paste.request', ] -options = doctest.ELLIPSIS|doctest.REPORT_ONLY_FIRST_FAILURE +options = doctest.ELLIPSIS|doctest.REPORT_ONLY_FIRST_FAILURE|doctest.IGNORE_EXCEPTION_DETAIL def test_doctests(): for filename in filenames: diff -r a159cd816e01 tests/test_template.txt --- a/tests/test_template.txt Mon May 11 08:31:12 2015 -0700 +++ b/tests/test_template.txt Tue Oct 27 04:08:41 2015 +0000 @@ -9,7 +9,7 @@ >>> Template('Hi {{name+1}}').substitute(name='Ian') Traceback (most recent call last): ... - TypeError: cannot concatenate 'str' and 'int' objects at line 1 column 6 + TypeError: ... at line 1 column 6 It also has Django-style piping:: @@ -97,8 +97,8 @@ ... elif item == 'orange': ... assert loop.last ... if loop.first_group(lambda i: i[0].upper()): - ... print '%s:' % item[0].upper() - ... print loop.number, item + ... print('%s:' % item[0].upper()) + ... print("%d %s" % (loop.number, item)) A: 1 apple 2 asparagus diff -r a159cd816e01 tests/test_wsgiwrappers.py --- a/tests/test_wsgiwrappers.py Mon May 11 08:31:12 2015 -0700 +++ b/tests/test_wsgiwrappers.py Tue Oct 27 04:08:41 2015 +0000 @@ -13,7 +13,7 @@ def __call__(self, environ, start_response): start_response('200 OK', [('Content-type','text/plain')]) self.assertfunc(environ) - return ['Passed'] + return [six.b('Passed')] no_encoding = object() def valid_name(name, encoding=no_encoding, post=False):
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Contact
Support
@OBShq
The Open Build Service is an
openSUSE project
.
Log In
Places
Places
All Projects
Status Monitor