Commit graph

896 commits

Author SHA1 Message Date
Michal Pokorný (Rai)
9a2348d902 Fix import order 2019-12-27 17:21:42 +01:00
Michal Pokorný (Rai)
5ee08b1b36 Type annotations in notes.py 2019-12-27 17:14:46 +01:00
Michal Pokorný (Rai)
3357ecfed3 Add type annotation for model 2019-12-27 17:14:46 +01:00
Damien Elmes
7abd58382f hold off on general release of v2 scheduler for now
The switch to the new timezone code may shift some users back or forth
a day, so it'd be better to have this in place prior to making the
new scheduler the default.
2019-12-27 21:53:20 +10:00
Damien Elmes
683edeeb07 send tz offset at start of sync; allow passing in offset at collection creation 2019-12-27 21:53:20 +10:00
Damien Elmes
92673c99d8 rework the new scheduler's rollover/day counting code
The previous implementation interpreted the creation date as a local
time, and applied the rollover to that. If the initial creation date
was around midnight local time, even a one hour change due to daylight
savings could result in Anki skipping or doubling up on a day. To
address this, the rollover is now applied to the current time instead
of the creation date.

The new code needs the current time passed into it. This makes it
easier to unit test, and for AnkiWeb to be able to use the user's local
timezone.

The new timezone code is currently disabled, as this code needs to be
ported to all clients before it can be activated.
2019-12-27 21:53:20 +10:00
Michal Pokorný (Rai)
a0d3c242af Rename constants 2019-12-26 00:38:54 +01:00
Rai
020fa0b2f8
Merge branch 'master' into ref 2019-12-25 23:10:28 +01:00
Damien Elmes
49a2bd52f0
Merge pull request #387 from agentydragon/classmethods
Use @classmethod on methods that do not depends on instance state
2019-12-26 07:52:51 +10:00
Damien Elmes
df76e8a8ee
Merge pull request #388 from agentydragon/use-setdefault
Use dict.setdefault
2019-12-26 07:43:01 +10:00
Michal Pokorný (Rai)
60438a0219 Use dict.setdefault 2019-12-25 15:34:30 +01:00
Michal Pokorný (Rai)
ebd07a064e Use @classmethod on methods that do not depends on instance state 2019-12-25 15:12:48 +01:00
Michal Pokorný (Rai)
567b3670b7 Use named groups instead of numbered groups to refer to clozeReg 2019-12-25 15:06:00 +01:00
Damien Elmes
518cc44267 add a few type hints 2019-12-25 09:19:57 +10:00
Damien Elmes
3e1b474dca bridge->backend 2019-12-25 08:59:33 +10:00
Damien Elmes
6a8ea9e65b if db lock fails, explicitly close database
on Windows at least, the database file otherwise remains locked after
an exception is raised on a read only file
2019-12-24 19:57:54 +10:00
Damien Elmes
280b010493 generate type stubs for Protobuf; disable pylint on rsbridge 2019-12-24 19:57:54 +10:00
Damien Elmes
b54c127372 switch to Google's (C++) Protobuf implementation
Brings the 100 field test down from 3 secs to 0.15 secs.

