|
|
|
@@ -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 |
|
|
|
|