Changes

2.7.2 (20 September 2017)

2.7.1 (7 September 2017)

  • Use the original’s requirements when the replacement passed to Runner.replace() has no specified requirements of its own.

2.7.0 (7 September 2017)

  • Move to pytest and sybil for testing.
  • Drop support for Python 3.3.
  • Add update_wrapper() helper.
  • Add support for using Python 3 type annotations to specify requirements and returned resources.
  • Add support for arg names being used as requirements when there is no other configuration.
  • Add an explicit way of ignoring the return value of a callable.

2.6.0 (6 February 2017)

  • Allow replacement of a callable to also supply new requirements.
  • Officially support Python 3.6.

2.5.0 (23 November 2016)

2.4.0 (17 November 2016)

  • Add support for cloning depending on what label was used to add callables.
  • Add Runner.add_label() helper to just add a label at the end of the runner.
  • Document and flesh out Plugs.
  • Switch to full Semantic Versioning.

2.3 (24 June 2016)

  • Stop catching TypeError and turning it into a ContextError when calling a Runner. This turns out to be massively unhelpful, especially when using Python 2.

2.2 (2 January 2016)

  • Add Plug base class.

2.1 (14 December 2015)

  • Typo fixes in documentation.
  • Indicate that Python 2.6 is no longer supported.
  • Raise exceptions when arguments to requires() and returns() are not either types or labels.
  • Allow tuples are lists to be passed to add(), they will automatically be turned into a requires() or returns().
  • Better error messages when a requirement is not found in the Context.

Thanks to Dani Fortunov for the documentation review.

2.0 (11 December 2015)

  • Re-write dropping all the heuristic callable ordering in favour of building up defined sequences of callables with labelled insertion points.

1.3 (21 October 2015)

  • Official support for Python 3.
  • Drop official support for Windows, although things should still work.
  • Move to Travis CI, Read The Docs and Coveralls for development.
  • ‘How’ decorators like attr() and item() can now be nested as well as individually performing nested actions.
  • Add returns() and add_returning() as new ways to override the type of a returned value.
  • A better pattern for “marker types”.

1.2 (11 December 2013)

  • Use nothing instead of None for marker return types, fixing a bug that occurred when a callable tried to type-map a result that was None.
  • Add an after() type wrapper for callables that need to wait until after a resource is used but that can’t accept that resource as a parameter.

1.1 (27 November 2013)

1.0 (29 October 2013)

  • Initial Release