Skip to content

Releases: pygraphkit/graphtik

(5 May 2020, @ankostis): RETRACTED minor reschedule fixes and refactoring

05 May 07:48
v7.1.1

Choose a tag to compare

--((RETRACTED mistakenly included features from nextr release))--

  • FIX(op): v7.0.0 promise that op.__call__ delegates to compute() 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

04 May 00:39
v7.1.0

Choose a tag to compare

Should have been a MAJOR BUMP due to breaking renames, but just out of
another 6.x --> 7.x major bump.

4.4.0+ architecture

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_RESULT constant cancels also sideffects.
  • ENH(OP): more intuitive API, compute() may be called with no args,
    or a single string as outputs param. Operation's __call__ now delegates
    to compute() - to quickly experiment with function, access it from the
    operation's :attr:.FunctionalOperation.fn attribute

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-attrs starting 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:graphtik directives.

  • fix(sphinxext): fix deprecation of sphinx add_object() with note_object().

Various

  • break: raise TypeError instead of ValueError wherever it must.
  • DOC(operations): heavily restructured chapter - now might stand alone.
    Started using the pipeline name 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

28 Apr 16:05
v7.0.0

Choose a tag to compare

  • 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 execution while 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:.operation factory function (used to be class) now behave
    like a regular decorator when fn given in the first call, and constructs
    the :class:.FunctionalOperation without 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_provides on
      :class:.FunctionalOperation, used when matching Inps/Outs and when pruning
      graph.
    • FEAT(op): print detailed deps when DEBUG enabled.

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-customizations to re-enable them::

    plottable.plot(plotter=Plotter(include_steps=True))
    
  • FEAT: now operations are 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): _DataNode and use str + modifier-classes as data-nodes;

Configurations:

  • BREAK: rename context-manager configuration function debug --> debug_enabled.
  • FEAT: respect :envvar:GRAPHTIK_DEBUG for enabling is_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

19 Apr 11:06
v6.2.0

Choose a tag to compare

  • PLOT:

    • DEPRECATE(plot): show argument in plot methods & functions; dropped completely
      from the args of the younger class :class:Plotter.

      It has merged with filename param (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 it crashes 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 networkx API misuse - add TCs
      on that.

    • FIX: Networks were not plotting Inps/Outs/Name due to forgotten namedtuple._replace()
      assignment.

    • feat: introduce _no_plot nx-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

14 Apr 17:04
v6.1.0

Choose a tag to compare

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...

13 Apr 16:18
v6.0.0

Choose a tag to compare

--((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.

      image

    • 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

07 Apr 06:36
v5.7.1

Choose a tag to compare

  • ENH(PLOT): Operation tooltips now show function sources.
  • FIX(site): RTD failing since 5.6.0 due to sphinxcontrib-spelling extension
    not included n its requirements.
  • FEAT(sphinxext): add :confval:graphtik_plot_keywords sphinx-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

06 Apr 12:41
v5.7.0

Choose a tag to compare

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

06 Apr 10:53
v5.6.0

Choose a tag to compare

(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

01 Apr 12:15
v5.5.0

Choose a tag to compare

(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_epilog configuration
    (instead of importing them from README's tails).
  • doc(quickstart): exemplify @operation as a decorator.