"betterproto" indeed!
2019-12-24 19:57:54 +10:00
Damien Elmes
3ce4d5fd3d compute template requirements in Rust
on a 100 field template, what took ~75 seconds now takes ~3 seconds.
2019-12-24 19:57:54 +10:00
Damien Elmes
252a0cb54f use protobuf for python/rust bridge
If we go ahead with betterproto on the Python side, it will mean
bumping the minimum Python dependency to 3.7.
2019-12-24 19:57:54 +10:00
Damien Elmes
f24a396c52 format 2019-12-24 19:57:54 +10:00
Damien Elmes
7733e03360 make it possible to implement functionality in Rust 2019-12-24 19:57:54 +10:00
Damien Elmes
4863431c93 add type hint to models 2019-12-24 14:06:31 +10:00
Damien Elmes
eb03b8b727 another pylint fix 2019-12-23 12:06:26 +10:00
Damien Elmes
f8419cf957 fix pylint 2019-12-23 11:56:03 +10:00
Damien Elmes
a0ca95a414 fix some type errors/lints 2019-12-23 11:32:19 +10:00
Damien Elmes
17af26dcb5 apply black to all files 2019-12-23 10:34:10 +10:00
Damien Elmes
9ebc15c748 add black, update for new isort
people updating from a previous build, make sure you run
pip install --reinstall requirements.check
2019-12-23 10:31:47 +10:00
Damien Elmes
b51cf71d35
Merge pull request #383 from agentydragon/all-ref
Move repeated calls to _renderQA into local function
2019-12-23 09:36:39 +10:00
Damien Elmes
29179771b3
Merge pull request #382 from agentydragon/whitespace
Whitespace reformat to force 80-character line limit
2019-12-23 09:35:56 +10:00
Damien Elmes
008bb6f0c3
Merge pull request #381 from agentydragon/move-data-var
Merge 'data' variable into its only usage site
2019-12-23 09:35:34 +10:00
Damien Elmes
45fd039bbf
Merge pull request #375 from agentydragon/stuff2
Use named tuple to represent QA data
2019-12-23 09:35:09 +10:00
Michal Pokorný (Rai)
13afb0dbff Move repeated calls to _renderQA into local function 2019-12-23 00:32:09 +01:00
Michal Pokorný (Rai)
1e9833ab2a Whitespace reformat to force 80-character line limit 2019-12-23 00:30:59 +01:00
Michal Pokorný (Rai)
8ceccbd164 Merge 'data' variable into its only usage site 2019-12-23 00:29:23 +01:00
Michal Pokorný (Rai)
c72051ba0d Move QA data tuple into separate type alias 2019-12-23 00:27:14 +01:00
Damien Elmes
30f5183b03
Merge pull request #378 from agentydragon/types-utils
Add some type declarations in utils.py
2019-12-23 09:24:20 +10:00
Damien Elmes
7d8969a711
Merge pull request #374 from agentydragon/mathjax-test
Fix bug in _removeFormattingFromMathjax
2019-12-23 07:43:16 +10:00
Michal Pokorný (Rai)
36bdb4ebe0 Add some type declarations in tags.py 2019-12-22 14:50:42 +01:00
Michal Pokorný (Rai)
202a31dc5a Add some type declarations in utils.py 2019-12-22 14:47:07 +01:00
Michal Pokorný (Rai)
5ff0547110 Don't repeat Python regex docs 2019-12-22 12:43:15 +01:00
Damien Elmes
af4d4af55d fix race condition in tmp folder handling 2019-12-22 19:03:20 +10:00
Michal Pokorný (Rai)
2d2f21bfe3 Fix bug in _removeFormattingFromMathjax 2019-12-22 05:47:45 +01:00
Michal Pokorný (Rai)
331781cf45 Document newly found bug in _removeFormattingFromMathjax
Also adds some comments I wrote to help me understand what's going
on in the code.

I hope to fix this bug myself, but I think it might be beyond what
you can do with Python regexes and might require writing a proper
parser.

So, as step 1, I'm adding in a couple comments explaining that the
bug exists and how to reproduce it.
2019-12-22 05:22:18 +01:00
Damien Elmes
7399e0bd2b Model->NoteType 2019-12-22 08:58:56 +10:00
Damien Elmes
079a00653e
Merge pull request #369 from agentydragon/typecheck-models
Add types for models, templates and field dicts
2019-12-22 08:19:40 +10:00
Michal Pokorný (Rai)
67a39c58cb Add types for models, templates and field dicts 2019-12-21 12:02:16 +01:00
Damien Elmes
bfcc837939 avoid noreturn for now, as it's not supported on python <3.6.5 2019-12-21 16:54:40 +10:00
Damien Elmes
f0f9278414
Merge pull request #363 from ig3/bug/new-perday
Use _deckNewLimitSingle in _groupChildrenMain
2019-12-21 07:41:18 +10:00
Damien Elmes
ed0b3d3374 add an example of how circular imports can be handled
The type name needs to be quoted so it is evaluated after the module
has been initialized.

In the future when we drop support for python 3.6, and mypy is updated,
we will be able to remove the quotes and use the following at
the top of the file instead:

from __future__ import annotations
2019-12-21 07:29:45 +10:00