mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 06:22:22 -04:00
remove minimum average support
Calculating the average on startup is expensive on mobile devices. It might be nice to provide it as a deck option or per-model setting in the future so that people can specify how hard their material is and have it treated accordingly.
This commit is contained in:
parent
72a1cd73a9
commit
1a09aa9f77
2 changed files with 12 additions and 12 deletions
|
@ -28,7 +28,7 @@ from anki.hooks import runHook, hookEmpty
|
||||||
from anki.template import render
|
from anki.template import render
|
||||||
from anki.media import updateMediaCount, mediaFiles, \
|
from anki.media import updateMediaCount, mediaFiles, \
|
||||||
rebuildMediaDir
|
rebuildMediaDir
|
||||||
from anki.upgrade import upgradeSchema, updateIndices, upgradeDeck
|
from anki.upgrade import upgradeSchema, updateIndices, upgradeDeck, DECK_VERSION
|
||||||
import anki.latex # sets up hook
|
import anki.latex # sets up hook
|
||||||
|
|
||||||
# ensure all the DB metadata in other files is loaded before proceeding
|
# ensure all the DB metadata in other files is loaded before proceeding
|
||||||
|
@ -57,7 +57,6 @@ SEARCH_FIELD = 6
|
||||||
SEARCH_FIELD_EXISTS = 7
|
SEARCH_FIELD_EXISTS = 7
|
||||||
SEARCH_QA = 8
|
SEARCH_QA = 8
|
||||||
SEARCH_PHRASE_WB = 9
|
SEARCH_PHRASE_WB = 9
|
||||||
DECK_VERSION = 71
|
|
||||||
|
|
||||||
deckVarsTable = Table(
|
deckVarsTable = Table(
|
||||||
'deckVars', metadata,
|
'deckVars', metadata,
|
||||||
|
@ -127,7 +126,6 @@ class Deck(object):
|
||||||
|
|
||||||
factorFour = 1.3
|
factorFour = 1.3
|
||||||
initialFactor = 2.5
|
initialFactor = 2.5
|
||||||
minimumAverage = 1.7
|
|
||||||
maxScheduleTime = 36500
|
maxScheduleTime = 36500
|
||||||
|
|
||||||
def __init__(self, path=None):
|
def __init__(self, path=None):
|
||||||
|
@ -3636,10 +3634,7 @@ class DeckStorage(object):
|
||||||
# check if deck has been moved, and disable syncing
|
# check if deck has been moved, and disable syncing
|
||||||
deck.checkSyncHash()
|
deck.checkSyncHash()
|
||||||
# determine starting factor for new cards
|
# determine starting factor for new cards
|
||||||
deck.averageFactor = (deck.s.scalar(
|
deck.averageFactor = 2.5
|
||||||
"select avg(factor) from cards where type = 1")
|
|
||||||
or Deck.initialFactor)
|
|
||||||
deck.averageFactor = max(deck.averageFactor, Deck.minimumAverage)
|
|
||||||
# rebuild queue
|
# rebuild queue
|
||||||
deck.reset()
|
deck.reset()
|
||||||
# make sure we haven't accidentally bumped the modification time
|
# make sure we haven't accidentally bumped the modification time
|
||||||
|
|
|
@ -2,6 +2,11 @@
|
||||||
# Copyright: Damien Elmes <anki@ichi2.net>
|
# Copyright: Damien Elmes <anki@ichi2.net>
|
||||||
# License: GNU GPL, version 3 or later; http://www.gnu.org/copyleft/gpl.html
|
# License: GNU GPL, version 3 or later; http://www.gnu.org/copyleft/gpl.html
|
||||||
|
|
||||||
|
DECK_VERSION = 72
|
||||||
|
|
||||||
|
from anki.lang import _
|
||||||
|
from anki.media import rebuildMediaDir
|
||||||
|
|
||||||
def upgradeSchema(s):
|
def upgradeSchema(s):
|
||||||
"Alter tables prior to ORM initialization."
|
"Alter tables prior to ORM initialization."
|
||||||
ver = s.scalar("select version from decks limit 1")
|
ver = s.scalar("select version from decks limit 1")
|
||||||
|
@ -37,10 +42,6 @@ create index if not exists ix_facts_modified on facts
|
||||||
deck.s.statement("""
|
deck.s.statement("""
|
||||||
create index if not exists ix_cards_priority on cards
|
create index if not exists ix_cards_priority on cards
|
||||||
(priority)""")
|
(priority)""")
|
||||||
# average factor
|
|
||||||
deck.s.statement("""
|
|
||||||
create index if not exists ix_cards_factor on cards
|
|
||||||
(type, factor)""")
|
|
||||||
# card spacing
|
# card spacing
|
||||||
deck.s.statement("""
|
deck.s.statement("""
|
||||||
create index if not exists ix_cards_factId on cards (factId)""")
|
create index if not exists ix_cards_factId on cards (factId)""")
|
||||||
|
@ -84,7 +85,6 @@ create index if not exists ix_cardTags_cardId on cardTags (cardId)""")
|
||||||
|
|
||||||
def upgradeDeck(deck):
|
def upgradeDeck(deck):
|
||||||
"Upgrade deck to the latest version."
|
"Upgrade deck to the latest version."
|
||||||
from anki.deck import DECK_VERSION
|
|
||||||
if deck.version < DECK_VERSION:
|
if deck.version < DECK_VERSION:
|
||||||
prog = True
|
prog = True
|
||||||
deck.startProgress()
|
deck.startProgress()
|
||||||
|
@ -229,6 +229,11 @@ this message. (ERR-0101)""") % {
|
||||||
deck.s.execute("analyze")
|
deck.s.execute("analyze")
|
||||||
deck.version = 71
|
deck.version = 71
|
||||||
deck.s.commit()
|
deck.s.commit()
|
||||||
|
if deck.version < 72:
|
||||||
|
# remove the expensive value cache
|
||||||
|
deck.s.statement("drop index if exists ix_cards_factor")
|
||||||
|
deck.version = 72
|
||||||
|
deck.s.commit()
|
||||||
# executing a pragma here is very slow on large decks, so we store
|
# executing a pragma here is very slow on large decks, so we store
|
||||||
# our own record
|
# our own record
|
||||||
if not deck.getInt("pageSize") == 4096:
|
if not deck.getInt("pageSize") == 4096:
|
||||||
|
|
Loading…
Reference in a new issue