MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / _extract_value

Method _extract_value

bindings/python/graphlite/graphlite.py:58–85  ·  view source on GitHub ↗

Extract value from Rust enum wrapper like {'String': 'foo'} or {'Number': 42}

(self, value_wrapper: Any)

Source from the content-addressed store, hash-verified

56 return flattened
57
58 def _extract_value(self, value_wrapper: Any) -> Any:
59 """Extract value from Rust enum wrapper like {'String': 'foo'} or {'Number': 42}"""
60 if not isinstance(value_wrapper, dict):
61 return value_wrapper
62
63 # Handle Rust enum variants
64 if "String" in value_wrapper:
65 return value_wrapper["String"]
66 elif "Number" in value_wrapper:
67 num = value_wrapper["Number"]
68 # Convert to int if it's a whole number
69 return int(num) if isinstance(num, float) and num.is_integer() else num
70 elif "Boolean" in value_wrapper:
71 return value_wrapper["Boolean"]
72 elif "Null" in value_wrapper:
73 return None
74 elif "List" in value_wrapper:
75 return [self._extract_value(v) for v in value_wrapper["List"]]
76 elif "Map" in value_wrapper:
77 return {k: self._extract_value(v) for k, v in value_wrapper["Map"].items()}
78 elif "Node" in value_wrapper:
79 return value_wrapper # Return node reference as-is
80 elif "Edge" in value_wrapper:
81 return value_wrapper # Return edge reference as-is
82 elif "Path" in value_wrapper:
83 return value_wrapper # Return path as-is
84 else:
85 return value_wrapper
86
87 def __repr__(self):
88 return f"QueryResult(rows={self.row_count}, variables={self.variables})"

Callers 1

_flatten_rowMethod · 0.95

Calls 1

itemsMethod · 0.80

Tested by

no test coverage detected