Skip to content

Releases: cedricleroy/pyungo

v0.9.0

13 Jun 20:54
Compare
Choose a tag to compare
  • Drop support / compatibility for Python 2.7.
  • Inputs / outputs names are now optional:
@graph.register()
def f_my_function(a, b):
    c = a + b
    return c
  • Additional argument to Graph to prevent inputs deepcopy (@Tosa95). This is useful when having large inputs when the deepcopy might be slow, but remove inputs immutability.

v0.8.1

27 Oct 16:46
Compare
Choose a tag to compare

Allow optional input data for kwargs (@veronicaguo)

v0.8.0

17 Mar 22:27
Compare
Choose a tag to compare
  1. Can pass list of Input / Output to Graph.
  2. Names mapping.
  3. Inputs validation with JSON Schema.
  4. Some misc. refactoring and styling.

v0.7.0

17 Mar 22:26
Compare
Choose a tag to compare
  1. Refactoring, and introduction of Input and Output objects.

  2. Contracts feature.:

graph.add_node(
    my_function,
    inputs=[Input(name='a', contract='>0'), Input(name='b', contract='float')],
    outputs=[Output(name='g', contract='float')]
)
  1. Nodes IDs refactoring (now uses uuid).

  2. Run topological sort only when needed.

  3. Everything accessible from pyungo init (@nelsontodd)

  4. Docstrings / Sphinx doc / GitHub page

v0.6.0

06 Jul 21:09
Compare
Choose a tag to compare
  1. Fix "false parallelism" implementation. This require an optional dependency (multiprocess module) which is more friendly to work with stateful objects and multiprocessing.
  2. Ability to pass predefined inputs at the node definition:
@graph.register(inputs=['a', {'b': 2}], outputs=['c'])
    def f_my_function(a, b):
        return a + b

v0.5.0

03 Apr 13:27
17812be
Compare
Choose a tag to compare
  1. Nodes can be run in parallel using Python multiprocessing module:
graph = Graph(parallel=True, , pool_size=3)
  1. inputs and outputs parameters are mandatory and will raise an explicit error when missing.

  2. Add a longer test using pvlib

v0.4.0

23 Mar 13:38
Compare
Choose a tag to compare
  1. Fix single output when dealing with iterables
    Previously, returning one output with an iterable was resulting in taking the first element. See #4 and #6.
  2. Possible to use kwargs in functions
    Args and kwargs can be used in functions, see #3.
    @graph.register(
        inputs=['a', 'b'],
        args=['c'],
        kwargs=['d'],
        outputs=['e']
    )
    def f_my_function(a, b, *args, **kwargs):
        return a + b + args[0] + kwargs['d']
  1. Can create a Node without using the decorator, #2
graph.add_node(f_my_function, inputs=['a', 'b'], outputs=['c'])
  1. Dag pretty print, #1
    Use graph.dag

v0.3.0

18 Mar 15:42
Compare
Choose a tag to compare
first version in pypi