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

Sharing Results from aiidalab_qe between users #664

Closed
AndresOrtegaGuerrero opened this issue Apr 5, 2024 · 2 comments · Fixed by #669
Closed

Sharing Results from aiidalab_qe between users #664

AndresOrtegaGuerrero opened this issue Apr 5, 2024 · 2 comments · Fixed by #669
Labels
enhancement New feature or request
Milestone

Comments

@AndresOrtegaGuerrero
Copy link
Member

I tried to share one of my aiidalab_qe results with a collaborator that has aiidalab_qe app for them to visualize the results.

Though using verdi archive create my-calculations.aiida --nodes pk i can share the QeWorkChain node, the collaborator indeed can have access in their aiida, when using the aiidalab_qe , there seems to be issues when loading the workchain.
We should create test ok these kinds to improve the logic to facilitate sharing nodes

@AndresOrtegaGuerrero AndresOrtegaGuerrero added the enhancement New feature or request label Apr 5, 2024
@superstar54
Copy link
Member

This is indeed a very good use case.

Could you share the details of the issues?

@AndresOrtegaGuerrero
Copy link
Member Author

StopIteration Traceback (most recent call last)
/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget_selection.py in findvalue(array, value, compare)
136 try:
--> 137 return next(x for x in array if compare(x, value))
138 except StopIteration:

StopIteration:

During handling of the above exception, another exception occurred:

ValueError Traceback (most recent call last)
/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget_selection.py in _validate_value(self, proposal)
240 try:
--> 241 return findvalue(self._options_values, value, self.equals) if value is not None else None
242 except ValueError:

/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget_selection.py in findvalue(array, value, compare)
138 except StopIteration:
--> 139 raise ValueError('%r not in array'%value)
140

ValueError: 'e54f711d-4dcc-4265-8fcd-dabd05eaa1c6' not in array

During handling of the above exception, another exception occurred:

TraitError Traceback (most recent call last)
/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget.py in _handle_msg(self, msg)
762 if 'buffer_paths' in data:
763 _put_buffers(state, data['buffer_paths'], msg['buffers'])
--> 764 self.set_state(state)
765
766 # Handle a state request.

/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget.py in set_state(self, sync_data)
631 from_json = self.trait_metadata(name, 'from_json',
632 self._trait_from_json)
--> 633 self.set_trait(name, from_json(sync_data[name], self))
634
635 def send(self, content, buffers=None):

/opt/conda/lib/python3.9/contextlib.py in exit(self, typ, value, traceback)
124 if typ is None:
125 try:
--> 126 next(self.gen)
127 except StopIteration:
128 return False

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in hold_trait_notifications(self)
1500 for changes in cache.values():
1501 for change in changes:
-> 1502 self.notify_change(change)
1503
1504 def _notify_trait(self, name, old_value, new_value):

/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget.py in notify_change(self, change)
692 # Send new state to front-end
693 self.send_state(key=name)
--> 694 super(Widget, self).notify_change(change)
695
696 def repr(self):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in notify_change(self, change)
1515 def notify_change(self, change):
1516 """Notify observers of a change event"""
-> 1517 return self._notify_observers(change)
1518
1519 def _notify_observers(self, event):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _notify_observers(self, event)
1562 c = getattr(self, c.name)
1563
-> 1564 c(event)
1565
1566 def _add_notifiers(self, handler, name, type):

