Skip to content

Commit f2bf74f

Browse files
committed
CHORE(VER): bump 3.1.0 --> 4.0.0; CHANGES
1 parent f0061a7 commit f2bf74f

File tree

2 files changed

+46
-7
lines changed

2 files changed

+46
-7
lines changed

CHANGES.rst

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,51 @@ TODO
66
====
77
See :gg:`1`.
88

9+
v4.0.0 (11 Dec 2019, @ankostis): NESTED merge, revert v3.x Unvarying, immutable OPs, "color" nodes
10+
==================================================================================================
11+
+ BREAK/ENH(NETOP): MERGE NESTED NetOps by collecting all their operations
12+
in a single Network; now children netops are not pruned in case
13+
some of their `needs` are unsatisfied.
14+
15+
+ feat(op): support multiple nesting under other netops.
16+
17+
+ BREAK(NETOP): REVERT Unvarying NetOps+base-plan, and narrow Networks instead;
18+
netops were too rigid, code was cumbersome, and could not really pinpoint
19+
the narrowed `needs` always correctly (e.g. when they were also `provides`).
20+
21+
+ A `netop` always narrows its `net` based on given `inputs/outputs`.
22+
This means that the `net` might be a subset of the one constructed out of
23+
the given operations. If you want all nodes, don't specify `needs/provides`.
24+
+ drop 3 :class:`.ExecutionPlan` attributes: ``plan, needs, plan``
25+
+ drop `recompile` flag in ``Network.compute()``.
26+
+ feat(net): new method :meth:`.Network.narrowed()` clones and narrows.
27+
+ ``Network()`` cstor accepts a (cloned) graph to support ``narrowed()`` methods.
28+
29+
+ BREAK/REFACT(OP): simplify hierarchy, make :class:`.Operation` fully abstract,
30+
without name or requirements.
31+
32+
+ enh: make :class:`.FunctionalOperation` IMMUTABLE, by inheriting
33+
from class:`.namedtuple`.
34+
35+
+ refact(net): consider as netop `needs` also intermediate data nodes.
36+
37+
+ FEAT(:gg:`1`, net, netop): support prunning based on arbitrary operation attributes
38+
(e.g. assign "colors" to nodes and solve a subset each time).
39+
40+
+ enh(netop): ``repr()`` now counts number of contained operations.
41+
42+
+ refact(netop): rename ``netop.narrow() --> narrowed()``
43+
44+
+ drop(netop): don't topologically-sort sub-networks before merging them;
45+
might change some results, but gives controll back to the user to define nets.
46+
47+
948
v3.1.0 (6 Dec 2019, @ankostis): cooler ``prune()``
1049
==================================================
11-
- break/refact(NET): scream on ``plan.execute()`` (not ``net.prune()``)
50+
+ break/refact(NET): scream on ``plan.execute()`` (not ``net.prune()``)
1251
so as calmly solve `needs` vs `provides`, based on the given `inputs`/`outputs`.
13-
- FIX(ot): was failing when plotting graphs with ops without `fn` set.
14-
- enh(net): minor fixes on assertions.
52+
+ FIX(ot): was failing when plotting graphs with ops without `fn` set.
53+
+ enh(net): minor fixes on assertions.
1554

1655

1756
v3.0.0 (2 Dec 2019, @ankostis): UNVARYING NetOperations, narrowed, API refact
@@ -40,7 +79,7 @@ v3.0.0 (2 Dec 2019, @ankostis): UNVARYING NetOperations, narrowed, API refact
4079
and always produce all their `provides`, or scream if less `inputs` than `needs`
4180
are given.
4281

43-
+ ENH: a newly created or cloned netop can be :meth:`~.NetworkOperation.narrow()`\ed
82+
+ ENH: a newly created or cloned netop can be :meth:`~.NetworkOperation.narrowed()`
4483
to specific `needs` & `provides`, so as not needing to pass `outputs` on every call
4584
to :meth:`~.NetworkOperation.compute()`.
4685

graphtik/__init__.py

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

5-
__author__ = "hnguyen"
6-
__version__ = "3.1.0"
7-
__release_date__ = "6 Dec 2019, 22:28"
5+
__author__ = "hnguyen, ankostis"
6+
__version__ = "4.0.0"
7+
__release_date__ = "11 Dec 2019, 21:05"
88
__license__ = "Apache-2.0"
99
__title__ = "graphtik"
1010
__summary__ = __doc__.splitlines()[0]

0 commit comments

Comments
 (0)