Skip to content

Claude/check 3dblox parser 01 kxe aw7 jiu lc nm s bm jm fuwh#3

Merged
cclin0817 merged 2 commits into
masterfrom
claude/check-3dblox-parser-01KXEAw7JiuLCNmSBmJmFUWH
Nov 20, 2025
Merged

Claude/check 3dblox parser 01 kxe aw7 jiu lc nm s bm jm fuwh#3
cclin0817 merged 2 commits into
masterfrom
claude/check-3dblox-parser-01KXEAw7JiuLCNmSBmJmFUWH

Conversation

@cclin0817
Copy link
Copy Markdown
Owner

No description provided.

Documented 3 bugs and 1 limitation found in the py3dblox parser:
- Bug #1: None/null values converted to string "None"
- Bug #2: Wildcard paths only work in filename
- Bug #3: Missing validation for required non-null values
- Limitation: cad_layer field not implemented

The most critical issue is Bug #1 which causes data corruption.
…to "None" string

After comparing with the C++ reference implementation, identified and fixed
one critical bug where YAML null values (~) were being converted to the
string "None" instead of being preserved as Python None objects.

Changes:
- Updated base_parser.py extract_value() to check for None before type conversion
- Replaced all str() conversions with extract_value() calls throughout the codebase
- Updated Connection type annotations to allow str | None for top/bot fields
- Added proper None handling in dbx_parser.py and dbv_parser.py

Verified against C++ test expectations (Test3DBloxParser.cpp:111) which
confirms that connection->getBottomRegion() should be nullptr when bot: ~.

Also clarified in bug report that two other identified issues were NOT bugs:
- Wildcard path limitation is consistent with C++ implementation
- Null values in "required" fields are intentional per specification

All parsers tested successfully with example files.
@cclin0817 cclin0817 merged commit 809079f into master Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants