This repository was archived by the owner on Dec 20, 2021. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed
Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff 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 :
You can’t perform that action at this time.
0 commit comments