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
# 3

Features:

  • 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
 

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
# 3

Features:

  • 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
submitted 4 months ago* (last edited 4 months ago) by to c/python@programming.dev
 

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
# 3

Features:

  • 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
 

I need to boast a bit and ask for "code review". I'm sorry if this doesn't constitute a good post.

I browse local communities more often than I should for my mental health.

I was checking out https://nim-lang.org/ and when I googled it one of the links was to rosettacode.org and I decided to check out the implementation of 2048.

I noticed that zig's implementation was a non-working auto translation of rust's, so I decided to rewrite it.

My repo: https://codeberg.org/Vulwsztyn/2048_zig

With the reader, writer, and arraylist api changes in 0.15 most of the sources were usless and if I hadn't found https://github.com/xyaman/mibu I guess I would have surrendered.

Feel free to roast the hell out of my code.

view more: next ›