Damien Elmes
bb92dde2d7
warn add-ons importing json from anki.utils; use stdout not stderr
2021-01-31 21:05:46 +10:00
Damien Elmes
7fda601aef
add some typehints, and remove some unused code
2021-01-31 20:56:21 +10:00
Damien Elmes
5d810dd799
make backend instance on col private
2021-01-31 18:56:16 +10:00
Damien Elmes
6c483bb577
add public wrappers for remaining backend functions
2021-01-31 18:56:16 +10:00
Damien Elmes
c7f92f0737
fix _backend files not getting format checked
2021-01-31 18:56:16 +10:00
Damien Elmes
ea31e8ca3e
move the remaining exports from _backend
2021-01-31 18:56:16 +10:00
Damien Elmes
260a270eb0
embed BuiltinSortKind
2021-01-31 18:56:16 +10:00
Damien Elmes
5974163343
embed kind enum in StockNoteType and remove prefix
2021-01-31 18:56:16 +10:00
Damien Elmes
248e067da7
add back basic rsbackend.py for compatibility
2021-01-31 18:55:45 +10:00
Damien Elmes
9815d96461
remove template_legacy.py
2021-01-31 18:55:45 +10:00
Damien Elmes
67cb147493
move rsbridge into _backend
2021-01-31 18:55:45 +10:00
Damien Elmes
9d853bbb03
start work on more clearly defining backend/protobuf boundaries
...
- anki._backend stores the protobuf files and rsbackend.py code
- pylib modules import protobuf messages directly from the
_pb2 files, and explicitly export any will be returned or consumed
by public pylib functions, so that calling code can import from pylib
- the "rsbackend" no longer imports and re-exports protobuf messages
- pylib can just consume them directly.
- move errors to errors.py
Still todo:
- rsbridge
- finishing the work on rsbackend, and check what we need to add
back to the original file location to avoid breaking add-ons
2021-01-31 18:55:45 +10:00
RumovZ
cd9767be80
Remove unused BackendNoteTypeID
2021-01-31 08:57:10 +01:00
Damien Elmes
cb805cf355
Merge branch 'more-backend-search' into main
2021-01-31 14:21:51 +10:00
Damien Elmes
8410330f94
move drag/drop deck logic to backend
2021-01-31 13:46:31 +10:00
RumovZ
4745b55d27
Revert addition of pb.NoteIDs
2021-01-30 12:59:18 +01:00
RumovZ
80a4a85510
Remove redundant docstring
2021-01-30 10:37:46 +01:00
Damien Elmes
cb6b88da0f
simplify nid/nids searches, and ditch helper function
...
- IdList could be re-used for a cids: search in the future if required.
- Embedding the message means it's easy to access from Python as
an attribute of SearchTerm.
2021-01-30 11:37:00 +10:00
Damien Elmes
1adc9952f4
simplify Dupe message and ditch helper function
...
Calling code doesn't need to know about the existence of such helpers;
it can just rely on code completion to discover the required arguments.
2021-01-30 11:10:26 +10:00
Damien Elmes
5e6dd54c8e
export SearchTerm from collection.py, and avoid exporting embedded items
2021-01-30 11:01:11 +10:00
Damien Elmes
73b897c754
rename FilterToSearchIn in backend to match frontend
2021-01-30 10:54:21 +10:00
RumovZ
c299e271e8
Refactor search_string() and FilterToSearchIn
...
See #955 .
2021-01-29 18:27:33 +01:00
Damien Elmes
5ff7944a26
add getter/setter for boolean config values
2021-01-29 21:03:19 +10:00
RumovZ
349bd9d681
Use proper docstrings
2021-01-29 09:40:21 +01:00
RumovZ
1fb6024454
Rename filters added_in etc. to added_in_days
2021-01-29 09:38:13 +01:00
Damien Elmes
7693879e3c
remove unused set_all_config; expose .all_config().
2021-01-29 16:30:42 +10:00
RumovZ
423d7e5098
Use backend filter for findDupes and handle excep.
2021-01-28 19:49:16 +01:00
RumovZ
d33442f901
Add backend filter for field name
2021-01-28 19:48:01 +01:00
RumovZ
407358ab68
Use backend nid filter in browser
2021-01-28 16:21:56 +01:00
RumovZ
51e1e82a9a
Add helper functions for search strings in col
2021-01-28 11:13:57 +01:00
Maksim Abramchuk
0eb653559a
Remove unused variable
2021-01-26 21:37:16 +00:00
Damien Elmes
31a3add848
fix finished screen not showing when learning cards due later
2021-01-25 21:12:57 +10:00
Damien Elmes
2a875ffc55
Merge pull request #934 from hgiesel/graphprefs
...
Add GraphsPreferences API to graphs for setting persistent preferences
2021-01-23 21:24:41 +10:00
Damien Elmes
37ca8afaf6
minor wording tweak: GraphsPreferences -> GraphPreferences
2021-01-23 20:47:45 +10:00
Damien Elmes
10757d563d
refresh new/rev counts when fillNew/fillRev() fails
...
This was the behaviour before, but got lost when ._reset_counts() was
added. Also added the check back to schedv2:fillRev(), which also
appears to have gotten lost in the move to ._reset_counts()
Just a stop-gap fix until this code can get a proper rewrite.
2021-01-23 14:02:05 +10:00
Damien Elmes
ce2315591f
remove "invalid current deck"
...
This should resolve itself when a user clicks on a deck.
2021-01-23 13:04:58 +10:00
Henrik Giesel
bf130d1da0
Change the function name in genbackend.py
2021-01-22 20:05:28 +01:00
Henrik Giesel
665a13e378
Add GraphsPreferences endpoint to backend
2021-01-22 13:13:48 +01:00
abdo
bf0086d565
Use new backend filters in rename_tag()
2021-01-16 18:49:48 +03:00
abdo
e018ea94b6
Merge branch 'master' of https://github.com/ankitects/anki into tagtree
2021-01-15 01:12:01 +03:00
abdo
2ff584c44d
Pass escaped name to bulk_update in rename_tag
2021-01-14 18:38:46 +03:00
abdo
9c1d7c522a
Refactor code for clearing unused tags and saving collapse state
2021-01-14 07:04:14 +03:00
RumovZ
7b9cc017c4
Use backend to set dupe filter
2021-01-14 10:42:37 +10:00
Damien Elmes
633034b24d
add local sync server frontend
2021-01-13 11:42:00 +10:00
abdo
72e8f9d640
Merge branch 'master' of https://github.com/ankitects/anki into tagtree
2021-01-12 23:31:58 +03:00
Damien Elmes
fbd91b22f5
tidy up UTC offset handling/timing calculations
...
- use the TimestampSecs newtype instead of raw i64s
- use FixedOffset instead of a minutes_west offset
- check localOffset each time the timing is calculated, and set it
if it's stale - even for v1.
- check for and fix missing rollover when calculating timing
- stop explicitly passing localOffset in the sync/start call
2021-01-12 21:32:56 +10:00
Damien Elmes
9bc8434538
remove temporary sync/dbcheck logging
2021-01-12 18:47:08 +10:00
Damien Elmes
1425379d41
drop basicCheck()
...
It can considerably slow down syncing on large collections
2021-01-12 18:47:08 +10:00
Damien Elmes
401d5dd9cc
Merge pull request #917 from hgiesel/querynozero3
...
Coerce added/edited:0 to 1, Constrain rated:n to 1-365
2021-01-11 16:24:12 +10:00
Henrik Giesel
250b89be60
Adjust pyblib test_find
2021-01-10 16:25:52 +01:00
RumovZ
942632d579
Also add FilterToSearch to want_release_gil()
2021-01-10 11:31:00 +01:00
RumovZ
b763fc5b2a
Use explicit wrapper functions to get filters
2021-01-09 16:48:47 +01:00
abdo
f7f509c70d
Move tag collapse method to the backend
2021-01-09 17:10:16 +03:00
abdo
b33267f754
Do not check for missing tag parents at registration time
2021-01-09 17:10:16 +03:00
abdo
b276ce3dd5
Hierarchical tags
2021-01-09 17:10:13 +03:00
RumovZ
b99d9cda74
Prettify frontend filter code
2021-01-09 12:34:46 +01:00
RumovZ
fda2bfdb4e
Use backend filters instead of literal searches
2021-01-09 10:51:15 +01:00
RumovZ
efd554ea29
Provide ConcatSeparator through rsbackend.py
2021-01-07 17:48:30 +01:00
RumovZ
c2e2a86ec9
Add writer functions to want_release_gil()
2021-01-07 13:09:00 +01:00
Damien Elmes
b30b7c3073
fix qt/ pylints
2021-01-07 16:21:50 +10:00
Damien Elmes
f9e939aaff
Make orjson optional again
...
While 32 bit platform support is probably not going to come back,
this allows Anki to run on other architectures orjson doesn't support.
2021-01-07 09:44:40 +10:00
Damien Elmes
dad4c76089
no need to log card resets when exporting
2021-01-05 11:11:37 +10:00
Damien Elmes
f3fa9daae2
do tag rename and tag clearing in background; move logic to tags.py
...
Because the logic is in rename_tag() now, it means we create a
checkpoint even if the tag is orphaned. This is because currently
checkpointing is a GUI responsibility. In the future we need to introduce
multi-level undo, and should move responsibility for managing it
to the backend.
2021-01-04 14:14:39 +10:00
Damien Elmes
db3308e788
add linux_arm64 platform
2020-12-29 18:40:39 +10:00
Damien Elmes
a1498e9e81
Merge pull request #866 from guillem-palau-salva/master
...
Update consts.py
2020-12-29 10:15:42 +10:00
Damien Elmes
cb93a0909c
Merge pull request #872 from RumovZ/fix-deck-check
...
Fix deck check and thus blue sync arrow bug
2020-12-29 10:11:59 +10:00
RumovZ
9f18e12cb8
Fix deck check and thus blue snyc arrow bug
...
Cast col.decks.selected() to int so the return type fits the annotation.
Thus, fix the comparison in col.decks.select() which was leading to
a superfluous db modification and in turn to a false indication of a
necessary sync right after another one in certain cases.
2020-12-29 00:29:36 +01:00
Guillem Palau-Salvà
870df16b01
Update consts.py
...
I notices that type 4 is added in the revlog when rescheduling. Reviews are logged as 0 time and type 4.
2020-12-27 01:02:32 +01:00
Damien Elmes
c4382e38a1
update to stable pyo3 0.13 release
2020-12-23 10:08:38 +10:00
Damien Elmes
212b251334
tag the wheels as manual so test ... doesn't build them
2020-12-21 19:28:47 +10:00
Damien Elmes
73679b03e7
possible fix for sync button colour blue after sync
...
If the client's clock is behind AnkiWeb's, even by a few seconds,
we can end up with a situation where last_begin_at is updated after
the sync to a value less than the mtime we received from AnkiWeb,
causing the collection to be saved, which bumps the modtime.
Work around this by recording mtime at begin() time, and seeing if it
has changed in either direction.
Thanks to Rumo, who did the hard work looking into it:
https://forums.ankiweb.net/t/why-is-my-sync-button-blue/2078/21
2020-12-21 19:27:26 +10:00
Damien Elmes
e99a7c0f90
tweak naming and move method into col.decks
2020-12-20 10:26:16 +10:00
k12ish
cc0572a385
Added type hints, renamed kwarg
2020-12-19 18:12:58 +00:00
k12ish
ef1f58c8b6
Added method
2020-12-19 17:59:07 +00:00
Damien Elmes
af92bb5e93
exhaustiveness checks on literals are now possible with the move to py38
2020-12-18 16:50:55 +10:00
Damien Elmes
ecb7c1482f
use QtMultimedia for recording instead of PyAudio
...
The unmute-on-first-duration-change approach is to try to prevent
clicks/pops that can happen at the start of recordings. If it doesn't
solve the problem, we may need to drop down to the lower-level
QAudioInput().
Closes https://github.com/ankitects/help-wanted/issues/23
May fix https://forums.ankiweb.net/t/anki-crashes-periodically-after-clicking-record-audio-button/5824 ,
which I suspect was caused by processEvents()
2020-12-16 19:33:25 +10:00
Damien Elmes
a61f3bbc48
fix some warnings on startup
2020-12-16 15:38:24 +10:00
Damien Elmes
c8f989239b
remove conditional rsbackend_gen import
...
It causes PyCharm to think methods are missing on col.backend, and
should not be needed with the move to Bazel.
2020-12-16 13:30:54 +10:00
Damien Elmes
937247ab06
add type stub for _rsbridge to make PyCharm happy
2020-12-16 13:13:42 +10:00
Damien Elmes
53276b3044
symlink generated .py/.pyi into tree to fix Python code completion
2020-12-16 11:36:42 +10:00
Damien Elmes
1b98e7e48f
add ability to specify an individual Python test
2020-12-16 10:40:29 +10:00
Damien Elmes
1da327c725
minor doc updates
2020-12-11 22:37:12 +10:00
Damien Elmes
13d66b22f4
remove unwanted leading '/' in wheel records
2020-12-10 23:02:18 +10:00
Damien Elmes
0cbb60169c
simplify wheel building
2020-12-10 20:27:21 +10:00
Damien Elmes
85b7e1c623
drop unused i686 references
...
https://forums.ankiweb.net/t/changing-ankis-build-system-to-bazel/4737/9
2020-12-09 15:45:01 +10:00
Damien Elmes
4c3577b12e
update Rust deps incl. Pyo3
...
This includes the refcount bug fix from pyo3 0.12.4
2020-12-01 16:48:45 +10:00
Damien Elmes
be6bd1322d
expose Gaelic in language selection
2020-11-30 14:44:29 +10:00
Damien Elmes
c9b3ed1eae
switch to workspace for Rust code
2020-11-24 18:41:03 +10:00
Damien Elmes
d85d0b88a1
Merge branch 'master' into init-lang
2020-11-22 16:10:49 +10:00
Damien Elmes
0b848eae56
update remaining python format strings to Fluent
2020-11-22 14:57:53 +10:00
abdo
7d7745fbb5
Set up default language before loading profile
...
We can make more strings translatable this way.
2020-11-21 05:29:23 +03:00
Damien Elmes
e23d40e850
Merge pull request #823 from RumovZ/rework-search-parser
...
Rework search parser
2020-11-20 16:22:12 +10:00
abdo
e3b4802f47
Fix description of exporters
...
Description broke yet again with the full migration to Fluent
2020-11-19 23:52:46 +03:00
RumovZ
cb2c19aced
Add Python test for tag whitespace
...
Assert tag matches do not occur across different tags.
2020-11-19 09:28:19 +01:00
RumovZ
c185fb966b
Merge branch 'master' into rework-search-parser
...
Conflicts:
rslib/src/search/sqlwriter.rs
2020-11-18 09:04:04 +01:00
Damien Elmes
a86ce5a1d4
remove print statement from unit tests
2020-11-18 13:56:44 +10:00
Damien Elmes
1c5f94d46f
strip out unused gettext refs
2020-11-18 13:22:51 +10:00
Damien Elmes
ffa26fe4bc
fix remaining _() references; remove unused imports
2020-11-18 12:43:46 +10:00
Damien Elmes
177d98489a
update pylib ngettext references
2020-11-18 09:12:25 +10:00
Damien Elmes
e9cd956acd
drop i18n references in old stats
2020-11-18 09:12:03 +10:00
Damien Elmes
2453e5c488
update temporary val="%s" references to standard ftl
2020-11-17 22:00:44 +10:00
Damien Elmes
9d1b6231d7
merge pylib references
2020-11-17 19:23:06 +10:00
Damien Elmes
44489a480f
map gettext strings to keys/modules for ftl conversion
2020-11-17 14:11:09 +10:00
RumovZ
d1ee507b3a
Update frontend test to new escape handling
2020-11-15 09:39:10 +01:00
Damien Elmes
8e93b0ee38
use full path in backend_pb2 import
2020-11-13 14:21:21 +10:00
Damien Elmes
5bb3d7c114
format_fix -> format; rename svelte-check for consistency
2020-11-12 20:19:32 +10:00
Damien Elmes
2897707263
update Python deps
2020-11-12 20:03:41 +10:00
Damien Elmes
b0aedd6c76
orjson was missing from dep list; drop 32 bit compat
2020-11-12 20:03:41 +10:00
Damien Elmes
8ca023048a
add coding specifier to anki/__init__.py
...
older gettext versions will complain otherwise (was breaking Windows CI)
2020-11-11 21:51:11 +10:00
Damien Elmes
0fcccae6e8
Merge pull request #817 from cecini/formatcheck
...
Update mypy and black format check to python version 3.8
2020-11-11 21:36:32 +10:00
Damien Elmes
8d4df820cc
update i18n scripts
...
- export updated .po files for consumption
- add a script to pull and push translations
2020-11-11 21:08:06 +10:00
cecini
62da8e6a40
Update mypy and black format check to python version 3.8
2020-11-11 09:24:28 +00:00
Damien Elmes
fd5815653f
fix error exporting v2 collection when translations don't match
...
https://forums.ankiweb.net/t/utf8-error-in-importing-deck/4430/13
2020-11-11 15:42:08 +10:00
Damien Elmes
6e3f971ae1
handle packaged pylib buildinfo.txt; drop aqt buildinfo
2020-11-11 10:33:49 +10:00
Damien Elmes
e99c0dbe15
Merge pull request #793 from nwwt/object-audio-tags-support
...
Audio & object tag support
2020-11-11 10:33:31 +10:00
Andreas Reis
e68a40f13e
cleanup / renames
...
・ soundRegexps → sound_regexps
・ htmlRegexps → html_media_regexps
・ HTML_TAGS → HTML_MEDIA_TAGS
・ escapeImages → escape_media_filenames + alias
・ strip_html_preserving_image_filenames → strip_html_preserving_media_filenames
2020-11-10 14:53:04 +01:00
ianki
c2901e4859
Add hooks for filtering media.
2020-11-09 02:12:23 -08:00
Damien Elmes
29ae7480f2
cleanups
2020-11-05 11:21:13 +10:00
Damien Elmes
95317a4f17
fix backend_pb2 race
2020-11-05 11:02:40 +10:00
Damien Elmes
927a44e36e
unused import
2020-11-04 21:04:42 +10:00
Damien Elmes
0d354da93a
move aqt_data into source folder; implement wheel building
2020-11-04 12:14:03 +10:00
Damien Elmes
9fe53ff549
switch to the stable Python ABI
...
Should allow the library to be imported in both Python 3.8+3.9.
2020-11-03 20:29:07 +10:00
Alan Du
562ea403b3
Update to PyO3 0.12
...
+ cargo raze by Damien
2020-11-02 18:38:34 +10:00
Damien Elmes
dc3bd07919
update cargo deps; add script to copy them from rslib/
2020-11-02 18:17:26 +10:00
Damien Elmes
e0817c004d
move backend.proto into rslib/
2020-11-02 16:28:31 +10:00
Damien Elmes
45ed97c56c
rspy -> pylib/rsbridge
2020-11-02 15:21:12 +10:00
Damien Elmes
b17d537a9e
remove old makefiles
2020-11-01 14:41:01 +10:00
Damien Elmes
aea0a6fcc6
initial Bazel conversion
...
Running and testing should be working on the three platforms, but
there's still a fair bit that needs to be done:
- Wheel building + testing in a venv still needs to be implemented.
- Python requirements still need to be compiled with piptool and pinned;
need to compile on all platforms then merge
- Cargo deps in cargo/ and rslib/ need to be cleaned up, and ideally
unified into one place
- Currently using rustls to work around openssl compilation issues
on Linux, but this will break corporate proxies with custom SSL
authorities; need to conditionally use openssl or use
https://github.com/seanmonstar/reqwest/pull/1058
- Makefiles and docs still need cleaning up
- It may make sense to reparent ts/* to the top level, as we don't
nest the other modules under a specific language.
- rspy and pylib must always be updated in lock-step, so merging
rspy into pylib as a private module would simplify things.
- Merging desktop-ftl and mobile-ftl into the core ftl would make
managing and updating translations easier.
- Obsolete scripts need removing.
- And probably more.
2020-11-01 14:26:58 +10:00
Andreas Reis
6e9aaad11e
Add audio & object tags to media check
...
Makes the media check recognize files in <audio> and <object> tags as used.
They've been observed/supported by the WebView (checked: Anki, AnkiDroid) since just about forever already and are extremely useful if one knows a thing about web dev.
2020-10-25 13:09:57 +01:00
Arthur Milchior
d6dd1849cf
NF: uses consts and update comment according to code
2020-10-15 08:22:23 +02:00
Damien Elmes
a4a461c17b
Merge pull request #782 from johan456789/patch-1
...
fix outdated help site
2020-10-12 12:15:46 +10:00
Damien Elmes
727ddd74b6
fixes for latest mypy
2020-10-10 19:02:59 +10:00
johan456789
e8e5314a97
fix outdated help site
2020-10-07 19:38:49 +08:00
Damien Elmes
53a984ba15
bump version
2020-10-02 10:22:21 +10:00
Arthur Milchior
7850d2d662
NF: uses consts in col
2020-09-27 09:01:47 +02:00
Damien Elmes
c125893eba
bump version
2020-09-24 10:52:24 +10:00
Arthur Milchior
51ba2b5870
NF: remove _changedGuids
...
Nothing is ever added to the map.
That was a bug detected by lint in ankidroid
2020-09-21 06:02:10 +02:00
Damien Elmes
45724a0474
small learning steps were being stored as a float
...
https://forums.ankiweb.net/t/bug-with-fractional-learning-intervals/3524/5
2020-09-20 10:29:39 +10:00
Damien Elmes
ade7f438ce
rebuild_filtered_deck() and new_filtered()
2020-09-03 18:02:47 +10:00
Damien Elmes
f87fa762be
empty_filtered_deck()
2020-09-03 17:43:07 +10:00
Damien Elmes
56ceb6ba76
set_deck()
2020-09-03 17:42:46 +10:00
Damien Elmes
b65174a026
move card sorting and resetting to backend
2020-09-03 15:54:15 +10:00
Damien Elmes
ce49ca9401
log manual reschedule, but ignore the log entry in the stats
2020-09-02 17:56:23 +10:00
Damien Elmes
39212a38aa
move reschedCards() to backend
2020-09-02 17:56:23 +10:00
Damien Elmes
8f9037cf0f
move filtered deck empty/fill to backend
...
emptying of individual card ids still to be done
2020-09-02 17:56:23 +10:00
Damien Elmes
8d2867aa2d
fix night mode on old graphs
2020-09-02 17:56:12 +10:00
Damien Elmes
a834df60ce
rename some card+note fields in backend
2020-09-01 10:24:38 +10:00
Damien Elmes
d3dede057a
move bury/suspend into backend
2020-09-01 10:24:38 +10:00
Damien Elmes
ac265fe75a
formatting fixes for latest black
2020-09-01 10:24:38 +10:00
Damien Elmes
ccfa989c62
move unbury/unsuspend routines into backend
2020-09-01 10:24:38 +10:00