Skip to content

Commit 956e256

Browse files
committed
ENH(plot,arch): link Legend to arch + tooltips; ...
+ doc(arch): x2 terms: sideffects, eviction + DROP(plot): `graphop` from Legend.
1 parent c2c5506 commit 956e256

File tree

5 files changed

+173
-106
lines changed

5 files changed

+173
-106
lines changed

docs/GraphtikFlowchart.dot

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,36 @@ digraph {
77
labelloc=t;
88

99
operations [shape=parallelogram fontname="italic" tooltip=class
10-
URL="#term-operation"];
10+
URL="arch.html#term-operation"];
1111
compose [fontname="italic" tooltip=phase
12-
URL="#term-composition"];
12+
URL="arch.html#term-composition"];
1313
network [shape=parallelogram fontname="italic" tooltip=class
14-
URL="#term-network"];
14+
URL="arch.html#term-network"];
1515
inputs [shape=rect label="input names" tooltip=mappings
16-
URL="#term-inputs"];
16+
URL="arch.html#term-inputs"];
1717
outputs [shape=rect label="output names" tooltip=mappings
18-
URL="#term-outputs"];
18+
URL="arch.html#term-outputs"];
1919
predicate [shape=rect label="node predicate" tooltip=function
20-
URL="#term-node-predicate"];
20+
URL="arch.html#term-node-predicate"];
2121
subgraph cluster_compute {
2222
label=compute
2323
fontname=bold
2424
style=dashed
2525
labelloc=b
2626
tooltip="process, NetOp's method"
27-
URL="#term-compute"
27+
URL="arch.html#term-compute"
2828

2929
compile [fontname="italic" tooltip="phase, Network's method"
30-
URL="#term-compilation"];
30+
URL="arch.html#term-compilation"];
3131
plan [shape=parallelogram label="execution plan" fontname="italic" tooltip=class
32-
URL="#term-execution-plan"];
32+
URL="arch.html#term-execution-plan"];
3333
execute [fontname=italic fontname="italic" tooltip="phase, Plan's method"
34-
URL="#term-execution"];
34+
URL="arch.html#term-execution"];
3535
}
3636
values [shape=rect label="input values" tooltip=mappings
37-
URL="#term-inputs"];
37+
URL="arch.html#term-inputs"];
3838
solution [shape=parallelogram tooltip=class
39-
URL="#term-solution"];
39+
URL="arch.html#term-solution"];
4040

4141
operations -> compose -> network [arrowhead=vee];
4242
{network inputs outputs predicate} -> compile -> plan [arrowhead=vee];

docs/source/arch.rst

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,17 @@ Architecture
9191
It is built by :meth:`.Network._build_execution_steps()` based on
9292
the subgraph `dag`.
9393

94-
There is a single type of *instruction*, :class:`_EvictInstruction`:,
95-
which evicts items from `solution` as soon as they are not needed
96-
further down the dag, to reduce memory footprint while computing.
94+
The only *instruction* step is for performing `eviction`.
95+
96+
evict
97+
eviction
98+
The :class:`_EvictInstruction` `steps` erase items from
99+
`solution` as soon as they are not needed further down the dag,
100+
to reduce memory footprint while computing.
97101

98102
solution
99103
A :class:`.Solution` created internally by :meth:`.NetworkOperation.compute()`
100-
to hold the values of the `inputs`, and those of the generated
101-
(intermediate and possibly overwritten) `outputs`.
104+
to hold the values both `inputs` & `outputs`, and the status of *executed* operations.
102105
It is based on a :class:`collections.ChainMap`, to keep one dictionary
103106
for each `operation` executed +1 for inputs.
104107

@@ -129,7 +132,8 @@ Architecture
129132

130133
plan
131134
execution plan
132-
Class :class:`.ExecutionPlan` perform the `execution` phase.
135+
Class :class:`.ExecutionPlan` perform the `execution` phase which contains
136+
the `dag` and the `steps`.
133137

134138
`Compile`\ed *execution plans* are cached in :attr:`.Network._cached_plans`
135139
across runs with (`inputs`, `outputs`, `predicate`) as key.
@@ -152,13 +156,19 @@ Architecture
152156
The :class:`.NetworkOperation` class holding a `network` of `operation`\s.
153157

154158
needs
155-
A list of names of the compulsory/optional values an operation's
159+
A list of names of the compulsory/optional values or `sideffects` an operation's
156160
underlying callable requires to execute.
157161

158162
provides
159163
A list of names of the values produced when the `operation`'s
160164
underlying callable executes.
161165

166+
sideffects
167+
Fictive `needs` or `provides` not consumed/produced by the underlying function
168+
of an `operation`, annotated with :class:`.sideffect`.
169+
A *sideffect* participates in the solution of the graph but is never
170+
given/asked to/from functions.
171+
162172
prune
163173
pruning
164174
Method :meth:`.Network._prune_graph()` extracts a subgraph `dag` that

docs/source/images/GraphtikFlowchart-v4.1.0.svg

Lines changed: 12 additions & 12 deletions
Loading

0 commit comments

Comments
 (0)