@@ -766,10 +766,7 @@ def from_directory(
766766
767767 # Do automatic bonding analysis with LobsterPy
768768 condensed_bonding_analysis = None
769- sb_icobi = None
770- sb_icohp = None
771- sb_icoop = None
772- describe = None
769+ sb_icobi = sb_icohp = sb_icoop = describe = None
773770 struct = Structure .from_file (structure_path )
774771
775772 # will perform two condensed bonding analysis computations
@@ -1066,7 +1063,7 @@ def from_directory(
10661063 are_coops = False ,
10671064 are_cobis = False ,
10681065 )
1069- doc .__setattr__ ( " cohp_data" , cohp_obj )
1066+ doc .cohp_data = cohp_obj
10701067
10711068 if coopcar_path .exists () and doc .coop_data is None :
10721069 coop_obj = CompleteCohp .from_file (
@@ -1076,7 +1073,7 @@ def from_directory(
10761073 are_coops = True ,
10771074 are_cobis = False ,
10781075 )
1079- doc .__setattr__ ( " coop_data" , coop_obj )
1076+ doc .coop_data = coop_obj
10801077
10811078 if cobicar_path .exists () and doc .cobi_data is None :
10821079 cobi_obj = CompleteCohp .from_file (
@@ -1086,7 +1083,7 @@ def from_directory(
10861083 are_coops = False ,
10871084 are_cobis = True ,
10881085 )
1089- doc .__setattr__ ( " cobi_data" , cobi_obj )
1086+ doc .cobi_data = cobi_obj
10901087 with gzip .open (
10911088 computational_data_json_save_dir , "wt" , encoding = "UTF-8"
10921089 ) as file :
@@ -1099,7 +1096,7 @@ def from_directory(
10991096 # objects and other data json compatible dict format
11001097 data = {
11011098 attribute : jsanitize (
1102- doc . __getattribute__ ( attribute ),
1099+ getattr ( doc , attribute ),
11031100 allow_bson = False ,
11041101 strict = True ,
11051102 enum_values = True ,
@@ -1113,9 +1110,9 @@ def from_directory(
11131110
11141111 # Again unset the cohp, cobi and coop data fields if not desired in the DB
11151112 if not add_coxxcar_to_task_document :
1116- doc .__setattr__ ( " cohp_data" , None )
1117- doc .__setattr__ ( " coop_data" , None )
1118- doc .__setattr__ ( " cobi_data" , None )
1113+ doc .cohp_data = None
1114+ doc .coop_data = None
1115+ doc .cobi_data = None
11191116
11201117 return doc .model_copy (update = additional_fields )
11211118
@@ -1316,9 +1313,9 @@ def read_saved_json(
13161313 dict
13171314 Returns a dictionary with lobster task json data corresponding to query.
13181315 """
1319- with gzip .open (filename , "rb" ) as f :
1316+ with gzip .open (filename , "rb" ) as file :
13201317 lobster_data = {}
1321- objects = ijson .items (f , "item" , use_float = True )
1318+ objects = ijson .items (file , "item" , use_float = True )
13221319 for obj in objects :
13231320 if query is None :
13241321 for field , data in obj .items ():
@@ -1339,11 +1336,9 @@ def read_saved_json(
13391336 lobster_data [query_key ] = MontyDecoder ().process_decoded (value )
13401337 elif "lobsterpy_data" in query_key :
13411338 for field in lobster_data [query_key ].__fields__ :
1342- lobster_data [query_key ].__setattr__ (
1343- field ,
1344- MontyDecoder ().process_decoded (
1345- lobster_data [query_key ].__getattribute__ (field )
1346- ),
1339+ val = MontyDecoder ().process_decoded (
1340+ getattr (lobster_data [query_key ], field )
13471341 )
1342+ setattr (lobster_data [query_key ], field , val )
13481343
13491344 return lobster_data
0 commit comments