-
Notifications
You must be signed in to change notification settings - Fork 2
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
Registration #147
Registration #147
Conversation
Now that __dir__ contains the domains!
Not the domain it can be found at on the creator, which is just a QoL convenience thing.
Maybe we eventually want to put in a softer check, so that if we find a module with `nodes` that _isn't_ `Iterable[type[Node]]` we raise a warning and keep going, but there's no need for that now.
We don't want the loaded package to get out of sync with its source
This is not actually anything to do with this PR, but rather pyiron/atomistics changed its API
There is an upstream bug that all the lammps jobs are printing "r" a million times and it's hideous.
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Coverage summary from CodacySee diff coverage on Codacy
Coverage variation details
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: Diff coverage details
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: See your quality gate settings Change summary preferencesYou may notice some variations in coverage metrics with the latest Coverage engine update. For more details, visit the documentation |
Pull Request Test Coverage Report for Build 7426980580
💛 - Coveralls |
Notebook failure appears to just be a versioning inconsistency with pyiron/atomistics; I'll fix it before merging but it doesn't impact the meat here |
Also, forgive me @samwaseda, for this PR is sinfully big. I should have decomposed it into some smaller steps, but I rushed. I hope the readability of the end product is high enough to compensate somewhat. |
Original notebook error seems to have been a caching error and outdated version of pyiron/atomistics. Now pyiron_atomistics is breaking in a strange (and still seemingly unrelated) way:
|
Just needed to update my env to purge a bug in an outdated version of h5io
It is a bug in my CI that this is not happening automatically.
…stration_tracking
One problem was that updates to the |
Right, the dependabot upgrade of |
# Conflicts: # .binder/environment.yml # .ci_support/environment-notebooks.yml # notebooks/atomistics_nodes.ipynb # notebooks/deepdive.ipynb
Coverage summary from CodacySee diff coverage on Codacy
Coverage variation details
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: Diff coverage details
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: See your quality gate settings Change summary preferencesYou may notice some variations in coverage metrics with the latest Coverage engine update. For more details, visit the documentation |
Closes #152 |
Ahead of saving and loading workflows, we need the saved nodes to be able to know what node package they came from, so that workflows can register these on load, re-create the nodes, then the nodes can load their state from the data. (Note that Macros don't have the same problem, because they know how to create all their children and do so at initialization, so they can simply read off their saved states -- there is an edge case where a macro has
replace
d one or more of it's children, but we can deal with that later).In principle each node package should have a unique identifier, but in practice I'm still just using the import module, e.g.
"pyiron_workflow.node_library.standard"
. This "identifier" now gets stored on the node classes when they are registered as a package, so they'll be available to save later.Otherwise there's a bunch of refactoring, including moving more responsibility onto
NodePackage
and making the (for now) equivalence of the package identifier and module name more clear.There's also a bit of extra syntactic sugar so that you can register stuff to a deeply nested domain from the get-go, e.g.
Workflow.create.register("my.deep.domain", "pyiron_workflow.node_library.standard"); Workflow.create.my.deep.domain.Add()
.