Anki/pylib/anki
RumovZ e759885734
Backend colpkg exporting (#1719)
* Implement colpkg exporting on backend

* Use exporting logic in backup.rs

* Refactor exporting.rs

* Add backend function to export collection

* Refactor backend/collection.rs

* Use backend for colpkg exporting

* Don't use default zip compression for media

* Add exporting progress

* Refactor media file writing

* Write dummy collections

* Localize dummy collection note

* Minimize dummy db size

* Use `NamedTempFile::new()` instead of `new_in`

* Drop redundant v2 dummy collection

* COLLECTION_VERSION -> PACKAGE_VERSION

* Split `lock_collection()` into two to drop flag

* Expose new colpkg in GUI

* Improve dummy collection message

* Please type checker

* importing-colpkg-too-new -> exporting-...

* Compress the media map in the v3 package (dae)

On collections with lots of media, it can grow into megabytes.

Also return an error in extract_media_file_names(), instead of masking
it as an optional.

* Store media map as a vector in the v3 package (dae)

This compresses better (eg 280kb original, 100kb hashmap, 42kb vec)

In the colpkg import case we don't need random access. When importing
an apkg, we will need to be able to fetch file data for a given media
filename, but the existing map doesn't help us there, as we need
filename->index, not index->filename.

* Ensure folders in the media dir don't break the file mapping (dae)
2022-03-15 16:48:02 +10:00
..
_backend Backups (#1685) 2022-03-07 15:11:31 +10:00
_vendor PEP8 for rest of pylib (#1451) 2021-10-25 14:50:13 +10:00
importing The importer list have a Hook (#1543) 2021-12-09 11:20:29 +10:00
scheduler Move custom study tag and limit gathering+saving into the backend 2022-03-10 16:23:03 +10:00
syncserver updated package scripts 2021-10-28 18:46:45 +10:00
__init__.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
_legacy.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
backend_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
browser.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
BUILD.bazel add missing wheel/helper for darwin-arm64 2021-10-28 18:29:18 +10:00
buildinfo.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
card_rendering_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
cards.py Switch card.original_position to a proto3 optional 2022-03-10 20:48:26 +10:00
cards_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
collection.py Backend colpkg exporting (#1719) 2022-03-15 16:48:02 +10:00
collection_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
config.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
config_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
consts.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
db.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
dbproxy.py fix cyclic import when importing anki.collection directly 2022-02-15 19:08:29 +10:00
deckconfig_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
decks.py Remove top_deck_id arg in deck_tree() (#1702) 2022-03-02 15:30:32 +10:00
decks_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
errors.py Backend Custom Study (#1600) 2022-01-20 14:25:22 +10:00
exporting.py Backend colpkg exporting (#1719) 2022-03-15 16:48:02 +10:00
find.py Add py3.9 to hooks (#1542) 2021-12-09 09:11:22 +10:00
generic_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
hooks.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
hooks_gen.py fix generated code symlinks again 2022-01-24 16:59:37 +10:00
httpclient.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
i18n_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
lang.py add Odia to language list 2022-02-07 22:31:41 +10:00
latex.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
links_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
media.py Fix html_media_regexps (#1710) 2022-03-07 11:02:30 +10:00
media_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
models.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
notes.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
notes_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
notetypes_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
py.typed mark anki and aqt modules as having typing info 2020-01-13 13:03:37 +10:00
rsbackend.py PEP8 for rest of pylib (#1451) 2021-10-25 14:50:13 +10:00
scheduler_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
search_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
sound.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
stats.py update mypy and mypy-protobuf 2022-01-15 16:04:04 +10:00
stats_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
statsbg.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
stdmodels.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
storage.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
sync.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
sync_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
tags.py Move custom study tag and limit gathering+saving into the backend 2022-03-10 16:23:03 +10:00
tags_pb2.pyi fix generated code symlinks again 2022-01-24 16:59:37 +10:00
template.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
types.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
utils.py Update Python deps, including stable Black 2022-02-25 15:26:16 +10:00
wheel_description.txt move aqt_data into source folder; implement wheel building 2020-11-04 12:14:03 +10:00