=== Cleanup started at Tue Jun 17 23:57:11 CEST 2025 ===
python -m uv sync --all-extras
Resolved 73 packages in 1ms
   Building vexylicon @ file:///Users/adam/Developer/vcs/github.fontlaborg/vexylicon
      Built vexylicon @ file:///Users/adam/Developer/vcs/github.fontlaborg/vexylicon
Prepared 1 package in 1.48s
Uninstalled 1 package in 1ms
Installed 1 package in 2ms
 - vexylicon==0.1.dev1+g2f76a63.d20250617 (from file:///Users/adam/Developer/vcs/github.fontlaborg/vexylicon)
 + vexylicon==1.3.1.dev1+gf9171c9.d20250617 (from file:///Users/adam/Developer/vcs/github.fontlaborg/vexylicon)
python -m uzpy run -e src

uzpy - Modern Python Usage Tracker
Edit path: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon
Reference path: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon
Exclude patterns: src
Workers: 4
Cache: enabled

[1mINFO    [0m | [36muzpy.pipeline[0m:[36m51[0m | Discovering files...
[1mINFO    [0m | [36muzpy.discovery[0m:[36m121[0m | Scanning directory: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon
[1mINFO    [0m | [36muzpy.discovery[0m:[36m121[0m | Scanning directory: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon
[1mINFO    [0m | [36muzpy.discovery[0m:[36m284[0m | Found 8 edit files and 8 reference files
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m66[0m | Found 8 edit files and 8 reference files
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m69[0m | Parsing edit files for constructs...
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m88[0m | Found 35 total constructs
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m91[0m | Finding references...
[1mINFO    [0m | [36muzpy.analyzer.hybrid_analyzer[0m:[36m81[0m | Hybrid analyzer initialized (Rope: True, Jedi: True)
[1mINFO    [0m | [36muzpy.discovery[0m:[36m121[0m | Scanning directory: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon
[1mINFO    [0m | [36muzpy.analyzer.parallel_analyzer[0m:[36m97[0m | Analyzing 35 constructs in parallel with 16 workers
2025-06-17 23:57:19.275 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for main, analyzing...
2025-06-17 23:57:19.275 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for main
2025-06-17 23:57:19.281 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for example, analyzing...
2025-06-17 23:57:19.281 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for example
2025-06-17 23:57:19.307 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_version, analyzing...
2025-06-17 23:57:19.307 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_version
2025-06-17 23:57:19.336 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_package, analyzing...
2025-06-17 23:57:19.336 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_package
2025-06-17 23:57:19.342 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_basic_generation, analyzing...
2025-06-17 23:57:19.342 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_basic_generation
2025-06-17 23:57:19.364 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.364 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.365 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.365 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.365 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.365 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.365 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.366 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.367 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.367 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.367 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.368 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.368 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.368 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.368 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.368 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.368 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_version
2025-06-17 23:57:19.368 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.368 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.369 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for main
2025-06-17 23:57:19.370 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_vexylicon_params, analyzing...
2025-06-17 23:57:19.370 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_vexylicon_params
2025-06-17 23:57:19.372 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.374 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.377 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.378 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.379 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.379 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.379 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.380 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.380 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.380 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for example
2025-06-17 23:57:19.380 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: type object 'ConstructType' has no attribute 'VARIABLE'
2025-06-17 23:57:19.380 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for example
2025-06-17 23:57:19.380 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.381 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for example
2025-06-17 23:57:19.382 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.testdata.example
2025-06-17 23:57:19.382 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:140 - Skipping Rope analysis for module Users.adam.Developer.vcs.github.fontlaborg.vexylicon.testdata.example
2025-06-17 23:57:19.382 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.testdata.example
2025-06-17 23:57:19.382 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:150 - No results found for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.testdata.example
2025-06-17 23:57:19.383 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 0 references
2025-06-17 23:57:19.384 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_invalid_svg_handling, analyzing...
2025-06-17 23:57:19.383 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.384 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_invalid_svg_handling
2025-06-17 23:57:19.384 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.384 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.384 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_basic_generation
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_package
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: type object 'ConstructType' has no attribute 'VARIABLE'
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_package
2025-06-17 23:57:19.386 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.387 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_package
2025-06-17 23:57:19.388 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_package
2025-06-17 23:57:19.388 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:140 - Skipping Rope analysis for module Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_package
2025-06-17 23:57:19.388 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_package
2025-06-17 23:57:19.388 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:150 - No results found for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_package
2025-06-17 23:57:19.388 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 0 references
2025-06-17 23:57:19.395 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for round_svg_coordinates, analyzing...
2025-06-17 23:57:19.395 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for round_svg_coordinates
2025-06-17 23:57:19.398 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for generate_ring_paths, analyzing...
2025-06-17 23:57:19.398 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for generate_ring_paths
2025-06-17 23:57:19.403 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_vexylicon_generator_creation, analyzing...
2025-06-17 23:57:19.403 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_vexylicon_generator_creation
2025-06-17 23:57:19.406 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_quality_presets, analyzing...
2025-06-17 23:57:19.407 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_quality_presets
2025-06-17 23:57:19.410 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_opacity_calculation, analyzing...
2025-06-17 23:57:19.410 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_opacity_calculation
2025-06-17 23:57:19.412 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.413 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.413 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.413 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.413 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.414 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.414 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.414 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.414 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.414 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_vexylicon_params
2025-06-17 23:57:19.420 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.421 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.421 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.421 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.422 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.422 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.422 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.422 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.422 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.422 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_invalid_svg_handling
2025-06-17 23:57:19.435 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_path_tools, analyzing...
2025-06-17 23:57:19.435 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_path_tools
2025-06-17 23:57:19.435 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.436 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.436 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.436 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.437 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.437 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_core, analyzing...
2025-06-17 23:57:19.437 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.437 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_core
2025-06-17 23:57:19.437 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.438 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.438 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.438 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for round_svg_coordinates
2025-06-17 23:57:19.439 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.440 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.440 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_basic_generation
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_basic_generation
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_version
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.442 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for main
2025-06-17 23:57:19.442 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.442 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.442 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for main
2025-06-17 23:57:19.441 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.442 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_version
2025-06-17 23:57:19.443 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.444 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.444 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.444 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for generate_ring_paths
2025-06-17 23:57:19.448 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for parse_dual_contour_path, analyzing...
2025-06-17 23:57:19.448 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.448 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for parse_dual_contour_path
2025-06-17 23:57:19.449 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.449 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.449 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.450 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.452 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.453 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_vexylicon_params
2025-06-17 23:57:19.453 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.453 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_vexylicon_params
2025-06-17 23:57:19.453 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.454 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.454 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for test_svg_processor, analyzing...
2025-06-17 23:57:19.454 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.454 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.454 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_vexylicon_generator_creation
2025-06-17 23:57:19.454 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for test_svg_processor
2025-06-17 23:57:19.454 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.455 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.455 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.455 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.456 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.456 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.456 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.456 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.456 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.457 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_quality_presets
2025-06-17 23:57:19.458 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.459 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.459 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.459 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.460 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.460 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.460 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.461 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.461 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.461 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_opacity_calculation
2025-06-17 23:57:19.463 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.463 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_invalid_svg_handling
2025-06-17 23:57:19.464 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.464 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_invalid_svg_handling
2025-06-17 23:57:19.463 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for path_bbox, analyzing...
2025-06-17 23:57:19.464 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for path_bbox
2025-06-17 23:57:19.465 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for interpolate_segment, analyzing...
2025-06-17 23:57:19.465 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for interpolate_segment
2025-06-17 23:57:19.479 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.479 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.480 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.480 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.480 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.480 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.485 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.490 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.490 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.490 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_path_tools
2025-06-17 23:57:19.490 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: type object 'ConstructType' has no attribute 'VARIABLE'
2025-06-17 23:57:19.490 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_path_tools
2025-06-17 23:57:19.491 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.491 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_path_tools
2025-06-17 23:57:19.491 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.491 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.491 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.492 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.492 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.492 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.492 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_path_tools
2025-06-17 23:57:19.493 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:140 - Skipping Rope analysis for module Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_path_tools
2025-06-17 23:57:19.493 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_path_tools
2025-06-17 23:57:19.493 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:150 - No results found for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_path_tools
2025-06-17 23:57:19.493 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.493 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 0 references
2025-06-17 23:57:19.493 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.493 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.493 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_core
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: type object 'ConstructType' has no attribute 'VARIABLE'
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_core
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_core
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for generate_ring_paths
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for round_svg_coordinates
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for generate_ring_paths
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.494 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for round_svg_coordinates
2025-06-17 23:57:19.495 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_core
2025-06-17 23:57:19.495 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:140 - Skipping Rope analysis for module Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_core
2025-06-17 23:57:19.495 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_core
2025-06-17 23:57:19.495 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:150 - No results found for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_core
2025-06-17 23:57:19.496 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 0 references
2025-06-17 23:57:19.497 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.497 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.498 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.498 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.498 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.498 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.498 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_vexylicon_generator_creation
2025-06-17 23:57:19.498 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.499 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.499 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_vexylicon_generator_creation
2025-06-17 23:57:19.499 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.499 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.499 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.499 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for parse_dual_contour_path
2025-06-17 23:57:19.502 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.503 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.503 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.503 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.503 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.504 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.504 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.504 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.504 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_quality_presets
2025-06-17 23:57:19.504 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.504 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_quality_presets
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for test_svg_processor
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for build_parser, analyzing...
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: type object 'ConstructType' has no attribute 'VARIABLE'
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for build_parser
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_svg_processor
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.505 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_svg_processor
2025-06-17 23:57:19.506 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for locate_paths, analyzing...
2025-06-17 23:57:19.506 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for locate_paths
2025-06-17 23:57:19.507 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_svg_processor
2025-06-17 23:57:19.507 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:140 - Skipping Rope analysis for module Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_svg_processor
2025-06-17 23:57:19.507 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_svg_processor
2025-06-17 23:57:19.507 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:150 - No results found for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.tests.test_svg_processor
2025-06-17 23:57:19.507 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 0 references
2025-06-17 23:57:19.512 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.513 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for test_opacity_calculation
2025-06-17 23:57:19.513 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.514 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for test_opacity_calculation
2025-06-17 23:57:19.514 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.515 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.515 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.515 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.515 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.515 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.516 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.516 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.516 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.516 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for path_bbox
2025-06-17 23:57:19.517 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for to_cubic_list, analyzing...
2025-06-17 23:57:19.517 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for to_cubic_list
2025-06-17 23:57:19.518 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.518 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.518 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.518 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.519 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.519 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.519 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.519 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.519 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.519 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for interpolate_segment
2025-06-17 23:57:19.545 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.545 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.546 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.546 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.546 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.546 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.546 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.547 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.547 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.548 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for parse_dual_contour_path
2025-06-17 23:57:19.547 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.548 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for build_parser
2025-06-17 23:57:19.548 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.548 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for parse_dual_contour_path
2025-06-17 23:57:19.554 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.554 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.554 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.555 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.555 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.555 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.556 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.556 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.556 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.556 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.556 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for locate_paths
2025-06-17 23:57:19.556 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for path_bbox
2025-06-17 23:57:19.556 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.556 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for path_bbox
2025-06-17 23:57:19.558 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.558 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for interpolate_segment
2025-06-17 23:57:19.559 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.559 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for interpolate_segment
2025-06-17 23:57:19.560 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.561 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.561 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.561 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.561 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.562 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.562 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.562 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.562 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:19.562 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for to_cubic_list
2025-06-17 23:57:19.579 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.579 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for build_parser
2025-06-17 23:57:19.579 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.579 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for build_parser
2025-06-17 23:57:19.586 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.586 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for locate_paths
2025-06-17 23:57:19.586 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.587 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for locate_paths
2025-06-17 23:57:19.592 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:19.592 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for to_cubic_list
2025-06-17 23:57:19.593 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:19.593 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for to_cubic_list
2025-06-17 23:57:20.044 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for test_version at line 4, column 4
2025-06-17 23:57:20.068 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for test_basic_generation at line 42, column 4
2025-06-17 23:57:20.073 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for main at line 25, column 4
2025-06-17 23:57:20.086 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for test_vexylicon_params at line 19, column 4
2025-06-17 23:57:20.093 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for test_invalid_svg_handling at line 57, column 4
2025-06-17 23:57:20.129 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for test_vexylicon_generator_creation at line 11, column 4
2025-06-17 23:57:20.144 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for test_quality_presets at line 30, column 4
2025-06-17 23:57:20.153 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for test_opacity_calculation at line 66, column 4
2025-06-17 23:57:20.213 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for round_svg_coordinates at line 137, column 4
2025-06-17 23:57:20.216 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for generate_ring_paths at line 163, column 4
2025-06-17 23:57:20.234 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 1 usage references for test_version
2025-06-17 23:57:20.234 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 1 references for test_version
2025-06-17 23:57:20.235 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of test_version at offset 40
2025-06-17 23:57:20.238 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 1 usage references for test_vexylicon_params
2025-06-17 23:57:20.239 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 1 references for test_vexylicon_params
2025-06-17 23:57:20.239 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of test_vexylicon_params at offset 494
2025-06-17 23:57:20.240 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 1 usage references for test_invalid_svg_handling
2025-06-17 23:57:20.241 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 1 references for test_invalid_svg_handling
2025-06-17 23:57:20.241 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of test_invalid_svg_handling at offset 1605
2025-06-17 23:57:20.242 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 1 usage references for test_basic_generation
2025-06-17 23:57:20.242 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 1 references for test_basic_generation
2025-06-17 23:57:20.243 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of test_basic_generation at offset 1203
2025-06-17 23:57:20.248 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for parse_dual_contour_path at line 93, column 4
2025-06-17 23:57:20.259 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 1 usage references for test_quality_presets
2025-06-17 23:57:20.259 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 1 references for test_quality_presets
2025-06-17 23:57:20.260 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of test_quality_presets at offset 874
2025-06-17 23:57:20.260 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for interpolate_segment at line 60, column 4
2025-06-17 23:57:20.262 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 1 usage references for test_vexylicon_generator_creation
2025-06-17 23:57:20.262 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 1 references for test_vexylicon_generator_creation
2025-06-17 23:57:20.263 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of test_vexylicon_generator_creation at offset 261
2025-06-17 23:57:20.263 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for path_bbox at line 51, column 4
2025-06-17 23:57:20.266 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 1 usage references for test_opacity_calculation
2025-06-17 23:57:20.266 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 1 references for test_opacity_calculation
2025-06-17 23:57:20.267 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of test_opacity_calculation at offset 1855
2025-06-17 23:57:20.279 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for to_cubic_list at line 77, column 4
2025-06-17 23:57:20.279 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for locate_paths at line 275, column 4
2025-06-17 23:57:20.281 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for build_parser at line 209, column 4
2025-06-17 23:57:20.293 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 1 usage references for test_version
2025-06-17 23:57:20.293 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 1 references for test_version
2025-06-17 23:57:20.293 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for test_version
2025-06-17 23:57:20.293 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.306 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for get_path_data_from_element, analyzing...
2025-06-17 23:57:20.306 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for get_path_data_from_element
2025-06-17 23:57:20.312 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 1 usage references for test_invalid_svg_handling
2025-06-17 23:57:20.312 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 1 references for test_invalid_svg_handling
2025-06-17 23:57:20.312 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for test_invalid_svg_handling
2025-06-17 23:57:20.312 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.314 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 1 usage references for test_vexylicon_params
2025-06-17 23:57:20.314 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 1 references for test_vexylicon_params
2025-06-17 23:57:20.314 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for test_vexylicon_params
2025-06-17 23:57:20.314 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.315 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 1 usage references for test_basic_generation
2025-06-17 23:57:20.315 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 1 references for test_basic_generation
2025-06-17 23:57:20.316 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for test_basic_generation
2025-06-17 23:57:20.316 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.325 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for round_match, analyzing...
2025-06-17 23:57:20.326 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for round_match
2025-06-17 23:57:20.326 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for main, analyzing...
2025-06-17 23:57:20.327 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for main
2025-06-17 23:57:20.331 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for align_path_start, analyzing...
2025-06-17 23:57:20.331 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for align_path_start
2025-06-17 23:57:20.336 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 1 usage references for test_vexylicon_generator_creation
2025-06-17 23:57:20.337 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 1 references for test_vexylicon_generator_creation
2025-06-17 23:57:20.337 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for test_vexylicon_generator_creation
2025-06-17 23:57:20.337 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.337 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 1 usage references for test_quality_presets
2025-06-17 23:57:20.338 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 1 references for test_quality_presets
2025-06-17 23:57:20.338 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for test_quality_presets
2025-06-17 23:57:20.338 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.338 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 1 usage references for test_opacity_calculation
2025-06-17 23:57:20.339 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 1 references for test_opacity_calculation
2025-06-17 23:57:20.339 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for test_opacity_calculation
2025-06-17 23:57:20.339 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.348 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for _ns, analyzing...
2025-06-17 23:57:20.349 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for _ns
2025-06-17 23:57:20.350 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for icon_blender, analyzing...
2025-06-17 23:57:20.351 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for icon_blender
2025-06-17 23:57:20.354 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for write_variants, analyzing...
2025-06-17 23:57:20.354 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for write_variants
2025-06-17 23:57:20.363 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 3 usage references for round_svg_coordinates
2025-06-17 23:57:20.363 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.363 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 3 references for round_svg_coordinates
2025-06-17 23:57:20.363 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.364 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.364 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.364 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.364 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.364 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of round_svg_coordinates at offset 4502
2025-06-17 23:57:20.364 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.364 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.365 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.365 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for get_path_data_from_element
2025-06-17 23:57:20.379 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.379 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.380 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.380 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.380 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.380 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.380 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.381 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for main
2025-06-17 23:57:20.382 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.382 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.382 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for round_match
2025-06-17 23:57:20.383 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.385 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.386 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.386 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.386 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.387 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.387 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.387 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for align_path_start
2025-06-17 23:57:20.397 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.398 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.398 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.398 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.399 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.399 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.399 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.399 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.400 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.400 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for _ns
2025-06-17 23:57:20.402 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.403 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.403 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.403 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.403 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.403 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.404 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.404 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.404 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.404 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for icon_blender
2025-06-17 23:57:20.404 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: type object 'ConstructType' has no attribute 'VARIABLE'
2025-06-17 23:57:20.404 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for icon_blender
2025-06-17 23:57:20.404 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.404 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for icon_blender
2025-06-17 23:57:20.405 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for interpolate_segment
2025-06-17 23:57:20.405 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for interpolate_segment
2025-06-17 23:57:20.406 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.good.icon_blender
2025-06-17 23:57:20.406 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:140 - Skipping Rope analysis for module Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.good.icon_blender
2025-06-17 23:57:20.406 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.good.icon_blender
2025-06-17 23:57:20.406 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:150 - No results found for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.good.icon_blender
2025-06-17 23:57:20.406 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of interpolate_segment at offset 1709
2025-06-17 23:57:20.406 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 0 references
2025-06-17 23:57:20.411 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.411 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for locate_paths
2025-06-17 23:57:20.411 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for path_bbox
2025-06-17 23:57:20.411 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for locate_paths
2025-06-17 23:57:20.411 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.411 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.411 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for path_bbox
2025-06-17 23:57:20.412 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for get_path_data_from_element
2025-06-17 23:57:20.412 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.412 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.412 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for get_path_data_from_element
2025-06-17 23:57:20.412 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.412 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.413 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.413 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of locate_paths at offset 9341
2025-06-17 23:57:20.413 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.413 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.413 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.413 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of path_bbox at offset 1499
2025-06-17 23:57:20.413 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for write_variants
2025-06-17 23:57:20.412 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for build_parser
2025-06-17 23:57:20.415 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for build_parser
2025-06-17 23:57:20.418 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for duplicate_gradient, analyzing...
2025-06-17 23:57:20.418 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of build_parser at offset 7197
2025-06-17 23:57:20.418 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for duplicate_gradient
2025-06-17 23:57:20.423 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.424 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for main
2025-06-17 23:57:20.424 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.424 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for main
2025-06-17 23:57:20.426 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.427 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for round_match
2025-06-17 23:57:20.427 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.427 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for round_match
2025-06-17 23:57:20.429 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 3 usage references for to_cubic_list
2025-06-17 23:57:20.429 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 3 references for to_cubic_list
2025-06-17 23:57:20.431 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of to_cubic_list at offset 2370
2025-06-17 23:57:20.435 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.436 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for align_path_start
2025-06-17 23:57:20.436 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.436 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for align_path_start
2025-06-17 23:57:20.453 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.454 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for _ns
2025-06-17 23:57:20.454 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.454 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for _ns
2025-06-17 23:57:20.454 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:113 - Jedi reference finding failed for main: Ran out of input
2025-06-17 23:57:20.455 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 4 usage references for main
2025-06-17 23:57:20.455 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 4 references for main
2025-06-17 23:57:20.455 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.456 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for write_variants
2025-06-17 23:57:20.456 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.456 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for write_variants
2025-06-17 23:57:20.456 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of main at offset 657
2025-06-17 23:57:20.463 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.463 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.463 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.463 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.464 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.464 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.464 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.464 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.465 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.465 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for duplicate_gradient
2025-06-17 23:57:20.490 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for _ns at line 44, column 4
2025-06-17 23:57:20.494 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for write_variants at line 194, column 4
2025-06-17 23:57:20.505 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for get_path_data_from_element at line 118, column 4
2025-06-17 23:57:20.506 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.507 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for duplicate_gradient
2025-06-17 23:57:20.507 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.507 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for duplicate_gradient
2025-06-17 23:57:20.510 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 3 usage references for round_svg_coordinates
2025-06-17 23:57:20.510 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 3 references for round_svg_coordinates
2025-06-17 23:57:20.510 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for round_svg_coordinates
2025-06-17 23:57:20.510 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.512 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for main at line 322, column 4
2025-06-17 23:57:20.515 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for round_match at line 143, column 8
2025-06-17 23:57:20.520 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for post_process, analyzing...
2025-06-17 23:57:20.520 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for post_process
2025-06-17 23:57:20.524 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for align_path_start at line 151, column 4
2025-06-17 23:57:20.543 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for path_bbox
2025-06-17 23:57:20.543 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for path_bbox
2025-06-17 23:57:20.544 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for path_bbox
2025-06-17 23:57:20.544 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.547 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for interpolate_segment
2025-06-17 23:57:20.548 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for interpolate_segment
2025-06-17 23:57:20.548 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for interpolate_segment
2025-06-17 23:57:20.548 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.550 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for duplicate_gradient at line 73, column 4
2025-06-17 23:57:20.553 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 3 usage references for generate_ring_paths
2025-06-17 23:57:20.553 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 3 references for generate_ring_paths
2025-06-17 23:57:20.554 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for run_blender, analyzing...
2025-06-17 23:57:20.554 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of generate_ring_paths at offset 5353
2025-06-17 23:57:20.554 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for run_blender
2025-06-17 23:57:20.556 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for build_parser
2025-06-17 23:57:20.556 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for build_parser
2025-06-17 23:57:20.556 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for build_parser
2025-06-17 23:57:20.556 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.559 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for locate_paths
2025-06-17 23:57:20.559 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for locate_paths
2025-06-17 23:57:20.559 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for locate_paths
2025-06-17 23:57:20.560 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.560 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for build_mask, analyzing...
2025-06-17 23:57:20.560 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for build_mask
2025-06-17 23:57:20.566 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for icon_masker, analyzing...
2025-06-17 23:57:20.567 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for icon_masker
2025-06-17 23:57:20.569 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.570 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.570 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.570 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.570 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 3 usage references for to_cubic_list
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 3 references for to_cubic_list
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for to_cubic_list
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.571 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for post_process
2025-06-17 23:57:20.581 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for imgquart, analyzing...
2025-06-17 23:57:20.582 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for imgquart
2025-06-17 23:57:20.583 | DEBUG    | uzpy.analyzer.cached_analyzer:find_usages:104 - Cache miss for slice_image, analyzing...
2025-06-17 23:57:20.584 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:101 - Running Ruff analysis for slice_image
2025-06-17 23:57:20.585 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 3 usage references for parse_dual_contour_path
2025-06-17 23:57:20.585 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 3 references for parse_dual_contour_path
2025-06-17 23:57:20.586 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of parse_dual_contour_path at offset 2916
2025-06-17 23:57:20.611 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.612 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for post_process
2025-06-17 23:57:20.612 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.612 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for post_process
2025-06-17 23:57:20.612 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.612 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.613 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.613 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.613 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.613 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.614 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.613 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.614 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.614 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.614 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.614 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for run_blender
2025-06-17 23:57:20.614 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for write_variants
2025-06-17 23:57:20.614 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for write_variants
2025-06-17 23:57:20.615 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of write_variants at offset 6960
2025-06-17 23:57:20.614 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.617 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.618 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.618 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.619 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.619 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.619 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.619 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for build_mask
2025-06-17 23:57:20.620 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.622 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.623 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.623 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.623 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.626 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.626 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.627 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.627 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.627 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for icon_masker
2025-06-17 23:57:20.627 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: type object 'ConstructType' has no attribute 'VARIABLE'
2025-06-17 23:57:20.627 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for icon_masker
2025-06-17 23:57:20.628 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.628 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for icon_masker
2025-06-17 23:57:20.630 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.older.icon_masker
2025-06-17 23:57:20.630 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:140 - Skipping Rope analysis for module Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.older.icon_masker
2025-06-17 23:57:20.630 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.older.icon_masker
2025-06-17 23:57:20.630 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:150 - No results found for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.older.icon_masker
2025-06-17 23:57:20.630 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 0 references
2025-06-17 23:57:20.630 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.631 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.631 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.632 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.633 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.633 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.633 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.635 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.635 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.635 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for imgquart
2025-06-17 23:57:20.636 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: type object 'ConstructType' has no attribute 'VARIABLE'
2025-06-17 23:57:20.636 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for imgquart
2025-06-17 23:57:20.636 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.637 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for imgquart
2025-06-17 23:57:20.638 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 0 usage references for main
2025-06-17 23:57:20.638 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for main
2025-06-17 23:57:20.638 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:147 - Using Jedi results only for main
2025-06-17 23:57:20.638 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 4 references
2025-06-17 23:57:20.638 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.639 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 3 usage references for get_path_data_from_element
2025-06-17 23:57:20.639 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 3 references for get_path_data_from_element
2025-06-17 23:57:20.639 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.639 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.639 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.older.imgquart
2025-06-17 23:57:20.640 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:140 - Skipping Rope analysis for module Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.older.imgquart
2025-06-17 23:57:20.640 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_svg_processor.py: 'Construct' object has no attribute 'module_path'
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 1/35 constructs analyzed
2025-06-17 23:57:20.640 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.older.imgquart
2025-06-17 23:57:20.640 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:150 - No results found for Users.adam.Developer.vcs.github.fontlaborg.vexylicon.old.older.imgquart
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 2/35 constructs analyzed
2025-06-17 23:57:20.640 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_path_tools.py: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.640 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 0 references
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 3/35 constructs analyzed
2025-06-17 23:57:20.640 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/good/icon_blender.py: 'Construct' object has no attribute 'module_path'
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 4/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 5/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 6/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 7/35 constructs analyzed
2025-06-17 23:57:20.640 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of get_path_data_from_element at offset 3725
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 8/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 9/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 10/35 constructs analyzed
2025-06-17 23:57:20.641 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/icon_masker.py: 'Construct' object has no attribute 'module_path'
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 11/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 12/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 13/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 14/35 constructs analyzed
2025-06-17 23:57:20.641 | DEBUG    | uzpy.analyzer.ruff_analyzer:_file_uses_construct:176 - Failed to read /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/old/older/imgquart.py: 'Construct' object has no attribute 'module_path'
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 15/35 constructs analyzed
2025-06-17 23:57:20.641 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:106 - Ruff found 0 references
2025-06-17 23:57:20.642 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:112 - Running ast-grep analysis for slice_image
2025-06-17 23:57:20.642 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for round_match
2025-06-17 23:57:20.642 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for round_match
2025-06-17 23:57:20.643 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of round_match at offset 4670
2025-06-17 23:57:20.649 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for align_path_start
2025-06-17 23:57:20.649 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for align_path_start
2025-06-17 23:57:20.651 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of align_path_start at offset 4915
2025-06-17 23:57:20.656 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for post_process at line 83, column 4
2025-06-17 23:57:20.662 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.663 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for build_mask
2025-06-17 23:57:20.663 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.663 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for build_mask
2025-06-17 23:57:20.663 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.663 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for run_blender
2025-06-17 23:57:20.664 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.664 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for run_blender
2025-06-17 23:57:20.669 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 15 usage references for _ns
2025-06-17 23:57:20.669 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 15 references for _ns
2025-06-17 23:57:20.670 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of _ns at offset 1325
2025-06-17 23:57:20.671 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:121 - ast-grep analysis failed: 'list' object has no attribute 'get'
2025-06-17 23:57:20.671 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:127 - Running Pyright analysis for slice_image
2025-06-17 23:57:20.671 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:135 - Pyright analysis failed: 'Construct' object has no attribute 'module_path'
2025-06-17 23:57:20.671 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:140 - Using traditional analyzer fallback for slice_image
2025-06-17 23:57:20.676 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 3 usage references for generate_ring_paths
2025-06-17 23:57:20.676 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 3 references for generate_ring_paths
2025-06-17 23:57:20.676 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for generate_ring_paths
2025-06-17 23:57:20.676 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.679 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for slice_image at line 16, column 4
2025-06-17 23:57:20.688 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 8 usage references for duplicate_gradient
2025-06-17 23:57:20.689 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 8 references for duplicate_gradient
2025-06-17 23:57:20.689 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of duplicate_gradient at offset 2079
2025-06-17 23:57:20.692 | ERROR    | uzpy.analyzer.rope_analyzer:find_usages:184 - Unexpected error finding usages for _ns: Not a resolvable python identifier selected.
2025-06-17 23:57:20.692 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for _ns
2025-06-17 23:57:20.692 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:147 - Using Jedi results only for _ns
2025-06-17 23:57:20.693 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.693 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for write_variants
2025-06-17 23:57:20.693 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for write_variants
2025-06-17 23:57:20.693 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for write_variants
2025-06-17 23:57:20.693 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.695 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for build_mask at line 215, column 4
2025-06-17 23:57:20.696 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:91 - Finding references for run_blender at line 51, column 4
2025-06-17 23:57:20.714 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 3 usage references for parse_dual_contour_path
2025-06-17 23:57:20.714 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 3 references for parse_dual_contour_path
2025-06-17 23:57:20.714 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for parse_dual_contour_path
2025-06-17 23:57:20.714 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 16/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 17/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 18/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 19/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 20/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 21/35 constructs analyzed
2025-06-17 23:57:20.737 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for round_match
2025-06-17 23:57:20.738 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for round_match
2025-06-17 23:57:20.738 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for round_match
2025-06-17 23:57:20.738 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.738 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 3 usage references for get_path_data_from_element
2025-06-17 23:57:20.738 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 3 references for get_path_data_from_element
2025-06-17 23:57:20.738 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for get_path_data_from_element
2025-06-17 23:57:20.738 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.739 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for align_path_start
2025-06-17 23:57:20.739 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for align_path_start
2025-06-17 23:57:20.739 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for align_path_start
2025-06-17 23:57:20.739 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 22/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 23/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 24/35 constructs analyzed
2025-06-17 23:57:20.750 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for post_process
2025-06-17 23:57:20.750 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for post_process
2025-06-17 23:57:20.751 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for slice_image
2025-06-17 23:57:20.751 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of post_process at offset 2370
2025-06-17 23:57:20.751 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for slice_image
2025-06-17 23:57:20.751 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of slice_image at offset 240
2025-06-17 23:57:20.763 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for build_mask
2025-06-17 23:57:20.763 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for build_mask
2025-06-17 23:57:20.763 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of build_mask at offset 7796
2025-06-17 23:57:20.764 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 8 usage references for duplicate_gradient
2025-06-17 23:57:20.764 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 8 references for duplicate_gradient
2025-06-17 23:57:20.764 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for duplicate_gradient
2025-06-17 23:57:20.764 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.768 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 2 usage references for run_blender
2025-06-17 23:57:20.768 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 2 references for run_blender
2025-06-17 23:57:20.768 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of run_blender at offset 1420
2025-06-17 23:57:20.780 | DEBUG    | uzpy.analyzer.jedi_analyzer:find_usages:121 - Found 3 usage references for main
2025-06-17 23:57:20.780 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:112 - Jedi found 3 references for main
2025-06-17 23:57:20.781 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:161 - Finding usages of main at offset 10988
2025-06-17 23:57:20.789 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for slice_image
2025-06-17 23:57:20.789 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for slice_image
2025-06-17 23:57:20.789 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for slice_image
2025-06-17 23:57:20.789 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.794 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for post_process
2025-06-17 23:57:20.794 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for post_process
2025-06-17 23:57:20.794 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for post_process
2025-06-17 23:57:20.794 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.805 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for build_mask
2025-06-17 23:57:20.805 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for build_mask
2025-06-17 23:57:20.805 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for build_mask
2025-06-17 23:57:20.805 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.809 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 2 usage references for run_blender
2025-06-17 23:57:20.809 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 2 references for run_blender
2025-06-17 23:57:20.809 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:138 - Using intersection of results for run_blender
2025-06-17 23:57:20.809 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 1 references
2025-06-17 23:57:20.856 | DEBUG    | uzpy.analyzer.rope_analyzer:find_usages:179 - Found 0 usage references for main
2025-06-17 23:57:20.857 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:121 - Rope found 0 references for main
2025-06-17 23:57:20.857 | DEBUG    | uzpy.analyzer.hybrid_analyzer:find_usages:147 - Using Jedi results only for main
2025-06-17 23:57:20.857 | DEBUG    | uzpy.analyzer.modern_hybrid_analyzer:find_usages:145 - Traditional fallback found 2 references
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 25/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 26/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 27/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 28/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 29/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 30/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 31/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 32/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 33/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 34/35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m109[0m | Progress: 35/35 constructs analyzed
[1mINFO    [0m | [36muzpy.analyzer.parallel_analyzer[0m:[36m139[0m | Parallel analysis complete: 35 constructs analyzed
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m117[0m | Found usages for 27/35 constructs
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m118[0m | Total references found: 31
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m122[0m | Updating docstrings...
[1mINFO    [0m | [36muzpy.modifier.libcst_modifier[0m:[36m507[0m | Will modify 6 files
[1mINFO    [0m | [36muzpy.modifier.libcst_modifier[0m:[36m465[0m | Updated docstrings in /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/example.py
[1mINFO    [0m | [36muzpy.modifier.libcst_modifier[0m:[36m465[0m | Updated docstrings in /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py
[1mINFO    [0m | [36muzpy.modifier.libcst_modifier[0m:[36m465[0m | Updated docstrings in /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_core.py
[1mINFO    [0m | [36muzpy.pipeline[0m:[36m133[0m | Successfully updated 3/6 files
⠋ Analyzing codebase...


         Analysis Summary         
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃ Metric                 ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ Total Constructs       │ 35    │
│ Constructs with Usages │ 27    │
│ Total References Found │ 31    │
│ Usage Coverage         │ 77.1% │
└────────────────────────┴───────┘
                                                 
               Top Used Constructs               
┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Construct             ┃ Type     ┃ References ┃
┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━┩
│ main                  │ function │ 4          │
│ main                  │ function │ 2          │
│ test_version          │ function │ 1          │
│ test_basic_generation │ function │ 1          │
│ test_vexylicon_params │ function │ 1          │
└───────────────────────┴──────────┴────────────┘
find . -name *.py -exec python -m uv run autoflake -i {} +
find . -name *.py -exec python -m uv run pyupgrade --py311-plus {} +
Rewriting src/vexylicon/__version__.py
src/vexylicon/utils/path_tools.py is non-utf-8 (not supported)
find . -name *.py -exec python -m uv run ruff check --output-format=github --fix --unsafe-fixes {} +
::error title=Ruff (UP035),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/__version__.py,line=8,col=5,endLine=8,endColumn=36::src/vexylicon/__version__.py:8:5: UP035 `typing.Tuple` is deprecated, use `tuple` instead
::error title=Ruff (F401),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/__version__.py,line=8,col=24,endLine=8,endColumn=29::src/vexylicon/__version__.py:8:24: F401 `typing.Tuple` imported but unused
::error title=Ruff (F401),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/__version__.py,line=8,col=31,endLine=8,endColumn=36::src/vexylicon/__version__.py:8:31: F401 `typing.Union` imported but unused
::error title=Ruff (A004),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/cli.py,line=15,col=18,endLine=15,endColumn=23::src/vexylicon/cli.py:15:18: A004 Import `print` is shadowing a Python builtin
::error title=Ruff (A002),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/cli.py,line=39,col=9,endLine=39,endColumn=15::src/vexylicon/cli.py:39:9: A002 Function argument `format` is shadowing a Python builtin
::error title=Ruff (PLC0415),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/cli.py,line=87,col=21,endLine=87,endColumn=36::src/vexylicon/cli.py:87:21: PLC0415 `import` should be at the top-level of a file
::error title=Ruff (FBT001),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/cli.py,line=118,col=9,endLine=118,endColumn=18::src/vexylicon/cli.py:118:9: FBT001 Boolean-typed positional argument in function definition
::error title=Ruff (FBT002),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/cli.py,line=118,col=9,endLine=118,endColumn=18::src/vexylicon/cli.py:118:9: FBT002 Boolean default positional argument in function definition
::error title=Ruff (PLC0415),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/cli.py,line=212,col=13,endLine=212,endColumn=28::src/vexylicon/cli.py:212:13: PLC0415 `import` should be at the top-level of a file
::error title=Ruff (E902),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/utils/path_tools.py,line=1,col=1,endLine=1,endColumn=1::src/vexylicon/utils/path_tools.py:1:1: E902 stream did not contain valid UTF-8
::error title=Ruff (FBT001),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/utils/svg_processor.py,line=80,col=24,endLine=80,endColumn=30::src/vexylicon/utils/svg_processor.py:80:24: FBT001 Boolean-typed positional argument in function definition
::error title=Ruff (FBT002),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/utils/svg_processor.py,line=80,col=24,endLine=80,endColumn=30::src/vexylicon/utils/svg_processor.py:80:24: FBT002 Boolean default positional argument in function definition
::error title=Ruff (FBT001),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/utils/svg_processor.py,line=180,col=25,endLine=180,endColumn=37::src/vexylicon/utils/svg_processor.py:180:25: FBT001 Boolean-typed positional argument in function definition
::error title=Ruff (FBT002),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/utils/svg_processor.py,line=180,col=25,endLine=180,endColumn=37::src/vexylicon/utils/svg_processor.py:180:25: FBT002 Boolean default positional argument in function definition
::error title=Ruff (FBT001),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/utils/svg_processor.py,line=194,col=40,endLine=194,endColumn=52::src/vexylicon/utils/svg_processor.py:194:40: FBT001 Boolean-typed positional argument in function definition
::error title=Ruff (FBT002),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/utils/svg_processor.py,line=194,col=40,endLine=194,endColumn=52::src/vexylicon/utils/svg_processor.py:194:40: FBT002 Boolean default positional argument in function definition
::error title=Ruff (ARG001),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/vexylicon.py,line=27,col=35,endLine=27,endColumn=41::src/vexylicon/vexylicon.py:27:35: ARG001 Unused function argument: `config`
::error title=Ruff (PLC0415),file=/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/tests/test_package.py,line=8,col=5,endLine=8,endColumn=21::tests/test_package.py:8:5: PLC0415 `import` should be at the top-level of a file
find . -name *.py -exec python -m uv run ruff format --respect-gitignore --target-version py311 {} +
error: Failed to read src/vexylicon/utils/path_tools.py: stream did not contain valid UTF-8
1 file reformatted, 7 files left unchanged
2 files reformatted, 2 files left unchanged
python -m uv run ty check
WARN ty is pre-release software and not ready for production use. Expect to encounter bugs, missing features, and fatal errors.
error[invalid-argument-type]: Argument to function `locate_paths` is incorrect
   --> old/good/icon_blender.py:334:55
    |
332 |     root = tree.getroot()
333 |
334 |     outer_path, inner_path, small_path = locate_paths(tree, args.outer_id, args.inner_id)
    |                                                       ^^^^ Expected `ElementTree[Element[str] | None]`, found `ElementTree[Element[str]]`
335 |
336 |     print("[green]Identified outer path with dual contours")
    |
info: Function defined here
   --> old/good/icon_blender.py:275:5
    |
275 | def locate_paths(
    |     ^^^^^^^^^^^^
276 |     tree: ET.ElementTree,
    |     -------------------- Parameter declared here
277 |     outer_id: str = "outer",
278 |     inner_id: str = "inner",
    |
info: rule `invalid-argument-type` is enabled by default

error[invalid-argument-type]: Argument to function `locate_paths` is incorrect
   --> old/good/icon_blender.py:334:55
    |
332 |     root = tree.getroot()
333 |
334 |     outer_path, inner_path, small_path = locate_paths(tree, args.outer_id, args.inner_id)
    |                                                       ^^^^ Expected `ElementTree[Element[str] | None]`, found `ElementTree[Element[str]]`
335 |
336 |     print("[green]Identified outer path with dual contours")
    |
info: Function defined here
   --> old/good/icon_blender.py:275:5
    |
275 | def locate_paths(
    |     ^^^^^^^^^^^^
276 |     tree: ET.ElementTree,
    |     -------------------- Parameter declared here
277 |     outer_id: str = "outer",
278 |     inner_id: str = "inner",
    |
info: rule `invalid-argument-type` is enabled by default

error[invalid-argument-type]: Argument to function `locate_paths` is incorrect
   --> old/good/icon_blender.py:334:55
    |
332 |     root = tree.getroot()
333 |
334 |     outer_path, inner_path, small_path = locate_paths(tree, args.outer_id, args.inner_id)
    |                                                       ^^^^ Expected `ElementTree[Element[str] | None]`, found `ElementTree[Element[str]]`
335 |
336 |     print("[green]Identified outer path with dual contours")
    |
info: Function defined here
   --> old/good/icon_blender.py:275:5
    |
275 | def locate_paths(
    |     ^^^^^^^^^^^^
276 |     tree: ET.ElementTree,
    |     -------------------- Parameter declared here
277 |     outer_id: str = "outer",
278 |     inner_id: str = "inner",
    |
info: rule `invalid-argument-type` is enabled by default

error[invalid-argument-type]: Argument to function `locate_paths` is incorrect
   --> old/good/icon_blender.py:334:55
    |
332 |     root = tree.getroot()
333 |
334 |     outer_path, inner_path, small_path = locate_paths(tree, args.outer_id, args.inner_id)
    |                                                       ^^^^ Expected `ElementTree[Element[str] | None]`, found `ElementTree[Element[str]]`
335 |
336 |     print("[green]Identified outer path with dual contours")
    |
info: Function defined here
   --> old/good/icon_blender.py:275:5
    |
275 | def locate_paths(
    |     ^^^^^^^^^^^^
276 |     tree: ET.ElementTree,
    |     -------------------- Parameter declared here
277 |     outer_id: str = "outer",
278 |     inner_id: str = "inner",
    |
info: rule `invalid-argument-type` is enabled by default

error[invalid-argument-type]: Argument to function `get_path_data_from_element` is incorrect
   --> old/good/icon_blender.py:339:54
    |
338 |     # Parse the dual-contour outer path (handles both <path> and <use> elements)
339 |     outer_d = get_path_data_from_element(outer_path, tree)
    |                                                      ^^^^ Expected `ElementTree[Element[str] | None]`, found `ElementTree[Element[str]]`
340 |     if not outer_d:
341 |         sys.exit("[red]Error:[/] Outer path has no 'd' attribute or referenced path")
    |
info: Function defined here
   --> old/good/icon_blender.py:118:5
    |
118 | def get_path_data_from_element(elem: ET.Element, tree: ET.ElementTree) -> str:
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^                   -------------------- Parameter declared here
119 |     """Extract path data from either a <path> element or a <use> element that references a path.
    |
info: rule `invalid-argument-type` is enabled by default

error[no-matching-overload]: No overload of bound method `__init__` matches arguments
   --> old/good/icon_blender.py:475:11
    |
473 |         sys.exit("[red]Error:[/] Could not locate parent of inner path")
474 |
475 |     idx = list(parent).index(inner_path)
    |           ^^^^^^^^^^^^
476 |     parent.insert(idx, g)
    |
info: First overload defined here
    --> stdlib/builtins.pyi:1084:9
     |
1082 | class list(MutableSequence[_T]):
1083 |     @overload
1084 |     def __init__(self) -> None: ...
     |         ^^^^^^^^^^^^^^^^^^^^^^
1085 |     @overload
1086 |     def __init__(self, iterable: Iterable[_T], /) -> None: ...
     |
info: Possible overloads for bound method `__init__`:
info:   (self) -> None
info:   (self, iterable: Iterable[_T], /) -> None
info: rule `no-matching-overload` is enabled by default

warning[possibly-unbound-attribute]: Attribute `insert` on type `None | Element[str]` is possibly unbound
   --> old/good/icon_blender.py:476:5
    |
475 |     idx = list(parent).index(inner_path)
476 |     parent.insert(idx, g)
    |     ^^^^^^^^^^^^^
477 |
478 |     # Process small path if it exists and has dual contours
    |
info: rule `possibly-unbound-attribute` is enabled by default

error[invalid-argument-type]: Argument to function `get_path_data_from_element` is incorrect
   --> old/good/icon_blender.py:480:58
    |
478 |     # Process small path if it exists and has dual contours
479 |     if small_path is not None:
480 |         small_d = get_path_data_from_element(small_path, tree)
    |                                                          ^^^^ Expected `ElementTree[Element[str] | None]`, found `ElementTree[Element[str]]`
481 |         if small_d and " M " in small_d:
482 |             print("[green]Processing small path with dual contours")
    |
info: Function defined here
   --> old/good/icon_blender.py:118:5
    |
118 | def get_path_data_from_element(elem: ET.Element, tree: ET.ElementTree) -> str:
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^                   -------------------- Parameter declared here
119 |     """Extract path data from either a <path> element or a <use> element that references a path.
    |
info: rule `invalid-argument-type` is enabled by default

error[unresolved-import]: Cannot resolve imported module `icon_blender`
  --> old/older/icon_masker.py:38:8
   |
36 | # Ensure we can import sibling cli
37 | sys.path.append(str(FsPath(__file__).resolve().parent.parent))
38 | import icon_blender  # noqa: E402
   |        ^^^^^^^^^^^^
39 |
40 | NS = "http://www.w3.org/2000/svg"
   |
info: make sure your Python environment is properly configured: https://github.com/astral-sh/ty/blob/main/docs/README.md#python-environment
info: rule `unresolved-import` is enabled by default

error[invalid-return-type]: Return type does not match returned value
  --> old/older/icon_masker.py:70:12
   |
68 |     tree = ET.parse(tmp_path)
69 |     tmp_path.unlink(missing_ok=True)
70 |     return tree
   |            ^^^^ expected `ElementTree[Element[str] | None]`, found `ElementTree[Element[str]]`
   |
  ::: old/older/icon_masker.py:51:45
   |
51 | def run_blender(src: FsPath, steps: int) -> ET.ElementTree:
   |                                             -------------- Expected `ElementTree[Element[str] | None]` because of return type
52 |     """Invoke icon_blender.main() and return parsed ElementTree of result.
   |
info: rule `invalid-return-type` is enabled by default

warning[possibly-unbound-attribute]: Attribute `find` on type `Element[str] | None` is possibly unbound
  --> old/older/icon_masker.py:88:12
   |
87 |     # 1. Collect <defs> (create if missing)
88 |     defs = root.find(_ns("defs"))
   |            ^^^^^^^^^
89 |     if defs is None:
90 |         defs = ET.SubElement(root, _ns("defs"))
   |
info: rule `possibly-unbound-attribute` is enabled by default

error[invalid-argument-type]: Argument to function `SubElement` is incorrect
  --> old/older/icon_masker.py:90:30
   |
88 |     defs = root.find(_ns("defs"))
89 |     if defs is None:
90 |         defs = ET.SubElement(root, _ns("defs"))
   |                              ^^^^ Expected `Element[str]`, found `Element[str] | None`
91 |
92 |     # Rename existing gradients to *-light and duplicate for *-dark ---------
   |
info: Function defined here
   --> stdlib/xml/etree/ElementTree.pyi:140:5
    |
138 |     def __bool__(self) -> bool: ...
139 |
140 | def SubElement(parent: Element, tag: str, attrib: dict[str, str] = ..., **extra: str) -> Element: ...
    |     ^^^^^^^^^^ --------------- Parameter declared here
141 | def Comment(text: str | None = None) -> _CallableElement: ...
142 | def ProcessingInstruction(target: str, text: str | None = None) -> _CallableElement: ...
    |
info: rule `invalid-argument-type` is enabled by default

warning[possibly-unbound-attribute]: Attribute `find` on type `Element[str] | None` is possibly unbound
   --> old/older/icon_masker.py:128:13
    |
127 |     # 2. Insert clipPath ----------------------------------------------------
128 |     inner = root.find(f".//{_ns('path')}[@id='inner']")
    |             ^^^^^^^^^
129 |     if inner is None:
130 |         raise SystemExit("[red]Could not locate path with id='inner'")
    |
info: rule `possibly-unbound-attribute` is enabled by default

warning[possibly-unbound-attribute]: Attribute `extend` on type `Element[str] | None` is possibly unbound
   --> old/older/icon_masker.py:189:5
    |
188 |     # 6. Append new groups at end of root -----------------------------------
189 |     root.extend([light_grp, dark_grp, payload_svg_grp])
    |     ^^^^^^^^^^^
190 |
191 |     return tree
    |
info: rule `possibly-unbound-attribute` is enabled by default

error[unresolved-import]: Cannot resolve imported module `PIL`
  --> old/older/imgquart.py:12:6
   |
11 | import fire
12 | from PIL import Image
   |      ^^^
13 | import os
   |
info: make sure your Python environment is properly configured: https://github.com/astral-sh/ty/blob/main/docs/README.md#python-environment
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Cannot resolve imported module `cairosvg`
  --> src/vexylicon/cli.py:87:28
   |
85 |                 # Convert to PNG using cairosvg
86 |                 try:
87 |                     import cairosvg
   |                            ^^^^^^^^
88 |
89 |                     output_path = output_path.with_suffix(".png")
   |
info: make sure your Python environment is properly configured: https://github.com/astral-sh/ty/blob/main/docs/README.md#python-environment
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Cannot resolve imported module `cairosvg`
   --> src/vexylicon/cli.py:212:20
    |
210 |         """
211 |         try:
212 |             import cairosvg
    |                    ^^^^^^^^
213 |         except ImportError:
214 |             print("[red]Error: Preview requires cairosvg. Install with: pip install cairosvg")
    |
info: make sure your Python environment is properly configured: https://github.com/astral-sh/ty/blob/main/docs/README.md#python-environment
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Module `lxml` has no member `etree`
  --> src/vexylicon/core.py:16:18
   |
14 | from pathlib import Path
15 |
16 | from lxml import etree
   |                  ^^^^^
17 |
18 | from vexylicon.utils import (
   |
info: rule `unresolved-import` is enabled by default

warning[possibly-unbound-attribute]: Attribute `append` on type `Unknown | None` is possibly unbound
   --> src/vexylicon/core.py:176:13
    |
174 |                 fill="none",
175 |             )
176 |             processor.get_defs().append(inner_path_elem)
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
177 |
178 |         # Create bevel steps group
    |
info: rule `possibly-unbound-attribute` is enabled by default

warning[possibly-unbound-attribute]: Attribute `append` on type `Unknown | None` is possibly unbound
   --> src/vexylicon/core.py:219:21
    |
217 |                     blur_elem = processor.create_element("feGaussianBlur", stdDeviation=f"{self.params.blur}")
218 |                     blur_filter.append(blur_elem)
219 |                     defs.append(blur_filter)
    |                     ^^^^^^^^^^^
220 |
221 |                 # Apply filter to step
    |
info: rule `possibly-unbound-attribute` is enabled by default

warning[possibly-unbound-attribute]: Attribute `append` on type `Unknown | None` is possibly unbound
   --> src/vexylicon/core.py:345:17
    |
343 |                 clip_use = processor.create_element("use", href="#borderShape")
344 |                 clip_path.append(clip_use)
345 |                 defs.append(clip_path)
    |                 ^^^^^^^^^^^
346 |
347 |     def _inject_payload(self, processor: SVGProcessor, payload_svg: Path | str) -> None:
    |
info: rule `possibly-unbound-attribute` is enabled by default

error[unresolved-import]: Module `vexylicon.utils.path_tools` has no member `align_path_start`
 --> src/vexylicon/utils/__init__.py:6:5
  |
5 | from vexylicon.utils.path_tools import (
6 |     align_path_start,
  |     ^^^^^^^^^^^^^^^^
7 |     generate_ring_paths,
8 |     interpolate_segment,
  |
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Module `vexylicon.utils.path_tools` has no member `generate_ring_paths`
 --> src/vexylicon/utils/__init__.py:7:5
  |
5 | from vexylicon.utils.path_tools import (
6 |     align_path_start,
7 |     generate_ring_paths,
  |     ^^^^^^^^^^^^^^^^^^^
8 |     interpolate_segment,
9 |     parse_dual_contour_path,
  |
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Module `vexylicon.utils.path_tools` has no member `interpolate_segment`
  --> src/vexylicon/utils/__init__.py:8:5
   |
 6 |     align_path_start,
 7 |     generate_ring_paths,
 8 |     interpolate_segment,
   |     ^^^^^^^^^^^^^^^^^^^
 9 |     parse_dual_contour_path,
10 |     path_bbox,
   |
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Module `vexylicon.utils.path_tools` has no member `parse_dual_contour_path`
  --> src/vexylicon/utils/__init__.py:9:5
   |
 7 |     generate_ring_paths,
 8 |     interpolate_segment,
 9 |     parse_dual_contour_path,
   |     ^^^^^^^^^^^^^^^^^^^^^^^
10 |     path_bbox,
11 |     round_svg_coordinates,
   |
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Module `vexylicon.utils.path_tools` has no member `path_bbox`
  --> src/vexylicon/utils/__init__.py:10:5
   |
 8 |     interpolate_segment,
 9 |     parse_dual_contour_path,
10 |     path_bbox,
   |     ^^^^^^^^^
11 |     round_svg_coordinates,
12 |     to_cubic_list,
   |
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Module `vexylicon.utils.path_tools` has no member `round_svg_coordinates`
  --> src/vexylicon/utils/__init__.py:11:5
   |
 9 |     parse_dual_contour_path,
10 |     path_bbox,
11 |     round_svg_coordinates,
   |     ^^^^^^^^^^^^^^^^^^^^^
12 |     to_cubic_list,
13 | )
   |
info: rule `unresolved-import` is enabled by default

error[unresolved-import]: Module `vexylicon.utils.path_tools` has no member `to_cubic_list`
  --> src/vexylicon/utils/__init__.py:12:5
   |
10 |     path_bbox,
11 |     round_svg_coordinates,
12 |     to_cubic_list,
   |     ^^^^^^^^^^^^^
13 | )
14 | from vexylicon.utils.svg_processor import SVGProcessor
   |
info: rule `unresolved-import` is enabled by default

error[io]: Failed to read file: stream did not contain valid UTF-8
--> src/vexylicon/utils/path_tools.py:1:1
 |
 |

error[unresolved-import]: Module `lxml` has no member `etree`
  --> src/vexylicon/utils/svg_processor.py:14:18
   |
12 | from pathlib import Path
13 |
14 | from lxml import etree
   |                  ^^^^^
15 |
16 | # SVG namespace
   |
info: rule `unresolved-import` is enabled by default

error[missing-argument]: No arguments provided for required parameters `canvas`, `border`
   --> src/vexylicon/utils/theme_loader.py:118:22
    |
116 |         # Convert nested structures to dataclasses if necessary
117 |         if not isinstance(colors, ThemeColors):
118 |             colors = ThemeColors(**colors)
    |                      ^^^^^^^^^^^^^^^^^^^^^
119 |         if not isinstance(effects, ThemeEffects):
120 |             effects = ThemeEffects(**effects)
    |
info: rule `missing-argument` is enabled by default

Found 31 diagnostics
python -m uv run mypy --config-file pyproject.toml src/imgcolorshine tests
mypy: can't read file 'src/imgcolorshine': No such file or directory
npx repomix -i varia,.specstory,AGENT.md,CLAUDE.md,PLAN.md,SPEC.md,llms.txt,.cursorrules,docs -o llms.txt .

📦 Repomix v0.3.7

No custom config found at repomix.config.json or global config at /Users/adam/.config/repomix/repomix.config.json.
You can add a config file for additional settings. Please check https://github.com/yamadashy/repomix for more information.
⠙ Collecting files...
[2K[1A[2K[G⠹ Collecting files...
[2K[1A[2K[G⠸ Collect file... (9/75) old/good/best.svg
[2K[1A[2K[G⠼ Collect file... (38/75) testdata/glass_payload_high.png
[2K[1A[2K[G⠴ Collect file... (66/75) cleanup.sh
[2K[1A[2K[G⠦ Running security check...
[2K[1A[2K[G⠧ Running security check... (24/54) testdata/example.py
[2K[1A[2K[G⠇ Running security check... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠏ Running security check... (40/54) tests/test_core.py
[2K[1A[2K[G⠋ Processing files...
[2K[1A[2K[G⠙ Generating output...
[2K[1A[2K[G⠹ Writing output file...
[2K[1A[2K[G⠸ Writing output file...
[2K[1A[2K[G⠼ Calculating metrics...
[2K[1A[2K[G⠴ Calculating metrics...
[2K[1A[2K[G⠦ Calculating metrics...
[2K[1A[2K[G⠧ Calculating metrics...
[2K[1A[2K[G⠇ Calculating metrics...
[2K[1A[2K[G⠏ Calculating metrics...
[2K[1A[2K[G⠋ Calculating metrics...
[2K[1A[2K[G⠙ Calculating metrics...
[2K[1A[2K[G⠹ Calculating metrics... (5/54) old/good/best_base.svg
[2K[1A[2K[G⠸ Calculating metrics... (21/54) src/vexylicon/cli.py
[2K[1A[2K[G⠼ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠴ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠦ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠧ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠇ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠏ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠋ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠙ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠹ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠸ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠼ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠴ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠦ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠧ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠇ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠏ Calculating metrics... (24/54) testdata/example.py
[2K[1A[2K[G⠋ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠙ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠹ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠸ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠼ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠴ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠦ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠧ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠇ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠏ Calculating metrics... (25/54) testdata/glass_blur_heavy_blur.svg
[2K[1A[2K[G⠋ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠙ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠹ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠸ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠼ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠴ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠦ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠧ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠇ Calculating metrics... (26/54) testdata/glass_blur_light_blur.svg
[2K[1A[2K[G⠏ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠋ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠙ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠹ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠸ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠼ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠴ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠦ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠧ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠇ Calculating metrics... (27/54) testdata/glass_blur_medium_blur.svg
[2K[1A[2K[G⠏ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠋ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠙ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠹ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠸ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠼ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠴ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠦ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠧ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠇ Calculating metrics... (28/54) testdata/glass_blur_no_blur.svg
[2K[1A[2K[G⠏ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠋ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠙ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠹ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠸ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠼ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠴ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠦ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠧ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠇ Calculating metrics... (29/54) testdata/glass_payload_high.svg
[2K[1A[2K[G⠏ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠋ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠙ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠹ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠸ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠼ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠴ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠦ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠧ Calculating metrics... (30/54) testdata/glass_payload_low.svg
[2K[1A[2K[G⠇ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠏ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠋ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠙ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠹ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠸ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠼ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠴ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠦ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠧ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠇ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠏ Calculating metrics... (31/54) testdata/glass_payload_medium.svg
[2K[1A[2K[G⠋ Calculating metrics... (33/54) testdata/glass_plain_bkg.svg
[2K[1A[2K[G⠙ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠹ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠸ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠼ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠴ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠦ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠧ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠇ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠏ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠋ Calculating metrics... (34/54) testdata/glass_plain.svg
[2K[1A[2K[G⠙ Calculating metrics... (35/54) testdata/glass_with_payload.svg
[2K[1A[2K[G⠹ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠸ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠼ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠴ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠦ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠧ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠇ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠏ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠋ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠙ Calculating metrics... (36/54) testdata/old.svg
[2K[1A[2K[G⠹ Calculating metrics... (45/54) CHANGELOG.md
[2K[1A[2K[G⠸ Calculating metrics... (46/54) cleanup.sh
[2K[1A[2K[G⠼ Calculating metrics... (52/54) pyrightconfig.json
[2K[1A[2K[G✔ Packing completed successfully!

📈 Top 5 Files by Character Count and Token Count:
──────────────────────────────────────────────────
1.  testdata/glass_payload_ultra.svg (811,281 chars, 660,962 tokens, 9.9%)
2.  testdata/glass_payload_high.svg (793,529 chars, 650,858 tokens, 9.8%)
3.  testdata/glass_with_payload.svg (793,529 chars, 650,858 tokens, 9.8%)
4.  testdata/glass_blur_heavy_blur.svg (777,788 chars, 641,127 tokens, 9.6%)
5.  testdata/glass_blur_light_blur.svg (777,788 chars, 641,127 tokens, 9.6%)

🔎 Security Check:
──────────────────
✔ No suspicious files detected.

📊 Pack Summary:
────────────────
  Total Files: 54 files
  Total Chars: 8,373,847 chars
 Total Tokens: 6,660,590 tokens
       Output: llms.txt
     Security: ✔ No suspicious files detected

🎉 All Done!
Your repository has been successfully packed.

💡 Repomix is now available in your browser! Try it at https://repomix.com
python -m uv run hatch test
============================= test session starts ==============================
platform darwin -- Python 3.12.8, pytest-8.4.0, pluggy-1.6.0 -- /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/.venv/bin/python3
cachedir: .pytest_cache
benchmark: 5.1.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon
configfile: pyproject.toml
plugins: xdist-3.7.0, cov-6.2.1, benchmark-5.1.0, asyncio-1.0.0
asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function
collecting ... collected 7 items

tests/test_core.py::test_vexylicon_generator_creation PASSED             [ 14%]
tests/test_core.py::test_vexylicon_params PASSED                         [ 28%]
tests/test_core.py::test_quality_presets PASSED                          [ 42%]
tests/test_core.py::test_basic_generation PASSED                         [ 57%]
tests/test_core.py::test_invalid_svg_handling PASSED                     [ 71%]
tests/test_core.py::test_opacity_calculation PASSED                      [ 85%]
tests/test_package.py::test_version PASSED                               [100%]

=============================== warnings summary ===============================
tests/test_core.py::test_basic_generation
tests/test_core.py::test_invalid_svg_handling
  /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/core.py:191: FutureWarning: Truth-testing of elements was a source of confusion and will always return True in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.
    target_elem = outer_use or main_shape

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================= slowest 10 durations =============================
0.02s call     tests/test_core.py::test_basic_generation
0.01s call     tests/test_core.py::test_invalid_svg_handling

(8 durations < 0.005s hidden.  Use -vv to show these durations.)
======================== 7 passed, 2 warnings in 1.19s =========================
=== Cleanup completed at Tue Jun 17 23:57:41 CEST 2025 ===
Identified outer path with dual contours
Split into outer and inner contours
Set canvas fill to gray
Set back fill to url(#baseFill)
Removed border layer
Applied opacity 0.042 to outer path
More Exponential bevel opacity: 0.042 → 1.000
Glass mode: using blend modes for transparency effect
Processing small path with dual contours
Applied opacity 0.042 to small path
Added 23 bevel steps for small path
Wrote glass-effect blended SVG → ./testdata/old.svg
/Users/adam/Developer/vcs/github.fontlaborg/vexylicon/src/vexylicon/core.py:191: FutureWarning: Truth-testing of elements was a source of confusion and will always return True in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.
  target_elem = outer_use or main_shape
Generating glass effect with payload SVG...
✓ Generated glass effect saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_with_payload.svg

Generating glass effect without payload...
✓ Plain glass effect saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_plain.svg

Generating quality variants...
✓ Low quality (8 steps) saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_payload_low.svg
✓ Medium quality (16 steps) saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_payload_medium.svg
✓ High quality (24 steps) saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_payload_high.svg
✓ Ultra quality (32 steps) saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_payload_ultra.svg

Generating blur variants...
✓ No Blur (no blur) saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_blur_no_blur.svg
✓ Light Blur (blur=1.0) saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_blur_light_blur.svg
✓ Medium Blur (blur=2.0) saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_blur_medium_blur.svg
✓ Heavy Blur (blur=3.5) saved to: /Users/adam/Developer/vcs/github.fontlaborg/vexylicon/testdata/glass_blur_heavy_blur.svg

✅ All examples generated successfully!

To view in browser, open test.html
Converting ./old/older/payload.svg → ./old/older/payload.png (1200px)
✅ Done: ./old/older/payload.png
Converting ./old/good/best_base copy.svg → ./old/good/best_base copy.png (1200px)
✅ Done: ./old/good/best_base copy.png
Converting ./src/vexylicon/assets/best_base.svg → ./src/vexylicon/assets/best_base.png (1200px)
✅ Done: ./src/vexylicon/assets/best_base.png
Converting ./old/good/best_base.svg → ./old/good/best_base.png (1200px)
✅ Done: ./old/good/best_base.png
Converting ./testdata/payload.svg → ./testdata/payload.png (1200px)
✅ Done: ./testdata/payload.png
Converting ./output.svg → ./output.png (1200px)
✅ Done: ./output.png
Converting ./testdata/glass_plain_bkg.svg → ./testdata/glass_plain_bkg.png (1200px)
✅ Done: ./testdata/glass_plain_bkg.png
Converting ./testdata/glass_payload_low.svg → ./testdata/glass_payload_low.png (1200px)
✅ Done: ./testdata/glass_payload_low.png
Converting ./testdata/old.svg → ./testdata/old.png (1200px)
✅ Done: ./testdata/old.png
Converting ./old/good/best.svg → ./old/good/best.png (1200px)
✅ Done: ./old/good/best.png
Converting ./testdata/glass_plain.svg → ./testdata/glass_plain.png (1200px)
✅ Done: ./testdata/glass_plain.png
Converting ./testdata/glass_payload_medium.svg → ./testdata/glass_payload_medium.png (1200px)
✅ Done: ./testdata/glass_payload_medium.png
Converting ./testdata/glass_blur_no_blur.svg → ./testdata/glass_blur_no_blur.png (1200px)
✅ Done: ./testdata/glass_blur_no_blur.png
Converting ./testdata/glass_payload_ultra.svg → ./testdata/glass_payload_ultra.png (1200px)
✅ Done: ./testdata/glass_payload_ultra.png
Converting ./testdata/glass_payload_high.svg → ./testdata/glass_payload_high.png (1200px)
✅ Done: ./testdata/glass_payload_high.png
Converting ./testdata/glass_with_payload.svg → ./testdata/glass_with_payload.png (1200px)
✅ Done: ./testdata/glass_with_payload.png
Converting ./testdata/glass_blur_heavy_blur.svg → ./testdata/glass_blur_heavy_blur.png (1200px)
✅ Done: ./testdata/glass_blur_heavy_blur.png
Converting ./testdata/glass_blur_light_blur.svg → ./testdata/glass_blur_light_blur.png (1200px)
✅ Done: ./testdata/glass_blur_light_blur.png
Converting ./testdata/glass_blur_medium_blur.svg → ./testdata/glass_blur_medium_blur.png (1200px)
✅ Done: ./testdata/glass_blur_medium_blur.png
=== Release process started for version v1.4.0 ===
python -m uv run hatch clean
git add .
git commit -m "Release v1.4.0"
[main 8f3ca03] Release v1.4.0
 25 files changed, 21167 insertions(+), 20598 deletions(-)
git tag v1.4.0
git push
To https://github.com/fontlaborg/vexylicon.git
   f9171c9..8f3ca03  main -> main
git push --tags
To https://github.com/fontlaborg/vexylicon.git
 * [new tag]         v1.1.0 -> v1.1.0
 * [new tag]         v1.1.1 -> v1.1.1
 * [new tag]         v1.1.3 -> v1.1.3
 * [new tag]         v1.1.4 -> v1.1.4
 * [new tag]         v1.3.0 -> v1.3.0
 * [new tag]         v1.4.0 -> v1.4.0
python -m uv run hatch build
─────────────────────────────────────────────────────────── sdist ───────────────────────────────────────────────────────────
dist/vexylicon-1.4.1.dev0+g8f3ca03.d20250617.tar.gz
─────────────────────────────────────────────────────────── wheel ───────────────────────────────────────────────────────────
dist/vexylicon-1.4.1.dev0+g8f3ca03.d20250617-py3-none-any.whl
python -m uv run hatch publish
dist/vexylicon-1.4.1.dev0+g8f3ca03.d20250617-py3-none-any.whl ... failed
Error uploading to repository: https://upload.pypi.org/legacy/ - Client error '400 The use of local versions in <Version('1.4.1.dev0+g8f3ca03.d20250617')> is not allowed. See https://packaging.python.org/specifications/core-metadata for more information.' for url 'https://upload.pypi.org/legacy/'
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
=== Release v1.4.0 completed at Tue Jun 17 23:58:44 CEST 2025 ===
