Skip to content

Commit ea44452

Browse files
committed
chore(VER) bump v10.2.1-->10.3.0; CHANGES+TODO; spell
1 parent c7b3163 commit ea44452

File tree

3 files changed

+86
-29
lines changed

3 files changed

+86
-29
lines changed

.vscode/cspell.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
"cmapx",
4444
"codecov",
4545
"codestyle",
46+
"concat",
4647
"conds",
4748
"configs",
4849
"confval",
@@ -51,6 +52,7 @@
5152
"covid",
5253
"cstor",
5354
"Dask",
55+
"dataframe",
5456
"dataframes",
5557
"datanodes",
5658
"dcore",
@@ -79,13 +81,15 @@
7981
"figclass",
8082
"figwidth",
8183
"fillcolor",
84+
"fillna",
8285
"filtdict",
8386
"fname",
8487
"fnop",
8588
"fontname",
8689
"fpath",
8790
"fpaths",
8891
"fqdn",
92+
"funcs",
8993
"functools",
9094
"garrigues",
9195
"genindex",
@@ -96,6 +100,7 @@
96100
"graphvar",
97101
"graphviz",
98102
"Hashable",
103+
"hcat",
99104
"hnguyen",
100105
"howto",
101106
"hpgl",
@@ -198,6 +203,7 @@
198203
"quickstart",
199204
"rebased",
200205
"rebranded",
206+
"recursed",
201207
"refact",
202208
"regexes",
203209
"remerge",
@@ -216,6 +222,7 @@
216222
"sfxed",
217223
"sideffect",
218224
"sideffected",
225+
"sideffecteds",
219226
"sideffects",
220227
"sidefx",
221228
"signularize",
@@ -260,6 +267,7 @@
260267
"varargish",
261268
"varargs",
262269
"varname",
270+
"vcat",
263271
"withset",
264272
"writtable",
265273
"xfail",

CHANGES.rst

Lines changed: 76 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ Graphtik Changelog
1818
<hidden from RTD docs, as comment>
1919
2020
- [+] ENH: planning reports unsatisfied node modus, for plotting
21-
- [v] ENH: Plan accepts previous solutions
22-
- [v] fix: FnOp.compute() should (or should not?) accept Pipeline.compute() args.
23-
- [v] FEAT: ``compute(solution, recompute_from=["input_1"])``
21+
- [+] ENH: Plan accepts previous solutions
22+
- [+] fix: FnOp.compute() should (or should not?) accept Pipeline.compute() args.
23+
- [+] FEAT: ``compute(solution, recompute_from=["input_1"])``
2424

2525
- Configs:
2626
- [ ] FEAT: drop MANY contextvars with 1 cfg-dict in contextvars?
@@ -34,14 +34,16 @@ Graphtik Changelog
3434
- [ ] keep SFX in outputs
3535

3636
- Compose:
37-
- [ ] REFACT/FEAT/ENH: Autograph functions by annotating
37+
- [+] feat: add a real ``implicit`` modifier.
3838
- [?] REFACT: separate op-decorator from factory (to facilitate defining conveyor operations).
3939
- [ ] FEAT: +1 merge method for pipelines: nest=False: treat Pipelines as Operations
40-
- [ ] feat: add a real ``implicit`` modifier.
40+
- [ ] break/enh(modifier): augment modifier table with `implicits` for REPR.
41+
- [ ] BREAK(modif): "stuffy" names for `is_xxx(modifier)` funcs returning stuff.
42+
- [ ] REFACT/FEAT/ENH: Autograph functions by annotating
4143

