7
7
from dash .dependencies import Input , Output , State
8
8
from dash .exceptions import PreventUpdate
9
9
10
- from pymatgen .ext .matproj import MPRester
11
-
12
10
from crystal_toolkit .core .mpcomponent import MPComponent
13
- from crystal_toolkit .core .panelcomponent import PanelComponent , PanelComponent2
11
+ from crystal_toolkit .core .panelcomponent import PanelComponent
14
12
from crystal_toolkit .helpers .layouts import *
15
13
16
14
# Author: Matthew McDermott
@@ -140,8 +138,9 @@ def update_graph(plotdata):
140
138
]
141
139
142
140
@app .callback (
143
- Output (self .id (), "data" ),
144
- [Input (self .id ("element-selector" ), "value" )],
141
+ [Output (self .id (), "data" ), Output (self .id ("elements" ), "data" )][
142
+ Input (self .id ("element-selector" ), "value" )
143
+ ],
145
144
[State (self .id ("mpid" ), "data" ), State (self .id ("elements" ), "data" )],
146
145
)
147
146
def pattern_from_mpid (element , mpid , elements ):
@@ -150,6 +149,8 @@ def pattern_from_mpid(element, mpid, elements):
150
149
151
150
url_path = "/materials/" + mpid ["mpid" ] + "/xas/" + element
152
151
152
+ from mp_api .matproj import MPRester
153
+
153
154
with MPRester () as mpr :
154
155
data = mpr ._make_request (url_path ) # querying MP database via MAPI
155
156
@@ -166,20 +167,12 @@ def pattern_from_mpid(element, mpid, elements):
166
167
)
167
168
]
168
169
169
- return plotdata
170
-
171
- @app .callback (
172
- Output (self .id ("elements" ), "data" ), [Input (self .id ("mpid" ), "data" )]
173
- )
174
- def get_elements_from_mpid (mpid ):
175
- if not mpid or "mpid" not in mpid :
176
- raise PreventUpdate
177
-
178
170
with MPRester () as mpr :
179
171
entry = mpr .get_entry_by_material_id (mpid ["mpid" ])
180
172
comp = entry .composition
181
173
elem_options = [str (comp .elements [i ]) for i in range (0 , len (comp ))]
182
- return elem_options
174
+
175
+ return plotdata , elem_options
183
176
184
177
@app .callback (
185
178
Output (self .id ("element-selector" ), "options" ),
0 commit comments