Damien Elmes
5a73641b57
enable strict equality checks in mypy
...
Without it, the following code reports no problems:
def foo() -> int:
return 5
print(foo == 5)
2020-08-03 10:26:40 +10:00
Damien Elmes
2bcf9a82d1
fix missing translations in export screen
...
https://forums.ankiweb.net/t/untranslated-strings/1623
2020-07-31 13:33:41 +10:00
Damien Elmes
186ff1f185
pin pytest due to pylint issue
2020-07-29 14:52:45 +10:00
Matt Krump
5e6f532f56
Turn on check_untyped_defs for aqt.exporting
2020-07-28 18:42:22 -06:00
Damien Elmes
227703f9fa
bump version
2020-07-28 12:59:56 +10:00
Damien Elmes
9f3eebfa80
force old graphs to use ltr
...
otherwise the axis labels are way off
https://forums.ankiweb.net/t/anki-2-1-29-beta/1220/8
2020-07-22 14:30:56 +10:00
Damien Elmes
412f1777bd
bump version
2020-07-21 15:54:14 +10:00
Damien Elmes
01ff6ab55d
apply rtl dir to webviews
...
https://forums.ankiweb.net/t/gui-problems-with-right-to-left-languages/1205
2020-07-21 11:52:25 +10:00
Damien Elmes
15f13145ea
Merge pull request #698 from Arthur-Milchior/remove_clear_overdue
...
remove _clearOverdue
2020-07-21 10:27:04 +10:00
Arthur Milchior
a3f8a15c37
remove unused variable
2020-07-20 10:17:23 +02:00
Arthur Milchior
5c9c5f6ebc
duplicate assignment removed
2020-07-20 06:47:47 +02:00
Arthur Milchior
e02d47a0d9
typo
2020-07-20 06:28:36 +02:00
Arthur Milchior
0449785b7a
remove useless variable cram
2020-07-20 06:24:42 +02:00
Arthur Milchior
3fd16beaa5
remove _clearOverdue
...
This member is never read
2020-07-20 05:45:18 +02:00
Damien Elmes
67abb98993
Merge pull request #692 from Arthur-Milchior/remove_useles_variables
...
Remove useless variables
2020-07-20 11:35:40 +10:00
Damien Elmes
928a1d3a75
Merge pull request #697 from Arthur-Milchior/typos
...
Comment typo
2020-07-20 11:34:02 +10:00
Damien Elmes
2bb5826598
Merge pull request #696 from Arthur-Milchior/note_to_add_note
...
For some reason, add_note were assigned to a unused variable
2020-07-20 11:32:55 +10:00
Damien Elmes
63c0557824
Merge pull request #695 from Arthur-Milchior/note->field
...
replace "note" by "field"
2020-07-20 11:32:30 +10:00
Arthur Milchior
ff62829e6e
Comment typo
2020-07-19 11:24:58 +02:00
Arthur Milchior
35cfbc2bae
For some reason, add_note were assigned to a unused variable
...
I remove it for clarity
2020-07-19 10:58:40 +02:00
Arthur Milchior
bff784dc9a
replace "note" by "field"
...
My bad. In one case `f` did represent "field" and not "fact"
2020-07-19 08:24:43 +02:00
Arthur Milchior
23eeb84556
Uses constant in tests
2020-07-19 05:34:22 +02:00
Arthur Milchior
1b4a180fb9
d2->col2
2020-07-17 17:55:57 +02:00
Arthur Milchior
e7d75c2c8d
tmp->col in tests
2020-07-17 17:37:17 +02:00
Arthur Milchior
e7378734d2
f4->note4
2020-07-17 17:34:39 +02:00
Arthur Milchior
0db941ed98
f3->note3
2020-07-17 17:33:58 +02:00
Arthur Milchior
9c5bb199d0
f->n in id
2020-07-17 17:30:29 +02:00
Arthur Milchior
93ad194862
NF: deck2->col2
2020-07-17 17:27:40 +02:00
Arthur Milchior
452daf8d80
Remove useless variables
2020-07-17 08:38:48 +02:00
Arthur Milchior
1af59545bd
gn->deckn in test
...
Obtained by
```
sed -i "s/\bg1\b/deck1/g" pylib/tests/*py qt/tests/*py
sed -i "s/\bg2\b/deck2/g" pylib/tests/*py qt/tests/*py
```
2020-07-17 06:58:32 +02:00
Arthur Milchior
2c73dcb2e5
d->col in tests
...
obtained by
```
sed -i "s/\bd\b/col/g" pylib/tests/*py qt/tests/*py
```
2020-07-17 06:58:32 +02:00
Arthur Milchior
c376714a9b
deck->col in tests
...
Obtained by
```
sed -i "s/\bdeck\b/col/g" pylib/tests/*py qt/tests/*py
```
2020-07-17 06:50:46 +02:00
Arthur Milchior
425b82e6e7
f2->note2 in test
...
Obtained by
```
sed -i "s/\bf2\b/note2/g" pylib/tests/*py qt/tests/*py
```
2020-07-17 06:47:44 +02:00
Arthur Milchior
4c25835d27
f->note in test
...
Obtained by sed -i "s/\bf\b/note/g" pylib/tests/*py qt/tests/*py
2020-07-17 06:47:44 +02:00
Arthur Milchior
6a529e51cc
note->n
...
Next commit will transform f into note, and this lead to a variable clash here
2020-07-17 06:08:33 +02:00
Damien Elmes
19541c4a9d
fix deck tree with a day delta, and support arbitrary timestamps
2020-07-06 19:16:03 +10:00
Damien Elmes
4d23a69e9a
formatting
2020-07-01 14:01:24 +10:00
Damien Elmes
572e2d10dc
hack around future unburied date
...
We want to avoid unburied != self.today, because the unburied time
is synchronized as part of the collection at the moment, and we don't
want a client with an older unburied time that was modified more
recently to cause cards to be unburied twice - so we only unbury
if today is more than 7 days earlier than the last unbury time.
Unsure what caused these users to end up in that state in the first
place:
https://anki.tenderapp.com/discussions/ankidesktop/41335-cards-remain-buried-forever-unless-manually-unburied
2020-07-01 13:12:45 +10:00
Damien Elmes
82568a1f3e
experiment with exposing raw card/revlog data to frontend
2020-06-29 15:48:00 +10:00
Damien Elmes
3ca4a13cf2
protobuf package should be in PascalCase
2020-06-29 15:48:00 +10:00
Damien Elmes
d99ea0c7a0
fix media not working after full sync
2020-06-24 09:52:02 +10:00
Damien Elmes
83b3d3249f
drop yellow colour in "filtered" for now
...
It's difficult to read against a light background
2020-06-16 16:39:07 +10:00
Damien Elmes
b51f03085e
migrate card stats to backend
...
Currently this renders the HTML directly like the previous Python
implementation - doing it in JS would probably make more sense in the
future.
2020-06-15 17:22:16 +10:00
Damien Elmes
772c7a945c
fix lint issues with latest mypy_protobuf
2020-06-14 15:38:43 +10:00
Damien Elmes
8e895aa247
handle db errors the same way as other backend requests
2020-06-12 20:39:02 +10:00
Damien Elmes
1cb0ac3670
update unit test for leech change
2020-06-09 14:12:34 +10:00
Damien Elmes
c4ead8ad28
strip out \r on export
...
(private post)
https://anki.tenderapp.com/discussions/ankidesktop/42315-bug-report-exporting-selected-cards-in-browser-issue
2020-06-09 12:56:16 +10:00
Damien Elmes
8bac28470f
fix error when importing v2 apkg
...
https://anki.tenderapp.com/discussions/ankidesktop/42070-anki-closes-without-warning-when-importing-conflicting-shared-deck
2020-06-09 12:06:52 +10:00
Damien Elmes
b277849db1
fix audio being included in FrontSide
2020-06-09 08:16:03 +10:00
Damien Elmes
7c444b4d35
add progress to db check
2020-06-08 21:07:36 +10:00
Damien Elmes
4570ae3d12
Merge pull request #658 from BlueGreenMagick/media-type
...
add type hint for media dir
2020-06-08 11:31:01 +10:00
Damien Elmes
4df3777aed
fix legacy deckDueTree()
2020-06-08 11:12:24 +10:00
BlueGreenMagick
c6ec9e44e4
add type hint for media dir
2020-06-07 10:35:48 +09:00
Damien Elmes
1fe18718f7
add daily count updating to backend
2020-06-05 19:49:53 +10:00
Damien Elmes
fee6cdff22
support generating a due tree for a different date
2020-06-05 09:38:31 +10:00
Damien Elmes
4a69b55a90
add note/card removal to backend
2020-06-04 18:21:04 +10:00
Damien Elmes
e1b0fe1832
add .count() to hooks, and list->sequence in note deletion
2020-06-04 18:20:03 +10:00
Damien Elmes
14a5ab353e
fix duplicate/empty check
2020-06-02 17:34:34 +10:00
Damien Elmes
4d7e23111e
change sync label to indicate sync state
...
- blue for normal sync, red for full sync required
- refactor status fetching code so we don't hold a collection lock
during the network request, which slows things down
- fix sync spinner restarting when returning to deck list
2020-06-02 13:23:01 +10:00
Damien Elmes
5729e9e336
"fix" v1 scheduler breaking after burySiblings change
2020-06-01 19:44:25 +10:00
Damien Elmes
90e19daec2
handle aborting normal sync
...
- Use a separate abort handle, as the media sync is running
in the background and we need to be able to target them separately.
The current progress handling is going to need a rethink if we introduce
any other background tasks in the future.
- Roll back the transaction when interrupting.
2020-06-01 13:57:10 +10:00
Damien Elmes
c6f0710ce7
report normal sync progress
...
Also:
- provide a way for the progress handler to skip the throttling so that
we can ensure progress is updated at the end of a stage
- show 'checking' at the end of full sync
2020-06-01 13:57:10 +10:00
Damien Elmes
aecce5a516
fix mtime being bumped in .reset()
2020-06-01 13:57:10 +10:00
Damien Elmes
42302b070e
fix de-auth when no media DB set up
2020-06-01 13:57:10 +10:00
Damien Elmes
0e5b7da62a
login/full up/full down plugged in
2020-06-01 13:57:10 +10:00
Damien Elmes
ee6d7f82e7
rework progress handling
...
- client now polls status instead of backend pushing it
- supports multiple threads
- update throttling happens in one place
2020-06-01 13:57:10 +10:00
Damien Elmes
6204a86879
tidy up sibling burying
...
closes #649
2020-06-01 13:48:15 +10:00
Damien Elmes
8516ed8655
handle images served from directory + svg content type
...
https://anki.tenderapp.com/discussions/ankidesktop/41974-win-linux-when-pasting-some-html-i-get-error-in-_run_command-ankirsbackendioerror-ioerror
2020-06-01 13:40:17 +10:00
Damien Elmes
8f9c6fbf95
Merge pull request #643 from evandroforks/add_repr_functions
...
Added __repr__ functions to common objects
2020-06-01 13:29:21 +10:00
evandrocoan
3318f23ff3
Say which card failed with an exception
2020-05-31 19:41:18 -03:00
evandrocoan
ef5c38dbc6
Added super().__repr__() to new __repr__() calls
2020-05-31 19:39:19 -03:00
evandrocoan
1e216e47ed
Added __repr__ functions to common objects
2020-05-31 19:39:19 -03:00
Damien Elmes
97618564f4
fix typechecking breaking with latest mypy_protobuf
...
the change that caused it:
https://github.com/dropbox/mypy-protobuf/issues/118
This is more awkward to handle now, as the types are only available
at type-checking time. Python's static typing is such a mess :-(
2020-05-27 09:14:02 +10:00
Damien Elmes
3e156911e7
avoid printing the original exception bytes
...
Prevents the "while processing this exception, another exception
occurred" message
2020-05-25 14:28:37 +10:00
Damien Elmes
015de0c51f
move generated methods into separate, gitignored file
2020-05-24 20:41:53 +10:00
Damien Elmes
c8d13209cd
move dupe check to backend
2020-05-24 19:48:56 +10:00
Damien Elmes
38508c3ad7
use keyword args for calls with more than one argument
2020-05-24 09:12:47 +10:00
Damien Elmes
89dde3aeb0
migrate the remaining methods
2020-05-24 08:36:50 +10:00
Damien Elmes
4bf8175bcb
migrate more scheduling/media/etc
...
almost there
2020-05-23 21:34:19 +10:00
Damien Elmes
a105037ec9
migrate notetypes, update GIL list
2020-05-23 20:43:55 +10:00
Damien Elmes
6710e3d528
add some more newtypes to the RPC defs
2020-05-23 16:58:01 +10:00
Damien Elmes
95735f106a
migrate cards and notes
2020-05-23 16:19:48 +10:00
Damien Elmes
7550e6241c
migrate decks and dconf methods
2020-05-23 15:09:16 +10:00
Damien Elmes
081a61a438
more methods
2020-05-23 14:01:36 +10:00
Damien Elmes
175afa9fee
migrate more methods to service
2020-05-22 22:09:33 +10:00
Damien Elmes
9c20d9a02b
start reworking protobuf handling
...
Will allow us to cut down on boilerplate by automatically generating
code from RPC service definitions
2020-05-22 20:56:15 +10:00
Damien Elmes
0bf4fe400a
fix deletion of decks; allow deleting cards from default
...
https://anki.tenderapp.com/discussions/beta-testing/1967-2126-189-g7384df8f-crash-at-note-types-fields-save#comment_48353232
2020-05-22 11:24:56 +10:00
Damien Elmes
9baa8530d5
move deck/notetype update hooks to gui
...
We need to migrate away from firing hooks in libanki, since libanki
methods may be running on a background thread, and hook consumers
typically expect the code to run in the main thread. We could document
it, but it would frequently be forgotten about, and could lead to
crashes.
https://anki.tenderapp.com/discussions/ankidesktop/41748-qobject-cannot-create-children-for-a-parent-that-is-in-a-different-thread-when-hitting-the-save-button-on-clayoutpy-window
2020-05-22 10:47:14 +10:00
Damien Elmes
1844cc84cc
can't use _card.note_type() in clayout
2020-05-22 09:58:58 +10:00
Damien Elmes
c52a076176
add back most of .fields() to avoid breaking add-ons
2020-05-21 12:08:51 +10:00
Damien Elmes
44ca4b32eb
use longer delay in test_timing()
...
was intermittently failing in slow Windows CI
2020-05-21 09:33:49 +10:00
evandrocoan
b388c43454
Fixed HttpClient session not being closed
2020-05-20 19:20:41 -03:00
Damien Elmes
d5e48fdf65
fix deck age being used instead of collection
...
https://anki.tenderapp.com/discussions/ankidesktop/41637-bug-in-statistics
2020-05-20 19:46:01 +10:00
Damien Elmes
e2bb5cd14a
update missed storage._Collection references
2020-05-20 19:45:46 +10:00
Damien Elmes
50fdf9b03d
storage->collection
2020-05-20 17:58:28 +10:00
Damien Elmes
c49c378296
move storage logic into collection.py; fix export bug
...
https://anki.tenderapp.com/discussions/ankidesktop/41495-using-file-export-closes-the-collection-on-mwcoldb-if-the-browser-window-is-open
2020-05-20 17:43:34 +10:00
Damien Elmes
0c85397461
fix extending limits in custom study
...
https://anki.tenderapp.com/discussions/beta-testing/1967-2126-189-g7384df8f-crash-at-note-types-fields-save
2020-05-20 14:13:40 +10:00
Damien Elmes
7384df8f19
Merge pull request #613 from evandroforks/add_missing_file_descriptors_close
...
Add missing close file descriptors using context managers
2020-05-19 14:39:07 +10:00
Damien Elmes
e17d63083c
catch protobuf error as well
...
Sad that we can't exhaustively match protobuf oneofs in
Python :-(
2020-05-19 13:10:20 +10:00
evandrocoan
083cc8ae4e
Simplified csvfile.py super call __del__ call
2020-05-18 16:20:33 -03:00
evandrocoan
200bad3714
Explicitly close the importer file descriptor
...
https://github.com/ankitects/anki/pull 613
2020-05-18 15:54:20 -03:00
evandrocoan
efb62b9528
Add missing close file descriptors using context managers
2020-05-18 15:54:20 -03:00
Damien Elmes
8bd5d756e2
bump version
2020-05-18 12:50:20 +10:00
Damien Elmes
68465ae07b
protobuf tidyups
2020-05-18 09:26:14 +10:00
Damien Elmes
7ec3f1ecc0
fix syncing
2020-05-17 20:52:02 +10:00
Damien Elmes
69537bb748
minor tidyups in decks.py
2020-05-17 20:13:29 +10:00
Damien Elmes
803aeff16e
update current note type in backend
2020-05-17 20:01:16 +10:00
Damien Elmes
7daa417dc8
fix renaming corner cases and decks.update()
...
- .update() should update a single deck and preserve usn by default,
as that's what existing code expects
- decks are automatically renamed when they conflict with an existing
name
2020-05-17 19:07:15 +10:00
Damien Elmes
df48fa8cf7
handle deletion of default deck in backend; use + instead of _
2020-05-17 15:22:19 +10:00
Damien Elmes
252eb3a444
fix shared deck conf warning
2020-05-17 14:37:59 +10:00
Damien Elmes
b9b837e7bd
update before_upload()
2020-05-17 14:13:21 +10:00
Damien Elmes
6114836484
move deck config to protobuf
2020-05-17 13:28:41 +10:00
Damien Elmes
54670580ad
add option to limit deck tree counts to a particular node
2020-05-17 08:38:49 +10:00
Damien Elmes
8b57a61746
use deck tree for new/review count calculation
...
- wins back the performance lost by the decks and dconf not being
in memory, and the overhead of serializing data for DB calls
- card counts are no longer capped to 1000
- learn counts are currently still calculated separately - can't merge
v1 counts without changing the existing behaviour
- partially rendering the tree may yield more savings
2020-05-16 20:28:03 +10:00
Damien Elmes
5590b22683
speed up children() and add deck_and_child_ids()
2020-05-16 15:40:07 +10:00
Damien Elmes
2efda14200
rework and merge updateCutoff
...
- the old "mutate but don't save" approach to resetting the "done today"
counts no longer works, and was inefficient anyway - now we just check
the day when returning the count
- remove separate implementation for v1 scheduler
This is a stop-gap solution - a bigger refactor will need to wait
until the deck/note type changes have stabilized.
2020-05-16 15:14:16 +10:00
Damien Elmes
bd1ce123af
formatting
2020-05-16 14:59:47 +10:00
Damien Elmes
1cddd6d23e
only update active when selecting deck/resetting
...
We were previously doing this every time a card was answered.
2020-05-16 14:57:46 +10:00
Damien Elmes
8eada2b57d
add find_deck_in_tree()
2020-05-16 13:05:20 +10:00
Damien Elmes
24dd116f91
update unit tests to use deck_due_tree()
2020-05-16 12:10:40 +10:00
Damien Elmes
f2086fc2e3
switch to new deck tree in deck browser
...
Saves us having to look up collapsed/filtered as we render, and gives
us type completion.
2020-05-16 10:52:14 +10:00
Damien Elmes
4d5908dc20
remove unused default(Dynamic)Deck
2020-05-15 21:47:33 +10:00
Damien Elmes
964a69e54e
handle default deck and filtered deck suppression in the backend
2020-05-15 21:21:10 +10:00
Damien Elmes
769bf04f75
remove unused deckDueList() and associated tree code
...
The progress bar add-ons appear to be the only active users of it;
they can switch their old code from iterating over the list to
simply locating the selected deck in deckDueTree(), as its counts should
summarize all the child decks.
2020-05-15 18:37:12 +10:00
Damien Elmes
e44b3bf93c
reuse stock basic type for default field/notetype/etc
...
Could add extra methods in the backend to allocate these in the
future, but as this is not a hot path, this should do for now.
2020-05-15 17:35:00 +10:00
Damien Elmes
2ac33500eb
fetch stock notetypes from backend
2020-05-15 17:08:24 +10:00
Damien Elmes
f650e5557f
add back card deletion count
...
cheaper to look up now that there's an index on notes.mid
2020-05-15 15:28:07 +10:00
Damien Elmes
7c5980a941
<= in modified_after_begin for unit tests
2020-05-15 14:24:59 +10:00
Damien Elmes
46c363d4aa
track changes in fields dialog as well
...
And avoid bumping schema until user actually saves, but warn at
start.
2020-05-15 13:59:44 +10:00
Damien Elmes
a2b7a30841
fetch/set remaining collection properties as required
2020-05-15 13:33:37 +10:00
Damien Elmes
31480be5e7
fix exporting bug
...
can't/shouldn't pop up confirmation message on export
2020-05-15 11:03:34 +10:00
Damien Elmes
782911471b
add "fill empty" checkbox
2020-05-14 20:58:45 +10:00
Damien Elmes
5167bb57be
start reworking card layout screen
...
- front/back/css shown in tabs
- front/back preview switchable; only one webview needs to be loaded
- dropdown to select cloze number in preview
- search box to search in front/back/css
2020-05-14 15:24:29 +10:00
Damien Elmes
f23eb350e4
drop availOrds(), and use backend for getting cloze numbers
2020-05-14 12:14:00 +10:00
Damien Elmes
9f676dbe0b
remove availOrds() check in importer
...
Like adding individual cards, we now support importing material even
if it wouldn't generate any cards, and the old availOrds check can't
handle negated conditionals.
2020-05-14 10:27:54 +10:00
Damien Elmes
c601dcef24
remove obsolete preview code
2020-05-14 09:22:53 +10:00
Damien Elmes
6680cdf1d3
update the card layout screen
...
- changes are now committed in bulk when closing the dialog,
and can be canceled
- it's not necessary to save the note to the database to preview it
- duplicate fields are now shown as duplicates in the top list
- redraw preview more quickly
- use + instead of _ when deduplicating names, as the latter is a
glob character
2020-05-13 17:24:49 +10:00
Damien Elmes
12b8fe6147
don't hide static template text when card is empty
2020-05-13 11:17:44 +10:00
Damien Elmes
826cbb0108
fetch template and note fields in backend during normal card render
...
Saves having to serialize the note fields and q/a templates, which
is particularly a win when rendering question/answer in the browse
screen.
Also some work towards being able to preview notes without having to
commit them to the database.
2020-05-13 10:38:49 +10:00
Damien Elmes
9317cee9ba
handle scheduling preferences in the backend
2020-05-12 21:13:34 +10:00
Damien Elmes
ea4f150455
fetch timing_today() params in backend
2020-05-12 21:13:34 +10:00
Damien Elmes
eee0d7e92f
switch server back into a bool and rely on config
2020-05-12 21:13:34 +10:00
Damien Elmes
2c7900989c
fix default rollover
2020-05-12 21:13:34 +10:00
Damien Elmes
70cc1699a6
rewrite DB check
...
- notes with wrong field count are now recovered instead of
being deleted
- notes with missing note types are now recovered
- notes with missing cards are now recovered
- recover_missing_deck() still needs implementing
- checks required
2020-05-12 21:13:34 +10:00
Damien Elmes
2413f286b1
bulk tag add/remove/update; canonify on note save
...
also remove the tag list updated hook - we'll need a better solution in
the future than having the library code call back into the GUI code
2020-05-12 21:13:34 +10:00
Damien Elmes
7bab99d873
support disabling unicode normalization in notes
2020-05-12 21:13:34 +10:00
Damien Elmes
a7a485d550
use backend for genCards() and updateFieldCache()
2020-05-12 21:13:34 +10:00
Damien Elmes
05ca797ee6
add pep8 name for findReplace
2020-05-12 21:13:34 +10:00
Damien Elmes
2317574f02
fix tag saving in notes
2020-05-12 21:13:34 +10:00
Damien Elmes
1852e32183
update find&replace in browser
...
sadly the UI still stutters on large selections - the calls
to get the selected rows from Qt are really slow.
2020-05-12 21:13:34 +10:00
Damien Elmes
8b557ec382
move find&replace to backend
2020-05-12 21:13:34 +10:00
Damien Elmes
25f122bf5c
update fields and models diags
...
- field changes are now applied when user closes dialog with save
button, in bulk
- models diag now fetches note type and saves it as required, instead
of holding on top a copy that can grow stale as changes are made in
subdialogs
- both dialogs now perform operations in the backend
- note.model() now fetches the note type on the fly, instead of
holding on to a copy that may become stale
2020-05-12 21:13:34 +10:00
Damien Elmes
2308b136fd
add an index on notes(mid) so we can avoid the tablescan
2020-05-12 21:13:34 +10:00
Damien Elmes
1233e9de12
release GIL on notetype save/delete
2020-05-12 21:13:34 +10:00
Damien Elmes
fd4406222a
remove invalidated part of test_review_limits
...
Previously if the sum of child counts was above the parent's limit,
the deck tree would show a parent count above the parent's limit, and
clicking on the parent would show a lower count. The new deck tree
code never shows a parent count above the parent's limit, so this
part of the test is no longer valid.
2020-05-12 21:13:33 +10:00
Damien Elmes
5ce59f6559
run black
2020-05-12 21:13:33 +10:00
Damien Elmes
68fdd651e5
remove dconf cache
2020-05-12 21:13:33 +10:00
Damien Elmes
238441f2d9
use the backend for the deck due tree
...
- approx 3x faster on a large test deck
- counts are no longer capped to 1000 in the tree
2020-05-12 21:13:33 +10:00
Damien Elmes
5fb5338d97
add missing decks in backend
...
- need to compare parents with unicode case folding
- duplicate check enforced by the DB
2020-05-12 21:13:33 +10:00
Damien Elmes
5d6581faf2
remove pybackend.py
2020-05-12 21:13:33 +10:00
Damien Elmes
a88bc1e836
speed up browser load by rendering deck tree in Rust and skipping counts
2020-05-12 21:13:33 +10:00
Damien Elmes
f592672fa9
add separate decks table, and start on moving deck handling to Rust
...
The Python tests are passing, but there are still a number of issues
to work through, and the table/protobuf schema is not yet finalized.
2020-05-12 21:13:33 +10:00
Damien Elmes
6e1d2990a0
remove unused _updateRequired and associated code
2020-05-12 21:13:33 +10:00
Damien Elmes
6e8860cafa
hook the empty cards code up to the GUI
2020-05-12 21:13:33 +10:00
Damien Elmes
f637ac957d
hook up new note and note type handling
...
- notetypes are fetched from the DB as needed, and cached in Python
- handle note type changes in the backend. Multiple operations can now
be performed in one go, but this is not currently exposed in the GUI.
- extra methods to grab sorted note type names quickly, and fetch by
name
- col.models.save() without a provided notetype is now a no-op
- note loading/saving handled in the backend
- notes with no valid cards can now be added
- templates can now be deleted even if they would previously
orphan notes
a number of fixmes have been left in notes.py and models.py
2020-05-12 21:13:33 +10:00
Damien Elmes
e0de3d6b8c
add an extra second to a unit test
2020-05-12 21:13:33 +10:00
Damien Elmes
d6646a6db5
expose stock notetypes
2020-05-12 21:13:33 +10:00
Damien Elmes
fcb8567185
drop legacy newBury option
2020-05-12 21:13:33 +10:00
Damien Elmes
540892639f
add stock note types in backend
2020-05-12 21:13:33 +10:00
Damien Elmes
74c97ad6d3
bump version
2020-05-11 19:28:17 +10:00
Damien Elmes
c02716ccd8
python formatting+lints
2020-05-08 17:30:27 +10:00
Damien Elmes
4a26e2ba77
bundle socks
...
https://anki.tenderapp.com/discussions/ankidesktop/39801-sync-error
2020-05-08 15:26:19 +10:00
Damien Elmes
a095a8bb07
fix due of preview cards being reset
...
https://anki.tenderapp.com/discussions/ankidesktop/41243-undo-function-causes-error-in-filtered-decks
2020-05-08 15:25:54 +10:00
Damien Elmes
54734ec88e
fix error undoing card in preview queue
...
https://anki.tenderapp.com/discussions/ankidesktop/41243-undo-function-causes-error-in-filtered-decks
2020-05-08 15:25:38 +10:00
Damien Elmes
e37774f0bd
fix v1 log appearing next to export
2020-05-05 16:15:49 +10:00
Damien Elmes
9bb4a02e0a
fix unnecessary spaces being added to notes with empty tags
2020-05-04 21:53:22 +10:00
Damien Elmes
b337dda8df
bump version
2020-05-02 10:22:00 +10:00
evandrocoan
b19b3a6706
Stop requiring ankirspy while running on development because
...
maturin develop hides the package from pip
https://github.com/PyO3/maturin/issues 304
2020-04-30 23:37:19 -03:00
evandrocoan
a48fa4ad87
Add missing aqt and anki modules dependency requirements
2020-04-30 17:30:22 -03:00
Damien Elmes
94d369db18
if conf points to an invalid configuration, fall back on default
2020-04-30 11:45:13 +10:00
Damien Elmes
e27d015ff9
expose clock hack via env var
...
closes #594
2020-04-30 09:33:02 +10:00
Damien Elmes
ff170bff31
fix tags with missing leading/trailing spaces in DB check
2020-04-30 08:54:17 +10:00
Damien Elmes
4e33775ed4
drop type answer requirement special case
...
While it makes no sense to have the typing box on the front without
another non-empty field, "the front of this card is empty" when
a typing box is on the template seems to be confusing some users, so
it is clearer to show them the box.
2020-04-29 21:29:16 +10:00
Damien Elmes
00cf4fc585
bump version
2020-04-28 08:57:56 +10:00
Damien Elmes
01fc958c0e
Merge pull request #587 from BlueGreenMagick/tags
...
remove unnecessary code
2020-04-27 19:25:42 +10:00
BlueGreenMagick
55eb0d1e68
remove unnecessary code
2020-04-27 10:05:38 +09:00
evandrocoan
26480fb13c
Fixed make clean rule not working on Windows
2020-04-26 03:02:02 -03:00
Damien Elmes
683f664d85
fix deleting deck configs
2020-04-20 13:23:05 +10:00
Damien Elmes
16be20e2fa
don't write log files when exporting
2020-04-15 21:45:32 +10:00
Damien Elmes
b55742509a
embed sort kind enum to avoid future namespace conflicts
2020-04-14 20:31:10 +10:00
Damien Elmes
7f2610568a
Revert "remove unused decks.count()"
...
This reverts commit c79b6835bf
.
c79b6835bf
2020-04-13 19:26:12 +10:00
Damien Elmes
351d8a309f
move autoplay() into card
2020-04-13 09:04:30 +10:00
Damien Elmes
10eb947402
fix replay audio again, and decouple the code from the reviewer
2020-04-13 08:59:36 +10:00
Damien Elmes
2f1523f82a
set db mod flag if mtime changed by backend
2020-04-11 15:41:21 +10:00
Damien Elmes
330848abe3
document ankidev and remove sync changes
...
https://github.com/ankitects/anki/pull/548
2020-04-11 14:36:05 +10:00
Damien Elmes
c79b6835bf
remove unused decks.count()
2020-04-10 10:25:31 +10:00
Damien Elmes
4c7210b430
(de)serialize decks in backend
2020-04-09 12:41:59 +10:00
Damien Elmes
ce2890ca15
fix errorsAfterMidnight
2020-04-08 10:05:19 +10:00
Damien Elmes
36ec7830a9
load/save note types in backend
...
This allows us to normalize bad data, and is the first step towards
splitting note types into separate tables.
2020-04-08 10:05:07 +10:00
Damien Elmes
6ecf2ffa2c
Merge pull request #543 from Arthur-Milchior/sort_according_to_path
...
Sort according to path
2020-04-07 14:44:53 +10:00
Damien Elmes
16ab351bf8
avoid unnecessary work in 'make build'
2020-04-07 10:59:14 +10:00
Arthur Milchior
64bb71e5bd
immediate_parent
2020-04-06 23:56:24 +02:00
Arthur Milchior
285e9280cf
immediate_parent_path
2020-04-06 23:55:17 +02:00
Arthur Milchior
bda2935de1
_basename to basename, since it's not private in use
2020-04-06 23:51:50 +02:00
Arthur Milchior
5315b717c0
_basename used where possible
2020-04-06 23:51:42 +02:00
Arthur Milchior
69a9425cd0
replace _path by path (because it's not private here)
2020-04-06 23:50:43 +02:00
Arthur Milchior
266c2022b5
uses _path where possible
2020-04-06 23:50:37 +02:00
Arthur Milchior
5d55c4cda2
Sort decks according to their paths
...
Currently it's sorted alphabetically. Because of this, "A::B" appears
between "A9" and "AA" in list of decks.
2020-04-06 22:49:25 +02:00
Arthur Milchior
77741977a1
make _path static
2020-04-06 22:45:30 +02:00
Damien Elmes
e247ac3c47
hide deprecation warning triggered by supermemo test
2020-04-06 20:24:17 +10:00
Damien Elmes
e005140909
hide warning when running tests
2020-04-06 20:24:05 +10:00
Damien Elmes
8efc09d4ef
emulate named args
2020-04-06 20:09:44 +10:00
Damien Elmes
dc62d5072c
use bytes for deck config proto
2020-04-06 15:39:47 +10:00
Damien Elmes
164bd29438
use bytes for config proto
2020-04-06 15:39:47 +10:00
Damien Elmes
991e6bdd4c
use a new file each time when testing graphs
2020-04-06 15:39:47 +10:00
Damien Elmes
676f4e74a8
store config in separate DB table
...
- mtime is tracked on each key individually, which will allow
merging of config changes when syncing in the future
- added col.(get|set|remove)_config()
- in order to support existing code that was mutating returned
values (eg col.conf["something"]["another"] = 5), the returned list/dict
will be automatically wrapped so that when the value is dropped, it
will save the mutated item back to the DB if it's changed. Code that
is fetching lists/dicts from the config like so:
col.conf["foo"]["bar"] = baz
col.setMod()
will continue to work in most case, but should be gradually updated to:
conf = col.get_config("foo")
conf["bar"] = baz
col.set_config("foo", conf)
2020-04-06 15:39:47 +10:00
Arthur Milchior
7365b93c1a
Remove useless recursion in DeckManager.rem
...
For any deck the children of it's children are its children. So
applying rem to children of children is useless and actually slightly
costly for deep subdecks
2020-04-05 11:33:23 +02:00
Damien Elmes
484377b809
downgrade when writing dummy collection
2020-04-04 18:43:26 +10:00
Damien Elmes
7375a0389a
add flag to skip downgrade on collection close
...
Disabled for now; when enabled it will allow faster collection
open and close in the normal case, while continuing to downgrade
when exporting or doing a full sync.
Also, when downgrading is disabled, the journal mode is no longer
changed back to delete.
2020-04-04 17:21:45 +10:00
Damien Elmes
ac4284b2de
update tag handling
...
- tag list stored in a separate DB table
- non-wildcard searches now do full unicode case folding
(eg tag:masse matches 'Maße')
- wildcard matches do simple unicode case folding
- some functions haven't been updated yet, so ascii folding will
continue to be used in some operations
2020-04-03 19:34:46 +10:00
Damien Elmes
333d0735ff
preserve mtime/usn when syncing deck config, and add snake_case names
2020-04-03 19:34:46 +10:00
Damien Elmes
d5f6d8b476
set col mod explicitly in decks.select()
2020-04-03 19:34:46 +10:00
Damien Elmes
ab6eeb5882
ensure pending deck/tag/note type changes flushed before searching
2020-04-03 19:34:46 +10:00
Damien Elmes
342bb64092
Merge pull request #535 from evandroforks/upload_wheels_to_pypi
...
Created the GitHub Actions step Upload to PyPi
2020-04-03 08:40:17 +10:00
evandrocoan
28bb56744d
Fixed double python version check for python_requires=">=3.7"
2020-04-02 12:31:12 -03:00
evandrocoan
069cc11a86
Created the GitHub Actions step Upload to PyPi to run only on
...
tagged releases of anki:
https://anki.tenderapp.com/discussions/ankidesktop/40025-anki-in-python-package-index
2020-04-02 02:57:34 -03:00
Damien Elmes
03f9be21e9
return the added card id instead of mutating the backend card object
2020-04-02 12:09:46 +10:00
Damien Elmes
431683aa5d
make sure None is returned in no-such-card case
2020-04-02 11:29:40 +10:00
Damien Elmes
c57801c168
tolerate string values in deck["conf"]
2020-04-01 19:36:40 +10:00
Damien Elmes
d342955830
remove defaultConf
2020-04-01 17:36:46 +10:00
Damien Elmes
c9da4bc1a6
allow aborting a media sync while http req in flight
...
The progress handling code needs a rethink, as we now have two separate
ways to flag that the media sync should abort. In the future, it may
make sense to switch to polling the backend for progress, instead of
passing a callback in.
2020-04-01 09:49:25 +10:00
Damien Elmes
fa2965d39a
add a temporary cache to bring deck list performance back
2020-03-30 20:27:53 +10:00
Damien Elmes
35c03af520
split deck config into separate SQL table
...
- on collection load, the schema is upgraded to 12
- on collection close, the changes are reversed so older clients
can continue to open the collection
- in the future, we could potentially skip the reversal except
when exporting/doing a full sync
- the same approach should work for decks, note types and tags in the
future too
- the deck list code needs updating to cache the deck confs for the
life of the call
2020-03-30 20:01:16 +10:00
Damien Elmes
004cc2b5f8
move deck conf handling to backend
2020-03-30 14:39:46 +10:00
Damien Elmes
5b26b20697
explicitly save deck conf after mutating it
2020-03-30 12:27:52 +10:00
Damien Elmes
bf83715ee0
initial work on undo support
2020-03-29 17:52:16 +10:00
Damien Elmes
158ce7bc01
add an extra second so slow CI server doesn't fail
2020-03-27 15:52:35 +10:00
Damien Elmes
f6219b59ac
Merge pull request #528 from evandroforks/create_actions_for_windows_macos
...
Create actions for Windows and Mac OS
2020-03-27 15:26:22 +10:00
Damien Elmes
84b84ae31c
use add_card()
2020-03-27 15:11:07 +10:00
evandrocoan
b07454ca0c
Merge remote-tracking branch 'danielelmes/master' into create_actions_for_windows_macos
2020-03-26 19:31:01 -03:00
Damien Elmes
7f16f436c3
handle mtime/usn bump in backend, and tweak integer sizes
2020-03-26 20:55:04 +10:00
Damien Elmes
13c7c82ae3
fix two cases where a float was being written into due
2020-03-26 19:05:18 +10:00
Damien Elmes
47504245dc
update_card()
2020-03-26 18:54:20 +10:00
Damien Elmes
1acfe7d3cc
tweak code for mypy
2020-03-26 17:47:53 +10:00
Damien Elmes
7ddaf93f7a
use backend to get card
2020-03-26 17:47:43 +10:00
Damien Elmes
8c80f96314
high due numbers shouldn't force a full sync
2020-03-26 09:09:11 +10:00
evandrocoan
721453f923
Merge remote-tracking branch 'danielelmes/master' into create_actions_for_windows_macos
...
# Conflicts:
# .github/scripts/trailing-newlines.sh
# .github/workflows/checks.yml
# Makefile
# pylib/Makefile
# qt/Makefile
# qt/tools/typecheck-setup.sh
# rspy/Makefile
2020-03-24 22:49:49 -03:00
Damien Elmes
ea3c6cad42
don't error when -l passes in language without _
2020-03-25 08:53:31 +10:00
Damien Elmes
e29d380d4c
fix sync getting stuck in a loop when changes is a multiple of 250
2020-03-24 19:30:35 +10:00
Damien Elmes
cc34157e4b
Merge pull request #510 from evandroforks/fix_tests_on_windows
...
Fix tests on windows
2020-03-24 15:33:02 +10:00