Skip to content

Commit 4c459f8

Browse files
author
Patrick J. McNerthney
committed
More fine tuning of trimming full names of fields involved with unknown assignments.
1 parent d21b9c8 commit 4c459f8

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

crossplane/pythonic/function.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,15 @@ def trimFullName(self, name):
236236
('request', 'extra_resources', None, 'items', 'resource'),
237237
('response', 'desired', 'resources', None, 'resource'),
238238
):
239-
if len(values) <= len(name):
240-
for ix, value in enumerate(values):
241-
if value and value != name[ix] and not name[ix].startswith(f"{value}["):
242-
break
239+
if len(values) < len(name):
240+
ix = 0
241+
for iv, value in enumerate(values):
242+
if value:
243+
if value != name[ix]:
244+
if not name[ix].startswith(f"{values[iv]}[") or iv+1 >= len(values) or values[iv+1]:
245+
break
246+
continue
247+
ix += 1
243248
else:
244249
ix = 0
245250
for value in values:
@@ -251,7 +256,6 @@ def trimFullName(self, name):
251256
del name[ix]
252257
else:
253258
name[ix] = name[ix][len(value):]
254-
ix += 1
255259
else:
256260
ix += 1
257261
break

crossplane/pythonic/protobuf.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,10 @@ def _fullName(self, key=None):
147147
else:
148148
name = str(self._key)
149149
if key is not None:
150-
if key.isidentifier():
151-
name += f".{key}"
150+
if '.' in key:
151+
name += f"[{key}]"
152152
else:
153-
name += f"['{key}']"
153+
name += f".{key}"
154154
return name
155155
if key is not None:
156156
return str(key)
@@ -294,10 +294,10 @@ def _fullName(self, key=None):
294294
else:
295295
name = str(self._key)
296296
if key is not None:
297-
if key.isidentifier():
298-
name += f".{key}"
297+
if '.' in key:
298+
name += f"[{key}]"
299299
else:
300-
name += f"['{key}']"
300+
name += f".{key}"
301301
return name
302302
if key is not None:
303303
return str(key)
@@ -638,10 +638,10 @@ def _fullName(self, key=None):
638638
if isinstance(key, int):
639639
name += f"[{key}]"
640640
else:
641-
if key.isidentifier():
642-
name += f".{key}"
641+
if '.' in key:
642+
name += f"[{key}]"
643643
else:
644-
name += f"['{key}']"
644+
name += f".{key}"
645645
return name
646646
if key is not None:
647647
return str(key)

0 commit comments

Comments
 (0)