Skip to content

Commit 88fb1fd

Browse files
committed
chore(ver) v9.0.0.dev1-->dev2; CHANGES
RELEASE v9.0.0 worklog: ======================= v9.0.0.dev0: 17 May - [V] FIX jsonp evictions with +delete_path(). - [V] store parts on modifier. - [V] FnOp recognize jsonpointers even for plain strings. - [V] More subdoc tests (e.g. Aliases, SDFexed) v9.0.0.dev1: 21 Jun [V} FIXED JSONPs to work! - [V] BUG: subdoc splitting // results in cycle nodes! - [v] BUG: Handle root, double-slash, ginal-slash in jsonps FIXME: only root handled. - BUG: ChainMap(sol) badly interacts with SubDocs - `overwrites` subdoc parents! - [V] Plot: match compute inputs & outputs with nested deps - [V] jsonpointer mass-dict-update - [V] DOC: tutorial section "Week tasks" about JSONPs. - [V] FIX: SFXED evicted unjustly! v9.0.0.dev2:30 Jun - [ ] REFACT: - [ ] extract `utils.py` from base.py with jetsam & list utils - [ ] rename `modifiers.py` --> `modifier.py` - [ ] rename `op.py` --> `fnop.py` - [ ] network.py --> compilation.py TODO: - [ ] Drop accessors - [ ] Solution updates GivenInputs only, layers jsonp-refer to its values DROPPED - [X] Accept jsonp inputs & outputs, WONTFIX user's business to expand into given Inputs, Outputs already working. - [x] REVERT rename subdocs; DROPPED bc eventually made it work correctly and added TC. - [x] REFACT: separate op-decorator from factory (to facilitate defining conveyor operations): NO, simplify passing fn=None. - [x] Nest-rename subdocs: not by default, possible by renamer/nester. - [x] accessors accept default (not to search x2 contain+get_path) DROPPED bc not worth it. - [x] Simplify Task-context by injecting it in a parametric argument of `fn`. NO, current solution works without `inspect` module.
1 parent 1c27c3c commit 88fb1fd

File tree

3 files changed

+72
-15
lines changed

3 files changed

+72
-15
lines changed

CHANGES.rst

Lines changed: 68 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,38 @@ Graphtik Changelog
4949
- [+] Function access executing Operation & Plan from its context.
5050
- [ ] Unify OpTask & FuncOp
5151
- [ ] function self-toggles `returns-dict` amidst execution.
52-
- [ ] break cycles with dijkstra; weights
53-
- [ ] Config DEBUG flags:
52+
53+
- [V] FIX: FnOp.op_needs & FnOp.op_provides not respected during pruning.
54+
- v9.0.0.dev0: 17 May
55+
- [V] FIX jsonp evictions with +delete_path().
56+
- [V] store parts on modifier.
57+
- [V] FnOp recognize jsonpointers even for plain strings.
58+
- [V] More subdoc tests (e.g. Aliases, SDFexed)
59+
60+
- v9.0.0.dev1: 21 Jun
61+
[V} FIXED JSONPs to work!
62+
- [V] BUG: subdoc splitting // results in cycle nodes!
63+
- [v] BUG: Handle root, double-slash, ginal-slash in jsonps
64+
FIXME: only root handled.
65+
- [V] BUG: ChainMap(sol) badly interacts with SubDocs - `overwrites` subdoc parents!
66+
FIXED with NON-LAYERS.
67+
- [V] Plot: match compute inputs & outputs with nested deps
68+
- [V] jsonpointer mass-dict-update
69+
- [V] DOC: tutorial section "Week tasks" about JSONPs.
70+
- [V] FIX: SFXED evicted unjustly!
71+
72+
- [ ] DROIP accessors
73+
- [ ] DROP/ENH: Solution updates GivenInputs only, layers jsonp-refer to its values
74+
- [ ] FEAT: break cycles with dijkstra; weights
75+
- [ ] FEAT: Config DEBUG flags:
5476
- [ ] skip - evictions(drop config)
5577
- [ ] keep SFX in outputs
56-
- [ ] FIX: FnOp.op_needs & FnOp.op_provides not respected during pruning.
5778
- [ ] ENH: virtual graph roots for inputs & outputs, for visiting algos (eg prune by outs)
5879
- [ ] REFACT: separate op-decorator from factory (to facilitate defining conveyor operations).
59-
- [ ] ENH: varargs for Outs collect all outs ate the very end
60-
- [ ] ENH: varargs for Outs collect all outs ate the very end
80+
- [ ] ENH: varargs for Outs collect all outs te the very end
6181
- [ ] ENH: use Signature.Param from `inspect` module to match needs & zip provides
62-
- [ ] REFACT: network.py --> compilation.py
6382
- [ ] FEAT: +1 merge method for pipelines: nest=False: treat Pipelines as Operations
83+
6484
- plot:
6585

6686
- [+] plot red partial outs/failures
@@ -85,15 +105,29 @@ Graphtik Changelog
85105
- [+] add a list of Features in quick-start section
86106
- [ ] Merge tutorial (operations + composition)
87107

88-
- Dropped:
108+
- DROPPED
89109

