Skip to content

Conversation

liamhuber
Copy link
Member

This will be helpful for making macros into walled gardens that have their own IO instead of simply using references to their children's IO; it will allow us to keep the child node input up-to-date.

This will be helpful for making macros into walled gardens that have their own IO instead of simply using references to their children's IO; it will allow us to keep the child node input up-to-date.
@github-actions
Copy link

Binder 👈 Launch a binder notebook on branch pyiron/pyiron_workflow/data_links

@codacy-production
Copy link

codacy-production bot commented Oct 18, 2023

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
-0.08% (target: -1.00%) 86.92%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (3e4da9e) 1672 1387 82.95%
Head commit (4809a6e) 1757 (+85) 1456 (+69) 82.87% (-0.08%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#36) 130 113 86.92%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

@liamhuber liamhuber added the format_black trigger the Black formatting bot label Oct 18, 2023
pyiron-runner and others added 26 commits October 18, 2023 18:23
Eliminate redundant information
So that Workflow and Composite can do things differently
I wrongly eliminated logic passing over connected channels
I also wrongly eliminated logic passing channels mapped to None
To reflect the fact that IO is actually reconstructed now on replacement; we can still check for the correct link between macro and child by looking at the value receiver though
So it's also available for output
Since we might be rebuilding because of an internal change, allow for the channels to now differ
We want to avoid ever having a `concurrent.futures.Executor` as an attribute, because it holds a truly unpickleable thread lock object. Instead, we now pass in information _about_ an executor and instantiate one on the fly if we need it.

In the medium term we'll want a more sophisticated interface, i.e. information about how to connect to some existing executor object, or more detailed information on what type of executor to instantiate. But for the sake of getting workflows to work on executors, this trivially bool is enough.
So that macro and workflow can lean on the same code, and macro can just extend things a little bit to reflect the fact that it needs to rebuild its IO on unpacking children (workflow _always_ rebuilds its IO, so it's a non-issue)
liamhuber and others added 20 commits October 19, 2023 13:58
I had a typo in what I wanted to test for, but it turns out that the test is ill-conceived anyhow, because the futures object is returning new instances each time I ask for the `.result()`, so the `.result()` that the macro got internally will differ from the one in the test
These are a little simpler tests, as the workflow can't have siblings it's connected to
I don't know how to update self attributes right now
So that the workflows and macros play well with executors
These can for sure be dropped when support for <=3.10 is dropped, maybe before.
@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@liamhuber liamhuber merged commit 9e7c288 into refactor_run_cycle Oct 22, 2023
@liamhuber liamhuber deleted the data_links branch October 22, 2023 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
format_black trigger the Black formatting bot
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants