Skip to content

Releases: Jordan-Kowal/pipe-operator

2.0.0

11 Jan 17:44
Compare
Choose a tag to compare

💥 Breaking changes: imports

Two major changes have been introduced:

  • Imports are no longer at the top level but are now nested their respective modules
  • For the 🐍 python implementation, the available imports have changed
from pipe_operator.elixir_flow import elixir_pipe, tap, then
from pipe_operator.python_flow import end, pipe, start, tap, task, then, wait

If you were using the python implementation before, the migration is quite simple. Here is the mapping:

Before After
PipeStart start
Pipe pipe
PipeArgs pipe
Tap tap
Then then
ThreadPipe task
ThreadWait wait
PipeEnd end

🚀 New feature: async function support

The 🐍 python implementation now support async functions from asyncio.
When using pipe, tap, or task, you can freely pass an async or sync function as the first argument.
As for then, it only supports single-arg lambda function.

🔧 Other changes

  • ✨ [Python] Exported classes with aliases (ie PipeStart is exported as start) for improved readability
  • 🔧 [Python] Updated documentation (docstrings and README.md)
  • 🔧 [Python] >> logic is now handle in each pipeable's __rrshift__ instead of PipeObject.__rshift__
  • 🔧 [Python] Greatly improved typing annotations (using @overload, @override, TypeAlias, TypeGuard, ...)
  • 🔧 [Python] Updated deps

1.1.0

23 Nov 21:55
68602ca
Compare
Choose a tag to compare
  • 🚀 [Python] Added thread support with ThreadPipe and ThreadWait. See README.md for more details.
  • ✨ [Python] Keep same PipeStart object throughout the pipe for improved performances
  • ✨ [Python] Added the PipeStart.history attribute to keep track of all its values (only in debug mode)
  • 🔧 [Python] Split logic into smaller modules: base.py, extras.py, threads.py

PR breakdown

Full Changelog: 1.0.4...1.1.0

1.0.4

22 Nov 17:24
3e3834d
Compare
Choose a tag to compare
  • ✨ [Python] Added __slots__ to classes for improved performances
  • ✨ [Python] Added custom PipeError exception class for better error handling
  • 🐞 [Elixir] Fixed error message for the then function

PRs breakdown

Full Changelog: 1.0.3...1.0.4

1.0.3

02 Nov 12:04
Compare
Choose a tag to compare

New Contributors

Full Changelog: 1.0.2...1.0.3

1.0.2

25 Oct 16:02
Compare
Choose a tag to compare
  • ✨ Classes and functions can now be imported directly, without going through submodules
  • 🔧 Fixed README.md "Build" badge to use the release events

Full Changelog: 1.0.1...1.0.2

1.0.1

25 Oct 15:28
Compare
Choose a tag to compare

Full Changelog: 1.0.0...1.0.1

1.0.0

25 Oct 15:03
Compare
Choose a tag to compare

✨ Official release of the pipe_operator library ✨