90110
- [-] Solution-retriever modifier;
91-
DROPPED: easier and more generic to access solution from Op-context.
111+
WONTFIX: easier and more generic to access solution from Op-context.
92112
REINSTATED to support simple conveyor belts from json-pointer paths.
93113
- [-] `solution.executed` pre-populated with all operations
94114
- [-] parallel batches restart from last position in steps
95115
- [-] covert custom op classes & modifiers directly into mergeable networkx graphs;
96-
DROPPED bc foreign function would not work with merged deps.
116+
WONTFIX bc foreign function would not work with merged deps.
117+
118+
- v9.0.0
119+
- [X] Accept jsonp inputs & outputs,
120+
WONTFIX user's business to expand into given Inputs, Outputs already working.
121+
- [x] REVERT rename subdocs;
122+
WONTFIX bc eventually made it work correctly and added TC.
123+
- [x] REFACT: separate op-decorator from factory
124+
(to facilitate defining conveyor operations):
125+
NO, simplify passing fn=None.
126+
- [x] Nest-rename subdocs: not by default, possible by renamer/nester.
127+
- [x] accessors accept default (not to search x2 contain+get_path)
128+
WONTFIX bc not worth it.
129+
- [x] Simplify Task-context by injecting it in a parametric argument of `fn`.
130+
NO, current solution works without `inspect` module.
97131

98132
+ See :gg:`1`.
99133

@@ -107,11 +141,19 @@ Changelog
107141
%%%%%%%%%
108142

109143

110-
v9.0.0.dev1 (21 Jun 2020, @ankostis): JSONP+Accessors
111-
=====================================================
144+
v9.0.0.dev2 (30 Jun 2020, @ankostis): JSONP; net, evictions & sfxed fixes; conveyor fn
145+
======================================================================================
112146
+ FEAT(modifier): Dependencies with :term:`json pointer path` that can read/write
113147
:term:`subdoc`\s (e.g. nested dicts & pandas).
114-
+ FEAT(modifier, solution): +modifier with accessor functions to read/write Solution.
148+
149+
+ feat(config): added :func:`set_layered_solution()` into :term:`configurations`
150+
which when True (or *jsnops* in the network if None (default)) all results
151+
are stored in the given inputs to the pipeline
152+
(this may become the regular behavior in the future).
153+
+ feat(modifier, solution): +modifier with accessor functions to read/write Solution.
154+
+ doc: new section :ref:`hierarchical-data` putting together all advanced features
155+
of the project in a "Weekly task runner".
156+
115157
+ break/REFACT(modifier): ``fn_kwarg-->keyword``
116158
+ FEAT(op): default :func:`.identity_function()` acting as :term:`conveyor operation`.
117159
+ FIX(NET, EXECUTION): discovered and fixed bugs in pruning, evictions and rescheduling
@@ -131,19 +173,32 @@ v9.0.0.dev1 (21 Jun 2020, @ankostis): JSONP+Accessors
131173
+ DROP(net): ``_EvictionInstruction`` class was obscuring modifier combinations, and
132174
it didn't make sense any more, being the only instruction.
133175
+ FEAT(ops, pipelines, net, sol): unified :meth:`.Plottable.ops` utility properties.
176+
+ ENH: Error reporting:
177+
178+
+ enh(op, pipe): fail earlier if no function/name given when defining operations
179+
and pipelines.
180+
+ enh(op): when :envvar:`GRAPHTIK_DEBUG` var defined, any errors during inputs/needs
181+
matching are raised immediately.
182+
+ enh: improve tips & hints in exception messages; log past executed operations
183+
when a pipeline fails.
184+
134185
+ DOC(op): table explaining the differences between various dependency attributes of
135186
:class:`.FunctionalOperation`.
136187

137188
.. include:: ../../graphtik/op.py
138189
:start-after: .. dep-attributes-start
139190
:end-before: .. dep-attributes-end
140191

141-
+ enh(op): with DEBUG errors during inputs/needs matching are raised immediately.
142192
+ enh(op, pipe): restrict operation names to be strings (were :class:`collection.abc.Hashable`).
143193
+ feat(modifier): public-ize :func:`modifier_withset()` to produce modified
144194
clones -- handle it with care.
195+
+ feat(doc): Add new section with most significant :ref:`features` of this project.
145196
+ fix(travis): update `pytest` or else `pip-install chokes with
146197
<https://travis-ci.org/github/ankostis/graphkit/jobs/700326904>`_ `pytest-coverage` plugin.
198+
+ enh(pytest): add ``--logger-disabled`` CLI option when running TCs, as explained
199+
in `pytest-dev/pytest#7431 <https://github.com/pytest-dev/pytest/issues/7431>`_.
200+
+ refact(tests): split big :file:`test/test_graphtik.py` TC file into multiple
201+
ones, per functionality area (features).
147202

148203

149204
v8.4.0 (15 May 2020, @ankostis): subclass-able Op, plot edges from south-->north of nodes

docs/source/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ but has diverged significantly with enhancements ever since.
5050
</details>
5151

5252

53+
.. _features:
54+
5355
Features
5456
--------
5557
.. default-role:: term

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__ = "9.0.0.dev1"
6-
__release_date__ = "21 Jun 2020, 19:24"
5+
__version__ = "9.0.0.dev2"
6+
__release_date__ = "30 Jun 2020, 17:52"
77
__title__ = "graphtik"
88
__summary__ = __doc__.splitlines()[0]
99
__license__ = "Apache-2.0"

0 commit comments

Comments
 (0)