Skip to content
This repository was archived by the owner on Dec 20, 2021. It is now read-only.

Commit 6a7151a

Browse files
committed
Try auto-set all non-hardcoded attributes
1 parent e4dd814 commit 6a7151a

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

vrcpy/baseobject.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ def _assign(self, obj):
2525
self._object_integrety(obj)
2626
self.raw = obj
2727

28+
applied_keys = []
29+
2830
for key in self.required:
2931
myobj = self._get_proper_obj(
3032
obj[self.required[key]["dict_key"]],
@@ -37,6 +39,8 @@ def _assign(self, obj):
3739
myobj
3840
)
3941

42+
applied_keys.append(self.required[key]["dict_key"])
43+
4044
for key in self.optional:
4145
if self.optional[key]["dict_key"] in obj:
4246
setattr(
@@ -50,13 +54,34 @@ def _assign(self, obj):
5054
else:
5155
setattr(self, key, None)
5256

57+
applied_keys.append(self.optional[key]["dict_key"])
58+
59+
for key in obj:
60+
if key not in applied_keys:
61+
attr_name = ""
62+
63+
# Try auto-fix keys
64+
for char in key:
65+
if char == char.upper() and not char.upper() == char.lower():
66+
attr_name += "_" + char.lower()
67+
continue
68+
69+
attr_name += char
70+
71+
setattr(
72+
self,
73+
attr_name,
74+
obj[key]
75+
)
76+
5377
if hasattr(self, "__cinit__"):
5478
self.caching_finished = False
5579
self.cache_task = self.loop.create_task(self.__cinit__())
5680

5781
# Save yo memory fool
5882
del self.required
5983
del self.optional
84+
del applied_keys
6085

6186
def _object_integrety(self, obj):
6287
for key in self.required:

0 commit comments

Comments
 (0)