mastodon.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
The original server operated by the Mastodon gGmbH non-profit

Administered by:

Server stats:

348K
active users

Hynek Schlawack

There is some beauty in the fact that my oldest project `first` is still in the top 1% of PyPI. The last release was six years ago, I don’t expect another one ever again, and yet its functionality never made it into the standard library due to gatekeeping.

clickpy.clickhouse.com/dashboa

clickpy.clickhouse.comClickPy - Download analytics for firstAnalytics for the python package first, powered by ClickHouse

@hynek What kind of gatekeeping they practice?

@hynek @via4 still salty there's no proper `partition` or `nth_element` and similar in there 🦧🍋

@djh @hynek @via4
As doc says everything could be achieved using those primitives.
So, these two could be implemented using `islice`.

@lig @hynek @via4 I believe that's where the mindsets differ.

I'd appreciate a high-level and well-built abstraction such as `partition` so that I can work on my domain specific problem without first having to worry about the nitty gritty details.

It's batteries included for a reason 🔋✨

@djh @lig @hynek I feel conflicted about it, on one hand I like minimalism, and it's easier to just be able to remember everything a lib can do, so you immediately know what is there and what you have to implement/import. On the other hand, it is kind of annoying to copy the same stuff over from project to project, first() being maybe one of the top examples

@via4 @djh @hynek
I really hate this copying thing. If it's a common pattern it should be in the lib.
I've seen some libraries even put such recipes in their docs. C'mon, just put it in a library itself already.

@via4 @djh @lig there's always a tension which batteries should be included and which not and everybody wants to be minimalistic as long it covers their minimal needs 🤷‍♂️ I feel like iteration tools that help you write better and more idiomatic code and that are easy to get wrong should be a prime group tho

@hynek @via4 @djh
Well, there are two questions here: what should be included in a library according to its purpose? And what should be included as a battery in a standard library?
Personally, I'd like to see much less in Python's stdlib than there's now. However, regarding iteration tools I'd rather agree that they should be an integral part of a language and they are in several other languages.

@hynek they couldn't have resisted if you just called it coalesce() :)

@hynek this is amazing! next(…, None) is so terrible… the lack of modern/ergonomic collections functions in python is one of the first things you notice coming from another language… would love to see more movement here…

@carlton I’m more of a boltons guy but I still wish basic functions like this wouldn’t have to live all over PyPI

@hynek ah, I hadn’t seen that, thanks!

boltons.readthedocs.io/en/late

Agreed: I’m in club refreshed batteries 🔋— that’s always a difficult (impossible?) conversation though. 😔

boltons.readthedocs.ioboltons — boltons 24.1.0 documentation

@carlton @hynek utils.py, the junk drawer of every project

@coderanger @carlton @hynek oh is the module called util or utils, or even utilities, functions, helpers, base, contrib

@hvdklauw @coderanger @carlton @hynek I can’t BELIEVE you forgot “tools”/“tooling”! (Well, ok, I can, 🤣)

@hynek @carlton at least itertools.batched made it into 3.12. I had to copy/paste that one between projects for years