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

save mro of each module #120

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

save mro of each module #120

wants to merge 7 commits into from

Conversation

qku
Copy link
Contributor

@qku qku commented Oct 2, 2024

Description

Save the method resolution order in the meta dictionary of a module to fix #114 . This is the best idea I could come up with until the underlying issue is fixed in rpyc.

Motivation and Context

Due to a known bug in rpyc the information about the method resolution order is lost across remote module connections. This makes it impossible to know whether a module implements a specific interface.

How Has This Been Tested?

Connect to a remote hardware module. Activate a logic module on the client which connects to that remote hardware module. Repeat this with an incorrectly matched logic module (requiring different hardware).

Types of changes

  • Bug fix
  • New feature
  • Breaking change (Causes existing functionality to not work as expected)

Checklist:

  • My code follows the code style of this project.
  • I have documented my changes in /docs/changelog.md.
  • My change requires additional/updated documentation.
  • I have updated the documentation accordingly.
  • I have added/updated the config example for any module docstrings as necessary.
  • I have checked that the change does not contain obvious errors
    (syntax, indentation, mutable default values, etc.).
  • I have tested my changes using 'Load all modules' on the default dummy configuration.
  • All changed Jupyter notebooks have been stripped of their output cells.

@TobiasSpohn
Copy link
Contributor

TobiasSpohn commented Oct 3, 2024

For me this works with rpyc==6.0.1 and rpyc==5.3.1. Looks like a good fix to me. I also tested different ways to somehow obtain the mro directly from the netref object, but neither worked for me.

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

Successfully merging this pull request may close these issues.

[Bug] rpyc 6 breaks connectors to remote modules
2 participants