Commit graph

1238 commits

Author SHA1 Message Date
Damien Elmes
8f3df55da2 flatten->render; pass field content in
This is paving the way to move the standard filters into Rust.

Non-empty fields are now determined in Rust, using a single regex
instead of the overkill stripHTMLMedia(). The old implementation
has been moved into the Pystache code for now.
2020-01-10 14:59:29 +10:00
Damien Elmes
31ebf0473f rework new timezone code
We now store the UTC offset that was in effect at creation time,
and use that to determine the starting date.
2020-01-09 16:58:27 +10:00
Damien Elmes
3a7fc28aa3 fix type:cloze, and remove misleading comments 2020-01-09 08:05:49 +10:00
Damien Elmes
0c6dd8cb14 fix CI failing
unsure why this doesn't fail locally, using the same mypy version
2020-01-08 20:49:40 +10:00
Damien Elmes
ed7558b817 fix type answer filter 2020-01-08 20:29:15 +10:00
Damien Elmes
520275bea3 handle conditional replacement in Rust
This extends the existing Rust code to handle conditional
replacement. The replacement of field names and filters to text
remains in Python, so that add-ons can still define their own
field modifiers.

The code is currently running the old Pystache rendering and the
new implementation in parallel, and will print a message to the
console if they don't match. If you notice any problems, please
let me know.
2020-01-08 20:28:04 +10:00
Damien Elmes
29acb2dd32 move filter reversal into pystache 2020-01-08 18:59:05 +10:00
Damien Elmes
b1b81a3726 use hooks for the built in filters as well
To support cloze deletions, we add back support for 'extra', but
using a simpler one character split instead of parens.
2020-01-08 18:08:24 +10:00
Damien Elmes
4fe3d686a6 move the rest of Anki's code out of pystache
In the process of factoring out the field filtering, the "extra"
and "fullname" args are just passed in as a blank string now.
Extra was functionality that allowed a field modifier to be defined
as "filtername(arg1,arg2):field", and fullname was the name of the
field including any provided field modifiers. From grepping through
the add-ons on AnkiWeb, neither appears to have been used.
2020-01-08 17:15:46 +10:00
Damien Elmes
93e01850b6 remove cloze handling in conditionals
As far as I can tell, this was not functional, as "{{#cloze:Text}}"
becomes cq-1:Text, which doesn't match the regex
2020-01-08 16:10:19 +10:00
Damien Elmes
34ac272349 show stdout/stderr when running tests 2020-01-08 15:52:51 +10:00
Damien Elmes
a47dc8da8f no longer try fields with : in their names
it's not supported by the card generation code, and the card
layout screen will automatically fix note types
2020-01-08 14:42:54 +10:00
Damien Elmes
3d9c454997 move furigana/hint filters into template2 2020-01-08 12:30:08 +10:00
Damien Elmes
edc989f308 clean up _renderQA(), and split rendering part out 2020-01-08 12:07:44 +10:00
Damien Elmes
516924957e use 3.7 annotations 2020-01-07 18:43:20 +10:00
Damien Elmes
9232414095 bump minimum python version from 3.6 to 3.7 2020-01-07 18:34:36 +10:00
Damien Elmes
194697753d don't need to rerun checks each time buildhash changes 2020-01-06 19:30:54 +10:00
Damien Elmes
f710d558fd add tests and setup.py to checks; fix warnings 2020-01-06 15:27:59 +10:00
Damien Elmes
9d2e57fcbc fix import order 2020-01-06 13:15:02 +10:00
Damien Elmes
6afb8c5056 add a partial Python implementation of the backend 2020-01-06 12:24:47 +10:00
Damien Elmes
7334d7a687 wheel deps should be checked at install time, not build time 2020-01-05 07:34:36 +10:00
Damien Elmes
1fa01bca67 don't reference missing readme in setup.py 2020-01-04 12:21:58 +10:00
Damien Elmes
39f2ca54e8 quieten wheel build 2020-01-04 12:21:58 +10:00
Damien Elmes
c88694333b update readme, remove submodule readmes 2020-01-04 12:21:58 +10:00
Damien Elmes
351699268a move top level scripts into makefile 2020-01-04 12:21:58 +10:00
Damien Elmes
ad3769f3c2 add default value to ServerData 2020-01-04 07:53:20 +10:00
Erez Volk
bf6672d7e8 Merge remote-tracking branch 'upstream/master' into add-tags-on-update 2020-01-03 08:13:04 +02:00
Damien Elmes
515e081d8b formatting fix 2020-01-03 15:21:36 +10:00
Damien Elmes
a113887d56 add buildhash to rspy and aqt, and check all three modules match 2020-01-03 15:15:18 +10:00
Damien Elmes
5eee63ca6d use proper version number in build outputs 2020-01-03 14:36:14 +10:00
Damien Elmes
7efccd69f8 output into dist/ 2020-01-03 14:32:26 +10:00
Damien Elmes
5c91987218 drop 'extra' from default cloze note type
Too many users get confused about where they should be placing the
cloze deletions.
2020-01-03 13:40:50 +10:00
Damien Elmes
152637caae fix invalid escape warning 2020-01-03 13:38:23 +10:00
Damien Elmes
3dc53deece speed up two tests
the regular test run is now faster than the old parallel one was
2020-01-03 09:05:04 +10:00
Damien Elmes
b3b95713e6 report slowest test 2020-01-03 09:03:39 +10:00
Damien Elmes
df2cc2fb02 switch from nose2 to pytest
pytest will show what differs in simple assert statements

concurrent mode is supported with a plugin, but like nose2, concurrent
mode hides the cause of import errors, so I've left it off for now.
2020-01-03 08:52:10 +10:00
Damien Elmes
648e51b60d don't reformat buildhash 2020-01-03 08:25:12 +10:00
Damien Elmes
2a00e0a6b0 tweaking the folder names again
hopefully that's the last of it
2020-01-03 07:48:38 +10:00