42-
- Plan:
43-
- [ ] FEAT: break cycles with dijkstra; +weights.
44-
- [ ] ENH: virtual graph roots for inputs & outputs, to replace custom node-visiting algos
44+
- Planning:
45+
- [ ] FEAT: break cycles with dijkstra; +weights?
46+
- [ ] ENH: link graph inputs/outputs to virtual root-nodes, to replace custom visiting algos
4547
(eg unsatisfied-ops, prune-by-outs)
4648
- [ ] FEAT: per-operation EVICTs
4749
(+cat: Compose)
@@ -52,24 +54,39 @@ Graphtik Changelog
5254
- Execute:
5355
- [ ] ENH/REFACT: use Signature.Param from `inspect` module to match needs & zip provides
5456
- [?] refact: named_inputs --> sol
55-
- [ ] FEAT: varargs for Outs collect all outs to the very end
56-
(+cat: Compose)
57-
- [ ] ???: Should sfxed's sfx-lists become implicits? (to be accessed regularly downstream)
57+
- [ ] FEAT(fnop): varargs for Outs collect all outs to the very end
58+
- [ ] FEAT: +2 callbacks before marshalling: (pre_batch, post_batch) (olds: pre_op, post_op).
59+
- [ ] BREAK/FEAT: allow marking SFX-LIST items:
60+
1. Implicits (default), to be checked/resolved downstream (see "FEAT: +2 callbacks"), or
61+
2. Sfx (pure), as they are now).
62+
- [] Solution-retriever modifier `opcb()`;
63+
WONTFIX: easier and more generic to access solution from Op-context.
64+
REINSTATED - [X] Solution-retriever modifier;
65+
WONTFIX: easier and more generic to access solution from Op-context.
66+
REINSTATED to support simple conveyor belts from json-pointer paths.
67+
bc it's simpler and does not have any threading issues.
5868

5969
- **Solution:**
60-
- [x] DROP accessors?
61-
- [ ] DROP/ENH: Solution updates GivenInputs only, yet still layers jsonp-refer to its values.
70+
- [+] DROP/ENH: Solution updates GivenInputs only, yet still layers jsonp-refer to its values.
71+
- [+] FEAT: ``pd.concat()`` --> modifier+accessor, to avoid sfxed for multi-column updates.
72+
- [+] FEAT: + `post_callback` with `pre_callback` --> `callbacks` tuple
73+
(+cat: Compose)
74+
- [+] ENH(jsonp): mass-concat (not one-by-one).
75+
- [ ] ENH: validate Implicits indeed added (in `post_op_callback`)?
6276
- [ ] FEAT: VALIDATE (by user) items on Solution-Insert (with a `post_callback`?):
6377
- auto-assertions {jsonp--> validators}
6478
- compare overwrites while recomputing
65-
- [ ] FEAT: ``pd.concat()`` --> modifier+accessor, to avoid sfxed for multi-column updates.
66-
(+cat: Compose)
79+
- check implicits exist
80+
- [ ] FEAT: teach FnOps about ROOT(full solution) and CWD(cw-document)
81+
to resolve also any NON-jsonp dependencies from
82+
(needs to finalize jsonp-ROOT implementation)
83+
(+cat: Compose)
6784

6885
- plot:
6986
- [ ] Badges on Data
70-
- [ ] update legend (or generate it dynamically)
71-
- [ ] sphinxext: extend standard `doctest` module (instead of sphinx-builder)
87+
- [ ] generate legend dynamically
7288
- [ ] SPHINXEXT: autodoc Pipelines & Ops
89+
- [ ] sphinxext: extend standard `doctest` module (instead of sphinx-builder)
7390

7491
- Docs:
7592
- [ ] REFACT: move GitHub organization `pygraphkit --> pygraphtik` (+Travis, +RTD)
@@ -79,29 +96,28 @@ Graphtik Changelog
7996

8097

8198
- DROPPED
82-
- [X] Solution-retriever modifier;
83-
WONTFIX: easier and more generic to access solution from Op-context.
84-
REINSTATED to support simple conveyor belts from json-pointer paths.
8599
- [X] `solution.executed` pre-populated with all operations
86100
- [X] parallel batches restart from last position in steps
87101
- [X] covert custom op classes & modifiers directly into mergeable networkx graphs;
88102
WONTFIX bc foreign function would not work with merged deps.
89103
- [X] conditionals
90104
WONTFIX bc it permits pipelines with too complex execution flow to debug.
105+
- [X] DROP accessors:
106+
REJECTED already used for hcat()/vcat()
91107

