[Python-apps-commits] r5415 - in packages/ibid/trunk/debian (3 files)
stefanor-guest at users.alioth.debian.org
stefanor-guest at users.alioth.debian.org
Thu Jun 17 09:48:52 UTC 2010
Date: Thursday, June 17, 2010 @ 09:48:50
Author: stefanor-guest
Revision: 5415
Apply sqlalchemy-0.6-support.patch, allowing Debian to transition to SQLAlchemy 0.6 (Closes: #584761)
Added:
packages/ibid/trunk/debian/patches/sqlalchemy-0.6-support.patch
Modified:
packages/ibid/trunk/debian/changelog
packages/ibid/trunk/debian/patches/series
Modified: packages/ibid/trunk/debian/changelog
===================================================================
--- packages/ibid/trunk/debian/changelog 2010-06-16 08:21:23 UTC (rev 5414)
+++ packages/ibid/trunk/debian/changelog 2010-06-17 09:48:50 UTC (rev 5415)
@@ -2,6 +2,8 @@
* Don't leak uid and umask into source tarball.
* Suggest nmap.
+ * Apply sqlalchemy-0.6-support.patch, allowing Debian to transition to
+ SQLAlchemy 0.6 (Closes: #584761)
-- Stefano Rivera <stefano at rivera.za.net> Fri, 12 Mar 2010 20:00:58 +0200
Modified: packages/ibid/trunk/debian/patches/series
===================================================================
--- packages/ibid/trunk/debian/patches/series 2010-06-16 08:21:23 UTC (rev 5414)
+++ packages/ibid/trunk/debian/patches/series 2010-06-17 09:48:50 UTC (rev 5415)
@@ -1,3 +1,4 @@
+sqlalchemy-0.6-support.patch
tac-not-needed.diff
docs.diff
separate-data.diff
Added: packages/ibid/trunk/debian/patches/sqlalchemy-0.6-support.patch
===================================================================
--- packages/ibid/trunk/debian/patches/sqlalchemy-0.6-support.patch (rev 0)
+++ packages/ibid/trunk/debian/patches/sqlalchemy-0.6-support.patch 2010-06-17 09:48:50 UTC (rev 5415)
@@ -0,0 +1,440 @@
+Description: Ibid 0.1.0 only supports SQLAlchemy 0.4 an 0.5, but Debian now
+ ships 0.6. This is a preliminary version of the upstream patch, bumping
+ supported versions to 0.5 and 0.6 (0.4 and 0.6 have mutually incompatible APIs)
+Origin: https://code.launchpad.net/~stefanor/ibid/sqlalchemy-0.6/+merge/27737
+Bug-Debian: http://bugs.debian.org/584761
+Last-Update: 2010-06-17
+--- a/ibid/core.py
++++ b/ibid/core.py
+@@ -329,28 +329,33 @@
+ else:
+ if uri.startswith(u'mysql://'):
+ if u'?' not in uri:
+- uri += u'?charset=utf8'
+- else:
+- params = parse_qs(uri.split(u'?', 1)[1])
+- if u'charset' not in params:
+- uri += u'&charset=utf8'
++ uri += u'?'
++ params = parse_qs(uri.split(u'?', 1)[1])
++ if u'charset' not in params:
++ uri += u'&charset=utf8'
++ if u'sql_mode' not in params:
++ uri += u'&sql_mode=ANSI_QUOTES'
++ # As recommended by SQLAlchemy due to a memory leak:
++ # http://www.sqlalchemy.org/trac/wiki/DatabaseNotes
++ if u'use_unicode' not in params:
++ uri += u'&use_unicode=0'
+
+ engine = create_engine(uri, encoding='utf-8',
+- convert_unicode=True, assert_unicode=True, echo=echo)
++ convert_unicode=True, assert_unicode=True, echo=echo,
++ # For MySQL which closes 8hr old connections:
++ pool_recycle=3600)
+
+ if uri.startswith('mysql://'):
+ class MySQLModeListener(object):
+ def connect(self, dbapi_con, con_record):
+- dbapi_con.set_sql_mode("ANSI")
+ mysql_engine = ibid.config.get('mysql_engine', 'InnoDB')
+ c = dbapi_con.cursor()
+- c.execute("SET storage_engine=%s;" % mysql_engine)
+- c.execute("SET time_zone='+0:00';")
++ c.execute("SET SESSION storage_engine=%s;"
++ % mysql_engine)
++ c.execute("SET SESSION time_zone='+0:00';")
+ c.close()
+ engine.pool.add_listener(MySQLModeListener())
+
+- engine.dialect.use_ansiquotes = True
+-
+ elif uri.startswith('postgres://'):
+ class PGSQLModeListener(object):
+ def connect(self, dbapi_con, con_record):
+--- a/ibid/db/__init__.py
++++ b/ibid/db/__init__.py
+@@ -19,7 +19,4 @@
+ from ibid.db.versioned_schema import VersionedSchema, SchemaVersionException, \
+ schema_version_check, upgrade_schemas
+
+-# We use SQLAlchemy 0.4 compatible .save_or_update() functions
+-_warnings.filterwarnings('ignore', 'Use session.add\(\)', SADeprecationWarning)
+-
+ # vi: set et sta sw=4 ts=4:
+--- a/ibid/db/versioned_schema.py
++++ b/ibid/db/versioned_schema.py
+@@ -4,8 +4,8 @@
+ import logging
+ import re
+
+-from sqlalchemy import Column, Index, UniqueConstraint, MetaData, \
+- __version__ as _sqlalchemy_version
++from sqlalchemy import Column, Index, CheckConstraint, UniqueConstraint, \
++ MetaData, __version__ as _sqlalchemy_version
+ from sqlalchemy.exceptions import InvalidRequestError, OperationalError, \
+ ProgrammingError, InternalError
+ if _sqlalchemy_version < '0.5':
+@@ -78,7 +78,7 @@
+ self._create_table()
+
+ schema = Schema(unicode(self.table.name), self.version)
+- session.save_or_update(schema)
++ session.add(schema)
+ return
+ Schema.__table__ = self._get_reflected_model()
+
+@@ -92,7 +92,7 @@
+ self._create_table()
+
+ schema = Schema(unicode(self.table.name), self.version)
+- session.save_or_update(schema)
++ session.add(schema)
+
+ elif self.version > schema.version:
+ for version in range(schema.version + 1, self.version + 1):
+@@ -104,7 +104,7 @@
+ getattr(self, 'upgrade_%i_to_%i' % (version - 1, version))()
+
+ schema.version = version
+- session.save_or_update(schema)
++ session.add(schema)
+
+ self.upgrade_reflected_model = \
+ MetaData(session.bind, reflect=True)
+@@ -176,6 +176,8 @@
+ ('constraints', old_constraints),
+ ('indexes', old_indexes)):
+ for constraint in old_list:
++ if isinstance(constraint, CheckConstraint):
++ continue
+ if any(True for column in constraint.columns
+ if isinstance(column.type, IbidUnicodeText)):
+ indices.append((
+--- a/ibid/plugins/codecontest.py
++++ b/ibid/plugins/codecontest.py
+@@ -239,7 +239,7 @@
+ usaco_account[0].value = usaco_user
+ else:
+ account.attributes.append(Attribute('usaco_account', usaco_user))
+- event.session.save_or_update(account)
++ event.session.add(account)
+ event.session.commit()
+
+ event.addresponse(u'Done')
+--- a/ibid/plugins/factoid.py
++++ b/ibid/plugins/factoid.py
+@@ -84,7 +84,7 @@
+ .params(pattern='%\\_\\%%', escape='\\') \
+ .all():
+ row.wild = True
+- self.upgrade_session.save_or_update(row)
++ self.upgrade_session.add(row)
+ def upgrade_7_to_8(self):
+ self.drop_index(self.table.c._name)
+ self.alter_column(Column('name',
+@@ -367,7 +367,7 @@
+
+ name = FactoidName(unicode(target), event.identity)
+ factoid.names.append(name)
+- event.session.save_or_update(factoid)
++ event.session.add(factoid)
+ event.session.commit()
+ event.addresponse(True)
+ log.info(u"Added name '%s' to factoid %s (%s) by %s/%s (%s)",
+@@ -552,7 +552,7 @@
+ factoid = Factoid()
+ fname = FactoidName(unicode(name), event.identity)
+ factoid.names.append(fname)
+- event.session.save_or_update(factoid)
++ event.session.add(factoid)
+ event.session.flush()
+ log.info(u"Creating factoid %s with name '%s' by %s", factoid.id, fname.name, event.identity)
+
+@@ -560,7 +560,7 @@
+ value = '%s %s' % (verb, value)
+ fvalue = FactoidValue(unicode(value), event.identity)
+ factoid.values.append(fvalue)
+- event.session.save_or_update(factoid)
++ event.session.add(factoid)
+ event.session.commit()
+ self.last_set_factoid=factoid.names[0].name
+ log.info(u"Added value '%s' to factoid %s (%s) by %s/%s (%s)",
+@@ -614,7 +614,7 @@
+
+ oldvalue = factoid[2].value
+ factoid[2].value += suffix
+- event.session.save_or_update(factoid[2])
++ event.session.add(factoid[2])
+ event.session.commit()
+
+ log.info(u"Appended '%s' to value %s of factoid %s (%s) by %s/%s (%s)",
+@@ -707,7 +707,7 @@
+ event.addresponse(u"That operation makes no sense. Try something like y/abcdef/ABCDEF/")
+ return
+
+- event.session.save_or_update(factoid[2])
++ event.session.add(factoid[2])
+ event.session.commit()
+
+ log.info(u"Applying '%s' to value %s of factoid %s (%s) by %s/%s (%s)",
+--- a/ibid/plugins/feeds.py
++++ b/ibid/plugins/feeds.py
+@@ -142,7 +142,7 @@
+ return
+
+ feed = Feed(unicode(name), unicode(url), event.identity)
+- event.session.save(feed)
++ event.session.add(feed)
+ event.session.commit()
+ event.addresponse(True)
+ log.info(u"Added feed '%s' by %s/%s (%s): %s (Found %s entries)",
+--- a/ibid/plugins/identity.py
++++ b/ibid/plugins/identity.py
+@@ -54,7 +54,7 @@
+ return
+
+ account = Account(username)
+- event.session.save_or_update(account)
++ event.session.add(account)
+ event.session.commit()
+ log.info(u"Created account %s (%s) by %s/%s (%s)",
+ account.id, account.username, event.account, event.identity, event.sender['connection'])
+@@ -64,14 +64,14 @@
+ .filter_by(identity=username, source=event.source).first()
+ if identity:
+ identity.account_id = account.id
+- event.session.save_or_update(identity)
++ event.session.add(identity)
+ event.session.commit()
+ log.info(u"Attached identity %s (%s on %s) to account %s (%s)",
+ identity.id, identity.identity, identity.source, account.id, account.username)
+ else:
+ identity = event.session.query(Identity).get(event.identity)
+ identity.account_id = account.id
+- event.session.save_or_update(identity)
++ event.session.add(identity)
+ event.session.commit()
+ log.info(u"Attached identity %s (%s on %s) to account %s (%s)",
+ identity.id, identity.identity, identity.source, account.id, account.username)
+@@ -132,7 +132,7 @@
+ oldname = account.username
+ account.username = newname
+
+- event.session.save_or_update(account)
++ event.session.add(account)
+ event.session.commit()
+ identify_cache.clear()
+
+@@ -182,12 +182,12 @@
+ return
+
+ account = Account(username)
+- event.session.save_or_update(account)
++ event.session.add(account)
+
+ currentidentity = event.session.query(Identity) \
+ .get(event.identity)
+ currentidentity.account_id = account.id
+- event.session.save_or_update(currentidentity)
++ event.session.add(currentidentity)
+
+ identify_cache.clear()
+
+@@ -249,7 +249,7 @@
+ if not ident:
+ ident = Identity(source, identity)
+ ident.account_id = account.id
+- event.session.save_or_update(ident)
++ event.session.add(ident)
+ event.session.commit()
+
+ identify_cache.clear()
+@@ -275,7 +275,7 @@
+ if not identity:
+ identity = Identity(source, user)
+ identity.account_id = account_id
+- event.session.save_or_update(identity)
++ event.session.add(identity)
+ identify_cache.clear()
+
+ del self.tokens[token]
+@@ -307,7 +307,7 @@
+ event.addresponse(u"I don't know about that identity")
+ else:
+ identity.account_id = None
+- event.session.save_or_update(identity)
++ event.session.add(identity)
+ event.session.commit()
+
+ identify_cache.clear()
+@@ -343,7 +343,7 @@
+ return
+
+ account.attributes.append(Attribute(name, value))
+- event.session.save_or_update(account)
++ event.session.add(account)
+ event.session.commit()
+
+ event.addresponse(True)
+@@ -466,7 +466,7 @@
+ .first()
+ if not identity:
+ identity = Identity(event.source, event.sender['id'])
+- event.session.save_or_update(identity)
++ event.session.add(identity)
+ try:
+ event.session.commit()
+ log.info(u'Created identity %s for %s on %s', identity.id, identity.identity, identity.source)
+@@ -545,7 +545,7 @@
+ credential = password
+
+ credential = Credential(method, credential, source, account.id)
+- event.session.save_or_update(credential)
++ event.session.add(credential)
+ event.session.commit()
+ log.info(u"Added %s credential %s for account %s (%s) on %s by account %s",
+ method, credential.credential, account.id, account.username, source, event.account)
+@@ -600,7 +600,7 @@
+ return
+
+ permission.value = value
+- event.session.save_or_update(permission)
++ event.session.add(permission)
+
+ event.session.commit()
+ ibid.auth.drop_caches()
+--- a/ibid/plugins/karma.py
++++ b/ibid/plugins/karma.py
+@@ -112,7 +112,7 @@
+
+ event.session.delete(karma)
+ else:
+- event.session.save_or_update(karma)
++ event.session.add(karma)
+ event.session.commit()
+
+ log.info(u"%s karma for '%s' by %s/%s (%s) because: %s",
+--- a/ibid/plugins/memo.py
++++ b/ibid/plugins/memo.py
+@@ -114,7 +114,7 @@
+ event.addresponse(u'I am not connected to %s', source)
+ return
+ to = Identity(source, who)
+- event.session.save(to)
++ event.session.add(to)
+ event.session.commit()
+
+ log.info(u"Created identity %s for %s on %s", to.id, to.identity,
+@@ -129,7 +129,7 @@
+
+ memo = Memo(event.identity, to.id, memo,
+ how.lower() in (u'pm', u'privmsg', u'msg'))
+- event.session.save_or_update(memo)
++ event.session.add(memo)
+
+ event.session.commit()
+ log.info(u"Stored memo %s for %s (%s) from %s (%s): %s",
+@@ -280,7 +280,7 @@
+ })
+
+ memo.delivered = True
+- event.session.save_or_update(memo)
++ event.session.add(memo)
+ event.session.commit()
+ log.info(u"Delivered memo %s to %s (%s)",
+ memo.id, event.identity, event.sender['connection'])
+--- a/ibid/plugins/seen.py
++++ b/ibid/plugins/seen.py
+@@ -86,7 +86,7 @@
+ sighting.time = event.time
+ sighting.count = sighting.count + 1
+
+- event.session.save_or_update(sighting)
++ event.session.add(sighting)
+ try:
+ event.session.commit()
+ except IntegrityError:
+--- a/ibid/plugins/urlgrab.py
++++ b/ibid/plugins/urlgrab.py
+@@ -76,7 +76,7 @@
+ url = 'http://%s' % url
+
+ u = URL(url, event.channel, event.identity)
+- event.session.save_or_update(u)
++ event.session.add(u)
+
+ if self.service and self.username:
+ self._post_url(event, url)
+--- a/scripts/ibid-factpack
++++ b/scripts/ibid-factpack
+@@ -85,7 +85,7 @@
+ exit(5)
+
+ factpack = Factpack(name)
+-session.save(factpack)
++session.add(factpack)
+ session.flush()
+
+ existing = []
+@@ -102,7 +102,7 @@
+ fvalue = FactoidValue(unicode(value), None, factpack=factpack.id)
+ factoid.values.append(fvalue)
+ if len(factoid.names) > 0:
+- session.save(factoid)
++ session.add(factoid)
+
+ if existing and not options.skip:
+ print >> stderr, u'The following factoids already exist in the database. ' \
+--- a/scripts/ibid-knab-import
++++ b/scripts/ibid-knab-import
+@@ -124,7 +124,7 @@
+ if not identity:
+ identity = Identity(source, user)
+ identity.created = created
+- session.save(identity)
++ session.add(identity)
+ session.flush()
+ elif identity.created > created:
+ identity.created = created
+@@ -181,7 +181,7 @@
+ fvalue.time = kfactoid.utc_time
+
+ factoid.values.append(fvalue)
+- ibid.save_or_update(factoid)
++ ibid.add(factoid)
+
+ ibid.commit()
+
+@@ -291,7 +291,7 @@
+ config.merge(FileConfig('local.ini'))
+
+ ibidengine = create_engine(config.databases['ibid'], encoding='utf-8')
+- IbidSession = sessionmaker(bind=ibidengine, transactional=False)
++ IbidSession = sessionmaker(bind=ibidengine, autocommit=True)
+ ibid = IbidSession()
+
+ import_factoids(knab, ibid, source)
+--- a/scripts/ibid-plugin
++++ b/scripts/ibid-plugin
+@@ -98,7 +98,7 @@
+ identity = session.query(Identity).filter_by(identity=username, source=u'test_source').first()
+ if not identity:
+ identity = Identity(u'test_source',username)
+- session.save(identity)
++ session.add(identity)
+ session.commit()
+ identity = session.query(Identity).filter_by(identity=username).first()
+ identity_id = identity.id
+--- a/scripts/ibid-setup
++++ b/scripts/ibid-setup
+@@ -160,8 +160,8 @@
+ credential = Credential(u'password', hash(unicode(pass1)))
+ account.credentials.append(credential)
+
+-session.save_or_update(account)
+-session.save_or_update(identity)
++session.add(account)
++session.add(identity)
+ session.commit()
+ session.close()
+
More information about the Python-apps-commits
mailing list