-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Expand file tree
/
Copy pathapi_client_dict_syntax.diff
More file actions
28 lines (27 loc) · 1.22 KB
/
api_client_dict_syntax.diff
File metadata and controls
28 lines (27 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
--- a/kubernetes/client/api_client.py 2025-11-01 14:37:47
+++ b/kubernetes/client/api_client.py 2025-11-01 15:54:48
@@ -285,6 +285,25 @@
return {k: self.__deserialize(v, sub_kls)
for k, v in six.iteritems(data)}
+ if klass.startswith('dict[') and klass.endswith(']'):
+ # Parse dict[key_type, value_type] respecting nested brackets
+ inner = klass[len('dict['):-1]
+ bracket_depth = 0
+ comma_pos = -1
+ for i, char in enumerate(inner):
+ if char in '([{':
+ bracket_depth += 1
+ elif char in ')]}':
+ bracket_depth -= 1
+ elif char == ',' and bracket_depth == 0:
+ comma_pos = i
+ break
+
+ if comma_pos != -1:
+ value_type = inner[comma_pos + 1:].strip()
+ return {k: self.__deserialize(v, value_type)
+ for k, v in six.iteritems(data)}
+
# convert str to class
if klass in self.NATIVE_TYPES_MAPPING:
klass = self.NATIVE_TYPES_MAPPING[klass]