aiidalab / aiidalab/aiidalab-widgets-base
AiiDAlab structure manager: add importer proxy
- Dominant language
- Python
- Stars
- 10
- Forks
- 19
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 20
Description
As it was suggested [here](https://github.com/aiidalab/aiidalab-widgets-base/pull/131#issuecomment-700062854)
Proxy-based solution:
```python
from aiidalab_widgets_base import StructureImporterProxy
smiles_proxy = StructureImporterProxy()
dlink((SmilesWidget(title='SMILES'), 'some_structure_trait'), (smiles_proxy, 'structure'),
transform=my_structure_transfomer_function)
widget = StructureManagerWidget(
importers=[
StructureUploadWidget(title="From computer"),
CodQueryWidget(title="COD"),
StructureBrowserWidget(title="AiiDA database"),
smiles_proxy,
StructureExamplesWidget(
title="From Examples",
examples=[
("Silicon oxide", "miscellaneous/structures/SiO2.xyz")
]),
],
editors = [
BasicStructureEditor(title="Basic Editor"),
],
)
```
The issue that we are trying to solve with this issue is that some importers might store the structure in a trait that is named differently from `structure`. Additionally, they might be of a random type. To fix this we introduce the proxy widget that provides the required `structure` trait and also includes the datatype conversion.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.