pyiron / pyiron_workflow

Graph-and-node based workflows
BSD 3-Clause "New" or "Revised" License
10 stars 1 forks source link

[patch] HasIO mixin #252

Closed liamhuber closed 3 months ago

liamhuber commented 3 months ago

Breaking out all the IO and connections stuff from Node. Introduces a new intermediate HasIO mixin to handle this.

Also breaks out all the stuff for injecting nodes after output channels into its own module, where DataOutputWithInjection extends DataOutput and specifies that the owner needs to be a Node instead of a HasIO. Then adds two more ...WithInjection classes on top of Outputs and HasIO so that Node gets the right type hinting for its output channels. I'm still not 100% satisfied with this encapsulation, as HasIOWithInjection probably needs to know it's actually a Node, but Node inherits from it! Still, it is better than the previous version where all this injection business was just directly living in OutputData.

Contributes to #243

github-actions[bot] commented 3 months ago

Binder :point_left: Launch a binder notebook on branch _pyiron/pyironworkflow/hasio

codacy-production[bot] commented 3 months ago

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
:white_check_mark: +0.20% (target: -1.00%) :white_check_mark: 94.72%
Coverage variation details | | Coverable lines | Covered lines | Coverage | | ------------- | ------------- | ------------- | ------------- | | Common ancestor commit (d0620f0c7915a1f70a76a195dfc8cf177c31f589) | 3254 | 2837 | 87.19% | | | Head commit (34b5335637077691001011caaa13e00ce396b729) | 3282 (+28) | 2868 (+31) | 87.39% (**+0.20%**) | **Coverage variation** is the difference between the coverage for the head and common ancestor commits of the pull request branch: ` - `
Diff coverage details | | Coverable lines | Covered lines | Diff coverage | | ------------- | ------------- | ------------- | ------------- | | Pull request (#252) | 246 | 233 | **94.72%** | **Diff coverage** is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: `/ * 100%`

See your quality gate settings    Change summary preferences

You may notice some variations in coverage metrics with the latest Coverage engine update. For more details, visit the documentation

review-notebook-app[bot] commented 3 months ago

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB