MTGProxyPrinter

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2026-08-20
18:15
Fix syntax error that wasn't highlighted by the IDE… Leaf check-in: c1c0d46e74 user: thomas tags: automatic_token_handling
18:01
Continued implementing find_created_token(). The method now contains actual logic. It gathers input oracle_ids in a temporary table, then computes the set of result tokes and markers. The transitive search still walks over card to card relationships, so it still finds additional tokens it should not actually find check-in: 3081e80d03 user: thomas tags: automatic_token_handling
2026-08-14
20:29
Add WIP query for finding all tokens for a card or list of cards check-in: d754e66028 user: thomas tags: automatic_token_handling
18:36
DeckImportWizard/SummaryPage: Implement card removal via context menu. Leaf check-in: eaafa75db1 user: thomas tags: trunk
17:53
CardListTableView: Fix wrong values in logging output in _on_selection_changed() check-in: 5c03d39232 user: thomas tags: trunk
11:10
Tests: Add unit tests for AsyncTask base behavior regarding task cancelation Leaf check-in: c1ad9f006d user: thomas tags: refactor_task_cancel_interface
09:51
AsyncTask: Implement the first batch of the refactoring TODO: Introduce TaskCanceled exception, the @cancelable decorator for run(), add method raise_if_canceled() that wraps raising TaskCanceled if cancel() was called, and rewrite can_cancel() to report True iff run() is wrapped in @cancelable. check-in: b293f61ccd user: thomas tags: refactor_task_cancel_interface
2026-08-13
22:07
Create new branch named "refactor_task_cancel_interface" check-in: b03ea0e21f user: thomas tags: refactor_task_cancel_interface
22:02
SetDataImportTask: Optimize set symbol downloads. Try reading MTGSet symbols from the database or from a local cache first, before downloading them from Scryfall. This avoids repeated downloads of the same file. On a full database population, this cuts downloads down from 1050 to 360 in August 2026. check-in: 2453bafaad user: thomas tags: trunk
13:25
Pytest 10 compatibility: No longer use generator expressions for test case parametrization. Wrap those in list() or otherwise refactor to not use them check-in: afcfdf58ca user: thomas tags: trunk
13:14
Update dependencies; allow Pytest 10 Closed-Leaf check-in: a68c6d2125 user: thomas tags: pytest10_compat
13:11
test_deck_import_wizard.py: Pytest 10 compatibility check-in: 3d7bf4e34a user: thomas tags: pytest10_compat
13:07
test_decklist_downloader.py: Pytest 10 compatibility check-in: b4144d002c user: thomas tags: pytest10_compat
12:59
test_save_file_schema.py: Pytest 10 compatibility check-in: d52e0b28a1 user: thomas tags: pytest10_compat
12:58
test_settings.py: Pytest 10 compatibility check-in: 5a27df7202 user: thomas tags: pytest10_compat
2026-08-12
09:34
test_ui_files.py: Pytest 10 compatibility check-in: 90704ce296 user: thomas tags: pytest10_compat
09:32
test_card_info_downloader.py: Pytest 10 compatibility check-in: 4c8c0845df user: thomas tags: pytest10_compat
09:27
test_argument_parser.py: Pytest 10 compatibility check-in: c3f2eb2bf9 user: thomas tags: pytest10_compat
09:19
test_page_scene.py: Pytest 10 compatibility check-in: 7a9689bebb user: thomas tags: pytest10_compat
09:13
test_document_loader.py: Pytest 10 compatibility check-in: a09031108d user: thomas tags: pytest10_compat
09:10
test_carddb.py: Pytest 10 compatibility check-in: 02d3d4682a user: thomas tags: pytest10_compat
2026-08-10
21:19
test_action_move_cards.py: Pytest 10 compatibility check-in: 3daed2e2cf user: thomas tags: pytest10_compat
21:18
test_action_move_page.py: Deduplicate code by encapsulating it in a helper function. Add docstrings. Replace test generator with a static list check-in: ee4281a4f2 user: thomas tags: pytest10_compat
20:55
test_action_move_cards.py: Pytest 10 compatibility check-in: 8291d695e7 user: thomas tags: pytest10_compat
20:53
test_tappedout_csv_parser.py: Pytest 10 compatibility check-in: 7e41274d71 user: thomas tags: pytest10_compat
20:51
test_scryfall_csv_parser.py: Pytest 10 compatibility check-in: 8331856138 user: thomas tags: pytest10_compat
20:49
test_printing_filter_updater.py: Pytest 10 compatibility check-in: fe391b97d5 user: thomas tags: pytest10_compat
20:22
Drop ijson from the dependencies. Replace all usages with the standard library, and remove all mentions throughout the project check-in: 149154a242 user: thomas tags: trunk
18:50
Remove now-unused dependency ijson from the dependency list, documentation, and the tox compatibility validation. Closed-Leaf check-in: 1178d26720 user: thomas tags: drop_ijson_dependency
18:43
Port MoxfieldDownloader from ijson to json check-in: 0ce164a8e8 user: thomas tags: drop_ijson_dependency
18:19
TCGPlayerDownloader: Fixed iterating the cards dict, by properly using .items() on it. Also fixed a wrong type annotation in the API response modelling check-in: b7af51f952 user: thomas tags: drop_ijson_dependency
18:11
Port ArchidektDownloader from ijson to json check-in: 017a8c9cf3 user: thomas tags: drop_ijson_dependency
2026-08-09
23:14
Port the TCGPlayerDownloader from ijson to json. Also add some TypedDicts documenting the API response format check-in: 529f517dc3 user: thomas tags: drop_ijson_dependency
22:50
Port ManaboxApp downloader from ijson to json check-in: 5921ca74d0 user: thomas tags: drop_ijson_dependency
22:36
Add a helper method DownloaderBase.read_json_from_url(), which encapsulates reading the URL and decoding to dict. This avoids duplicating the decoding boilerplate whereever JSON is read. check-in: 06ec02bd2b user: thomas tags: drop_ijson_dependency
22:22
Replace ijson with json in update_checker.py check-in: ff8370e9af user: thomas tags: drop_ijson_dependency
18:11
StreamTask: Properly shut down the queue in cancel() using the designated method for this. scripts/benchmark_card_data_import.py: Fix deadlock when cancelling via Ctrl+C, by cancelling the FileStreamTask when receiving a KeyboardInterrupt. check-in: f8252c22df user: thomas tags: trunk
2026-07-31
18:38
Release v0.36.0 check-in: cf6ad7bb93 user: thomas tags: trunk, release, v0.36.0
18:36
Fixed dependency mismatch in pyproject.toml check-in: 5bc8bf30ff user: thomas tags: trunk
18:14
Implement set preference weights. Additional fixes to prepare the release of v0.36.0 check-in: 66f9c41f15 user: thomas tags: trunk
15:19
Disable additional tests for the disabled downloaders Closed-Leaf check-in: 99dcced445 user: thomas tags: prepare_release
14:59
Disable currently broken deck list downloaders MTGTop8Downloader and MtgDecksNetDownloader. These require rework, including cloudflare bypasses for MTGTop8 check-in: 31ca4808ee user: thomas tags: prepare_release
14:43
MeteredSeekableHTTPFile: Perform a required not-None check in read() check-in: 2aa4341381 user: thomas tags: prepare_release
14:43
Fix for failing resources test on Windows platforms check-in: cfb1efdf58 user: thomas tags: prepare_release
13:30
[PATCH] updated scryfall bulk data download check-in: 992ca95ffd user: davidwestenberger tags: prepare_release
13:27
Drop Support for PySide 6.7 (for now). multiData() uses QModelRoleDataSpan, which is present since Qt 6.0, but somehow isn't availabel in 6.7: ImportError: cannot import name 'QModelRoleDataSpan' from 'PySide6.QtCore' check-in: 9a9d4f4829 user: thomas tags: prepare_release
13:26
Python 3.11 compatibility fix check-in: 0c699379a7 user: thomas tags: prepare_release
13:25
Ensure PyTest 10 compatibility: Wrap all generators in test parameters in list() to avoid deprecated code paths to be removed in PyTest 10 Edit: Why is this empty? check-in: 61c06057f6 user: thomas tags: prepare_release
2026-07-30
23:17
Dependencies: Add test environment for Qt 6.11. Ensure Qt 6.7-6.9 get a suitable base python version check-in: d0b08b31f4 user: thomas tags: prepare_release
21:49
Add missing test data file check-in: 72cedf110d user: thomas tags: prepare_release