/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget_selection.py in _propagate_index(self, change)
233 self.label = label
234 if self.value is not value:
--> 235 self.value = value
236
237 @Validate('value')

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in set(self, obj, value)
730 raise TraitError('The "%s" trait is read-only.' % self.name)
731 else:
--> 732 self.set(obj, value)
733
734 def _validate(self, obj, value):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in set(self, obj, value)
719 # we explicitly compare silent to True just in case the equality
720 # comparison above returns something other than True/False
--> 721 obj._notify_trait(self.name, old_value, new_value)
722
723 def set(self, obj, value):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _notify_trait(self, name, old_value, new_value)
1503
1504 def _notify_trait(self, name, old_value, new_value):
-> 1505 self.notify_change(
1506 Bunch(
1507 name=name,

/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget.py in notify_change(self, change)
692 # Send new state to front-end
693 self.send_state(key=name)
--> 694 super(Widget, self).notify_change(change)
695
696 def repr(self):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in notify_change(self, change)
1515 def notify_change(self, change):
1516 """Notify observers of a change event"""
-> 1517 return self._notify_observers(change)
1518
1519 def _notify_observers(self, event):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _notify_observers(self, event)
1562 c = getattr(self, c.name)
1563
-> 1564 c(event)
1565
1566 def _add_notifiers(self, handler, name, type):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _update(self, change)
450 return
451 with self._busy_updating():
--> 452 setattr(self.target[0], self.target[1], self._transform(change.new))
453
454 def unlink(self):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in set(self, obj, value)
730 raise TraitError('The "%s" trait is read-only.' % self.name)
731 else:
--> 732 self.set(obj, value)
733
734 def _validate(self, obj, value):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in set(self, obj, value)
719 # we explicitly compare silent to True just in case the equality
720 # comparison above returns something other than True/False
--> 721 obj._notify_trait(self.name, old_value, new_value)
722
723 def set(self, obj, value):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _notify_trait(self, name, old_value, new_value)
1503
1504 def _notify_trait(self, name, old_value, new_value):
-> 1505 self.notify_change(
1506 Bunch(
1507 name=name,

/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget.py in notify_change(self, change)
692 # Send new state to front-end
693 self.send_state(key=name)
--> 694 super(Widget, self).notify_change(change)
695
696 def repr(self):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in notify_change(self, change)
1515 def notify_change(self, change):
1516 """Notify observers of a change event"""
-> 1517 return self._notify_observers(change)
1518
1519 def _notify_observers(self, event):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _notify_observers(self, event)
1562 c = getattr(self, c.name)
1563
-> 1564 c(event)
1565
1566 def _add_notifiers(self, handler, name, type):

~/.local/lib/python3.9/site-packages/aiidalab_qe/app/main.py in _observe_process_selection(self, change)
148 self.configure_step.set_configuration_parameters(ui_parameters)
149 self.configure_step.confirm()
--> 150 self.submit_step.set_submission_parameters(ui_parameters)
151 self.submit_step.state = self.submit_step.State.SUCCESS

~/.local/lib/python3.9/site-packages/aiidalab_qe/app/submission/init.py in set_submission_parameters(self, parameters)
441 def set_submission_parameters(self, parameters):
442 self.set_resources(parameters["resources"])
--> 443 self.set_selected_codes(parameters["codes"])
444
445 def get_submission_parameters(self):

~/.local/lib/python3.9/site-packages/aiidalab_qe/app/submission/init.py in set_selected_codes(self, codes)
345 with self.hold_trait_notifications():
346 for name, code in self.codes.items():
--> 347 code.value = _get_code_uuid(codes.get(name))
348
349 def update_codes_display(self):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in set(self, obj, value)
730 raise TraitError('The "%s" trait is read-only.' % self.name)
731 else:
--> 732 self.set(obj, value)
733
734 def _validate(self, obj, value):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in set(self, obj, value)
719 # we explicitly compare silent to True just in case the equality
720 # comparison above returns something other than True/False
--> 721 obj._notify_trait(self.name, old_value, new_value)
722
723 def set(self, obj, value):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _notify_trait(self, name, old_value, new_value)
1503
1504 def _notify_trait(self, name, old_value, new_value):
-> 1505 self.notify_change(
1506 Bunch(
1507 name=name,

/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget.py in notify_change(self, change)
692 # Send new state to front-end
693 self.send_state(key=name)
--> 694 super(Widget, self).notify_change(change)
695
696 def repr(self):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in notify_change(self, change)
1515 def notify_change(self, change):
1516 """Notify observers of a change event"""
-> 1517 return self._notify_observers(change)
1518
1519 def _notify_observers(self, event):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _notify_observers(self, event)
1562 c = getattr(self, c.name)
1563
-> 1564 c(event)
1565
1566 def _add_notifiers(self, handler, name, type):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _update_source(self, change)
377 return
378 with self._busy_updating():
--> 379 setattr(self.source[0], self.source[1], self._transform_inv(change.new))
380 if getattr(self.target[0], self.target[1]) != change.new:
381 raise TraitError(

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in set(self, obj, value)
730 raise TraitError('The "%s" trait is read-only.' % self.name)
731 else:
--> 732 self.set(obj, value)
733
734 def _validate(self, obj, value):

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in set(self, obj, value)
704
705 def set(self, obj, value):
--> 706 new_value = self._validate(obj, value)
707 try:
708 old_value = obj._trait_values[self.name]

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _validate(self, obj, value)
738 value = self.validate(obj, value)
739 if obj._cross_validation_lock is False:
--> 740 value = self._cross_validate(obj, value)
741 return value
742

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in _cross_validate(self, obj, value)
744 if self.name in obj.trait_validators:
745 proposal = Bunch({"trait": self, "value": value, "owner": obj})
--> 746 value = obj.trait_validators[self.name](obj, proposal)
747 elif hasattr(obj, "
%s_validate" % self.name):
748 meth_name = "
%s_validate" % self.name

~/.local/lib/python3.9/site-packages/traitlets/traitlets.py in call(self, *args, **kwargs)
1231 """Pass *args and **kwargs to the handler's function if it exists."""
1232 if hasattr(self, "func"):
-> 1233 return self.func(*args, **kwargs)
1234 else:
1235 return self._init_call(*args, **kwargs)

/opt/conda/lib/python3.9/site-packages/ipywidgets/widgets/widget_selection.py in _validate_value(self, proposal)
241 return findvalue(self._options_values, value, self.equals) if value is not None else None
242 except ValueError:
--> 243 raise TraitError('Invalid selection: value not found')
244
245 @observe('value')

TraitError: Invalid selection: value not found

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants