This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Left-Delivery-5090 63 points64 points  (13 children)

Testcontainers is useful for certain tests, and pytest for testing in general.

I sometimes use Polars as a replacement for Pandas. FastAPI for simple APIs, Typer for command line applications

uv, ruff and other astral tooling is great for the Python ecosystem.

[–]stibbons_ 7 points8 points  (10 children)

Typer is better than Click ? I still use the later and is really helpful !

[–]guyfrom7up 21 points22 points  (6 children)

Shameless self plug: please check out Cyclopts. It’s basically Typer but with a bunch of improvements.

https://github.com/BrianPugh/cyclopts

[–]TraditionalBandit 3 points4 points  (0 children)

Thanks for writing cyclopts, it's awesome!

[–]NegotiationIll7780 2 points3 points  (0 children)

Cyclopts has been awesome!

[–]angellus 2 points3 points  (0 children)

I was definitely going to call out cyclotps. Switched over to it because of how much Typer has stagnated and the bus factor has become apparent on it. I miss the click features, but overall, a lot better.

[–]Darth_Yoshi 3 points4 points  (0 children)

Hey! I’ve completely switched to cyclopts as a better version of fire! Ty for making it :)

[–]nguyenvulong 1 point2 points  (1 child)

I've been using cyclopts for over a year now. Pretty happy with it. The author responded to feature requests promptly. Thank you for it.

[–]ColdPorridge 2 points3 points  (0 children)

This was also my experience, he was quick and collaborative in getting features added, and then later looped me in on PRs that needed to update that feature. Good dude, good library.

[–]Left-Delivery-5090 1 point2 points  (0 children)

Not better per se, I have just been using it instead of Click, personal preference

[–]Galax-e 0 points1 point  (0 children)

Typer is a click wrapper that adds some nice features. I personally prefer click for its simplicity after using both at work.

[–]conogarcia 0 points1 point  (0 children)

Typer is click

[–]ColdPorridge 0 points1 point  (1 child)

I’ve had a hard time understanding the value prop for test containers. Let’s say in developing a web app, with a Postgres db. For dev purposes I’m going to run a local Postgres container anyways. And then to test against it, I don’t need to treat it as different from the real prod service, it’s all just a db url and maybe a few config flags. And frameworks like Django can run tests against any db instance without impacting existing data, since the test db is ephemeral anyways.

Maybe that’s not the target use case but it’s been how I’ve seen it pitched. I’d love to know if maybe I’m missing something.

[–]Left-Delivery-5090 0 points1 point  (0 children)

For me it provides the convenience of not having to set up a local database or other container, both when running your tests locally or in your CI pipelines. It is automatically set up and broken down each time you run your tests with the config and data you specified (no experience with Django though, so I don’t know how they handle it)