Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementing lazy-loading #802

Merged
merged 75 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
5599449
Implement lazy loading
edan-bainglass Oct 24, 2024
4db08e5
Discard old global structure model
edan-bainglass Oct 27, 2024
634e6cf
Add `model.include` guard on panel refresh
edan-bainglass Oct 27, 2024
54077d9
Add `which` parameter to fine-control panel refresh
edan-bainglass Oct 27, 2024
764a92d
Extend `which` parameter use to advanced sub-sections
edan-bainglass Oct 27, 2024
777b956
Decouple advanced sub-section models from advanced model
edan-bainglass Oct 28, 2024
5d4871a
Emphasize "Step 2.2" in plugin outlines message
edan-bainglass Oct 28, 2024
be29348
Fix `structure.kind`-related bugs
edan-bainglass Oct 28, 2024
e4581fe
Implement lazy-loading wrapper on aiida database importer
edan-bainglass Oct 28, 2024
e8349db
Fix missing guard on panel reset
edan-bainglass Oct 28, 2024
649f0c4
Fix missing observation of `override` in advanced subsettings
edan-bainglass Oct 28, 2024
6e179c8
Fix issues relating to `kind`s
edan-bainglass Oct 28, 2024
40b1464
Handle model linking more cleanly
edan-bainglass Oct 28, 2024
cbd18c0
Update model variable names
edan-bainglass Oct 29, 2024
5b86693
Modify update specificity handling and add some settings/model docume…
edan-bainglass Oct 29, 2024
595b5be
Fix configuration tab switch bug
edan-bainglass Oct 29, 2024
a9364c5
Fix models
edan-bainglass Oct 29, 2024
c7a2f2a
Silence `ruff` linting error `ARG002: unused method argument`
edan-bainglass Oct 30, 2024
c08361b
Install sssp and set up qe on startup
edan-bainglass Oct 30, 2024
c3ca05c
Run model updates on startup to catch up app to default states
edan-bainglass Oct 30, 2024
32011c4
Fix process killing bug
edan-bainglass Oct 30, 2024
8811266
Handle circular structure link in step 1
edan-bainglass Oct 30, 2024
31e3809
Add `confirm` methods to structure and configuration models
edan-bainglass Oct 30, 2024
ced3a48
Enforce panel update on plugin inclusion
edan-bainglass Oct 30, 2024
8f03f59
Implement pytest CLI command to skip slow tests
edan-bainglass Oct 31, 2024
5f93064
Inject structure node instead of ASE object
edan-bainglass Oct 31, 2024
583aac9
Decouple code models from the UI
edan-bainglass Oct 31, 2024
28891a2
Handle process-loaded structure assignment more cleanly
edan-bainglass Nov 1, 2024
ed5f6df
Reduce code duplication with mixins
edan-bainglass Nov 1, 2024
5ba4a60
Remove structure relaxation initial options from widget
edan-bainglass Nov 1, 2024
42b7e06
Handle step reset on render if a process is loaded (steps already con…
edan-bainglass Nov 1, 2024
af26cca
Fix process-node handling by process monitor thread
edan-bainglass Nov 2, 2024
399c2d1
Temporarily skip slow tests in CI
edan-bainglass Nov 2, 2024
4d0b2ef
Add `HasInputStructure` mixin to structure step
edan-bainglass Nov 3, 2024
9696a82
Add hubbard eigenvalues mapping between app/plugin formats
edan-bainglass Nov 3, 2024
4081ef9
Add `loaded_from_process` trait to conditionally skip model updates
edan-bainglass Nov 3, 2024
8c56943
Update naming convension for kinds
edan-bainglass Nov 4, 2024
f52fd74
Add `has_structure` property to `HasInputStructure` mixin
edan-bainglass Nov 4, 2024
f54dd92
Make pseudos setters always visible
edan-bainglass Nov 4, 2024
c9a9649
Fix bug with hubbard eigenvalues widget visibility
edan-bainglass Nov 4, 2024
6aaf1ab
Use generics to improve type hinting
edan-bainglass Nov 4, 2024
b50c7ea
Guard pseudo model updates when loaded from process
edan-bainglass Nov 4, 2024
0bc412a
Clean up unnecessary code
edan-bainglass Nov 5, 2024
7a14f30
Make un-confirmation more clear
edan-bainglass Nov 5, 2024
5367f61
Improve Mediator pattern in `App`
edan-bainglass Nov 5, 2024
71c834f
Apply `Confirmable` mixin to submission step
edan-bainglass Nov 6, 2024
6862050
Fix lazy-loaded optimade mechanism
edan-bainglass Nov 6, 2024
6fc2751
Fix/simplify the Model/Mixin API
edan-bainglass Nov 8, 2024
642d55d
Move widget options to models
edan-bainglass Nov 10, 2024
7749392
Implement lazy-loading / MVC in results section
edan-bainglass Nov 10, 2024
12a3c32
Fix old reference to `elements` in XAS settings
edan-bainglass Nov 11, 2024
284f8d6
Handle #921
edan-bainglass Nov 11, 2024
6baf3d4
Update results section controls layout on process change
edan-bainglass Nov 11, 2024
3ccda42
Handle #924
edan-bainglass Nov 11, 2024
098ede1
Implement results section monitoring in a lazy-loading compliant manner
edan-bainglass Nov 12, 2024
84cff4f
Fix bug in updating default pseudos/cutoffs
edan-bainglass Nov 13, 2024
a65beed
Update electronic structure results plugin
edan-bainglass Nov 13, 2024
79810a1
Simplify results panel handling
edan-bainglass Nov 14, 2024
20ea2d1
Fix all but one test - in progress
edan-bainglass Nov 14, 2024
b2516f1
Fetch child workchain info directly from child workchain node
edan-bainglass Nov 14, 2024
96e2cc2
Fix xas/xps results
edan-bainglass Nov 14, 2024
c66af47
Improve guard on pseudo group checking in xps
edan-bainglass Nov 14, 2024
f16abc2
Clean up bands pdos widget
edan-bainglass Nov 14, 2024
00b015f
Improve `process_tree` - `node_view` behavior
edan-bainglass Nov 14, 2024
e62506a
Update tests
edan-bainglass Nov 14, 2024
fc574b6
Fix `NotImplementedError` calls
edan-bainglass Nov 15, 2024
8e0e639
Fallback on `QeAppWorkChain` outputs if child workchain is missing
edan-bainglass Nov 15, 2024
1f7cba2
Show loading message when loading results
edan-bainglass Nov 15, 2024
e671688
Inject process uuid in results section instead of linking it
edan-bainglass Nov 16, 2024
cc7ceb5
Avoid storing the process node in step 4, opting for loading from uui…
edan-bainglass Nov 16, 2024
4380a7b
Handle failed process status notification in results panels
edan-bainglass Nov 17, 2024
6117f3a
Fix issues with the bands pdos widget
edan-bainglass Nov 19, 2024
d18e8a4
Fix inconsistent results auto-loading
edan-bainglass Nov 20, 2024
710e1bc
Reduce padding on process status notifications
edan-bainglass Nov 20, 2024
91686e5
Improve node view loading
edan-bainglass Nov 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
# Only collect code coverage with aiida-core=2.3, to speed up tests
# with higher aiida versions that for some reason run slower, see:
# https://github.com/aiidalab/aiidalab-qe/issues/766
run: pytest -v tests ${{ matrix.aiida-core-version == '2.3' && '--cov=aiidalab_qe' || '' }}
run: pytest -v tests ${{ matrix.aiida-core-version == '2.3' && '--cov=aiidalab_qe' || '' }} --skip-slow

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
Expand Down
31 changes: 15 additions & 16 deletions qe.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,6 @@
"metadata": {},
"outputs": [],
"source": [
"import urllib.parse as urlparse\n",
"\n",
"from aiidalab_qe.app.main import App\n",
"from aiidalab_widgets_base.bug_report import (\n",
" install_create_github_issue_exception_handler,\n",
Expand All @@ -86,17 +84,23 @@
" labels=(\"bug\", \"automated-report\"),\n",
")\n",
"\n",
"app = App(qe_auto_setup=True)\n",
"\n",
"view.main.children = [app]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import urllib.parse as urlparse\n",
"\n",
"url = urlparse.urlsplit(jupyter_notebook_url) # noqa F821\n",
"query = urlparse.parse_qs(url.query)\n",
"\n",
"app = App(qe_auto_setup=True)\n",
"# if a pk is provided in the query string, set it as the process of the app\n",
"if \"pk\" in query:\n",
" pk = query[\"pk\"][0]\n",
" app.process = pk\n",
"\n",
"view.main.children = [app]\n",
"view.app = app"
" app.process = query[\"pk\"][0]"
]
},
{
Expand All @@ -111,7 +115,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "base",
"language": "python",
"name": "python3"
},
Expand All @@ -126,11 +130,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
},
"vscode": {
"interpreter": {
"hash": "d4d1e4263499bec80672ea0156c357c1ee493ec2b1c70f0acce89fc37c4a6abe"
}
}
},
"nbformat": 4,
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ aiidalab_qe.plugins.xas = pseudo_toc.yaml
aiidalab_qe.properties =
bands = aiidalab_qe.plugins.bands:bands
pdos = aiidalab_qe.plugins.pdos:pdos
xps = aiidalab_qe.plugins.xps:xps
electronic_structure = aiidalab_qe.plugins.electronic_structure:electronic_structure
xps = aiidalab_qe.plugins.xps:xps
xas = aiidalab_qe.plugins.xas:xas

aiida.workflows =
Expand Down
Loading
Loading