Releases: pygraphkit/graphtik
(5 May 2020, @ankostis): RETRACTED minor reschedule fixes and refactoring
--((RETRACTED mistakenly included features from nextr release))--
- FIX(op): v7.0.0 promise that
op.__call__delegates tocompute()was a fake;
now it is fixed. - fix(config): endurance flags were miss-behaving.
- refact(net): factor out a :meth:
._reschedule()method for both endurance & rescheduled ops. - feat(build): +script to launch pytest on a local clone repo before pushing.
(4 May 2020, @ankostis): Cancelable sideffects, theme-ize & expand everything
Should have been a MAJOR BUMP due to breaking renames, but just out of
another 6.x --> 7.x major bump.
NET
-
FIX: rescheduled operations were not canceling all downstream deps & operations.
-
FEAT: Cancelable sideffects: a :term:
reschedule\s operation may return
a "falsy" sideffect to cancel downstream operations.NO_RESULTconstant cancels also sideffects.
-
ENH(OP): more intuitive API,
compute()may be called with no args,
or a single string asoutputsparam. Operation's__call__now delegates
tocompute()- to quickly experiment with function, access it from the
operation's :attr:.FunctionalOperation.fnattribute
MODIFIERS
- BREAK: renamed modifiers
sol_sideffect --> sideffected, to reduce terminology
mental load for the users. - ENH: support combinations of modifiers (e.g. optional sideffects).
- REFACT: convert modifiers classes --> factory functions, producing :class:
._Modifier
instances (normally not managed by the user).
PLOT
-
ENH: Theme-ize all; expand callables (beyond Refs and templates).
-
BREAK: rename
Theme.with_set()--> :meth:.Theme.withset(). -
break: pass verbatim any
nx-attrsstarting with'graphviz.'into
plotting process (instead of passing everything but private attributes). -
break: rename graph/node/edge control attributes:
_no_plot --> no_plot._alias_of --> alias_of.
-
FEAT: draw combined pipelines as clusters
-
enh: corrected and richer styles for data nodes.
-
enh: unify op-badges on plot with diacritics in their string-representation.
-
ENH(sphinxext): clicking on an SVG opens the diagram in a new tab.
-
fix(sphinxext): don't choke on duplicate
:name:in :rst:dir:graphtikdirectives. -
fix(sphinxext): fix deprecation of sphinx
add_object()withnote_object().
Various
- break: raise
TypeErrorinstead ofValueErrorwherever it must. - DOC(operations): heavily restructured chapter - now might stand alone.
Started using thepipelinename more often. - doc: use as sample diagram in the project opening an "endured" one (instead of
an outdated plain simple on). - doc: renamed document:
composition.py --> pipelines.py
(28 Apr 2020, @ankostis): In-solution sideffects, unified OpBuilder, plot badges
-
BREAK: stacking of solution results changed to the more natural "chronological" one
(outputs written later in the solution override previous ones).Previously it was the opposite during
executionwhile reading intermediate
solution values (1st result or user-inputs won), and it was "reversed" to regular
chronological right before the solution was finalized. -
FEAT(op, netop): add
__name__attribute to operations, to disguise as functions. -
BREAK(op): The :func:
.operationfactory function (used to be class) now behave
like a regular decorator whenfngiven in the first call, and constructs
the :class:.FunctionalOperationwithout a need to call again the factory.Specifically the last empty call at the end
()is not needed (or possible)::operation(str, name=...)()became simply like that::
operation(str, name=...)
MODIFIERS:
-
BREAK: rename `arg --> mapping``, which conveys the correct meaning.
-
FEAT: Introduced :term:
solution sideffect\s, to allow for certain dependencies
to be produced & consumed by function to apply "sideffects, without creating
"cycles":- feat(op): introduce
_fn_needs,op_needs&op_provideson
:class:.FunctionalOperation, used when matching Inps/Outs and when pruning
graph. - FEAT(op): print detailed deps when DEBUG enabled.
- feat(op): introduce
PLOT:
-
ENH: recursively merge Graphviz-styles attributes, with expanding jinja2-template
and extending lists while preserving theme-provenance, for debugging. -
BREAK: rename class & attributes related to
Style --> Theme,
to distinguish them from styles (stacks of dictionaries). -
UPD: dot no plot Steps by default; use this :ref:
plot-customizationsto re-enable them::plottable.plot(plotter=Plotter(include_steps=True)) -
FEAT: now
operationsare also :term:plottable. -
FEAT: Operation BADGES to distinguish endured, rescheduled, parallel, marshalled,
returns_dict. -
FIX: Cancel/Evict styles were misclassified.
-
feat(plot): change label in sol_sideffects; add exceptions as tooltips on
failed operations, etc. -
enh: improve plot theme, e.g. prunes are all grey, sideffects all blue,
"evictions" are colored closer to steps, etc. Add many neglected styles.
Sphinx extension:
-
enh: Save DOTs if DEBUG; save it before...
-
fix: save debug-DOT before rendering images, to still get those files
as debug aid in case of errors. -
fix: workaround missing lineno on doctest failures, an incomplete solution
introduced upstream by sphinx-doc/sphinx#4584. -
DROP(NET):
_DataNodeand use str + modifier-classes as data-nodes;
Configurations:
- BREAK: rename context-manager configuration function
debug --> debug_enabled. - FEAT: respect :envvar:
GRAPHTIK_DEBUGfor enablingis_debug()configuration.
DOC:
- feat: new sections about composing pipelines with :term:
reschedule/ :term:endured
operations & :term:alias\es. - enh: Clarified relation and duties of the new term :term:
dependency. - enh: Linked many terms from quick-start section.
- enh(site): support for
Sphinx's standard colored-text <https://stackoverflow.com/a/61389938/548792>_ roles.
(19 Apr 2020, @ankostis): plotting fixes & more styles, net find util methods
-
PLOT:
-
DEPRECATE(plot):
showargument in plot methods & functions; dropped completely
from the args of the younger class :class:Plotter.It has merged with
filenameparam (the later takes precedence if both given). -
ENH: apply more styles on data-nodes; distinguish between Prune/Cancel/Evict
data Styles and add tooltips for those cases (ie data nodes without values). -
DROP: do not plot wth
splines=ortho, because itcrashes with some shapes <https://gitlab.com/graphviz/graphviz/issues/1408>_;
explain in docs how to re-enables this (x2 ways). -
FIX: node/edge attributes were ignored due to
networkxAPI misuse - add TCs
on that. -
FIX: Networks were not plotting Inps/Outs/Name due to forgotten
namedtuple._replace()
assignment. -
feat: introduce
_no_plotnx-attribute to filter out nodes/edges.
-
-
ENH(base): improve auto-naming of operations, descending partials politely and
handling better builtins. -
FEAT(net): add :meth:
.Network.find_ops()& :meth:.Network.find_op_by_name()
utility methods. -
enh(build, site, doc): graft Build Ver/Date as gotten from Git in PyPilanding-page.
(14 Apr 2020, @ankostis): config plugs & fix styles
Should have been a MAJOR BUMP due to breaking renames, but...no clients yet
(and just out of to 5.x --> 6.x major bump).
- REFACT/BREAK(plot): rename
installed_plotter --> active_plotter. - REFACT/BREAK(congfig): denote context-manager functions by adding a
"_plugged"suffix. - FEAT(plot): offer
with_XXX()cloning methods on Plotter/Style instances. - FIX(plot): Style cstor were had his methods broken due to eager copying them
from its parent class.
(13 Apr 2020, @ankostis): New Plotting Device...
--((superseded by v6.1.0 due to installed_potter --> active_plotter))--
-
ENH/REFACT(PLOT):
-
REFACT/BREAK: plots are now fully configurable with :term:
plot styles
through the use of :term:installed plotter. -
ENH: Render operation nodes with Graphviz HTML-Table Labels.
-
ENH: Convey graph, node & edge ("non-private") attributes from the networkx graph
given to the :term:plotter. -
FEAT: Operation node link to docs (hackish, based on a URL formatting).
-
Improved plotting documentation & +3 new terms.
-
- FIX: ReadTheDice deps
- drop(plot): don't suppress the grafting of the title in netop images.
(7 Apr 2020, @ankostis): Plot job, fix RTD deps
- ENH(PLOT): Operation tooltips now show function sources.
- FIX(site): RTD failing since 5.6.0 due to
sphinxcontrib-spellingextension
not included n its requirements. - FEAT(sphinxext): add :confval:
graphtik_plot_keywordssphinx-configuration
with a default value that suppresses grafting the title of a netop in the images,
to avoid duplication when :rst:dir:graphtik:name: <graphtik>option is given. - enh(plot): URL/tooltips are now overridable with node_props
- enh(sphinxext): permalink plottables with
:name:option. - enh(plot): pan-zoom follows parent container block, on window resize;
reduce zoom mouse speed.
(6 Apr 2020, @ankostis): FIX +SphinxExt in Wheel
All previous distributions in PyPi since sphinx-extension was added in v5.3.0
were missing the new package sphinxext needed to build sites with the .. graphtik:: directive.
(6 Apr 2020, @ankostis, BROKEN): +check_if_incomplete
(broken: wheel in PyPi is missing sphinxext package)
- feat(sol): + :meth:
.Solution.check_if_incomplete()just to get multi-errors
(not raise them) - doc: integrate spellchecking of VSCode IDE &
sphinxcontrib.spelling.
(1 Apr 2020, @ankostis, BROKEN): ortho plots
(broken: wheel in PyPi is missing sphinxext package)
Should have been a major bump due to breaking rename of Plotter class,
but...no clients yet.
- ENH(plot): plot edges in grapos with
Graphviz_splines=ortho. - REFACT(plot): rename base class from
Plotter --> Plottable; - enh(build): add
[dev]distribution extras as an alias to[all].
doc: refered to the new name from a new term in glossary. - enh(site): put RST substitutions in :confval:
rst_epilogconfiguration
(instead of importing them from README's tails). - doc(quickstart): exemplify
@operationas a decorator.

