[ANN] DataPipes.jl 0.3.0

A new version of DataPipes is now released: 0.3.0.
README and docs are significantly improved. Unfortunately, the first post in this thread isn’t editable anymore.

Nothing breaks in the core piping functionality. The only breaking change in the package is the removal of convenience functions that were previously defined in DataPipes: filtermap, mutate, and a few more.
Now, DataPipes just implements its piping syntax and does nothing else. There are no dependencies anymore, and the loading time is less than 1 ms. These changes make DataPipes itself a no-brainer to include as a dependency, even in very lightweight projects.

Of course, those removed data processing functions are useful by themselves as well. Over time, more and more of such functions gathered in DataPipes, which didn’t really make sense conceptually. I’m making them more general and performant, and plan to release as another package soonish. If you also use them, feel free to stay on DataPipes@0.2 for now. For now, basically the only difference between versions is removal of those functions in 0.3.

There are also a couple of minor fixes/improvements in the core piping functionality since the previous announcement here. I haven’t encountered any serious issues for a long time in my pretty heavy usage of DataPipes. So, recent changes addressed some remaining corner cases:

  • implicit inner pipes (that start with __) now work everywhere they make sense, including kwargs
  • @p let ... end and @p begin ... end forms generate corresponding blocks, let or begin, making variable scoping consistent with plain Julia
  • function (x) ... end is treated exactly the same as x -> ...
  • qualified function calls also work without brackets, as in regular pipes: @p data |> Iterators.flatten
8 Likes