Compare commits

...

2 Commits

Author SHA1 Message Date
-LAN-
6d337a877e fix(variable_pool): ensure compatibility with Python versions before 3.12
- Adjusted attribute check to use a set comprehension for compatibility.
- Prevents errors in environments running Python versions older than 3.12.
2024-10-22 23:45:48 +08:00
-LAN-
479d3e9866 fix(variable_pool): handle invalid attributes in variable lookup
- Return None if attribute is not in FileAttribute when fetching a variable.
- Prevent errors by checking FileSegment instance before processing attributes.
2024-10-22 16:51:14 +08:00

View File

@@ -124,11 +124,15 @@ class VariablePool(BaseModel):
if value is None:
selector, attr = selector[:-1], selector[-1]
# Python support `attr in FileAttribute` after 3.12
if attr not in {item.value for item in FileAttribute}:
return None
value = self.get(selector)
if isinstance(value, FileSegment):
attr = FileAttribute(attr)
attr_value = file_manager.get_attr(file=value.value, attr=attr)
return variable_factory.build_segment(attr_value)
if not isinstance(value, FileSegment):
return None
attr = FileAttribute(attr)
attr_value = file_manager.get_attr(file=value.value, attr=attr)
return variable_factory.build_segment(attr_value)
return value