MTGProxyPrinter

Timeline
Login

Timeline

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

50 most recent check-ins

2026-08-29
09:36
CardDatabase: Re-phrase find_created_token() comments, update method signature leaf check-in: 938a8c4806 user: thomas tags: automatic_token_handling
09:34
tests/json_samples/___README.txt: Update content leaf check-in: fd570eca88 user: thomas tags: trunk
2026-08-28
15:16
CardDatabase: Honor the preferred language in find_related_token(). This currently does nothing, because Scryfall only has English token. check-in: 2c7e57b2ac user: thomas tags: automatic_token_handling
12:06
Document: Docstring update for find_relevant_index_ranges() check-in: ce642d1ef1 user: thomas tags: trunk
11:53
Document: Fixed crash in get_empty_card_for_size() caused by excessive parameters passed to Card(). This was triggered when adding a blank spot to the current page or when loading a document with blank spots. check-in: 8334519ba6 user: thomas tags: trunk
2026-08-23
12:21
Fixed typo in the changelog check-in: eae3697a46 user: thomas tags: automatic_token_handling
12:02
StreamTask: Remove the no longer used json_path argument and attribute check-in: 63379b6c79 user: thomas tags: automatic_token_handling
11:56
DatabaseImportTask: Refactor and fix _get_related_cards(). It now correctly handles token created by the Undercity check-in: b7848d67ed user: thomas tags: automatic_token_handling
2026-08-22
16:06
Update code comments check-in: 00ed2099ba user: thomas tags: automatic_token_handling
14:40
Adjust the logic to skip token already present in the input data set, and do not recurse across Card→Card relations. The latter prevents adding tokens created by indirect card connections. check-in: 58db7b1239 user: thomas tags: automatic_token_handling
2026-08-21
21:49
Add unit tests for CardDatabase.find_created_token() check-in: f08b62b501 user: thomas tags: automatic_token_handling
2026-08-20
18:15
Fix syntax error that wasn't highlighted by the IDE… 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. 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 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 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