I can’t stand the bloat of virtual environments
Sucks to be you, but virtual envs are THE way to keep everything running on your own machine. You can try to keep everything in a single venv, but then you’ll start wondering why it doesn’t work on other’s machines.
built-in tools provided by the language
sqlite3module comes with Python. As does thejsonmodule. Usepathlib’sPathobject overos.whateverbecause the API is nicer to work with.abc(short for Abstract Base Class - abc, get it?) is useful for inheritance stuff. I like click, but there’sargparseif you need to write a CLI. Stay away fromasyncioif you can - it’s usually not faster and a bigger PITA than it needs to be. Need to transport a binary, but you can only send text?base64.import datetime as dtif your new friend when it comes to datetime objects - to be aware to keep things timezone-native. You’ll need pytz for that - Python doesn’t update fast enough to keep up to date with all the new timezone shenanigants. always check for missing timezones; they’ll cap your kneecaps and kick you in the balls if you’re not careful.httpcan be used to make calls to APIs though requests is a favorite; slapurllib3and you got yourself a sauce going on! Skiploggingand jump to a lib that supports structured logging,python-json-loggeris a nice beginner’s log lib, jump tostructlogif you need the raw power (say you want control over other people’s logging output).mathis a sleeper hit - powers, roots, floors, ceitings, andstatisticsis a nice addition on top of that together withrandomfor probabilistic stuff.multiprocessingif you need to run something concurrently:ProcessPoolExecutorfor IO, ThreadPoolExecutor for CPU bound stuff (IIRC).refor regex related stuff.uuidif you need a unique identifier (this can be slow in DBs, so take care!)ecosystem
PyPI (Python Packaging Index) if your new friend - pai-pee-ai; not paipai - that’s the JIT implementation of Python: pypy.
Use
pytestto run your tests,rufffor formatting (though I imagine it intimidating for beginners, better to bite the bullet (even if you nibble on it slowly),uvto track your dependencies and Python version.Yes, figuring out a nice configuration for these tools is a pain, but that’s what ChatGPT is for. Just don’t go too wild on the settings, as there are MANY, and if something doesn’t work because ChatGPT got a little outdated, it’ll hurt.
Anyway, that’s about 4 years of experience concentrated in a single page. If you ever feel like an imposter: that’s a common feeling: https://en.wikipedia.org/wiki/Impostor_syndrome If it’s hitting you on the head, see if you can talk with your seniors about it (presuming they’re sane adults) - otherwise there’s always Lemmy to vent :P .
edit: if you need to handle tabular data: Polars. If anyone recommends Pandas over Polars, hit them with a newspaper until they crawl back under the rock they came from. Unless it’s for GeoPandas, then it’s OK.
deleted by creator




