mtg_python_deckbuilder/code/deck_builder/phases
matt bff64de370 fix: systematically handle numpy arrays from Parquet files across codebase
- Add ensure_theme_tags_list() utility to builder_utils for simpler numpy array handling
- Update phase3_creatures.py: 6 locations now use bu.ensure_theme_tags_list()
- Update phase4_spells.py: 9 locations now use bu.ensure_theme_tags_list()
- Update tagger.py: 2 locations use hasattr/list() for numpy compatibility
- Update extract_themes.py: 2 locations use hasattr/list() for numpy compatibility
- Fix build-similarity-cache.yml verification script to handle numpy arrays
- Enhance workflow debug output to show complete row data

Parquet files return numpy.ndarray objects for array columns, not Python lists.
The M4 migration added numpy support to canonical parse_theme_tags() in builder_utils,
but many parts of the codebase still used isinstance(list) checks that fail with arrays.
This commit systematically replaces all 19 instances with proper numpy array handling.

Fixes GitHub Actions workflow 'RuntimeError: No theme tags found' and verification failures.
2025-10-18 22:47:09 -07:00
..
phase0_core.py With assistance from Github CoPilot, massively overhauled the builder functionality, splitting it into smaller modules to provide a better step-by-step focus and drastically reduce the overall size of the core builder module 2025-08-20 10:46:23 -07:00
phase1_commander.py Web UI: setup progress + logs folding, Finished Decks library, commander search UX (debounce, keyboard, highlights, color chips), ranking fixes (first-word priority, substring include), optional auto-select; setup start reliability (POST+GET), force runs, status with percent/ETA/timestamps; stepwise builder with added stage reporting and sidecar summaries; keyboard grid wrap-around; restrict commander search to eligible rows 2025-08-26 09:48:25 -07:00
phase2_lands_basics.py feat: stage reordering, skip controls, quick build, and commander session cleanup 2025-10-14 16:09:58 -07:00
phase2_lands_duals.py chore(release): v2.2.9 misc land variety, land alternatives randomization, scroll flicker fix 2025-09-10 16:20:38 -07:00
phase2_lands_fetch.py chore(release): v2.2.9 misc land variety, land alternatives randomization, scroll flicker fix 2025-09-10 16:20:38 -07:00
phase2_lands_kindred.py chore(release): v2.2.9 misc land variety, land alternatives randomization, scroll flicker fix 2025-09-10 16:20:38 -07:00
phase2_lands_misc.py feature: add non-basic land types to tagging mechanics 2025-10-13 15:07:31 -07:00
phase2_lands_optimize.py chore(release): v2.2.9 misc land variety, land alternatives randomization, scroll flicker fix 2025-09-10 16:20:38 -07:00
phase2_lands_staples.py chore(release): v2.2.9 misc land variety, land alternatives randomization, scroll flicker fix 2025-09-10 16:20:38 -07:00
phase2_lands_triples.py chore(release): v2.2.9 misc land variety, land alternatives randomization, scroll flicker fix 2025-09-10 16:20:38 -07:00
phase3_creatures.py fix: systematically handle numpy arrays from Parquet files across codebase 2025-10-18 22:47:09 -07:00
phase4_spells.py fix: systematically handle numpy arrays from Parquet files across codebase 2025-10-18 22:47:09 -07:00
phase5_color_balance.py Add colorless commander filtering and display fixes 2025-10-16 11:20:27 -07:00
phase6_reporting.py feat: migrate to unified Parquet format with instant GitHub setup and 4x faster tagging 2025-10-18 21:32:12 -07:00