92108
- v9.0.0
93109
- [X] Accept jsonp inputs & outputs,
94110
WONTFIX user's business to expand into given Inputs, Outputs already working.
95-
- [x] REVERT rename subdocs;
111+
- [X] REVERT rename subdocs;
96112
WONTFIX bc eventually made it work correctly and added TC.
97-
- [x] REFACT: separate op-decorator from factory
113+
- [X] REFACT: separate op-decorator from factory
98114
(to facilitate defining conveyor operations):
99115
NO, simplify passing fn=None.
100-
- [x] Nest-rename subdocs: not by default, possible by renamer/nester.
101-
- [x] accessors accept default (not to search x2 contain+get_path)
116+
- [X] Nest-rename subdocs: not by default, possible by renamer/nester.
117+
- [X] accessors accept default (not to search x2 contain+get_path)
102118
WONTFIX bc not worth it.
103-
- [x] Simplify Task-context by injecting it in a parametric argument of `fn`.
104-
NO, current solution works without `inspect` module.
119+
- [X] Simplify Task-context by injecting it in a parametric argument of `fn`.
120+
NO, `opcb` modifier works without `inspect` module.
105121

106122
+ See :gg:`1`.
107123

@@ -110,6 +126,39 @@ Changelog
110126
%%%%%%%%%
111127
:GitHub Releases: https://github.com/pygraphkit/graphtik/releases
112128

129+
v10.3.0 (21 Sep 2020, @ankostis): CONCAT pandas, Hierarchical overwrites, implicit(), post-cb
130+
---------------------------------------------------------------------------------------------
131+
+ FEAT(solution+jsonp)): can extend in place pandas (dataframes & series) horizontally/vertically
132+
with :term:`pandas concatenation`.
133+
Usefull for when working with :ref:`Pandas advanced indexing <pandas:advanced.hierarchical>`.
134+
or else, sideffecteds are needed to break read-update cycles on dataframes.
135+
136+
+ fix(jsonp): :func:`.set_path_value()` should have failed to modify object attributes
137+
(but not mass-updated, utilized by :term:`accessor`\s).
138+
139+
+ FEAT/fix(solution): :term:`overwrite`\s work properly for non-:term:`layer`\ed solutions.
140+
141+
+ refact: dropped ``_layers`` solution-attribute, role passed to (existing) ``executed``.
142+
143+
+ FEAT(execution): support also *post*\-:term:`callbacks`.
144+
145+
+ FEAT/DROP(modifier): added x3 new modifiers, :func:`.vcat` and :func:`.hcat`,
146+
(and respective accessors), :func:`.implicit` -- dropped never-used ``accessor`` modifier.
147+
148+
+ FEAT: parse string explicitly passed in ``jsonp=...`` argument in modifiers.
149+
150+
+ feat(modifier+fnop): keep just the last part of a keyword+jsonp dependency,
151+
to save an explicit conversion (jsonps are invalid as python-identifiers).
152+
153+
+ break(modifier+fnop): forbid :term:`implicit` term:`sfxed` -- hard to find a solid use-case,
154+
pure `sfx` would be preferable in that case.
155+
156+
+ fix: forbid :term:`aliasing <alias>` implicits -- they wouldn't work anyway.
157+
158+
+ enh(compose): check for node type collisions (i.e. a dependency name clashing
159+
with some operation name).
160+
161+
113162
v10.2.1 (18 Sep 2020, @ankostis): plot sol bugfix
114163
-------------------------------------------------
115164
+ FIX(PLOT): passing simple dictionaries into ``plot(solution=...)`` were crashing.
@@ -121,7 +170,7 @@ v10.2.0 (16 Sep 2020, @ankostis): RECOMPUTE, pre-callback, drop `op_xxx`, ops-eq
121170
------------------------------------------------------------------------------------------------------
122171
Should have been a "major" release, but x2 breaks are that important.
123172

124-
+ FEAT(pipeline+execution): add ``pre_callback`` to be invoked prior to computing
173+
+ FEAT(pipeline+execution): add term ``pre_callback`` to be invoked prior to computing
125174
each operation (see ``pre_callback`` arg in :meth:`.Pipeline.compute()`).
126175

127176
+ FEAT(pipeline+plan): can :term:`recompute` modified solutions, partial or complete --

graphtik/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
# Licensed under the terms of the Apache License, Version 2.0. See the LICENSE file associated with the project for terms.
33
"""Lightweight :term:`computation` graphs for Python."""
44

5-
__version__ = "10.2.1"
6-
__release_date__ = "18 Aug 2020, 01:44"
5+
__version__ = "10.3.0"
6+
__release_date__ = "22 Aug 2020, 18:24"
77
__title__ = "graphtik"
88
__summary__ = __doc__.splitlines()[0]
99
__license__ = "Apache-2.0"

0 commit comments

Comments
 (0)