ChangelogΒΆ

v0.20.0 - 2021-08-10ΒΆ

  • πŸ”§ MAINTAIN: update requirement to pyyaml~=5.4 (#221) The versions of pyyaml up to v5.4 contained severe security issues where the default loaders could be abused for arbitrary code execution. The default FullLoader was patched to no longer allow this behavior, but as a result, data sets that could be successfully deserialized with it, now will fail. This required using the unsafe Loader in for the deserialization of the exception state of a process.

v0.19.0 - 2021-03-09ΒΆ

  • ‼️ DEPRECATE: Process.done method: This method is a duplicate of Process.has_terminated, and is not used anywhere in plumpy (or aiida-core).

  • πŸ› FIX: Task.cancel should not set state as EXCEPTED asyncio.CancelledError are generated when an async task is cancelled. In python 3.7 this exception class inherits from Exception, whereas in python 3.8+ it inherits from BaseException. This meant it python 3.7 it was being caught by except Exception, and setting the process state to EXCEPTED, whereas in python 3.8+ it was being re-raised to the caller. We now ensure in both versions it is re-raised (particularly because aiida-core currently relies on this behaviour).

  • πŸ‘Œ IMPROVE: Process broadcast subscriber Filter out state_changed broadcasts, and allow these to pass-through without generating a (costly) asynchronous task. Note this also required an update in the minimal kiwipy version, to 0.7.4

v0.18.6 - 2021-02-24ΒΆ

πŸ‘Œ IMPROVE: Catch state change broadcast timeout

When using an RMQ communicator, the broadcast can timeout on heavy loads to RMQ (for example see https://github.com/aiidateam/aiida-core/issues/4745). This broadcast is not critical to the running of the process, and so a timeout should not except it.

Also ensure the process PID is included in all log messages.

v0.18.5 - 2021-02-15ΒΆ

Minor improvements and bug fixes:

  • πŸ› FIX: retrieve future exception on_killed The exception set on the future should be retrieved, otherwise it will be caught by the loop’s exception handler.

  • πŸ› FIX: Clean-up process event hooks: On Process close/cleanup event hooks are removed, in part to not persist cyclic dependencies of hooks <-> Process. Once a process is closed, it will also not raise an Exception if a hook tries to un-register itself (but has already been removed by the clean-up).

  • πŸ‘Œ IMPROVE: Add Process.is_killing property

  • πŸ‘Œ IMPROVE: remove RUNNING from allowed states of resume: Since there is no resume method implemented for the Running class.

  • πŸ”§ MAINTAIN: Remove frozendict dependency

v0.18.4 - 2021-01-21ΒΆ

Minor update, to add py.typed file to distribution, in accordance with PEP-561 [#195]

v0.18.2 - 2021-01-21ΒΆ

ChangesΒΆ

  • Allow for dereferencing of saved instance state [#191]

  • Add type checking to code base [#180]

  • Improve documentation [#190]

v0.18.1 - 2020-12-18ΒΆ

Bug fixesΒΆ

  • Trigger application of nest patch in set_event_loop_policy to make it compatible with Jupyter notebooks [#189]

v0.18.0 - 2020-19-09ΒΆ

ChangesΒΆ

  • Drop support for Python 3.5 [#187]

DependenciesΒΆ

  • Dependencies: update requirement kiwipy~=0.7.1 [#184]

v0.17.1 - 2020-11-25ΒΆ

Bug fixesΒΆ

  • Dependencies: only require aiocontextvars for Python < 3.7 [#181]

v0.17.0 - 2020-11-13ΒΆ

ChangesΒΆ

  • Add support for Python 3.9 [#176]

  • Make application of nest_asyncio patch explicit [#179]

Bug fixesΒΆ

  • Port: do not call validator if unspecified and port not required [#173]

v0.16.1 - 2020-09-04ΒΆ

ChangesΒΆ

  • Dependencies: relax the requirement on aio-pika to aio-pika~=6.6. [#171]

v0.16.0 - 2020-08-15ΒΆ

ChangesΒΆ

  • Drop tornado as a dependency and replace it fully by asyncio [#166]

v0.15.0 - 2020-06-16ΒΆ

ChangesΒΆ

  • Drop support for Python 2.7 [#151]

Bug fixesΒΆ

  • LoopCommunicator: fix incorrect call through in remove_broadcast_subscriber [#156]

  • PortNamespace: do not add empty optional port namespaces to parsed inputs in the pre_process method [#143]

  • PortNamespace: do not set dynamic=False when valid_type=None [#146]

  • PortNamespace: set dynamic=True if valid_type in constructor [#145]

DevelopersΒΆ

  • Migrate CI from Travis to Github Actions [#152]

v0.14.5 - 2020-01-22ΒΆ

FeaturesΒΆ

  • Port: add context argument to validator method [#141]

ChangesΒΆ

  • Remove unnecessary abstraction layer ValueSpec [#141]

v0.14.4 - 2019-12-12ΒΆ

Bug fixesΒΆ

  • ProcessSpec: do not set _spec attribute if an error is raised in spec call [#136]

v0.14.3 - 2019-10-25ΒΆ

FeaturesΒΆ

  • Allow lambdas for InputPort default values[#133]

Bug fixesΒΆ

  • PortNamespace: move namespace validator after port validation [#129]

v0.14.2 - 2019-07-16ΒΆ

FeaturesΒΆ

  • PortNamespace: add the concept of a β€œlazy” namespace [#121]

Bug fixesΒΆ

  • PortNamespace: fix the implementation of include in absorb [#120]

v0.14.1 - 2019-06-17ΒΆ

FeaturesΒΆ

  • PortNamespace: add support for nested exclude/include rules in absorb [#116]

  • Add traceback when setting exception on an excepted Future [#113]

v0.14.0ΒΆ

Bug fixesΒΆ

  • Fix bug in process spec validation with default and validator [#106]

  • Fix call of Portnamespace.validator [#104]