cross-posted from: https://programming.dev/post/46518217
Links:
I created it mainly as a proof of concept that python’s typing system is mature enough to support such a thing. The process was fun and I was able to help make remeda.js docs a bit better
The library is as typed as possible with my knowledge of python typing system, which means dict typing is kinda meh, but for iterables it is as good as in TS.
I decided to publish 1.X, since I’ve been adding a lot of stuff that “absolutely must be in 1.X” and got tired of the scope creep, so there is a bunch of TODOs, but they are "nice to have"s.
I’m planning to work on the TODOs and making the docs better now that I’ve managed to release it.
About the library:
It supports what remeda.js calls “data-first” and “data-last” approaches to calling functions. That means:
x = R.map([1, 2, 3], lambda i: i +1) # is the same as x = R.map(lambda i: i +1)([1, 2, 3])which allows for a “fun” function composition:
import remedapy as R R.pipe( [1, 2, 2, 3, 3, 4, 5, 6], R.for_each(print), R.unique(), R.take(3), list ) # Returns [1, 2, 3] # Prints: # 1 # 2 # 2 # 3Features:
- as typed as possible, checked with basedpyright
- 100% code coverage, but the tests could be a bit more exhaustive
- docstrings for everything (they might require some work)
- no AI, 100% Human Stupidity

