Conversation
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
We don't unpack dicts or lists anyhow, so show a tuple-based example. Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #215 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 30 30
Lines 2009 2009
=========================================
Hits 2009 2009 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
To close the circuit that `items` is fed to `item`, and it is the presence in `nested_ports` that lets us know this will be scattered instead of broadcast. Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
There was a typo in an attribute access `.nodes` instead of `.node`, and I reformatted the strings talking about how control flow parsers inject an intermediate workflow node whether it's needed or not, but everything else ran fine. Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
|
Closes #209 |
|
I didn't realize until this notebook that the for loop had completely changed. Now it supports only for-each? |
This has always been the case in AFAIK "For" has always been the parallel, mapping sort of "for"; we leave the serial depends on previous steps sort of loop for "while". If we explicitly rename things from Is there a concrete example of something you wished would run that currently doesn't? |
ok we are actually not talking about the same thing, because I just checked the following workflow and it works: def workflow_with_for(a=10, b=20):
x = add(a, b)
results = []
items = my_for_loop(x, b)
for ii in items:
y = add(a, ii)
z = multiply(a, y)
results.append(z)
return resultsFor the rest, let me think about it a bit. The one thing that disturbs me a lot right now is the fact that it became very unclear what we promise, compared to the previous "only function assignments". |
Super. Yes, that looks like a perfectly reasonable workflow to me.
👍 The for-loops are probably the most complicated thing because you need to explicitly declare an accumulator variable and append to it. This is a bit of leg work, but at least it is clear and unambiguous to see what's happening when you read the function definition. The previous parser had the problem that the way for-loops were parsed and intended to be run was misaligned with how the function would actually execute when you simply called it. Now the recipe you get from parsing a for-loop lines up with the actual result from running it (i.e. both return list(s) of data). In the long run, I think there is tension
Where (1) is in conflict with (2) and (3) each independently. |
With the readme quickstart providing a very brief, top-down,
@workflow-onwards summary, this user guide is a bottom-up description of the principles, features, and intent. Ideas on how to further restructure the documentation are welcome, but out-of-scope for this particular PR. Here I wonder, is the information clear? Presented in a helpful order? Complete enough to inspire confidence in using the package?