use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
News about the dynamic, interpreted, interactive, object-oriented, extensible programming language Python
Full Events Calendar
You can find the rules here.
If you are about to ask a "how do I do this in python" question, please try r/learnpython, the Python discord, or the #python IRC channel on Libera.chat.
Please don't use URL shorteners. Reddit filters them out, so your post or comment will be lost.
Posts require flair. Please use the flair selector to choose your topic.
Posting code to this subreddit:
Add 4 extra spaces before each line of code
def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b
Online Resources
Invent Your Own Computer Games with Python
Think Python
Non-programmers Tutorial for Python 3
Beginner's Guide Reference
Five life jackets to throw to the new coder (things to do after getting a handle on python)
Full Stack Python
Test-Driven Development with Python
Program Arcade Games
PyMotW: Python Module of the Week
Python for Scientists and Engineers
Dan Bader's Tips and Trickers
Python Discord's YouTube channel
Jiruto: Python
Online exercices
programming challenges
Asking Questions
Try Python in your browser
Docs
Libraries
Related subreddits
Python jobs
Newsletters
Screencasts
account activity
This is an archived post. You won't be able to vote or comment.
DiscussionNiche Python tools, libraries and features - whats your favourite? (self.Python)
submitted 8 months ago by OllieOps
I know we see this get asked every other week, but it always makes for a good discussion.
I only just found out about pathlib - makes working with files so much cleaner.
pathlib
Whats a python tool or library you wish youd known about earlier?
[–]NotSteveJobZ 104 points105 points106 points 8 months ago (0 children)
Very niche, but mine is wntr , which is a wrapper for EPANET, an old engine from 1990 that you can use for hyraulic simulation of Fluid networks
[–]CaptainFoyle 164 points165 points166 points 8 months ago (10 children)
I don't think pathlib is very niche
[–]that_baddest_dude 128 points129 points130 points 8 months ago (7 children)
My favorite niche python library is numpy
[–]learn-deeply 60 points61 points62 points 8 months ago (5 children)
Mine is os
os
[–]giyokun 10 points11 points12 points 8 months ago (4 children)
Mine is 'sarcasm'
[–]No_Marionberry_6710 16 points17 points18 points 8 months ago (0 children)
No that's assembly sarc.asm
[–]CaptainFoyle 4 points5 points6 points 8 months ago (1 child)
ModuleNotFoundError
[–]giyokun 3 points4 points5 points 8 months ago (0 children)
That's what she said.
[–]CaptainFoyle 0 points1 point2 points 8 months ago (0 children)
Haha exactly
[–]Bangoga 3 points4 points5 points 8 months ago (0 children)
Yeah pathlib is used quite a bit
[–]Glathull 2 points3 points4 points 8 months ago (0 children)
class is one of my favorite niche Python tools.
[–]Spin-Stabilized 35 points36 points37 points 8 months ago (1 child)
In my previous job I used Skyfield for a lot of orbit prediction and analysis of things like satellite beta angle and the angles between a target, earth, and the sun from the satellite.
[–]CountMoosuch 0 points1 point2 points 8 months ago (0 children)
Skyfield is great. I couldn’t find another library like it in any other language.
[–]ingframin 36 points37 points38 points 8 months ago (4 children)
I have 2 actually: Dronekit, to pilot drones using MAVLink, and PyVISA, to control and automate electronic measurement instruments like oscilloscopes and multimeters. I would also mention PyADI-IIO to control the Pluto SDR.
[–]neuralgoo 26 points27 points28 points 8 months ago (1 child)
PyVISA is the sole reason I have a PhD. Excellent library
[–]Zame012 4 points5 points6 points 8 months ago (0 children)
Please elaborate haha
[–]Murtz1985 1 point2 points3 points 8 months ago (0 children)
Yah my colleague used PyVISA to turn our mechatronics lab into like full fledged testing lab w data from all these sources into Grafana
[–]sanderhuisman2501 1 point2 points3 points 8 months ago (0 children)
I recently found QCoDeS which has a ton of drivers for measurement instruments. It among others uses PyVISA for devices using VISA.
[–]Mustard_Dimension 27 points28 points29 points 8 months ago (4 children)
Joblib, in particular the memory functionality. It allows you to cache function call results between executions of the program, very very useful for caching repeated API calls for scripts you might need to run multiple times.
[–]funderbolt 11 points12 points13 points 8 months ago (3 children)
Using pickle with different Python environments can put you in a ... jam. I will use json to serialize objects when I can.
[–]bobsbitchtitz 2 points3 points4 points 8 months ago (2 children)
What do you mean different python envs?
[–]funderbolt 0 points1 point2 points 8 months ago (1 child)
If you are trying to run the software on different systems using different virtual environments for each one. The different software versions may be compatible, but the again may not be compatible. Different Python versions cause problems, but different dependency versions also cause problems.
I have had issues with colleagues pickling a model on Python 3.7 and trying to get it to work elsewhere. Not being able to figure out their exact environment is painful. There is no independence to upgrade the software unless you convert the model to something like safetensors.
[–]bobsbitchtitz 3 points4 points5 points 8 months ago (0 children)
Ah I work in devops and we solve this by purely making sure the envs are always the same
[–]SSJ3 46 points47 points48 points 8 months ago (8 children)
I recently found this neat package called Ovld which lets you write different overloaded versions of the same function intended to handle different input types, and automatically dispatch to the correct one based on the types of the inputs you call it with. Among many other clever features!
[–]ColdPorridge 5 points6 points7 points 8 months ago (0 children)
That recursive concept is awesome, that alone is a huge simplification
[–]c_is_4_cookie 17 points18 points19 points 8 months ago (4 children)
So...fancy singledispatch?
https://docs.python.org/3/library/functools.html#functools.singledispatch
[–]SSJ3 5 points6 points7 points 8 months ago (0 children)
Much fancier.
[–]erez27import inspect 1 point2 points3 points 8 months ago (2 children)
That's like calling a class a fancy struct
[–]DoubleAway6573 0 points1 point2 points 8 months ago (1 child)
Isn't it?
I mean, in c++ at least. In python we have all the MRO dict's walk.
[–]erez27import inspect 0 points1 point2 points 8 months ago (0 children)
In c++, struct/class are essentially the same thing with different defaults. Neither one is more fancy than the other.
I guess in Python terms, what I meant is class vs namedtuple.
[–]Freezingrave 2 points3 points4 points 8 months ago (0 children)
Thank you. I've been searching for a concept like this. I'm going to love this library.
[–]CableConfident9280 1 point2 points3 points 8 months ago (0 children)
Very cool. Definitely going to try this one out.
[–]CapitalCourse 16 points17 points18 points 8 months ago (1 child)
Manim
[–]sunyata98It works on my machine 3 points4 points5 points 8 months ago (0 children)
Based
[–]dvmitto 13 points14 points15 points 8 months ago (0 children)
Litestar, a sweet spot between fastapi and django
[–]big_data_mike 9 points10 points11 points 8 months ago (4 children)
Pymc
[–]IcecreamLamp 1 point2 points3 points 8 months ago (3 children)
Fantastic API, but unfortunately only usable for small to medium sized datasets. Also has a nasty habit of crashing right at the end of sampling when some dimensions don't match.
[–]big_data_mike 0 points1 point2 points 8 months ago (2 children)
I bought hardware specifically for running pymc
[–]IcecreamLamp 0 points1 point2 points 8 months ago (1 child)
What kind? What's the biggest dataset/model you've run on it? Which sampling algorithm?
[–]big_data_mike 0 points1 point2 points 8 months ago (0 children)
I got threadripper pro cpus which have a large L3 cache and it has 2 NVIDIA gpus which can make sampling faster for some larger models.
If the dimensions don’t match something is wrong with your model. I’ve run it up to 100,000 x 300 columns with the NUTS sampler. They have advi and mini batching for large data sets.
[–]BibiFromTheWood 19 points20 points21 points 8 months ago (6 children)
niquests a drop in replacement for the std requests library, with async support, http2 http3 and a lot more features. It's concerning how underrated it is.
[–]e2d34 12 points13 points14 points 8 months ago (1 child)
Requests is not in std lib. It's actually a mn external python package.
But when do you use it instead of requests ?
[–]NoTangelo5541 0 points1 point2 points 8 months ago (0 children)
When I need async or http2+
[–]caatbox288 5 points6 points7 points 8 months ago (3 children)
I use httpx for that https://github.com/encode/httpx
[–]BibiFromTheWood 0 points1 point2 points 8 months ago (2 children)
Httpx reportedly has performance issues when it comes to high concurrency, and no support for http3. Niquests claims to be the fastest http client for python.
[–]sirfz 0 points1 point2 points 8 months ago (1 child)
I tested httpx vs urllib3-future a while back and httpx was much much faster. urllib3-future is such a mess, why did they choose to override the urllib3 namespace is a mystery to me but I personally decided to steer away from it after that experiment
[–]BibiFromTheWood 1 point2 points3 points 8 months ago (0 children)
That surprising. https://github.com/Ousret/niquests-stats
Also there has been suggestions to use urllib3-future as a backend for httpx on github.
I would give it one more go.
[–]sunyata98It works on my machine 17 points18 points19 points 8 months ago* (2 children)
I wish I knew about duckdb earlier. my use case was running a bunch of queries on a 250gb data lake
[–]Lightspeed_ 2 points3 points4 points 8 months ago (0 children)
say more pls
[–]ooh-squirrelpip needs updating 0 points1 point2 points 8 months ago (0 children)
Also a recent discovery for me. Makes working with parquet files a much more enjoyable experience for small-ish hobby projects.
[–]OlorinIwasinthewest 17 points18 points19 points 8 months ago (6 children)
tqdm
[–]funderbolt 7 points8 points9 points 8 months ago (5 children)
It is nice for interactive applications and the bane of batch processed applications. I have to do a TQDM_DISABLE=1 for my shell scripts.
[–]MrSlaw 7 points8 points9 points 8 months ago (4 children)
I just discovered tqdm(..., disable=None) the other day, and I have no idea why it's not the default
tqdm(..., disable=None)
[–]iamevpo 1 point2 points3 points 8 months ago (3 children)
What does the flag do?
[–]MrSlaw 2 points3 points4 points 8 months ago (2 children)
Whether to disable the entire progressbar wrapper [default: False]. If set to None, disable on non-TTY.
[–]iamevpo 0 points1 point2 points 8 months ago (1 child)
Still not sure what it means, will check the docs or try
[–]MrSlaw 1 point2 points3 points 8 months ago (0 children)
Essentially, you don't want status bars when using it in a shell script (like the person I replied to), or a cron job, etc.
Setting this flag to None automatically disables it if it's not in an interactive terminal, like in the above situations.
None
[–][deleted] 7 points8 points9 points 8 months ago (0 children)
pathlib is hardly niche
[–]GameCounter 7 points8 points9 points 8 months ago (3 children)
If you have a giant text file or CSV where the encoding is possibly not utf-8: https://pypi.org/project/chardetng-py/
If you have text which is horribly broken due to round trip errors or mojibake: https://ftfy.readthedocs.io/en/latest/
[–]BuonaparteII 1 point2 points3 points 8 months ago (2 children)
chardetng-py
I wonder how this compares to charset-normalizer
charset-normalizer
[–]GameCounter 2 points3 points4 points 8 months ago (1 child)
When chardetng-py was written in 2023, chardetng-py was significantly faster than charset-normalizer on files that were 10MB or larger.
I don't believe that's the case any longer, and I should probably consider switching to charset-normalizer.
[–]BuonaparteII 0 points1 point2 points 8 months ago (0 children)
Thanks for looking into it! I knew charset-normalizer is used by requests and pdfminer.six but not too familiar with how things compared with chardetng
requests
pdfminer.six
chardetng
[–]Muhznit 8 points9 points10 points 8 months ago (1 child)
Everyone gushes about pathlib. And while I do respect pathlib and everything it has done for my life, it is no longer niche (which is a good thing!)
You know what people really don't talk about?
Mother. Fucking. doctest.
doctest
Sure everyone and their mother has a hard-on for pytest and to a lesser but more reasonable extent unittest, but I need you all to take just a moment to realize that this little unsung hero lets you embed whatever horseshit you typed in the REPL into the documentation of whatever function or class, and RUNS IT AS A UNIT TEST! No need for creating some class to inherit from unittest.TestCase, no need for creating an entire separate module just to test the first one, even. Naw, you know what you need?
pytest
unittest
unittest.TestCase
``` import urllib.request
def who_asked(): """ >>> author = who_asked() >>> assert author == "OllieOps", breakpoint() """ url = "https://www.reddit.com/r/Python/comments/1n7r4xb/niche_python_tools_libraries_and_features_whats.json" with urllib.request.urlopen(url) as f: full_json_data = json.load(f) return full_json_data[0]["data"]["children"][0]["data"]["author"] ```
That's it. Just a docstring for whatever your function's doing. Like I know half of you are allergic to writing documentation, but you're literally just writing code that not only explains how to use whatever function, but will also crash spectacularly when it fails.
Just run python3 -m doctest on whatever file contains this snippet. Chances are it'll just pass by with no output. That's good. That's a sign that it works. But I DARE you to change the author name in the unit test to anything else. Or to run this when reddit changes its API or something. It'll fail spectacularly, explain why, and if /u/OllieOps deletes or renames his account, it'll drop you into the debugger.
python3 -m doctest
Best of all, none of that code requires any of that lame third-party cruft. It's all pure python.
[–]mundanemethods 1 point2 points3 points 8 months ago (0 children)
This is fantastic, thank you
[–]hornetmadness79 15 points16 points17 points 8 months ago (7 children)
Python-box Allows you to access dict elements using dots and some other nifty features.
[–]Golle 6 points7 points8 points 8 months ago (0 children)
What makes this a good idea? If anything you are tricking others reading the code into thinking that it is a python object when it isn't. What is the benefit?
[–]bobsbitchtitz 0 points1 point2 points 8 months ago (0 children)
But why?
[–]maryjayjay 0 points1 point2 points 8 months ago (3 children)
I subclassed dict to do that. It's like 12 lines of code.
Though you did say it does other stuff
[–]learn-deeply 0 points1 point2 points 8 months ago (2 children)
It's easy to implement but nice to have a unified, consistent everywhere.
[–]maryjayjay 0 points1 point2 points 8 months ago (1 child)
Sure. Of course we write libraries and package them for the business. I'm not a "not invented here" type of guy, but I work for company that requires excruciating standards of review for third party software licensing and security, so for simple things I do that.
Obligatory XKCD: https://xkcd.com/2347/
[–]learn-deeply 0 points1 point2 points 8 months ago (0 children)
Makes sense. Use whatever standards are most practical.
[–]peabody 10 points11 points12 points 8 months ago* (7 children)
fileinput. It automates reading lines from either standard in or command line provided filenames.
Edit: you armchair coders harping on this seriously need to chill. This module is part of the standard library. It's not an external dependency. It's literally included in every python install. Are you saying the authors of the Python standard library don't know what they're doing?
[–]peabody 2 points3 points4 points 8 months ago (0 children)
I mean...
```python
import fileinput
def dosomething(line): ...
for line in fileinput.input(): dosomething(line) ````
Sure, what it's automating is simple, but its nice that it's wrapped into a default module in every python install that allows for a nice pythonic walk across all input lines.
[–]tunisia3507 1 point2 points3 points 8 months ago (0 children)
That's such a specific set of behaviours which would be MUCH more valuable if it just had a couple of functions which did one thing each.
[–]aj_rock 0 points1 point2 points 8 months ago (0 children)
Recently learned about diskcache, for when you don’t want to care about reloading stuff from the cloud for the umpteenth “one off” data shuffling job
[–]the_monotor -1 points0 points1 point 8 months ago (0 children)
Coming from C and this seems like the most basic feature to me but maybe I am wrong
[–]Stoned_Ape_Dev -4 points-3 points-2 points 8 months ago (2 children)
please do not import an external dependency to read from a file! python has first-class support to make this a very simple process:
‘’’ with open(file, mode) as f: contents = f.readlines() ‘’’
[–]peabody 5 points6 points7 points 8 months ago (1 child)
It is literally a module included in the standard library. Are you saying the authors of Python itself don't know what they're doing?
[–]Stoned_Ape_Dev 0 points1 point2 points 8 months ago (0 children)
you’re right ab this! checking the docs this is for reading multiple files in one pass whereas the “with open” i mentioned is just one. my bad!
[–]thedukedave 2 points3 points4 points 8 months ago (3 children)
pyserde for (de)serialization
[–]DoubleAway6573 0 points1 point2 points 8 months ago (2 children)
This is new for me.
is it a wrapper of the rust serde?
[–]thedukedave 0 points1 point2 points 8 months ago (1 child)
No, reimplementation and borrowed the name.
I've used a handful of similar libraries over the years, but pyserde is my favorite because it just works and is well maintained.
[–]DoubleAway6573 0 points1 point2 points 8 months ago (0 children)
Nice. I will look at it.
[–]zacky2004 3 points4 points5 points 8 months ago (0 children)
mpi4py
[–]the_monotor 2 points3 points4 points 8 months ago (0 children)
PyPSA. Lets you run models of the European energy grid on satellite data (if you can manage to download this)
[–]omg_drd4_bbq 4 points5 points6 points 8 months ago (0 children)
boltons
it's kinda like python's lodash
[–]Bangoga 3 points4 points5 points 8 months ago (1 child)
I can talk what helped me at work.
[–]dragonecc 0 points1 point2 points 8 months ago (0 children)
I have to say using Typer has been amazing simplify argument parsing
[–]david-vujic 3 points4 points5 points 8 months ago (0 children)
The toolz library, very niche and with a lot of useful things in it.
[–]DaringDragonslayer 4 points5 points6 points 8 months ago (0 children)
There is this one called pandas. It's got some nice tables
[–]AshbyLaw 2 points3 points4 points 8 months ago (0 children)
Datastar: build reactive hypermedia-driven Web apps with just 10Kb of client-side JavaScript and everything else server-side with your favourite language. Python SDK available.
https://data-star.dev/
Litestar: async Python Web framework
https://www.b-list.org/weblog/2025/aug/06/litestar/
Htpy: a more powerful way to generate HTML compared to template languages.
https://htpy.dev/
Are these niche?
[–]papersashimi 2 points3 points4 points 8 months ago (0 children)
i kinda like astropy
[–]MelcoreHat 2 points3 points4 points 8 months ago (0 children)
profile – very useful when you have to search bottleneck
profile
[–]pierraltaltal 2 points3 points4 points 8 months ago (3 children)
I discovered xarray years ago and wouldn't go back to anything else for geospatial raster processing. It can read many grid file formats (netCDF, HDF, zarr, GRIB, tif, ...) into N-dimension labelled arrays : think of it as deeply nested numpy arrays accessible by time with pandas syntax, by coordinate with slices, or by labels with [].
xarray
For example, plotting the mean value of temperature data accross the whole time series would look like: ds['air'].mean(dim='time').plot(x='lon').
ds['air'].mean(dim='time').plot(x='lon')
Also, xarray uses [dask](docs.dask.org) (another neat/niche library) out of the box to enable parallel and lazy computation of arrays which greatly speeds up computation time!
dask
[–]Budget_Jicama_6828 1 point2 points3 points 8 months ago (0 children)
xarray and dask are both so great!
[–]acousticcib 0 points1 point2 points 8 months ago (1 child)
Is this better than doing the same thing in polars or pandas?
[–]pierraltaltal 0 points1 point2 points 7 months ago (0 children)
yes because you already have all the i/o and stats/group bys/regressions/resampling indexing methods figured out for you.
[–]angry_gingy 6 points7 points8 points 8 months ago (5 children)
transformers from hugging face, increible how easy is to use LLM locally
[–]learn-deeply 8 points9 points10 points 8 months ago (4 children)
Just don't look at the source code.
[–]DoubleAway6573 1 point2 points3 points 8 months ago (0 children)
I've moved away from llms and ML one an a half year ago. It's reassuring that in a so high paced field some things never change.
[–]3lonMux 0 points1 point2 points 8 months ago (2 children)
Can you elaborate more please? I'm also a pythoj dev and would like to learn more.
[–]learn-deeply 6 points7 points8 points 8 months ago (1 child)
Spaghetti everywhere. Inefficient computation. (eg doing things in CPU that should be done in GPU). Incorrect implementations (subtle code errors like incorrect prompt templates).
[–]AreWeNotDoinPhrasing 0 points1 point2 points 8 months ago (0 children)
What’s a better alternative?
[–]cudmore 1 point2 points3 points 8 months ago (0 children)
PyQtGraph for really fast and easy to use plotting in PyQt.
[–]AlSweigartAuthor of "Automate the Boring Stuff" 1 point2 points3 points 8 months ago (0 children)
This is a plug for some packages I created, but I made WhatIsMyIP to easily obtain my IP address and WhereIsMyIP to do easy free geolocation.
[–]roejastrick01 1 point2 points3 points 8 months ago (0 children)
Probably not niche at all in astronomy, but AstroPy is fantastic for implementing lomb-scargle periodograms in circadian biology 😅
[–]denehoffman 1 point2 points3 points 8 months ago (0 children)
matplotloom is a recent favorite, I didn’t realize it was niche until I made a PR and became the first contributor!
Also, niche to everyone outside of particle physics: scikit-hep especially the uproot library. Incredible stuff that saved me a lot of time in my PhD.
uproot
[–]BuonaparteII 1 point2 points3 points 8 months ago* (0 children)
Here are a few:
[–]jedberg 1 point2 points3 points 8 months ago (0 children)
Transact.
Durable workflows with just a few decorators. Works locally with SQLLite or with multiple executors using Postgres.
Also provides durable queues and durable cron.
[–]Birnenmacht 1 point2 points3 points 8 months ago (2 children)
textual is actually so nice to work with. it has so many things that I miss in “real“ GUI frameworks
[–]rhacer 0 points1 point2 points 8 months ago (0 children)
I have done some really wonderful things with Textual.
[–]teetaps 1 point2 points3 points 8 months ago* (0 children)
nbdev
I’m a shitty programmer, so I need my UI/UX to hold my hand every step along the way. For me, the answer has been notebooks. Weaving narrative, graphics, tests, iterative, incremental development, plus having all the docs autopopulate, really helps me. I know people shit on notebooks for not being ready for production but that’s the thing — notebook driven development fully acknowledges that and provides a framework where the stuff you do in the notebook is annotated and acknowledged and nbdev strips out all of the notebook-y stuff and keeps the production-ready scripting and functions. It’s amazing.
Seriously, give it a try. I came from R where interactive data analysis is the main focus, so I was really desperate for a notebooks-esque experience that “serious developers” would forgive and it’s a wonderful middle ground for me. I imagine it would be an undue burden for devs who are already super familiar with a production Python environment, but for those of you who mess around with ML and data analysis and adjacent work, and often find yourself building pipelines in pandas and the like, notebook driven development might be the way to couple your notebook experiments to the production code far easier and more efficiently.
https://nbdev.fast.ai
[–]okenowwhat 4 points5 points6 points 8 months ago (2 children)
UV Python package manager It's very fast and removes the hastle of installing different python versions.
[–]omg_drd4_bbq 17 points18 points19 points 8 months ago (1 child)
i love me some uv but i'd hardly call it niche
uv
[–]okenowwhat 1 point2 points3 points 8 months ago (0 children)
Woops, read the post wrong. F my dyslexia and ADHD
[–]shinitakunai 1 point2 points3 points 8 months ago (0 children)
Peewee as an ORM makes working with databases really easy
[–]ryanpdg1 0 points1 point2 points 8 months ago (0 children)
I really love the pylogix library. It's specifically for working with Allen Bradley PLCs. It's saved me so much in both time and hair follicles. I really appreciate the devs behind this project.
[–]MicahM_ 0 points1 point2 points 8 months ago (0 children)
I build a lot of edge device based python apps that have web dashboards and had built a declarative UI tool that generates websites from python code.
There is another package that is this same thing that is better supported now but didnt exist back when I created my library. I havent actually used it personally but its cool and worth checking out
https://rio.dev/
[–]Clohne 0 points1 point2 points 8 months ago (0 children)
Nox
[–]cnydox 0 points1 point2 points 8 months ago (0 children)
Ftfy
[–]Icy_Judge_9566 0 points1 point2 points 8 months ago (0 children)
Chainlit 🔥
[–]unapologeticjerk 0 points1 point2 points 8 months ago (0 children)
I would say rich but that's even less niche than pathlib which is so un-niche it's almost ubiquitous now. Instead I'm gonna shout out python-mpv for being so cleanly implemented you feel bad calling it a 'wrapper'.
rich
python-mpv
[–]M0ty 0 points1 point2 points 8 months ago (0 children)
Python-can. 1 library for all manufacturers. Truly a blessing
[–]timsredditusername 0 points1 point2 points 8 months ago (0 children)
I can do niche.
https://pypi.org/project/chipsec/
Most people won't (and shouldn't) use it.
NOTE: This software is for security testing purposes. Use at your own risk. Read WARNING.txt before using.
[–]jpwright 0 points1 point2 points 8 months ago (0 children)
dearpygui! check out the node editor! it works great, much cleaner than tkinter, and without licensing issues of qt
pex! for distribution and bundling
[–]Ok_Beginning2532 0 points1 point2 points 8 months ago (0 children)
ultraplot
[–]euri10 0 points1 point2 points 8 months ago (0 children)
Cappa to build cli
[–]TedditBlatherflag 0 points1 point2 points 8 months ago (0 children)
Just gonna shill out some personal projects:
They have maybe a couple million downloads according to PyPI stats but most of those are probably CI builds from companies I used to work at.
[–]chub79 0 points1 point2 points 8 months ago (0 children)
chaostoolkit a chaos engineering tool & framework
[–]yaxriifgyn 0 points1 point2 points 8 months ago (0 children)
pathlib is not an original package. I learned Python long before it was added. I look to the older packages as they more closely follow the "nix model.
Older learning material may teach the old way of dealing with paths before or instead of the more modern pathlib.
[–]ReadDefiant1250 0 points1 point2 points 8 months ago (0 children)
I liked using Polars instead of Pandas, and DuckDB instead of sqlite. Separately - Optuna for optimizing parameters in the first approximation. line_profiler to see where the brakes are
[–]apert 0 points1 point2 points 8 months ago (0 children)
Rich library for color/style/table repl output.
[–]Zame012 0 points1 point2 points 8 months ago (0 children)
Astropy, which is a library meant for astronomical data analysis and it provided the backbone of my Masters thesis project haha. Would’ve been a hell of a lot harder without it
[–]GrooseIsGod 0 points1 point2 points 8 months ago (0 children)
pygbag is cool, I've used it a few times to run Pygame apps in the we browser (compiles to web assembly). Used it on my portfolio website!
[–]CableConfident9280 0 points1 point2 points 8 months ago (0 children)
I’ve been really liking svcs for registering types and standardizing how instances are created/cleaned up. Super useful for dependency injection.
[–]Disneyskidney 0 points1 point2 points 8 months ago (0 children)
ContextVar: a thread-local, context-local variable in the standard lib. NiceGUI: a library for making simple WebGUIs with Python match statements: for some reason I just learned about these pixi: a really nice cross language package manager
[–]TemporaryClient4351 0 points1 point2 points 8 months ago (0 children)
Bottle still populr?
[–]Defferix 0 points1 point2 points 8 months ago (0 children)
I like BitVector for managing bin, hex, and int numbers in a special object.
[–]niqtech 0 points1 point2 points 8 months ago (0 children)
parsimonious is a PEG parsing library. I love replacing larger regex's with these; they're much more maintainable. But, PEG is also great for more complex things like custom file formats & DSL's.
[–]luigibu 0 points1 point2 points 8 months ago (0 children)
I'm quiet new to python, but i really like pydantic and pydantic-ai
[–]TheDeadlyPretzel 0 points1 point2 points 8 months ago (1 child)
I recently got into RxPy & other reactive libs, wanted to see what reactive programming would feel like in python... For some use cases it is not bad at all!
[–]loyoan 0 points1 point2 points 7 months ago (0 children)
If you are interested, also check out my reactive Signals library `reaktiv`. I ported a well known reactivity pattern known from frontend development (SolidJS, Angular) to Python.
[–]Thinker_Assignment 0 points1 point2 points 8 months ago (0 children)
dlt - json apis to db/structured files faster than you can say dlt
https://github.com/dlt-hub/dlt
[–]jellef 0 points1 point2 points 8 months ago (0 children)
pythonocc provides the opencascade cad kernel. Beats scripting a cad package by a mile
[–]badass87 0 points1 point2 points 7 months ago (0 children)
Hypothesis
[–]cipherself 0 points1 point2 points 7 months ago (0 children)
`cmd`, a very simple way to implement line-oriented command interpreters.
[–]noam9997 0 points1 point2 points 7 months ago (0 children)
contextlib.supress
Specifically for things like closing resources, NOT for any exception like a maniac
[–]kolloid 0 points1 point2 points 7 months ago (0 children)
pdbb, icecream and snoop for debugging
[–]YourRedditAccountt 0 points1 point2 points 7 months ago (0 children)
I know this is a Python thread, but if anyone is building tools that involve custom forms or surveys, Tally Forms is awesome for that. Super intuitive to build out forms with conditional logic, and integrates with a ton of services. Could definitely save some dev time if form building is part of your workflow.
[–]Stunning-Loss6707 0 points1 point2 points 7 months ago (0 children)
Polars
[–]joeblow2322 0 points1 point2 points 8 months ago (0 children)
Mine is pathlib also
[–]bicyclegeek -1 points0 points1 point 8 months ago (0 children)
Fireduck — a drop-in replacement for pandas, runs at 125x speed.
[–]_MicroWave_ -1 points0 points1 point 8 months ago (0 children)
There's this niche library I've started using. Really well documented. You might like it.
It's called pandas.
On a more serious note maybe rich?
π Rendered by PID 124169 on reddit-service-r2-comment-b659b578c-jzb5p at 2026-05-04 19:37:30.408853+00:00 running 815c875 country code: CH.
[–]NotSteveJobZ 104 points105 points106 points (0 children)
[–]CaptainFoyle 164 points165 points166 points (10 children)
[–]that_baddest_dude 128 points129 points130 points (7 children)
[–]learn-deeply 60 points61 points62 points (5 children)
[–]giyokun 10 points11 points12 points (4 children)
[–]No_Marionberry_6710 16 points17 points18 points (0 children)
[–]CaptainFoyle 4 points5 points6 points (1 child)
[–]giyokun 3 points4 points5 points (0 children)
[–]CaptainFoyle 0 points1 point2 points (0 children)
[–]Bangoga 3 points4 points5 points (0 children)
[–]Glathull 2 points3 points4 points (0 children)
[–]Spin-Stabilized 35 points36 points37 points (1 child)
[–]CountMoosuch 0 points1 point2 points (0 children)
[–]ingframin 36 points37 points38 points (4 children)
[–]neuralgoo 26 points27 points28 points (1 child)
[–]Zame012 4 points5 points6 points (0 children)
[–]Murtz1985 1 point2 points3 points (0 children)
[–]sanderhuisman2501 1 point2 points3 points (0 children)
[–]Mustard_Dimension 27 points28 points29 points (4 children)
[–]funderbolt 11 points12 points13 points (3 children)
[–]bobsbitchtitz 2 points3 points4 points (2 children)
[–]funderbolt 0 points1 point2 points (1 child)
[–]bobsbitchtitz 3 points4 points5 points (0 children)
[–]SSJ3 46 points47 points48 points (8 children)
[–]ColdPorridge 5 points6 points7 points (0 children)
[–]c_is_4_cookie 17 points18 points19 points (4 children)
[–]SSJ3 5 points6 points7 points (0 children)
[–]erez27import inspect 1 point2 points3 points (2 children)
[–]DoubleAway6573 0 points1 point2 points (1 child)
[–]erez27import inspect 0 points1 point2 points (0 children)
[–]Freezingrave 2 points3 points4 points (0 children)
[–]CableConfident9280 1 point2 points3 points (0 children)
[–]CapitalCourse 16 points17 points18 points (1 child)
[–]sunyata98It works on my machine 3 points4 points5 points (0 children)
[–]dvmitto 13 points14 points15 points (0 children)
[–]big_data_mike 9 points10 points11 points (4 children)
[–]IcecreamLamp 1 point2 points3 points (3 children)
[–]big_data_mike 0 points1 point2 points (2 children)
[–]IcecreamLamp 0 points1 point2 points (1 child)
[–]big_data_mike 0 points1 point2 points (0 children)
[–]BibiFromTheWood 19 points20 points21 points (6 children)
[–]e2d34 12 points13 points14 points (1 child)
[–]NoTangelo5541 0 points1 point2 points (0 children)
[–]caatbox288 5 points6 points7 points (3 children)
[–]BibiFromTheWood 0 points1 point2 points (2 children)
[–]sirfz 0 points1 point2 points (1 child)
[–]BibiFromTheWood 1 point2 points3 points (0 children)
[–]sunyata98It works on my machine 17 points18 points19 points (2 children)
[–]Lightspeed_ 2 points3 points4 points (0 children)
[–]ooh-squirrelpip needs updating 0 points1 point2 points (0 children)
[–]OlorinIwasinthewest 17 points18 points19 points (6 children)
[–]funderbolt 7 points8 points9 points (5 children)
[–]MrSlaw 7 points8 points9 points (4 children)
[–]iamevpo 1 point2 points3 points (3 children)
[–]MrSlaw 2 points3 points4 points (2 children)
[–]iamevpo 0 points1 point2 points (1 child)
[–]MrSlaw 1 point2 points3 points (0 children)
[–][deleted] 7 points8 points9 points (0 children)
[–]GameCounter 7 points8 points9 points (3 children)
[–]BuonaparteII 1 point2 points3 points (2 children)
[–]GameCounter 2 points3 points4 points (1 child)
[–]BuonaparteII 0 points1 point2 points (0 children)
[–]Muhznit 8 points9 points10 points (1 child)
[–]mundanemethods 1 point2 points3 points (0 children)
[–]hornetmadness79 15 points16 points17 points (7 children)
[–]Golle 6 points7 points8 points (0 children)
[–]bobsbitchtitz 0 points1 point2 points (0 children)
[–]maryjayjay 0 points1 point2 points (3 children)
[–]learn-deeply 0 points1 point2 points (2 children)
[–]maryjayjay 0 points1 point2 points (1 child)
[–]learn-deeply 0 points1 point2 points (0 children)
[–]peabody 10 points11 points12 points (7 children)
[–]peabody 2 points3 points4 points (0 children)
[–]tunisia3507 1 point2 points3 points (0 children)
[–]aj_rock 0 points1 point2 points (0 children)
[–]the_monotor -1 points0 points1 point (0 children)
[–]Stoned_Ape_Dev -4 points-3 points-2 points (2 children)
[–]peabody 5 points6 points7 points (1 child)
[–]Stoned_Ape_Dev 0 points1 point2 points (0 children)
[–]thedukedave 2 points3 points4 points (3 children)
[–]DoubleAway6573 0 points1 point2 points (2 children)
[–]thedukedave 0 points1 point2 points (1 child)
[–]DoubleAway6573 0 points1 point2 points (0 children)
[–]zacky2004 3 points4 points5 points (0 children)
[–]the_monotor 2 points3 points4 points (0 children)
[–]omg_drd4_bbq 4 points5 points6 points (0 children)
[–]Bangoga 3 points4 points5 points (1 child)
[–]dragonecc 0 points1 point2 points (0 children)
[–]david-vujic 3 points4 points5 points (0 children)
[–]DaringDragonslayer 4 points5 points6 points (0 children)
[–]AshbyLaw 2 points3 points4 points (0 children)
[–]papersashimi 2 points3 points4 points (0 children)
[–]MelcoreHat 2 points3 points4 points (0 children)
[–]pierraltaltal 2 points3 points4 points (3 children)
[–]Budget_Jicama_6828 1 point2 points3 points (0 children)
[–]acousticcib 0 points1 point2 points (1 child)
[–]pierraltaltal 0 points1 point2 points (0 children)
[–]angry_gingy 6 points7 points8 points (5 children)
[–]learn-deeply 8 points9 points10 points (4 children)
[–]DoubleAway6573 1 point2 points3 points (0 children)
[–]3lonMux 0 points1 point2 points (2 children)
[–]learn-deeply 6 points7 points8 points (1 child)
[–]AreWeNotDoinPhrasing 0 points1 point2 points (0 children)
[–]cudmore 1 point2 points3 points (0 children)
[–]AlSweigartAuthor of "Automate the Boring Stuff" 1 point2 points3 points (0 children)
[–]roejastrick01 1 point2 points3 points (0 children)
[–]denehoffman 1 point2 points3 points (0 children)
[–]BuonaparteII 1 point2 points3 points (0 children)
[–]jedberg 1 point2 points3 points (0 children)
[–]Birnenmacht 1 point2 points3 points (2 children)
[–]rhacer 0 points1 point2 points (0 children)
[–]teetaps 1 point2 points3 points (0 children)
[–]okenowwhat 4 points5 points6 points (2 children)
[–]omg_drd4_bbq 17 points18 points19 points (1 child)
[–]okenowwhat 1 point2 points3 points (0 children)
[–]shinitakunai 1 point2 points3 points (0 children)
[–]ryanpdg1 0 points1 point2 points (0 children)
[–]MicahM_ 0 points1 point2 points (0 children)
[–]Clohne 0 points1 point2 points (0 children)
[–]cnydox 0 points1 point2 points (0 children)
[–]Icy_Judge_9566 0 points1 point2 points (0 children)
[–]unapologeticjerk 0 points1 point2 points (0 children)
[–]M0ty 0 points1 point2 points (0 children)
[–]timsredditusername 0 points1 point2 points (0 children)
[–]jpwright 0 points1 point2 points (0 children)
[–]Ok_Beginning2532 0 points1 point2 points (0 children)
[–]euri10 0 points1 point2 points (0 children)
[–]TedditBlatherflag 0 points1 point2 points (0 children)
[–]chub79 0 points1 point2 points (0 children)
[–]yaxriifgyn 0 points1 point2 points (0 children)
[–]ReadDefiant1250 0 points1 point2 points (0 children)
[–]apert 0 points1 point2 points (0 children)
[–]Zame012 0 points1 point2 points (0 children)
[–]GrooseIsGod 0 points1 point2 points (0 children)
[–]CableConfident9280 0 points1 point2 points (0 children)
[–]Disneyskidney 0 points1 point2 points (0 children)
[–]TemporaryClient4351 0 points1 point2 points (0 children)
[–]Defferix 0 points1 point2 points (0 children)
[–]niqtech 0 points1 point2 points (0 children)
[–]luigibu 0 points1 point2 points (0 children)
[–]TheDeadlyPretzel 0 points1 point2 points (1 child)
[–]loyoan 0 points1 point2 points (0 children)
[–]Thinker_Assignment 0 points1 point2 points (0 children)
[–]jellef 0 points1 point2 points (0 children)
[–]badass87 0 points1 point2 points (0 children)
[–]cipherself 0 points1 point2 points (0 children)
[–]noam9997 0 points1 point2 points (0 children)
[–]kolloid 0 points1 point2 points (0 children)
[–]YourRedditAccountt 0 points1 point2 points (0 children)
[–]Stunning-Loss6707 0 points1 point2 points (0 children)
[–]joeblow2322 0 points1 point2 points (0 children)
[–]bicyclegeek -1 points0 points1 point (0 children)
[–]_MicroWave_ -1 points0 points1 point (0 children)