Effect Versions Save

effect isolation in Python, to facilitate more purely functional code

1.1.0

4 years ago
  • The do_return function which was previously used to support returning values from @do functions is now deprecated. In Python 3, we can just use return statements.

  • The very last bare-except: clause was removed from the Effect library, meaning that KeyboardInterrupt and SystemExit should no longer be swallowed by effect performance.

1.0.0

4 years ago

This is a major backwards-incompatible release of Effect.

Everywhere that exc_info tuples were previously used for exceptions, now we simply use Exception instances. exc_info tuples were only necessary on Python 2, because Exception objects did not carry their tracebacks. Now, on Python 3, tracebacks are embedded in the Exception instance, so we don't need to worry about that old three-tuple.

This means that Effect 1.0 only supports Python 3 and up (officially, only 3.6 and up are supported).

0.11.0

7 years ago

Incompatible changes:

  • Python 2.6 is no longer officially supported, though it might still work for now.

Features:

Thanks to @manishtomar who contributed the work for this release.

0.10.1

8 years ago

Features:

  • Added effect.io, which gives intents for representing print and raw_input-style interactions
  • The Func intent now accepts _args and *_kwargs to pass through to the function, and which are compared on __eq__, to make testing easier.
  • effect.raise_ is a convenience function to raise an exception instance.
  • effect.testing.noop is lambda i: None, and is intended to be used in perform_sequence sequences.
  • effect.perform_delay_with_sleep is a new performer that performs Delay intents by sleeping.
  • The exceptions raised from perform_sequence have more informative output.

0.10

8 years ago

Features:

  • Added a code of conduct
  • Added two new testing utilities in effect.testing: perform_sequence and parallel_sequence, which make using using and debugging SequenceDispatcher much nicer.
  • On Python 3, you can now use the return statement to return values from functions using @do notation.

Bug fixes:

  • Fixed a bug where @do would not propagate StopIteration exceptions
  • Fixed a bug that prevented @sync_performer-decorated functions from accepting keyword arguments

Other:

  • Many documentation improvements