Man my package has been stuck at a UPS facility in Koeln, Germany for 10 days now, apparently this is a very common theme: https://www.reddit.com/r/UPS/comments/1f969dw/more_delay_experiences_cologne_koeln_germany/
And from older threads, it seems like it has been like this for years (I dunno if it is constant or intermittent).
I wonder if this is just a dysfunctional facility or if stuff gets stuck there because everything goes there before coming to the US and the problem is getting stuff from Europe to the US in general...
Just released: humanize 4.11.0 🚀
https://github.com/python-humanize/humanize/releases/tag/4.11.0
This adds a new API:
>>> natural_list(["egg", "sausage", "beans"])
'egg, sausage and beans'
>>> natural_list(["egg", "sausage"])
'egg and sausage'
>>> natural_list(["egg"])
'egg'
Adds the newest ronna and quetta SI prefixes: https://www.npl.co.uk/si-prefix
Drops support for Python 3.8,
fixes rollover from ZB to 1.0 YB, fixes French & Chinese translations & finding location of translations, & improves import times.
@hroncok My counterpoint here:
- The current Python REPL is pretty rough, and this is a *dramatic* improvement.
- A lot of the weird behavior and bugs don't show up until you get a lot of eyes on it, which means that the first release will always look like this.
- Given that it's an interactive terminal and not part of "hands-off" deployments, the kinds of bugs you are likely to encounter are less like, "Oh this created a bunch of work for me today because our whole pipeline broke" and more like, "Oh this new REPL isn't working for me, I should disable it until it works".
I am neutral about the lack of a PEP. It's definitely a major new feature, which weighs in favor of a PEP, but also I'm not sure how well it fits with the PEP process. It's not a major language feature, it's more an overhaul of an interactive application bundled with the language. I'm not sure what choices or trade-offs needed to be made that they would want people to weigh in about, or what decisions the SC would be making.
I also think the case could be made for saying that if you were to make the individual changes one at a time, none of them would require a PEP (with the possible exception of `exit() -> exit`).
I've been conducting more interviews lately, some of which involve traversing a tree / graph, and I am kind of surprised to find that uniformly everyone does these traversals with recursion. I'm not surprised to find that it's popular (I think it's often taught as an example of something where recursion is appropriate), but I personally almost never use recursion (especially in Python).
I think the main reasons I almost always avoid recursion (both in interviews and in practice) are:
1. I prefer to be very explicit about the resources I am using. It's easy to not realize how much overhead you are storing in the frame stack, whereas when you have an explicit stack or queue of nodes, it's quite easy to see what you are storing and passing up and down the stack.
2. No running into recursion limits (mostly Python specific thing).
3. It's pretty easy to switch between depth and breadth first searches by changing from a stack to a queue and vice-versa, whereas if you change your mind and decide you need to do BFS when you've written a recursive traversal, you have to rip everything out and start over.
4. When I need access to some resources outside of the traversal (either to modify them or for some other reason), it seems cleaner to use a variable that is already in scope rather than a closure (though maybe that's a dubious distinction).
Looking at this list, I do think that (other than the recursion limit thing), this is mostly just a bias against recursive functions. I think the primary benefit of a recursive function is that I think it's easier to pivot to a concurrent traversal by spawning multiple child nodes and letting the stack handle your resolution order for you.
@cenobyte Pretty much every aspect of it.
1. The client is this monolithic thing with all the servers in the sideboard, and then *every room on the server* is available and possibly generating notifications. Even being default-in every room would be annoying enough, but from what I understand you can't even leave or hide rooms you don't care about!
2. The voice chat doesn't seem to work as well as other options I've used before, which I thought was the whole point of using a Discord?
3. No alternative clients and no support for multiple accounts (at least on Android).
4. If I'm not using the *absolute latest client*, Discord refuses to connect. The Arch linux package for discord updated pretty much immediately, and I still couldn't connect because my specific package server had not refreshed their index in the last *four hours*.
5. It's a walled garden situation controlled by discord. Apparently discord has some questionable content policies (servers can get banned for allowing people to talk about violating the ToS of a service, apparently?)
I essentially only use this platform when I absolutely must (and even then poorly). I am totally the kind of person who drops into an IRC or other chat room for a specific purpose and just never leaves for years and years, but I am *never* tempted to do this in any sort of Discord or Slack.
@poleguy @lucifargundam All messaging apps these days are pretty bad in most ways. I think Matrix is probably best because it is a protocol with a few implementations. Signal is also miles better than "SMS Group Chat", even if Signal leaves a lot to be desired as a platform.
@hugovk Oh man I missed cake!
At least I got to have some of that reindeer poop licorice. 🤤
@poleguy I am not an expert in Spanish, but as an expert in Dad jokes, I would play off the concrete vs metaphorical meanings. The goal is to interpret it as something that is a valid meaning according to the grammar, but not one that a normal person would ever interpret it as in that situation, like, "¡Tengo hambre!" "¡Ay no! ¡Debes dejarlo!" Or "¿Verdad? ¿Puedo verlo?"
"¡Estoy aburrida!" "¿Así es? ¿Dónde esta Burrida? ¿Está cercana?"
@poleguy Yeah it struck me as obviously weirdly direct, but my friend from Spain didn't catch it until I pointed it out, so I was surprised to find that it wasn't universally obvious.
Para los que tienen el español como lengua materna, ¿le encuentran sentido a este chiste malo de papá sin necesidad de traducirlo al inglés?
https://youtu.be/CpcWbwwLHkg?si=d_W8MlFTy0p0fKjB&t=269
(4m29s si el enlace no te lleva directamente al momento exacto)
Introducing MNT Reform Next https://mntre.com/media/reform_md/2024-09-09-introducing-mnt-reform-next.html
@mahmoud I'm bemused and nonplussed to learn the true meaning of chuffed.
@mahmoud Wow. I feel like "chuffed" has "nonplussed syndrome", in that it sounds like it means the exact opposite of what it means.
New #cattrs is out (24.1.0) but I'm too exhausted to do a large thread about it. The changelog is pretty large: https://catt.rs/en/stable/history.html#id1
A couple of my favorite features:
Hook factories can have the converter injected as an argument now. This very simple change makes them much more self contained and more fun to write.
Some converter APIs can be used as decorators now, and will read type hints from the decorated functions. It's a small thing but it adds finesse.
@hynek helped focus the docs!
Programmer working at Google. Python core developer and general FOSS contributor. I also post some parenting content.