git: 93b856170efc - main - www/py-WebError: Fix build with setuptools 58.0.0+
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 25 Mar 2022 13:51:12 UTC
The branch main has been updated by sunpoet:
URL: https://cgit.FreeBSD.org/ports/commit/?id=93b856170efcd2c6f24d58b5f095be57c9186f5c
commit 93b856170efcd2c6f24d58b5f095be57c9186f5c
Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2022-03-25 13:35:06 +0000
Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2022-03-25 13:38:24 +0000
www/py-WebError: Fix build with setuptools 58.0.0+
With hat: python
---
www/py-WebError/files/patch-2to3 | 319 +++++++++++++++++++++++++++++++++++++++
1 file changed, 319 insertions(+)
diff --git a/www/py-WebError/files/patch-2to3 b/www/py-WebError/files/patch-2to3
new file mode 100644
index 000000000000..0ac9ce46f1d6
--- /dev/null
+++ b/www/py-WebError/files/patch-2to3
@@ -0,0 +1,319 @@
+--- weberror/evalcontext.py.orig 2016-04-10 01:43:23 UTC
++++ weberror/evalcontext.py
+@@ -1,4 +1,4 @@
+-from cStringIO import StringIO
++from io import StringIO
+ import traceback
+ import threading
+ import pdb
+@@ -32,7 +32,7 @@ class EvalContext(object):
+ sys.stdout = out
+ try:
+ code = compile(s, '<web>', "single", 0, 1)
+- exec code in self.namespace, self.globs
++ exec(code, self.namespace, self.globs)
+ debugger.set_continue()
+ except KeyboardInterrupt:
+ raise
+--- weberror/evalexception.py.orig 2016-04-10 01:43:23 UTC
++++ weberror/evalexception.py
+@@ -22,18 +22,18 @@ to see the full debuggable traceback. Also, this URL
+ ``wsgi.errors``, so you can open it up in another browser window.
+
+ """
+-import httplib
++import http.client
+ import sys
+ import os
+ import cgi
+ import traceback
+-from cStringIO import StringIO
++from io import StringIO
+ import pprint
+ import itertools
+ import time
+ import re
+ import types
+-import urllib
++import urllib.request, urllib.parse, urllib.error
+
+ from pkg_resources import resource_filename
+
+@@ -43,7 +43,7 @@ from paste import request
+ from paste import urlparser
+ from paste.util import import_string
+
+-import evalcontext
++from . import evalcontext
+ from weberror import errormiddleware, formatter, collector
+ from weberror.util import security
+ from tempita import HTMLTemplate
+@@ -124,7 +124,7 @@ def wsgiapp():
+ form['environ'] = environ
+ try:
+ res = func(*args, **form.mixed())
+- except ValueError, ve:
++ except ValueError as ve:
+ status = '500 Server Error'
+ res = '<html>There was an error: %s</html>' % \
+ html_quote(ve)
+@@ -150,7 +150,7 @@ def get_debug_info(func):
+ debugcount = req.params['debugcount']
+ try:
+ debugcount = int(debugcount)
+- except ValueError, e:
++ except ValueError as e:
+ return exc.HTTPBadRequest(
+ "Invalid value for debugcount (%r): %s"
+ % (debugcount, e))
+@@ -197,7 +197,7 @@ def get_debug_count(req):
+ elif 'weberror.evalexception.debug_count' in environ:
+ return environ['weberror.evalexception.debug_count']
+ else:
+- next = debug_counter.next()
++ next = next(debug_counter)
+ environ['weberror.evalexception.debug_count'] = next
+ environ['paste.evalexception.debug_count'] = next
+ return next
+@@ -279,7 +279,7 @@ class EvalException(object):
+ libraries=self.libraries)[0]
+ host = req.GET['host']
+ headers = req.headers
+- conn = httplib.HTTPConnection(host)
++ conn = http.client.HTTPConnection(host)
+ headers = {'Content-Length':len(long_xml_er),
+ 'Content-Type':'application/xml'}
+ conn.request("POST", req.GET['path'], long_xml_er, headers=headers)
+@@ -311,7 +311,7 @@ class EvalException(object):
+ """
+ res = Response(content_type='text/x-json')
+ data = [];
+- items = self.debug_infos.values()
++ items = list(self.debug_infos.values())
+ items.sort(lambda a, b: cmp(a.created, b.created))
+ data = [item.json() for item in items]
+ res.body = repr(data)
+@@ -525,7 +525,7 @@ class DebugInfo(object):
+ if id(frame) == tbid:
+ return frame
+ else:
+- raise ValueError, (
++ raise ValueError(
+ "No frame by id %s found from %r" % (tbid, self.frames))
+
+ def wsgi_application(self, environ, start_response):
+@@ -601,7 +601,7 @@ class EvalHTMLFormatter(formatter.HTMLFormatter):
+
+ def make_table(items):
+ if hasattr(items, 'items'):
+- items = items.items()
++ items = list(items.items())
+ items.sort()
+ return table_template.substitute(
+ html_quote=html_quote,
+@@ -641,7 +641,7 @@ def pprint_format(value, safe=False):
+ out = StringIO()
+ try:
+ pprint.pprint(value, out)
+- except Exception, e:
++ except Exception as e:
+ if safe:
+ out.write('Error: %s' % e)
+ else:
+@@ -781,12 +781,12 @@ def make_eval_exception(app, global_conf, xmlhttp_key=
+ xmlhttp_key = global_conf.get('xmlhttp_key', '_')
+ if reporters is None:
+ reporters = global_conf.get('error_reporters')
+- if reporters and isinstance(reporters, basestring):
++ if reporters and isinstance(reporters, str):
+ reporter_strings = reporters.split()
+ reporters = []
+ for reporter_string in reporter_strings:
+ reporter = import_string.eval_import(reporter_string)
+- if isinstance(reporter, (type, types.ClassType)):
++ if isinstance(reporter, type):
+ reporter = reporter()
+ reporters.append(reporter)
+ return EvalException(app, xmlhttp_key=xmlhttp_key, reporters=reporters)
+--- weberror/formatter.py.orig 2016-04-10 01:43:23 UTC
++++ weberror/formatter.py
+@@ -63,7 +63,7 @@ class AbstractFormatter(object):
+ def format_collected_data(self, exc_data):
+ general_data = {}
+ if self.show_extra_data:
+- for name, value_list in exc_data.extra_data.items():
++ for name, value_list in list(exc_data.extra_data.items()):
+ if isinstance(name, tuple):
+ importance, title = name
+ else:
+@@ -116,17 +116,17 @@ class AbstractFormatter(object):
+ if res:
+ lines.append(res)
+ etype = exc_data.exception_type
+- if not isinstance(etype, basestring):
++ if not isinstance(etype, str):
+ etype = etype.__name__
+ exc_info = self.format_exception_info(
+ etype,
+ exc_data.exception_value)
+ data_by_importance = {'important': [], 'normal': [],
+ 'supplemental': [], 'extra': []}
+- for (importance, name), value in general_data.items():
++ for (importance, name), value in list(general_data.items()):
+ data_by_importance[importance].append(
+ (name, value))
+- for value in data_by_importance.values():
++ for value in list(data_by_importance.values()):
+ value.sort()
+ return self.format_combine(data_by_importance, lines, exc_info)
+
+@@ -269,12 +269,12 @@ class TextFormatter(AbstractFormatter):
+ return '%s: %s' % (title, s)
+ elif isinstance(value, dict):
+ lines = ['\n', title, '-'*len(title)]
+- items = value.items()
++ items = list(value.items())
+ items.sort()
+ for n, v in items:
+ try:
+ v = repr(v)
+- except Exception, e:
++ except Exception as e:
+ v = 'Cannot display: %s' % e
+ v = truncate(v)
+ lines.append(' %s: %s' % (n, v))
+@@ -346,7 +346,7 @@ class HTMLFormatter(TextFormatter):
+ elif (isinstance(value, (list, tuple))
+ and self.long_item_list(value)):
+ return '%s: <tt>[<br>\n %s]</tt>' % (
+- title, ',<br> '.join(map(self.quote, map(repr, value))))
++ title, ',<br> '.join(map(self.quote, list(map(repr, value)))))
+ else:
+ return '%s: <tt>%s</tt>' % (title, self.quote(repr(value)))
+
+@@ -370,7 +370,7 @@ class HTMLFormatter(TextFormatter):
+
+ def zebra_table(self, title, rows, table_class="variables"):
+ if isinstance(rows, dict):
+- rows = rows.items()
++ rows = list(rows.items())
+ rows.sort()
+ table = ['<table class="%s">' % table_class,
+ '<tr class="header"><th colspan="2">%s</th></tr>'
+@@ -379,7 +379,7 @@ class HTMLFormatter(TextFormatter):
+ for name, value in rows:
+ try:
+ value = repr(value)
+- except Exception, e:
++ except Exception as e:
+ value = 'Cannot print: %s' % e
+ odd = not odd
+ table.append(
+@@ -423,7 +423,7 @@ def get_libraries(libs=None):
+ return {}
+
+ def create_text_node(doc, elem, text):
+- if not isinstance(text, basestring):
++ if not isinstance(text, str):
+ try:
+ text = escaping.removeIllegalChars(repr(text))
+ except:
+@@ -449,7 +449,7 @@ class XMLFormatter(AbstractFormatter):
+ libs = get_libraries(self.extra_kwargs.get('libraries'))
+ if libs:
+ libraries = newdoc.createElement('libraries')
+- for k, v in libs.iteritems():
++ for k, v in libs.items():
+ lib = newdoc.createElement('library')
+ lib.attributes['version'] = v
+ lib.attributes['name'] = k
+@@ -493,7 +493,7 @@ class XMLFormatter(AbstractFormatter):
+ # variables.appendChild(variable)
+
+ etype = exc_data.exception_type
+- if not isinstance(etype, basestring):
++ if not isinstance(etype, str):
+ etype = etype.__name__
+
+ top_element.appendChild(self.format_exception_info(
+@@ -677,6 +677,6 @@ def make_pre_wrappable(html, wrap_limit=60,
+ return '\n'.join(lines)
+
+ def convert_to_str(s):
+- if isinstance(s, unicode):
++ if isinstance(s, str):
+ return s.encode('utf8')
+ return s
+--- weberror/pdbcapture.py.orig 2016-04-10 01:43:23 UTC
++++ weberror/pdbcapture.py
+@@ -50,7 +50,7 @@ class PdbCapture(object):
+ return self.media_app(environ, start_response)
+ resp = self.internal_request(req)
+ return resp(environ, start_response)
+- id = self.counter.next()
++ id = next(self.counter)
+ state = dict(id=id,
+ event=threading.Event(),
+ base_url=req.application_url,
+@@ -66,7 +66,7 @@ class PdbCapture(object):
+ resp = state['response']
+ return resp(environ, start_response)
+ if 'exc_info' in state:
+- raise state['exc_info'][0], state['exc_info'][1], state['exc_info'][2]
++ raise state['exc_info'][0](state['exc_info'][1]).with_traceback(state['exc_info'][2])
+ self.states[id] = state
+ tmpl = self.get_template('pdbcapture_response.html')
+ body = tmpl.substitute(req=req, state=state, id=id)
+--- weberror/util/security.py.orig 2016-04-10 01:43:23 UTC
++++ weberror/util/security.py
+@@ -21,7 +21,7 @@ else:
+ expected_len = len(expected)
+ result = actual_len ^ expected_len
+ if expected_len > 0:
+- for i in xrange(actual_len):
++ for i in range(actual_len):
+ result |= ord(actual[i]) ^ ord(expected[i % expected_len])
+ return result == 0
+
+@@ -43,7 +43,7 @@ def valid_csrf_token(secret, token):
+ try:
+ expiry_ts, hashed = token.split(',')
+ expiry_dt = datetime.utcfromtimestamp(int(expiry_ts))
+- except ValueError, e:
++ except ValueError as e:
+ return False
+
+ if expiry_dt < datetime.utcnow():
+--- weberror/util/serial_number_generator.py.orig 2016-04-10 01:43:23 UTC
++++ weberror/util/serial_number_generator.py
+@@ -19,7 +19,7 @@ base = len(good_characters)
+
+ def lazy_result(return_type, dummy_initial=None):
+ """Decorator to allow for on-demand evaluation (limited scope of use!)"""
+- if not issubclass(return_type, basestring):
++ if not issubclass(return_type, str):
+ raise NotImplementedError
+
+ class _lazy_class(return_type):
+@@ -54,7 +54,7 @@ def make_identifier(number):
+ """
+ Encodes a number as an identifier.
+ """
+- if not isinstance(number, (int, long)):
++ if not isinstance(number, int):
+ raise ValueError(
+ "You can only make identifiers out of integers (not %r)"
+ % number)
+@@ -90,10 +90,10 @@ def hash_identifier(s, length, pad=True, hasher=md5, p
+ # Accept sha/md5 modules as well as callables
+ hasher = hasher.new
+ if length > 26 and hasher is md5:
+- raise ValueError, (
++ raise ValueError(
+ "md5 cannot create hashes longer than 26 characters in "
+ "length (you gave %s)" % length)
+- if isinstance(s, unicode):
++ if isinstance(s, str):
+ s = s.encode('utf-8')
+ h = hasher(str(s))
+ bin_hash = h.digest()