@@ -766,10 +766,7 @@ def from_directory(
766
766
767
767
# Do automatic bonding analysis with LobsterPy
768
768
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
773
770
struct = Structure .from_file (structure_path )
774
771
775
772
# will perform two condensed bonding analysis computations
@@ -1066,7 +1063,7 @@ def from_directory(
1066
1063
are_coops = False ,
1067
1064
are_cobis = False ,
1068
1065
)
1069
- doc .__setattr__ ( " cohp_data" , cohp_obj )
1066
+ doc .cohp_data = cohp_obj
1070
1067
1071
1068
if coopcar_path .exists () and doc .coop_data is None :
1072
1069
coop_obj = CompleteCohp .from_file (
@@ -1076,7 +1073,7 @@ def from_directory(
1076
1073
are_coops = True ,
1077
1074
are_cobis = False ,
1078
1075
)
1079
- doc .__setattr__ ( " coop_data" , coop_obj )
1076
+ doc .coop_data = coop_obj
1080
1077
1081
1078
if cobicar_path .exists () and doc .cobi_data is None :
1082
1079
cobi_obj = CompleteCohp .from_file (
@@ -1086,7 +1083,7 @@ def from_directory(
1086
1083
are_coops = False ,
1087
1084
are_cobis = True ,
1088
1085
)
1089
- doc .__setattr__ ( " cobi_data" , cobi_obj )
1086
+ doc .cobi_data = cobi_obj
1090
1087
with gzip .open (
1091
1088
computational_data_json_save_dir , "wt" , encoding = "UTF-8"
1092
1089
) as file :
@@ -1099,7 +1096,7 @@ def from_directory(
1099
1096
# objects and other data json compatible dict format
1100
1097
data = {
1101
1098
attribute : jsanitize (
1102
- doc . __getattribute__ ( attribute ),
1099
+ getattr ( doc , attribute ),
1103
1100
allow_bson = False ,
1104
1101
strict = True ,
1105
1102
enum_values = True ,
@@ -1113,9 +1110,9 @@ def from_directory(
1113
1110
1114
1111
# Again unset the cohp, cobi and coop data fields if not desired in the DB
1115
1112
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
1119
1116
1120
1117
return doc .model_copy (update = additional_fields )
1121
1118
@@ -1316,9 +1313,9 @@ def read_saved_json(
1316
1313
dict
1317
1314
Returns a dictionary with lobster task json data corresponding to query.
1318
1315
"""
1319
- with gzip .open (filename , "rb" ) as f :
1316
+ with gzip .open (filename , "rb" ) as file :
1320
1317
lobster_data = {}
1321
- objects = ijson .items (f , "item" , use_float = True )
1318
+ objects = ijson .items (file , "item" , use_float = True )
1322
1319
for obj in objects :
1323
1320
if query is None :
1324
1321
for field , data in obj .items ():
@@ -1339,11 +1336,9 @@ def read_saved_json(
1339
1336
lobster_data [query_key ] = MontyDecoder ().process_decoded (value )
1340
1337
elif "lobsterpy_data" in query_key :
1341
1338
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 )
1347
1341
)
1342
+ setattr (lobster_data [query_key ], field , val )
1348
1343
1349
1344
return lobster_data
0 commit comments