Date: Fri, 5 May 2023 01:39:31 GMT From: Wen Heping <wen@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: d028fb861fd6 - main - databases/py-sqlobject: Update to 3.10.1 Message-ID: <202305050139.3451dVoa043584@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by wen: URL: https://cgit.FreeBSD.org/ports/commit/?id=d028fb861fd6555ac088c7893eab38788632dc4f commit d028fb861fd6555ac088c7893eab38788632dc4f Author: Wen Heping <wen@FreeBSD.org> AuthorDate: 2023-05-05 01:38:52 +0000 Commit: Wen Heping <wen@FreeBSD.org> CommitDate: 2023-05-05 01:38:52 +0000 databases/py-sqlobject: Update to 3.10.1 --- databases/py-sqlobject/Makefile | 5 +- databases/py-sqlobject/distinfo | 5 +- databases/py-sqlobject/files/patch-2to3 | 2505 ------------------------------- 3 files changed, 5 insertions(+), 2510 deletions(-) diff --git a/databases/py-sqlobject/Makefile b/databases/py-sqlobject/Makefile index 7cb93a70a675..838e8b85751a 100644 --- a/databases/py-sqlobject/Makefile +++ b/databases/py-sqlobject/Makefile @@ -1,6 +1,5 @@ PORTNAME= sqlobject -PORTVERSION= 1.6.0 -PORTREVISION= 1 +PORTVERSION= 3.10.1 CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -30,7 +29,7 @@ MSSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pymssql>=0:databases/py-pymssql@${PY_F post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} - ${INSTALL_DATA} ${WRKSRC}/README.txt ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README.rst ${STAGEDIR}${DOCSDIR} (cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) .include <bsd.port.mk> diff --git a/databases/py-sqlobject/distinfo b/databases/py-sqlobject/distinfo index 1740aa04bfdf..ebd0377b0e3b 100644 --- a/databases/py-sqlobject/distinfo +++ b/databases/py-sqlobject/distinfo @@ -1,2 +1,3 @@ -SHA256 (SQLObject-1.6.0.tar.gz) = 7299dc568d074ea8cb418bf3ad64a5ed380ae6c18be381519ead6c6a2e578b95 -SIZE (SQLObject-1.6.0.tar.gz) = 276441 +TIMESTAMP = 1683248141 +SHA256 (SQLObject-3.10.1.tar.gz) = fcf3ea27f85af06450a58fee40e2c8174bfdd29f6d64aac74c2324bac888b844 +SIZE (SQLObject-3.10.1.tar.gz) = 1314120 diff --git a/databases/py-sqlobject/files/patch-2to3 b/databases/py-sqlobject/files/patch-2to3 deleted file mode 100644 index 66193d081e4a..000000000000 --- a/databases/py-sqlobject/files/patch-2to3 +++ /dev/null @@ -1,2505 +0,0 @@ ---- sqlobject/col.py.orig 2014-05-04 12:48:24 UTC -+++ sqlobject/col.py -@@ -22,17 +22,17 @@ from array import array - from itertools import count - import re, time - try: -- import cPickle as pickle -+ import pickle as pickle - except ImportError: - import pickle - import weakref - from formencode import compound, validators --from classregistry import findClass -+from .classregistry import findClass - # Sadly the name "constraints" conflicts with many of the function - # arguments in this module, so we rename it: --import constraints as constrs --import sqlbuilder --from styles import capword -+from . import constraints as constrs -+from . import sqlbuilder -+from .styles import capword - - NoDefault = sqlbuilder.NoDefault - -@@ -218,7 +218,7 @@ class SOCol(object): - self.dbEncoding = dbEncoding - - if extra_vars: -- for name, value in extra_vars.items(): -+ for name, value in list(extra_vars.items()): - setattr(self, name, value) - - def _set_validator(self, value): -@@ -286,7 +286,7 @@ class SOCol(object): - - def _sqlType(self): - if self.customSQLType is None: -- raise ValueError, ("Col %s (%s) cannot be used for automatic " -+ raise ValueError("Col %s (%s) cannot be used for automatic " - "schema creation (too abstract)" % - (self.name, self.__class__)) - else: -@@ -399,7 +399,7 @@ class Col(object): - super(Col, self).__init__() - self.__dict__['_name'] = name - self.__dict__['_kw'] = kw -- self.__dict__['creationOrder'] = creationOrder.next() -+ self.__dict__['creationOrder'] = next(creationOrder) - self.__dict__['_extra_vars'] = {} - - def _set_name(self, value): -@@ -473,7 +473,7 @@ class SOStringLikeCol(SOCol): - - def _check_case_sensitive(self, db): - if self.char_binary: -- raise ValueError, "%s does not support binary character columns" % db -+ raise ValueError("%s does not support binary character columns" % db) - - def _mysqlType(self): - type = self._sqlType() -@@ -538,14 +538,14 @@ class StringValidator(SOValidator): - except AttributeError: - binaryType = type(None) # Just a simple workaround - dbEncoding = self.getDbEncoding(state, default='ascii') -- if isinstance(value, unicode): -+ if isinstance(value, str): - return value.encode(dbEncoding) - if self.dataType and isinstance(value, self.dataType): - return value - if isinstance(value, (str, buffer, binaryType, sqlbuilder.SQLExpression)): - return value - if hasattr(value, '__unicode__'): -- return unicode(value).encode(dbEncoding) -+ return str(value).encode(dbEncoding) - raise validators.Invalid("expected a str in the StringCol '%s', got %s %r instead" % \ - (self.name, type(value), value), value, state) - -@@ -563,7 +563,7 @@ class StringCol(Col): - - class NQuoted(sqlbuilder.SQLExpression): - def __init__(self, value): -- assert isinstance(value, unicode) -+ assert isinstance(value, str) - self.value = value - def __hash__(self): - return hash(self.value) -@@ -576,14 +576,14 @@ class UnicodeStringValidator(SOValidator): - def to_python(self, value, state): - if value is None: - return None -- if isinstance(value, (unicode, sqlbuilder.SQLExpression)): -+ if isinstance(value, (str, sqlbuilder.SQLExpression)): - return value - if isinstance(value, str): -- return unicode(value, self.getDbEncoding(state)) -+ return str(value, self.getDbEncoding(state)) - if isinstance(value, array): # MySQL -- return unicode(value.tostring(), self.getDbEncoding(state)) -+ return str(value.tostring(), self.getDbEncoding(state)) - if hasattr(value, '__unicode__'): -- return unicode(value) -+ return str(value) - raise validators.Invalid("expected a str or a unicode in the UnicodeCol '%s', got %s %r instead" % \ - (self.name, type(value), value), value, state) - -@@ -592,7 +592,7 @@ class UnicodeStringValidator(SOValidator): - return None - if isinstance(value, (str, sqlbuilder.SQLExpression)): - return value -- if isinstance(value, unicode): -+ if isinstance(value, str): - try: - connection = state.connection or state.soObject._connection - except AttributeError: -@@ -602,7 +602,7 @@ class UnicodeStringValidator(SOValidator): - return NQuoted(value) - return value.encode(self.getDbEncoding(state)) - if hasattr(value, '__unicode__'): -- return unicode(value).encode(self.getDbEncoding(state)) -+ return str(value).encode(self.getDbEncoding(state)) - raise validators.Invalid("expected a str or a unicode in the UnicodeCol '%s', got %s %r instead" % \ - (self.name, type(value), value), value, state) - -@@ -625,9 +625,9 @@ class IntValidator(SOValidator): - def to_python(self, value, state): - if value is None: - return None -- if isinstance(value, (int, long, sqlbuilder.SQLExpression)): -+ if isinstance(value, (int, sqlbuilder.SQLExpression)): - return value -- for converter, attr_name in (int, '__int__'), (long, '__long__'): -+ for converter, attr_name in (int, '__int__'), (int, '__long__'): - if hasattr(value, attr_name): - try: - return converter(value) -@@ -708,7 +708,7 @@ class BoolValidator(SOValidator): - return None - if isinstance(value, (bool, sqlbuilder.SQLExpression)): - return value -- if isinstance(value, (int, long)) or hasattr(value, '__nonzero__'): -+ if isinstance(value, int) or hasattr(value, '__nonzero__'): - return bool(value) - raise validators.Invalid("expected a bool or an int in the BoolCol '%s', got %s %r instead" % \ - (self.name, type(value), value), value, state) -@@ -753,9 +753,9 @@ class FloatValidator(SOValidator): - def to_python(self, value, state): - if value is None: - return None -- if isinstance(value, (float, int, long, sqlbuilder.SQLExpression)): -+ if isinstance(value, (float, int, sqlbuilder.SQLExpression)): - return value -- for converter, attr_name in (float, '__float__'), (int, '__int__'), (long, '__long__'): -+ for converter, attr_name in (float, '__float__'), (int, '__int__'), (int, '__long__'): - if hasattr(value, attr_name): - try: - return converter(value) -@@ -964,7 +964,7 @@ class EnumValidator(SOValidator): - - def to_python(self, value, state): - if value in self.enumValues: -- if isinstance(value, unicode): -+ if isinstance(value, str): - dbEncoding = self.getDbEncoding(state) - value = value.encode(dbEncoding) - return value -@@ -1000,7 +1000,7 @@ class SOEnumCol(SOCol): - return "ENUM(%s) NOT NULL" % ', '.join([sqlbuilder.sqlrepr(v, 'mysql') for v in self.enumValues]) - - def _postgresType(self): -- length = max(map(self._getlength, self.enumValues)) -+ length = max(list(map(self._getlength, self.enumValues))) - enumValues = ', '.join([sqlbuilder.sqlrepr(v, 'postgres') for v in self.enumValues]) - checkConstraint = "CHECK (%s in (%s))" % (self.dbName, enumValues) - return "VARCHAR(%i) %s" % (length, checkConstraint) -@@ -1014,7 +1014,7 @@ class SOEnumCol(SOCol): - return self._postgresType() - - def _firebirdType(self): -- length = max(map(self._getlength, self.enumValues)) -+ length = max(list(map(self._getlength, self.enumValues))) - enumValues = ', '.join([sqlbuilder.sqlrepr(v, 'firebird') for v in self.enumValues]) - checkConstraint = "CHECK (%s in (%s))" % (self.dbName, enumValues) - #NB. Return a tuple, not a string here -@@ -1048,7 +1048,7 @@ class SetValidator(SOValidator): - (self.name, type(value), value), value, state) - - def from_python(self, value, state): -- if isinstance(value, basestring): -+ if isinstance(value, str): - value = (value,) - try: - return ",".join(value) -@@ -1358,7 +1358,7 @@ class DecimalValidator(SOValidator): - def to_python(self, value, state): - if value is None: - return None -- if isinstance(value, (int, long, Decimal, sqlbuilder.SQLExpression)): -+ if isinstance(value, (int, Decimal, sqlbuilder.SQLExpression)): - return value - if isinstance(value, float): - value = str(value) -@@ -1380,7 +1380,7 @@ class DecimalValidator(SOValidator): - return None - if isinstance(value, float): - value = str(value) -- if isinstance(value, basestring): -+ if isinstance(value, str): - try: - connection = state.connection or state.soObject._connection - except AttributeError: -@@ -1393,7 +1393,7 @@ class DecimalValidator(SOValidator): - except: - raise validators.Invalid("can not parse Decimal value '%s' in the DecimalCol from '%s'" % - (value, getattr(state, 'soObject', '(unknown)')), value, state) -- if isinstance(value, (int, long, Decimal, sqlbuilder.SQLExpression)): -+ if isinstance(value, (int, Decimal, sqlbuilder.SQLExpression)): - return value - raise validators.Invalid("expected a Decimal in the DecimalCol '%s', got %s %r instead" % \ - (self.name, type(value), value), value, state) -@@ -1447,7 +1447,7 @@ class DecimalStringValidator(DecimalValidator): - "Value must be less than %s" % int(self.max) - value = value.quantize(self.precision) - value = value.to_eng_string() -- elif isinstance(value, (int, long)): -+ elif isinstance(value, int): - value = str(value) - return value - -@@ -1569,7 +1569,7 @@ class PickleValidator(BinaryValidator): - def to_python(self, value, state): - if value is None: - return None -- if isinstance(value, unicode): -+ if isinstance(value, str): - dbEncoding = self.getDbEncoding(state, default='ascii') - value = value.encode(dbEncoding) - if isinstance(value, str): -@@ -1610,7 +1610,7 @@ def pushKey(kw, name, value): - kw[name] = value - - all = [] --for key, value in globals().items(): -+for key, value in list(globals().items()): - if isinstance(value, type) and (issubclass(value, (Col, SOCol))): - all.append(key) - __all__.extend(all) ---- sqlobject/converters.py.orig 2014-05-04 12:48:24 UTC -+++ sqlobject/converters.py -@@ -95,7 +95,7 @@ def StringLikeConverter(value, db): - return "'%s'" % value - - registerConverter(str, StringLikeConverter) --registerConverter(unicode, StringLikeConverter) -+registerConverter(str, StringLikeConverter) - registerConverter(array, StringLikeConverter) - registerConverter(buffer, StringLikeConverter) - -@@ -107,7 +107,7 @@ registerConverter(int, IntConverter) - def LongConverter(value, db): - return str(value) - --registerConverter(long, LongConverter) -+registerConverter(int, LongConverter) - - if NumericType: - registerConverter(NumericType, IntConverter) -@@ -203,8 +203,8 @@ def sqlrepr(obj, db=None): - except AttributeError: - converter = lookupConverter(obj) - if converter is None: -- raise ValueError, "Unknown SQL builtin type: %s for %s" % \ -- (type(obj), repr(obj)) -+ raise ValueError("Unknown SQL builtin type: %s for %s" % \ -+ (type(obj), repr(obj))) - return converter(obj, db) - else: - return reprFunc(db) ---- sqlobject/dbconnection.py.orig 2013-07-07 18:43:26 UTC -+++ sqlobject/dbconnection.py -@@ -6,17 +6,17 @@ import os - import sys - import threading - import types --import urllib -+import urllib.request, urllib.parse, urllib.error - import warnings - import weakref - --from cache import CacheSet --import classregistry --import col --from converters import sqlrepr --import main --import sqlbuilder --from util.threadinglocal import local as threading_local -+from .cache import CacheSet -+from . import classregistry -+from . import col -+from .converters import sqlrepr -+from . import main -+from . import sqlbuilder -+from .util.threadinglocal import local as threading_local - - warnings.filterwarnings("ignore", "DB-API extension cursor.lastrowid used") - -@@ -34,7 +34,7 @@ class ConsoleWriter: - self.dbEncoding = getattr(connection, "dbEncoding", None) or "ascii" - def write(self, text): - logfile = getattr(sys, self.loglevel) -- if isinstance(text, unicode): -+ if isinstance(text, str): - try: - text = text.encode(self.dbEncoding) - except UnicodeEncodeError: -@@ -111,9 +111,9 @@ class DBConnection: - def uri(self): - auth = getattr(self, 'user', '') or '' - if auth: -- auth = urllib.quote(auth) -+ auth = urllib.parse.quote(auth) - if self.password: -- auth = auth + ':' + urllib.quote(self.password) -+ auth = auth + ':' + urllib.parse.quote(self.password) - auth = auth + '@' - else: - assert not getattr(self, 'password', None), ( -@@ -127,7 +127,7 @@ class DBConnection: - db = self.db - if db.startswith('/'): - db = db[1:] -- return uri + urllib.quote(db) -+ return uri + urllib.parse.quote(db) - - @classmethod - def connectionFromOldURI(cls, uri): -@@ -167,9 +167,9 @@ class DBConnection: - try: - port = int(port) - except ValueError: -- raise ValueError, "port must be integer, got '%s' instead" % port -+ raise ValueError("port must be integer, got '%s' instead" % port) - if not (1 <= port <= 65535): -- raise ValueError, "port must be integer in the range 1-65535, got '%d' instead" % port -+ raise ValueError("port must be integer in the range 1-65535, got '%d' instead" % port) - host = _host - else: - port = None -@@ -183,15 +183,15 @@ class DBConnection: - arglist = arglist.split('&') - for single in arglist: - argname, argvalue = single.split('=', 1) -- argvalue = urllib.unquote(argvalue) -+ argvalue = urllib.parse.unquote(argvalue) - args[argname] = argvalue - return user, password, host, port, path, args - - @staticmethod - def _parseURI(uri): -- protocol, request = urllib.splittype(uri) -+ protocol, request = urllib.parse.splittype(uri) - user, password, port = None, None, None -- host, path = urllib.splithost(request) -+ host, path = urllib.parse.splithost(request) - - if host: - # Python < 2.7 have a problem - splituser() calls unquote() too early -@@ -199,17 +199,17 @@ class DBConnection: - if '@' in host: - user, host = host.split('@', 1) - if user: -- user, password = [x and urllib.unquote(x) or None for x in urllib.splitpasswd(user)] -- host, port = urllib.splitport(host) -+ user, password = [x and urllib.parse.unquote(x) or None for x in urllib.parse.splitpasswd(user)] -+ host, port = urllib.parse.splitport(host) - if port: port = int(port) - elif host == '': - host = None - - # hash-tag is splitted but ignored -- path, tag = urllib.splittag(path) -- path, query = urllib.splitquery(path) -+ path, tag = urllib.parse.splittag(path) -+ path, query = urllib.parse.splitquery(path) - -- path = urllib.unquote(path) -+ path = urllib.parse.unquote(path) - if (os.name == 'nt') and (len(path) > 2): - # Preserve backward compatibility with URIs like /C|/path; - # replace '|' by ':' -@@ -282,7 +282,7 @@ class ConnWrapper(object): - "because it takes **kw: %r" - % meth) - takes_conn = 'connection' in args -- meth.im_func.takes_connection = takes_conn -+ meth.__func__.takes_connection = takes_conn - if not takes_conn: - return meth - return ConnMethodWrapper(meth, self._connection) -@@ -363,7 +363,7 @@ class DBAPI(DBConnection): - if self.debug: - self.printDebug(conn, 'auto/exception', 'ROLLBACK') - conn.rollback() -- raise Exception, 'Object used outside of a transaction; implicit COMMIT or ROLLBACK not allowed' -+ raise Exception('Object used outside of a transaction; implicit COMMIT or ROLLBACK not allowed') - elif self.autoCommit: - if self.debug: - self.printDebug(conn, 'auto', 'COMMIT') -@@ -593,7 +593,7 @@ class DBAPI(DBConnection): - - def _SO_selectOneAlt(self, so, columnNames, condition): - if columnNames: -- columns = [isinstance(x, basestring) and sqlbuilder.SQLConstant(x) or x for x in columnNames] -+ columns = [isinstance(x, str) and sqlbuilder.SQLConstant(x) or x for x in columnNames] - else: - columns = None - return self.queryOne(self.sqlrepr(sqlbuilder.Select(columns, -@@ -643,7 +643,7 @@ class DBAPI(DBConnection): - data = {} - if 'id' in kw: - data[soClass.sqlmeta.idName] = kw.pop('id') -- for key, col in soClass.sqlmeta.columns.items(): -+ for key, col in list(soClass.sqlmeta.columns.items()): - if key in kw: - value = kw.pop(key) - if col.from_python: -@@ -657,7 +657,7 @@ class DBAPI(DBConnection): - data[col.dbName] = obj - if kw: - # pick the first key from kw to use to raise the error, -- raise TypeError, "got an unexpected keyword argument(s): %r" % kw.keys() -+ raise TypeError("got an unexpected keyword argument(s): %r" % list(kw.keys())) - - if not data: - return None -@@ -665,7 +665,7 @@ class DBAPI(DBConnection): - ['%s %s %s' % - (dbName, ops.get(value, "="), self.sqlrepr(value)) - for dbName, value -- in data.items()]) -+ in list(data.items())]) - - def sqlrepr(self, v): - return sqlrepr(v, self.dbName) -@@ -718,7 +718,7 @@ class Iteration(object): - def __iter__(self): - return self - -- def next(self): -+ def __next__(self): - result = self.cursor.fetchone() - if result is None: - self._cleanup() -@@ -791,7 +791,7 @@ class Transaction(object): - if not cls in self._deletedCache: - self._deletedCache[cls] = [] - self._deletedCache[cls].append(inst.id) -- meth = new.instancemethod(self._dbConnection._SO_delete.im_func, self, self.__class__) -+ meth = new.instancemethod(self._dbConnection._SO_delete.__func__, self, self.__class__) - return meth(inst) - - def commit(self, close=False): -@@ -801,8 +801,8 @@ class Transaction(object): - if self._dbConnection.debug: - self._dbConnection.printDebug(self._connection, '', 'COMMIT') - self._connection.commit() -- subCaches = [(sub[0], sub[1].allIDs()) for sub in self.cache.allSubCachesByClassNames().items()] -- subCaches.extend([(x[0], x[1]) for x in self._deletedCache.items()]) -+ subCaches = [(sub[0], sub[1].allIDs()) for sub in list(self.cache.allSubCachesByClassNames().items())] -+ subCaches.extend([(x[0], x[1]) for x in list(self._deletedCache.items())]) - for cls, ids in subCaches: - for id in ids: - inst = self._dbConnection.cache.tryGetByName(id, cls) -@@ -836,7 +836,7 @@ class Transaction(object): - self.assertActive() - attr = getattr(self._dbConnection, attr) - try: -- func = attr.im_func -+ func = attr.__func__ - except AttributeError: - if isinstance(attr, ConnWrapper): - return ConnWrapper(attr._soClass, self) -@@ -996,9 +996,9 @@ class ConnectionURIOpener(object): - def connectionForURI(self, uri, oldUri=False, **args): - if args: - if '?' not in uri: -- uri += '?' + urllib.urlencode(args) -+ uri += '?' + urllib.parse.urlencode(args) - else: -- uri += '&' + urllib.urlencode(args) -+ uri += '&' + urllib.parse.urlencode(args) - if uri in self.cachedURIs: - return self.cachedURIs[uri] - if uri.find(':') != -1: -@@ -1020,7 +1020,7 @@ class ConnectionURIOpener(object): - def dbConnectionForScheme(self, scheme): - assert scheme in self.schemeBuilders, ( - "No SQLObject driver exists for %s (only %s)" -- % (scheme, ', '.join(self.schemeBuilders.keys()))) -+ % (scheme, ', '.join(list(self.schemeBuilders.keys())))) - return self.schemeBuilders[scheme]() - - TheURIOpener = ConnectionURIOpener() -@@ -1031,11 +1031,11 @@ connectionForURI = TheURIOpener.connectionForURI - dbConnectionForScheme = TheURIOpener.dbConnectionForScheme - - # Register DB URI schemas --import firebird --import maxdb --import mssql --import mysql --import postgres --import rdbhost --import sqlite --import sybase -+from . import firebird -+from . import maxdb -+from . import mssql -+from . import mysql -+from . import postgres -+from . import rdbhost -+from . import sqlite -+from . import sybase ---- sqlobject/events.py.orig 2010-11-13 17:42:40 UTC -+++ sqlobject/events.py -@@ -206,25 +206,25 @@ def summarize_events_by_sender(sender=None, output=Non - if sender is None: - send_list = [ - (deref(dispatcher.senders.get(sid)), listeners) -- for sid, listeners in dispatcher.connections.items() -+ for sid, listeners in list(dispatcher.connections.items()) - if deref(dispatcher.senders.get(sid))] - for sender, listeners in sorted_items(send_list): - real_sender = deref(sender) - if not real_sender: - continue - header = 'Sender: %r' % real_sender -- print >> output, (' '*indent) + header -- print >> output, (' '*indent) + '='*len(header) -+ print((' '*indent) + header, file=output) -+ print((' '*indent) + '='*len(header), file=output) - summarize_events_by_sender(real_sender, output=output, indent=indent+2) - else: - for signal, receivers in sorted_items(dispatcher.connections.get(id(sender), [])): - receivers = [deref(r) for r in receivers if deref(r)] - header = 'Signal: %s (%i receivers)' % (sort_name(signal), - len(receivers)) -- print >> output, (' '*indent) + header -- print >> output, (' '*indent) + '-'*len(header) -+ print((' '*indent) + header, file=output) -+ print((' '*indent) + '-'*len(header), file=output) - for receiver in sorted(receivers, key=sort_name): -- print >> output, (' '*indent) + ' ' + nice_repr(receiver) -+ print((' '*indent) + ' ' + nice_repr(receiver), file=output) - - def deref(value): - if isinstance(value, dispatcher.WEAKREF_TYPES): -@@ -234,14 +234,14 @@ def deref(value): - - def sorted_items(a_dict): - if isinstance(a_dict, dict): -- a_dict = a_dict.items() -+ a_dict = list(a_dict.items()) - return sorted(a_dict, key=lambda t: sort_name(t[0])) - - def sort_name(value): - if isinstance(value, type): - return value.__name__ - elif isinstance(value, types.FunctionType): -- return value.func_name -+ return value.__name__ - else: - return str(value) - -@@ -262,26 +262,26 @@ def debug_events(): - - def _debug_send(signal=dispatcher.Any, sender=dispatcher.Anonymous, - *arguments, **named): -- print "send %s from %s: %s" % ( -- nice_repr(signal), nice_repr(sender), fmt_args(*arguments, **named)) -+ print("send %s from %s: %s" % ( -+ nice_repr(signal), nice_repr(sender), fmt_args(*arguments, **named))) - return _real_dispatcher_send(signal, sender, *arguments, **named) - - def _debug_sendExact(signal=dispatcher.Any, sender=dispatcher.Anonymous, - *arguments, **named): -- print "sendExact %s from %s: %s" % ( -- nice_repr(signal), nice_repr(sender), fmt_args(*arguments, **name)) -+ print("sendExact %s from %s: %s" % ( -+ nice_repr(signal), nice_repr(sender), fmt_args(*arguments, **name))) - return _real_dispatcher_sendExact(signal, sender, *arguments, **named) - - def _debug_connect(receiver, signal=dispatcher.Any, sender=dispatcher.Any, - weak=True): -- print "connect %s to %s signal %s" % ( -- nice_repr(receiver), nice_repr(signal), nice_repr(sender)) -+ print("connect %s to %s signal %s" % ( -+ nice_repr(receiver), nice_repr(signal), nice_repr(sender))) - return _real_dispatcher_connect(receiver, signal, sender, weak) - - def _debug_disconnect(receiver, signal=dispatcher.Any, sender=dispatcher.Any, - weak=True): -- print "disconnecting %s from %s signal %s" % ( -- nice_repr(receiver), nice_repr(signal), nice_repr(sender)) -+ print("disconnecting %s from %s signal %s" % ( -+ nice_repr(receiver), nice_repr(signal), nice_repr(sender))) - return disconnect(receiver, signal, sender, weak) - - def fmt_args(*arguments, **name): -@@ -294,23 +294,23 @@ def nice_repr(v): - """ - Like repr(), but nicer for debugging here. - """ -- if isinstance(v, (types.ClassType, type)): -+ if isinstance(v, type): - return v.__module__ + '.' + v.__name__ - elif isinstance(v, types.FunctionType): -- if '__name__' in v.func_globals: -- if getattr(sys.modules[v.func_globals['__name__']], -- v.func_name, None) is v: -- return '%s.%s' % (v.func_globals['__name__'], v.func_name) -+ if '__name__' in v.__globals__: -+ if getattr(sys.modules[v.__globals__['__name__']], -+ v.__name__, None) is v: -+ return '%s.%s' % (v.__globals__['__name__'], v.__name__) - return repr(v) - elif isinstance(v, types.MethodType): - return '%s.%s of %s' % ( -- nice_repr(v.im_class), v.im_func.func_name, -- nice_repr(v.im_self)) -+ nice_repr(v.__self__.__class__), v.__func__.__name__, -+ nice_repr(v.__self__)) - else: - return repr(v) - - - __all__ = ['listen', 'send'] --for name, value in globals().items(): -+for name, value in list(globals().items()): - if isinstance(value, type) and issubclass(value, Signal): - __all__.append(name) ---- sqlobject/include/pydispatch/dispatcher.py.orig 2011-05-15 15:48:27 UTC -+++ sqlobject/include/pydispatch/dispatcher.py -@@ -25,20 +25,14 @@ Internal attributes: - deletion, (considerably speeds up the cleanup process - vs. the original code.) - """ --from __future__ import generators -+ - import types, weakref --import saferef, robustapply, errors -+from . import saferef, robustapply, errors - - __author__ = "Patrick K. O'Brien <pobrien@orbtech.com>" - __cvsid__ = "$Id: dispatcher.py,v 1.9 2005/09/17 04:55:57 mcfletch Exp $" - __version__ = "$Revision: 1.9 $"[11:-2] - --try: -- True --except NameError: -- True = 1==1 -- False = 1==0 -- - class _Parameter: - """Used to represent default parameter values.""" - def __repr__(self): -@@ -379,8 +373,8 @@ def _removeReceiver(receiver): - backKey = id(receiver) - for senderkey in sendersBack.get(backKey,()): - try: -- signals = connections[senderkey].keys() -- except KeyError,err: -+ signals = list(connections[senderkey].keys()) -+ except KeyError as err: - pass - else: - for signal in signals: -@@ -391,7 +385,7 @@ def _removeReceiver(receiver): - else: - try: - receivers.remove( receiver ) -- except Exception, err: -+ except Exception as err: - pass - _cleanupConnections(senderkey, signal) - try: -@@ -440,7 +434,7 @@ def _removeBackrefs( senderkey): - except KeyError: - signals = None - else: -- items = signals.items() -+ items = list(signals.items()) - def allReceivers( ): - for signal,set in items: - for item in set: -@@ -468,7 +462,7 @@ def _removeOldBackRefs(senderkey, signal, receiver, re - found = 0 - signals = connections.get(signal) - if signals is not None: -- for sig,recs in connections.get(signal,{}).iteritems(): -+ for sig,recs in connections.get(signal,{}).items(): - if sig != signal: - for rec in recs: - if rec is oldReceiver: ---- sqlobject/include/pydispatch/robust.py.orig 2006-02-09 16:14:04 UTC -+++ sqlobject/include/pydispatch/robust.py -@@ -1,6 +1,6 @@ - """Module implementing error-catching version of send (sendRobust)""" --from dispatcher import Any, Anonymous, liveReceivers, getAllReceivers --from robustapply import robustApply -+from .dispatcher import Any, Anonymous, liveReceivers, getAllReceivers -+from .robustapply import robustApply - - def sendRobust( - signal=Any, -@@ -50,7 +50,7 @@ def sendRobust( - *arguments, - **named - ) -- except Exception, err: -+ except Exception as err: - responses.append((receiver, err)) - else: - responses.append((receiver, response)) ---- sqlobject/include/pydispatch/saferef.py.orig 2006-02-09 16:14:04 UTC -+++ sqlobject/include/pydispatch/saferef.py -@@ -13,7 +13,7 @@ def safeRef(target, onDelete = None): - weakref or a BoundMethodWeakref) as argument. - """ - if hasattr(target, 'im_self'): -- if target.im_self is not None: -+ if target.__self__ is not None: - # Turn a bound method into a BoundMethodWeakref instance. - # Keep track of these instances for lookup by disconnect(). - assert hasattr(target, 'im_func'), """safeRef target %r has im_self, but no im_func, don't know how to create reference"""%( target,) -@@ -109,26 +109,26 @@ class BoundMethodWeakref(object): - try: - if callable( function ): - function( self ) -- except Exception, e: -+ except Exception as e: - try: - traceback.print_exc() -- except AttributeError, err: -- print '''Exception during saferef %s cleanup function %s: %s'''%( -+ except AttributeError as err: -+ print('''Exception during saferef %s cleanup function %s: %s'''%( - self, function, e -- ) -+ )) - self.deletionMethods = [onDelete] - self.key = self.calculateKey( target ) -- self.weakSelf = weakref.ref(target.im_self, remove) -- self.weakFunc = weakref.ref(target.im_func, remove) -- self.selfName = str(target.im_self) -- self.funcName = str(target.im_func.__name__) -+ self.weakSelf = weakref.ref(target.__self__, remove) -+ self.weakFunc = weakref.ref(target.__func__, remove) -+ self.selfName = str(target.__self__) -+ self.funcName = str(target.__func__.__name__) - def calculateKey( cls, target ): - """Calculate the reference key for this reference - - Currently this is a two-tuple of the id()'s of the - target object and the target function respectively. - """ -- return (id(target.im_self),id(target.im_func)) -+ return (id(target.__self__),id(target.__func__)) - calculateKey = classmethod( calculateKey ) - def __str__(self): - """Give a friendly representation of the object""" -@@ -138,7 +138,7 @@ class BoundMethodWeakref(object): - self.funcName, - ) - __repr__ = __str__ -- def __nonzero__( self ): -+ def __bool__( self ): - """Whether we are still a valid reference""" - return self() is not None - def __cmp__( self, other ): ---- sqlobject/index.py.orig 2011-05-15 15:48:27 UTC -+++ sqlobject/index.py -@@ -1,6 +1,6 @@ - from itertools import count - from types import * --from converters import sqlrepr -+from .converters import sqlrepr - - creationOrder = count() - -@@ -20,15 +20,15 @@ class SODatabaseIndex(object): - - def get(self, *args, **kw): - if not self.unique: -- raise AttributeError, ( -+ raise AttributeError( - "'%s' object has no attribute 'get' (index is not unique)" % self.name) - connection = kw.pop('connection', None) - if args and kw: -- raise TypeError, "You cannot mix named and unnamed arguments" -+ raise TypeError("You cannot mix named and unnamed arguments") - columns = [d['column'] for d in self.descriptions - if 'column' in d] - if kw and len(kw) != len(columns) or args and len(args) != len(columns): -- raise TypeError, ("get() takes exactly %d argument and an optional " -+ raise TypeError("get() takes exactly %d argument and an optional " - "named argument 'connection' (%d given)" % ( - len(columns), len(args)+len(kw))) - if args: -@@ -65,13 +65,13 @@ class SODatabaseIndex(object): - columnName = columnName.name - colDict = self.soClass.sqlmeta.columns - if columnName not in colDict: -- for possible in colDict.values(): -+ for possible in list(colDict.values()): - if possible.origName == columnName: - column = possible - break - else: - # None found -- raise ValueError, "The column by the name %r was not found in the class %r" % (columnName, self.soClass) -+ raise ValueError("The column by the name %r was not found in the class %r" % (columnName, self.soClass)) - else: - column = colDict[columnName] - desc['column'] = column -@@ -153,7 +153,7 @@ class DatabaseIndex(object): - def __init__(self, *columns, **kw): - kw['columns'] = columns - self.kw = kw -- self.creationOrder = creationOrder.next() -+ self.creationOrder = next(creationOrder) - - def setName(self, value): - assert self.kw.get('name') is None, "You cannot change a name after it has already been set (from %s to %s)" % (self.kw['name'], value) ---- sqlobject/inheritance/__init__.py.orig 2011-05-15 15:48:27 UTC -+++ sqlobject/inheritance/__init__.py -@@ -5,7 +5,8 @@ from sqlobject import sqlbuilder - from sqlobject.col import StringCol, ForeignKey - from sqlobject.main import sqlmeta, SQLObject, SelectResults, \ - makeProperties, unmakeProperties, getterName, setterName --import iteration -+from . import iteration -+from functools import reduce - - def tablesUsedSet(obj, db): - if hasattr(obj, "tablesUsedSet"): -@@ -35,7 +36,7 @@ class InheritableSelectResults(SelectResults): - if inheritedTables: - for tableName in inheritedTables: - tablesSet.add(str(tableName)) -- if orderBy and not isinstance(orderBy, basestring): -+ if orderBy and not isinstance(orderBy, str): - tablesSet.update(tablesUsedSet(orderBy, dbName)) - #DSM: if this class has a parent, we need to link it - #DSM: and be sure the parent is in the table list. -@@ -69,7 +70,7 @@ class InheritableSelectResults(SelectResults): - #DSM: Table registry contains only the last children - #DSM: or standalone classes - parentClause = [] -- for (currentClass, minParentClass) in tableRegistry.items(): -+ for (currentClass, minParentClass) in list(tableRegistry.items()): - while (currentClass != minParentClass) \ - and currentClass.sqlmeta.parentClass: - parentClass = currentClass.sqlmeta.parentClass -@@ -86,7 +87,7 @@ class InheritableSelectResults(SelectResults): - return super(InheritableSelectResults, self).accumulateMany(*attributes) - tables = [] - for func_name, attribute in attributes: -- if not isinstance(attribute, basestring): -+ if not isinstance(attribute, str): - tables.append(attribute.tableName) - clone = self.__class__(self.sourceClass, self.clause, - self.clauseTables, inheritedTables=tables, **self.ops) -@@ -130,7 +131,7 @@ class InheritableSQLMeta(sqlmeta): - q = getattr(soClass.q, columnDef.name, None) - else: - q = None -- for c in sqlmeta.childClasses.values(): -+ for c in list(sqlmeta.childClasses.values()): - c.sqlmeta.addColumn(columnDef, connection=connection, childUpdate=True) - if q: setattr(c.q, columnDef.name, q) - -@@ -153,7 +154,7 @@ class InheritableSQLMeta(sqlmeta): - - #DSM: Update each child class if needed - #DSM: and delete properties for this column -- for c in sqlmeta.childClasses.values(): -+ for c in list(sqlmeta.childClasses.values()): - c.sqlmeta.delColumn(column, changeSchema=changeSchema, - connection=connection, childUpdate=True) - -@@ -184,7 +185,7 @@ class InheritableSQLMeta(sqlmeta): - - #DSM: Update each child class if needed and existing (only for new - #DSM: dynamic join as no child classes exists at object creation) -- for c in sqlmeta.childClasses.values(): -+ for c in list(sqlmeta.childClasses.values()): - c.sqlmeta.addJoin(joinDef, childUpdate=True) - - @classmethod -@@ -199,7 +200,7 @@ class InheritableSQLMeta(sqlmeta): - - #DSM: Update each child class if needed - #DSM: and delete properties for this join -- for c in sqlmeta.childClasses.values(): -+ for c in list(sqlmeta.childClasses.values()): - c.sqlmeta.delJoin(joinDef, childUpdate=True) - - @classmethod -@@ -236,7 +237,7 @@ class InheritableSQLObject(SQLObject): - # if we are a child class, add sqlbuilder fields from parents - currentClass = cls.sqlmeta.parentClass - while currentClass: -- for column in currentClass.sqlmeta.columnDefinitions.values(): -+ for column in list(currentClass.sqlmeta.columnDefinitions.values()): - if column.name == 'childName': - continue - if isinstance(column, ForeignKey): -@@ -319,7 +320,7 @@ class InheritableSQLObject(SQLObject): - # verify names of added columns - if sqlmeta.parentClass: - # FIXME: this does not check for grandparent column overrides -- parentCols = sqlmeta.parentClass.sqlmeta.columns.keys() -+ parentCols = list(sqlmeta.parentClass.sqlmeta.columns.keys()) - for column in sqlmeta.columnList: - if column.name == 'childName': - raise AttributeError( -@@ -357,7 +358,7 @@ class InheritableSQLObject(SQLObject): - parentClass = self.sqlmeta.parentClass - new_kw = {} - parent_kw = {} -- for (name, value) in kw.items(): -+ for (name, value) in list(kw.items()): *** 1572 LINES SKIPPED ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202305050139.3451dVoa043584>