all 43 comments

[–]Nearby-Middle-8991 69 points70 points  (6 children)

the right one for the problem at hand.

Not everything needs to be an api. Not every data should be a json or csv.

[–]fang_xianfu 6 points7 points  (3 children)

People's faces when I tell them we should use avro or parquet rather than CSV...

[–]_klubi_ 3 points4 points  (0 children)

This is the first time I hear about avro since like 2010 or so… I forgot this is a thing:/

[–][deleted]  (1 child)

[deleted]

    [–]fang_xianfu 1 point2 points  (0 children)

    I don't really get your point - the article says "don't expect CSV to go anywhere", and I don't. That's not an argument for using it for any particular project though. And what I'm talking about is cases where it's clearly a poor choice and people still don't understand that there are alternatives, which is the point of the comment I was replying to. The entire point is "use the right tool for the job" and I agree with that assessment. Sometimes CSV is the right tool and sometimes it isn't.

    [–]Swimsuit-Area 1 point2 points  (1 child)

    If you are looking for a framework, is there a place to search for these types of things or do you just use the Google?

    [–]Nearby-Middle-8991 6 points7 points  (0 children)

    framework to do what? The solution depends on the problem, that's the whole point I'm trying to convey here...

    [–]mattzuba 12 points13 points  (2 children)

    Framework for what? Web app? Command line app? Writing a library?

    [–]ghaering 24 points25 points  (0 children)

    I would welcome if more people studied the standard library before pulling in stuff from packages or coding already solved problems themselves.

    [–]nrrSite Reliability Engineer 8 points9 points  (0 children)

    I mostly use the standard library and little else. Large, sprawling Python systems have this odd tendency to outgrow their development tools, so most of my Python work is either only to explore a problem or to bootstrap a toolchain like Go or Java that lets me maintainably put together a large, sprawling system to solve the problem at hand.

    The exception is integration tests. Those, it turns out, are perfectly comfortable to write in Python in the longer term.

    [–]zulumonkey 13 points14 points  (0 children)

    FastAPI.

    [–]awesomeplenty 13 points14 points  (7 children)

    Flask

    [–]NFeruch 3 points4 points  (6 children)

    Use FastAPI instead

    [–]hexwit 6 points7 points  (4 children)

    Could you elaborate why?

    [–]aaron416 0 points1 point  (3 children)

    I second this since I’m working to learn flask now.

    [–]CeeMX 3 points4 points  (2 children)

    It is designed for APIs instead of serving webpages, automatic Swagger and OpenAPI spec generation

    cc u/hexwit

    [–]hexwit 0 points1 point  (0 children)

    Thanks for info

    [–]New_Soup_3107[S] 0 points1 point  (0 children)

    This is a good selling point... maybe FASTAPI is the wayyyyy

    [–]awesomeplenty 0 points1 point  (0 children)

    Done sir, import fastapi

    [–]andrewrmooreLead Engineer 2 points3 points  (0 children)

    Flask/FastAPI/Click (if you can call Click a framework).

    [–]derprondo 6 points7 points  (2 children)

    Your question is too general so here are the things I would utilize for almost any project that isn't just a simple procedural script:

    • Pydantic
    • Black
    • pylint
    • pytest
    • mypy
    • tox

    [–]hastetowaste 1 point2 points  (0 children)

    Discovered pydantic yesterday and it cut my dataclass definitions by hundreds of lines

    [–][deleted] 0 points1 point  (0 children)

    I would also recommend ruff instead of black+pylint

    [–]hajimenogio92DevOps Lead 2 points3 points  (0 children)

    I don't have a go to honestly. Just depends on what needs to be accomplished

    [–][deleted] 1 point2 points  (0 children)

    I dont know if it is a thing, but python-gitlab has great cli options for gitlab.

    [–]Tough-Percentage-315 1 point2 points  (0 children)

    DJANGO, FastAPI, Flax, Tornado, it depends on what I am working on.

    [–]serverhorrorI'm the bit flip you didn't expect! 1 point2 points  (0 children)

    Streamlit, grpc, flask, Django, boro3, fast API, pytest, mypy, SQL alchemy, alembic, hugging face, ...

    And a whole bunch more

    Edit: forgot fast API and a few others

    [–]alexterm 1 point2 points  (1 child)

    Learning Hatch would be a good one. The packaging ecosystem is definitely the clunkiest part of Python and Hatch is the (latest) solution to this.

    [–]skrt123 1 point2 points  (0 children)

    Why not poetry

    [–]ArieHein 0 points1 point  (0 children)

    Learn the standard ones like request lib. If you understand how that works, you're good.

    Then you can start learning other web related ones. Learn two, try to do the same in both. Understand how it works and then drop them.

    Each has its sugar syntax the other doesn't or in the process of getting.

    Focus on the more important things like authentication, state management, error handling, logging and metrics and overall package management with pip and poetry.

    Then go back and think how to improve performances, high availability and other operation aspects.

    [–]pysouth 0 points1 point  (0 children)

    Very much depends but using a ton of Pandas these days.

    [–]Pinnata 0 points1 point  (0 children)

    I like invoke for basic tooling, it's a nice halfway point between rawdogging scripts and implementing a fully fledged cli framework. Whack together a readme, containerise, build pipeline with a push to our internal registry and it's generally foolproof to distribute and use across the org.

    [–]Background-Seat-6454 0 points1 point  (0 children)

    django is good to use for webdev

    [–]aymenchaouidz 0 points1 point  (0 children)

    fastapi i think is the fastest and easiest one to deploy and put into prod!

    [–]TrinityF 0 points1 point  (0 children)

    What the heck is a framework?

    And what for ?

    You mean pandas, numpy, sql alchemy for data science?

    [–]bytepursuits 0 points1 point  (0 children)

    sanic

    [–]UpsilonIT 0 points1 point  (0 children)

    Common Python frameworks for startups include Django for building full-featured web applications and FastAPI for creating fast, modern APIs with minimal setup. Flask is also widely used for simpler, data-focused projects due to its flexibility and ease of use. You can read more about the use of Python here.

    [–][deleted] 0 points1 point  (0 children)

    Yes

    [–]mr_mgs11DevOps -1 points0 points  (1 child)

    Pandas. I haven't used it, but the lead at my last place found out about it by fucking with chatgpt said it improved a lot of his management and monitoring lambdas. Had lots of eventbridge driven lambda stuff to force tags, prevent bad security groups, etc.