anyway if you want a python dependency manager not owned by openai, try pdm
@whitequark oh no, what did i miss :/
@imbl @whitequark Astral, the start-up behind uv and other Python tools, got aquired by OpenAI today. Now I'm kinda glad that I didn't invest too much time learning about uv ...

@fyrfaras @whitequark i just saw >:/

yay! im so excited to "sloppercharge my productivity" or whatever!!!

although i do love the irony that astral's repos use claude. really shows how full of shit they are when their announcement is sucking up to openai's codex but they're using a competitor's slop machine. definitely not just showing a complete lack of values lol

@imbl @fyrfaras @whitequark not a huge surprise sadly, anyone who’s used Python has seen this coming ever since the big data then the LLM researchers got interested in Python.
@Elizafox @imbl @fyrfaras astral's tools (fast typecheckers, etc) are also well-suited to the problem of "shove lots of garbage into the typechecker, see what sticks"; this isn't unique to astral (rust-analyzer is also good for it), astral just happened to accept a buyout at an opportune time

@whitequark @Elizafox @fyrfaras mmmmmm type-safe slop

ive used mypy enough to know that this is going to fail hilariously the first time it encounters wrong or poorly-typed interfaces >:3c

@imbl @Elizafox @fyrfaras i refuse to use mypy because mypy-flavored typing is a net negative to doing programming

@whitequark @Elizafox @fyrfaras fully agree. mypy sucks but its what i learned and its got all the plugins, plus i never got pyright working

i was actually planning on switching to ty for my next project  

@imbl @Elizafox @fyrfaras i'm using pylance, so the slop factor is the same as for ty
@whitequark @imbl @Elizafox I sea, could you please elaborate why mypy is a net negative for programming? ^_^
@fyrfaras @imbl @Elizafox it creates far too much busywork for the amount of bugs it finds. this has the added effect of giving python typing a bad reputation
@whitequark @fyrfaras @imbl I like mypy but I get some people prefer Python to be properly dynamically typed (that’s fine too).

@Elizafox @whitequark @imbl Alrighty, thank you for explaining it to me. ^^ Also I just read a toot thread, below, by @xgranade that mypy doesn't use “mathematical type checking” but rather “linting heuristics” which could lead to this bad reputation you've mentioned earlier I think.

https://wandering.shop/@xgranade/116259906731072162

Cassandra is only carbon now (@[email protected])

As I mentioned earlier, it's a bit more difficult to have good exit strategies with ruff, given that the specs around linting are much more loose. It's even harder to have a good exit strategy for ty, even though there's good specs, because there's not a great type checker to use instead¹. ___ ¹As has been pointed out to me, mypy is, for all its strengths and weaknesses, not a type checker. It doesn't follow formal mathematical type checking rules, it follows linting heuristics.

The Wandering Shop
@fyrfaras @Elizafox @whitequark @imbl Like, I'm not trying to be petty or sarcastic about it. Rather, it's that I think some of my earlier (and admittedly a bit toxic) hate of mypy came from deeply misunderstanding what mypy is and is trying to do. I would have expected from docs and the description, that mypy accepts well-typed programs and rejects programs that violate typing rules — but that's not it. It rejects well-typed programs that are likely incorrect, which is what a linter does.

@fyrfaras @Elizafox @whitequark @imbl In particular, I cannot predict the behavior of mypy given knowledge of Python's type system alone. I have to know about what is and is not likely a logic error in Python.

Which is fine if you want a somewhat more rigorous linter that has the benefit of being developed under the auspices of the PSF itself. But it's not what I want or would want out of a type checker.

@xgranade @fyrfaras @Elizafox @imbl so this makes sense but it is a profound failure of communication then that anyone calls mypy a typechecker

@whitequark @fyrfaras @Elizafox @imbl Agree, absolutely.

I made the mistake of thinking of it as one for a long time, but I have been disavowed of that notion.

@xgranade @whitequark @fyrfaras @Elizafox i really love this thread because subconsciously i'd categorized mypy as a linter a loooong time ago but consciously i've always treated it as a type checker. it makes so much more sense as a linter though, i feel like a puzzle piece just clicked into place haha

@imbl @xgranade @fyrfaras @Elizafox fittingly, i aggressively avoid linters as an approach to making software because i think they mostly create performative busywork

(i use the software tools that call themselves linters, sometimes, configured in a very careful way that mostly avoids this problem. my list of ruff rules is like 300 lines long and it is strictly opt-in, for example)

@whitequark @xgranade @fyrfaras @Elizafox i should really start doing that, most of my fun projects die when i have to fix linter warnings
@imbl @xgranade @fyrfaras @Elizafox the ruff config i use fixes probably >90% of issues automatically, which is a part of why it is hand-picked and so long
@whitequark @xgranade @fyrfaras @Elizafox any chance that config is online anywhere so i can yoink it? 
@imbl @xgranade @fyrfaras @Elizafox check glasgowembedded/glasgow. only check that regularly needs manual fixes is the line length one