Dane Hillard
banner
dane.dev
Dane Hillard
@dane.dev
Artsy, fartsy, musical computer nerd building modular software for @jstor.bsky.social freaks and geeks.

Wrote Practices of the Python Pro 🐍📘 and Publishing Python Packages 🐍📦⬆️

https://dane.dev
Oof, this is my signal to book my PyTexas travel…
January 25, 2025 at 11:18 PM
It seems like I could grab every command iteratively from the Click app and do something with it in Typer, but I think I’d have to manage all the argument and option type mappings too, which breaks down when an app uses custom types. Because then I have knowledge of the app, again.
January 14, 2025 at 1:15 PM
For Typer-in-Click you can get Typer’s generated Click app through some utilities available in `typer.main` and add it to another Click app as usual as well.
January 14, 2025 at 1:15 PM
It’s tantalizing because Typer uses Click under the hood, but it’s creating the Click app on the fly. So wrapping an existing Click app is a different beast.

For Typer-in-Typer, you can “just”install the package, import its main app, and `typer.add_typer` it to your own app as a subcommand.
January 14, 2025 at 1:15 PM
Namely I’m trying to channel @simonwillison.net’s `llm` to devs through our internal CLI and I want to avoid cloning all the option and subcommand names and so on in my own code. This makes more work for me, but also makes the code brittle to new releases of `llm`.
January 14, 2025 at 1:15 PM
This project is also a monorepo of AWS Lambda functions alongside some packages, but none of them are particularly isolated from each other, proving quite challenging. I feel that in a monorepo the projects need to be readily extractable at any time, with a management tooling layer on top.
January 14, 2025 at 12:58 PM
This was also at the tail end of a pairing session on a code base that has some challenging dependency injection patterns that we already gave up on during the session. We couldn’t for the life of us get a particular call site to behave how we wanted. More to fix soon…
January 14, 2025 at 12:58 PM
I noticed this from my ballroom dance coaches; they’d often start you off with incorrect but ballpark mental models, and when you were finally ready they’d say “well so it isn’t *quite* like that after all…it’s more like this.”

Inquisitive me got occasionally frustrated, but it worked well overall.
January 1, 2025 at 10:59 PM
The cumin lamb ones are pretty good. Have purchased multiple times 🙈
January 1, 2025 at 3:44 PM
This Dane is quite vulnerable to cheese
December 24, 2024 at 7:05 PM
All good here, on a project using py311/12/13 + pytest + pytest-cov with branch coverage reporting!
December 24, 2024 at 6:50 PM
This was an enthralling talk indeed. Thank you for sharing 🙂
December 22, 2024 at 7:33 PM
There’s no gap on *my* machine 🤷🏼‍♂️
December 21, 2024 at 3:26 PM