convert to a list, not tuples, so we can modify on the fly

This commit is contained in:
Damien Elmes 2010-05-07 16:05:35 +09:00
parent f69d946f83
commit fd1953bfb5

View file

@ -261,31 +261,31 @@ class SyncTools(object):
self.deck.s.flush() self.deck.s.flush()
return { return {
# cards # cards
"cards": self.realTuples(self.deck.s.all( "cards": self.realLists(self.deck.s.all(
"select id, modified from cards where modified > :mod", "select id, modified from cards where modified > :mod",
mod=lastSync)), mod=lastSync)),
"delcards": self.realTuples(self.deck.s.all( "delcards": self.realLists(self.deck.s.all(
"select cardId, deletedTime from cardsDeleted " "select cardId, deletedTime from cardsDeleted "
"where deletedTime > :mod", mod=lastSync)), "where deletedTime > :mod", mod=lastSync)),
# facts # facts
"facts": self.realTuples(self.deck.s.all( "facts": self.realLists(self.deck.s.all(
"select id, modified from facts where modified > :mod", "select id, modified from facts where modified > :mod",
mod=lastSync)), mod=lastSync)),
"delfacts": self.realTuples(self.deck.s.all( "delfacts": self.realLists(self.deck.s.all(
"select factId, deletedTime from factsDeleted " "select factId, deletedTime from factsDeleted "
"where deletedTime > :mod", mod=lastSync)), "where deletedTime > :mod", mod=lastSync)),
# models # models
"models": self.realTuples(self.deck.s.all( "models": self.realLists(self.deck.s.all(
"select id, modified from models where modified > :mod", "select id, modified from models where modified > :mod",
mod=lastSync)), mod=lastSync)),
"delmodels": self.realTuples(self.deck.s.all( "delmodels": self.realLists(self.deck.s.all(
"select modelId, deletedTime from modelsDeleted " "select modelId, deletedTime from modelsDeleted "
"where deletedTime > :mod", mod=lastSync)), "where deletedTime > :mod", mod=lastSync)),
# media # media
"media": self.realTuples(self.deck.s.all( "media": self.realLists(self.deck.s.all(
"select id, created from media where created > :mod", "select id, created from media where created > :mod",
mod=lastSync)), mod=lastSync)),
"delmedia": self.realTuples(self.deck.s.all( "delmedia": self.realLists(self.deck.s.all(
"select mediaId, deletedTime from mediaDeleted " "select mediaId, deletedTime from mediaDeleted "
"where deletedTime > :mod", mod=lastSync)), "where deletedTime > :mod", mod=lastSync)),
} }
@ -459,10 +459,10 @@ class SyncTools(object):
modified = "modified" modified = "modified"
factIds = ids2str(ids) factIds = ids2str(ids)
return { return {
'facts': self.realTuples(self.deck.s.all(""" 'facts': self.realLists(self.deck.s.all("""
select id, modelId, created, %s, tags, spaceUntil, lastCardId from facts select id, modelId, created, %s, tags, spaceUntil, lastCardId from facts
where id in %s""" % (modified, factIds))), where id in %s""" % (modified, factIds))),
'fields': self.realTuples(self.deck.s.all(""" 'fields': self.realLists(self.deck.s.all("""
select id, factId, fieldModelId, ordinal, value from fields select id, factId, fieldModelId, ordinal, value from fields
where factId in %s""" % factIds)) where factId in %s""" % factIds))
} }
@ -519,7 +519,7 @@ values
########################################################################## ##########################################################################
def getCards(self, ids): def getCards(self, ids):
return self.realTuples(self.deck.s.all(""" return self.realLists(self.deck.s.all("""
select id, factId, cardModelId, created, modified, tags, ordinal, select id, factId, cardModelId, created, modified, tags, ordinal,
priority, interval, lastInterval, due, lastDue, factor, priority, interval, lastInterval, due, lastDue, factor,
firstAnswered, reps, successive, averageTime, reviewTime, youngEase0, firstAnswered, reps, successive, averageTime, reviewTime, youngEase0,
@ -609,7 +609,7 @@ values
# these may be deleted before bundling # these may be deleted before bundling
if 'models' in d: del d['models'] if 'models' in d: del d['models']
if 'currentModel' in d: del d['currentModel'] if 'currentModel' in d: del d['currentModel']
d['meta'] = self.realTuples(self.deck.s.all("select * from deckVars")) d['meta'] = self.realLists(self.deck.s.all("select * from deckVars"))
return d return d
def updateDeck(self, deck): def updateDeck(self, deck):
@ -661,7 +661,7 @@ insert or replace into deckVars
stat.toDB(self.deck.s) stat.toDB(self.deck.s)
def bundleHistory(self): def bundleHistory(self):
return self.realTuples(self.deck.s.all(""" return self.realLists(self.deck.s.all("""
select cardId, time, lastInterval, nextInterval, ease, delay, select cardId, time, lastInterval, nextInterval, ease, delay,
lastFactor, nextFactor, reps, thinkingTime, yesCount, noCount lastFactor, nextFactor, reps, thinkingTime, yesCount, noCount
from reviewHistory where time > :ls""", from reviewHistory where time > :ls""",
@ -692,7 +692,7 @@ values
dlist) dlist)
def bundleSources(self): def bundleSources(self):
return self.realTuples(self.deck.s.all("select * from sources")) return self.realLists(self.deck.s.all("select * from sources"))
def updateSources(self, sources): def updateSources(self, sources):
for s in sources: for s in sources:
@ -787,7 +787,7 @@ where media.id in %s""" % sids, now=time.time())
# cards # cards
cardIds = self.deck.s.column0( cardIds = self.deck.s.column0(
"select id from cards where modified > :l", l=lastSync) "select id from cards where modified > :l", l=lastSync)
p['cards'] = self.realTuples(self.getOneWayCards(cardIds)) p['cards'] = self.realLists(self.getOneWayCards(cardIds))
return p return p
def applyOneWayPayload(self, payload): def applyOneWayPayload(self, payload):
@ -889,9 +889,9 @@ and cards.id in %s""" % ids2str([c[0] for c in cards])))
for (k,v) in dict.items(): for (k,v) in dict.items():
setattr(obj, k, v) setattr(obj, k, v)
def realTuples(self, result): def realLists(self, result):
"Convert an SQLAlchemy response into a list of real tuples." "Convert an SQLAlchemy response into a list of real lists."
return [tuple(x) for x in result] return [list(x) for x in result]
def getObjsFromKey(self, ids, key): def getObjsFromKey(self, ids, key):
return getattr(self, "get" + key.capitalize())(ids) return getattr(self, "get" + key.capitalize())(ids)