fix(layout): add id2label to LayoutConfig and guard missing label_task_mapping#104
fix(layout): add id2label to LayoutConfig and guard missing label_task_mapping#104Manitchahar wants to merge 3 commits intozai-org:mainfrom
id2label to LayoutConfig and guard missing label_task_mapping#104Conversation
There was a problem hiding this comment.
Pull request overview
This PR fixes two layout-mode crashes when using custom config files by adding the missing id2label field to LayoutConfig and adding a guard for missing label_task_mapping in the layout detector initialization.
Changes:
- Added
id2labelfield toLayoutConfigto prevent AttributeError when readingconfig.id2label - Added guard in
layout_detector.pyto handle missinglabel_task_mappingwith a sensible default fallback
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| glmocr/config.py | Adds id2label field to LayoutConfig class definition |
| glmocr/layout/layout_detector.py | Adds guard to handle missing label_task_mapping with default fallback to text task type |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Just fyi looks like there are new upstream changes to main that removed some dependencies needed for your branch to run. I had to to add |
|
这个PR啥时候可以合并呢?这是一个比较明确的bug,我也遇到了: |
d2a4edb to
51b19d1
Compare
|
Rebased onto current upstream main, added regression tests for missing id2label / default label_task_mapping, and full pytest passes locally (124 passed, 23 skipped). |
What this PR does
Fixes two layout-mode crashes when using custom config files:
LayoutConfigdid not declareid2label, butglmocr/layout/layout_detector.pyreads
config.id2label.id2label: Optional[Dict[Union[int, str], str]] = Noneinglmocr/config.py.layout_detector.pyassumedlabel_task_mappingis always present and called.items()on it.start()to fallback when missing:label_task_mapping = {"text": list(self.id2label.values())}Reproduction
id2labelandlabel_task_mapping.glmocr parse "image.png" --config custom.yamlAttributeErrorcrash. After: pipeline continues safely.Files changed
glmocr/config.py(+1 line)glmocr/layout/layout_detector.py(+5 lines)Notes
Scope is intentionally minimal (2 files only), with no behavior change unless those config fields are missing.