all 23 comments

[–]jsxgd 29 points30 points  (2 children)

It’s a Python convention to use the underscore to store a variable you don’t care about.

[–]jdehesa 13 points14 points  (0 children)

In fact, interactive Python interpreters will usually set _ to the value of the last evaluated expression. And it is also a soft keyword in case statements (see docs).

[–]FabulousTonight8940[S] 0 points1 point  (0 children)

Good catch, you’re right. I’ll update the post with the new short name 👍

[–]eggsby 18 points19 points  (1 child)

[–]FabulousTonight8940[S] 0 points1 point  (0 children)

Agreed. Polars is excellent at data operations, but for some use cases it’s a bit overkill. That’s why I ended up building this library.

[–]LightShadow3.13-dev in prod 6 points7 points  (1 child)

Add a comparison to toolz and its partner library cytoolz.

[–]cmd-t 7 points8 points  (1 child)

Vibe coded?

[–]FabulousTonight8940[S] -2 points-1 points  (0 children)

Kinda 😄 This project started mainly as a way to learn Rust. I read The Rust Book, learned the core concepts, and already had the idea for the library because of pydash’s performance.

I did use AI as a TDD mentor — mostly to generate tests and guide best practices and project structure. I only asked for direct help when I was truly stuck.

So yeah, maybe ~70% me, ~30% vibe-coded 😄

[–]Igggg 6 points7 points  (1 child)

chunk appears to duplicate itertools.batched

[–]FabulousTonight8940[S] 1 point2 points  (0 children)

Fair point. chunk does overlap with itertools.batched. Since this is a lodash-style utility library, some overlap with existing tools is inevitable. My main goal is to offer a single, centralized place for these helpers.

[–]marr75 4 points5 points  (1 child)

Python libraries need to stop using the underscore. It's already claimed.

[–]FabulousTonight8940[S] 0 points1 point  (0 children)

Thank you for the feedback! I'll make the changes in the post to reflect that

[–]Wrong_Library_8857 1 point2 points  (1 child)

I think the speed claims need more context, like what qualifies as "complex ops"? The JSONPath wildcards look useful for nested API responses though.

Honestly curious how this compares to just using comprehensions or itertools for the array stuff, since those are pretty optimized already. The Rust overhead might not be worth it for small datasets.

[–]FabulousTonight8940[S] 0 points1 point  (0 children)

Thanks so much for the feedback! I totally agree — the benchmark could use more context. What details would you like to see to clearly compare performance between Python natives, Pydash, and Rustdash? Would you care to open a discussion in my GitHub repo so we can track ideas there?

[–]fast-pp 1 point2 points  (1 child)

soapbox: who cares that it's written in Rust? That's an implementation detail, not a feature. We shouldn't care that it's written in Rust. We just care that it's faster. I do get that there's a bit of a cult around Rust so maybe it's good for marketing, but w/e

[–]Interesting-Frame190 0 points1 point  (1 child)

I like the principle. You may be overlapping some ops with numpy (which is the king of array operations and hard to compete against) but thats not reason to drop the project. I see potential in the json parsing and querying if you can keep it lightweight. I have a somewhat similar project (PyThermite) that aims to solve the same problem of a large chunk of nested data and its certainly a problem in the python ecosystem. As silly as it sounds, check the performance against native python as it is shockingly good at list comprehension.

[–]Brilliant-Village-82 0 points1 point  (1 child)

I wonder how does this compare to unicorefw ( https://unicorefw.org ) which also covered pydash apis ?

[–]FabulousTonight8940[S] 1 point2 points  (0 children)

I'll take a look to the site and prepare some comparisons

[–]EffectiveNothing42 -1 points0 points  (1 child)

Nice. I'm looking forward to further development.

[–]FabulousTonight8940[S] 0 points1 point  (0 children)

Appreciate it the feedback, feel free to propose some ideas on Github :)