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

Fix process-node-related bugs #967

Merged
merged 3 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
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: 2 additions & 0 deletions src/aiidalab_qe/app/result/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,8 @@ def _update_node_view(self, nodes, refresh=False):
self.node_view_container.children = [self.node_view_loading_message]
self.node_view = self._create_workchain_viewer(node)
self.node_views[node.uuid] = self.node_view
else:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a comment on what this case means and why return?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This guard was intended to cover cases where you select a non-QeAppWorkChain WorkChainNode. We decided not to change the rendered view in this case. However, I think it is best instead to render a "No viewer available for this node" message until one is developed (if we decide to do so). This is now implemented.

Copy link
Member

@superstar54 superstar54 Dec 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Could you add it as comment lines in the code?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current implementation is now self-documenting, no? If you're not registered in the cache AND ARE a WorkChainNode BUT ARE NOT the QeAppWorkChain, then you don't have a viewer. A comment would be redundant at this point.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't notice you pushed a new commit to replace the return with a message. Now, it's clear in the code.

return

self.node_view_container.children = [self.node_view]

Expand Down
6 changes: 5 additions & 1 deletion src/aiidalab_qe/common/panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,11 @@ def _get_child_process_status(self, child="this"):
"""

def _get_child_state_and_exit_message(self, child="this"):
if not (node := self._fetch_child_process_node(child)):
if not (
(node := self._fetch_child_process_node(child))
and hasattr(node, "process_state")
and node.process_state
):
return "queued", None
if node.is_failed:
return "failed", node.exit_message
Expand Down
Loading