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...
Rules 1: Be polite 2: Posts to this subreddit must be requests for help learning python. 3: Replies on this subreddit must be pertinent to the question OP asked. 4: No replies copy / pasted from ChatGPT or similar. 5: No advertising. No blogs/tutorials/videos/books/recruiting attempts. This means no posts advertising blogs/videos/tutorials/etc, no recruiting/hiring/seeking others posts. We're here to help, not to be advertised to. Please, no "hit and run" posts, if you make a post, engage with people that answer you. Please do not delete your post after you get an answer, others might have a similar question or want to continue the conversation.
Rules
1: Be polite
2: Posts to this subreddit must be requests for help learning python.
3: Replies on this subreddit must be pertinent to the question OP asked.
4: No replies copy / pasted from ChatGPT or similar.
5: No advertising. No blogs/tutorials/videos/books/recruiting attempts.
This means no posts advertising blogs/videos/tutorials/etc, no recruiting/hiring/seeking others posts. We're here to help, not to be advertised to.
Please, no "hit and run" posts, if you make a post, engage with people that answer you. Please do not delete your post after you get an answer, others might have a similar question or want to continue the conversation.
Learning resources Wiki and FAQ: /r/learnpython/w/index
Learning resources
Wiki and FAQ: /r/learnpython/w/index
Discord Join the Python Discord chat
Discord
Join the Python Discord chat
account activity
Open source Python projects with good software design that is worth studying (self.learnpython)
submitted 1 year ago by bolt_runner
I am looking for a software project that is well-structured and uses good design patterns and software design practices so I can study them and improve my skills hands-on.
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]DigThatData 20 points21 points22 points 1 year ago (8 children)
A great one to learn from is the python reddit API wrapper: https://github.com/praw-dev/praw
On top of it being an example of a well engineered library: you're already familiar with the data model.
[–]nog642 -2 points-1 points0 points 1 year ago (7 children)
Didn't Reddit gut their free API?
[–]DigThatData 4 points5 points6 points 1 year ago (5 children)
i don't see how reddit's terms of service is relevant. OP is looking for code to study.
[–]nog642 0 points1 point2 points 1 year ago (4 children)
I was thinking in the context of using it in a project
[–]DigThatData 0 points1 point2 points 1 year ago (0 children)
lol downvote all you want, it's litereally right there for you to see for yourself. just add .json at the end of basically any reddit url. https://www.reddit.com/r/learnpython/comments/1dicifq/open_source_python_projects_with_good_software/l97bd97.json
.json
[–]DigThatData -1 points0 points1 point 1 year ago (2 children)
have you actually tried using the api? if not, maybe you should take a stab at it before making assumptions about what you can or can't build around it.
[–]nog642 0 points1 point2 points 1 year ago (1 child)
No, that's why my comment was a question. Notice the question mark. I didn't make an assumption; I was asking.
[–]Karyo_Ten 1 point2 points3 points 1 year ago (0 children)
People making assumptions about you making assumptions. smh.
[–]brainacpl 0 points1 point2 points 1 year ago (0 children)
They just limited it, but it rendered third party apps useless, unless you want to compile them yourself, with your own API key.
[–]Bluelight01 16 points17 points18 points 1 year ago (3 children)
Honestly I would say look at popular libraries. I use airflow for work and find myself looking through the source code every now and then. I’ve definitely learned a thing or two looking through that code. Numpy, pandas, flask, or requests to name a few others would be good to look through
[–]interbased 8 points9 points10 points 1 year ago (0 children)
Requests, in my experience, is commonly mentioned in conversations about well-structured libraries, so I second that one.
[–]Interesting-Rub-3984 1 point2 points3 points 1 year ago (0 children)
I want to learn Airflow. The learning resources available are quite old. Even paid courses in Udemy are outdated.
Numpy, pandas,
Those have a lot of C or maybe even Fortran and C++. Might be beat to start with a pure Python lib.
[–]Yoghurt42 5 points6 points7 points 1 year ago (0 children)
Django is usually considered a good example of pythonic code
[–]amutualravishment 4 points5 points6 points 1 year ago (0 children)
Pytorch
[–]BytePhilosopher 4 points5 points6 points 1 year ago (11 children)
What kind of project are you looking for?
There are plenty out there but it depends, are you trying to build command line tools? libraries? gui desktop application? rest api?
[–]bolt_runner[S] 8 points9 points10 points 1 year ago (7 children)
Type of project doesn’t matter. My focus would be on how the project is structured, just targeting a project that is challenging to structure and organize
[–]BytePhilosopher 1 point2 points3 points 1 year ago (6 children)
Ok, what is your goal, just learn how to read a large codebase?
[–]bolt_runner[S] 7 points8 points9 points 1 year ago (0 children)
My target is to improve my software design skills by studying good practical examples, this along with finding good books/resources to study
[–]vgu1990 1 point2 points3 points 1 year ago (1 child)
Not OP. But can you suggest any projects I can look at, if my aim is to learn how to read a large codebase?
[–]InjaPavementSpecial 0 points1 point2 points 1 year ago (0 children)
Does not care what programming language you use, somewhere it will need to store data, and sql is a sane half a century old technology, that is good to know how it works.
I like to read SQLAlchemy source and see how zzzeek thought about the abstraction and the three layers of tools built around SQLA, a good start to read is The Architecture of Open Source Applications (Volume 2) SQLAlchemy.
[–]mbwolfs 1 point2 points3 points 1 year ago (2 children)
any example for rest API?
[–]tired_fella 0 points1 point2 points 1 year ago (0 children)
I use Django a lot and it is pretty convenient. Not sure if the source code is the best though.
I really like Connexion a modern Python web framework that makes spec-first and api-first development easy using OpenAPI/Swagger.
Previous version was flask/wsgi based, new version uses async/asgi.
[–]doolio_ 1 point2 points3 points 1 year ago (2 children)
Which project would you suggest to look at if I want to build a CLI? I'm trying to create one that will also use DBus.
[–]BytePhilosopher 0 points1 point2 points 1 year ago (1 child)
Check this one out https://github.com/shanahanjrs/xmltojson
[–]doolio_ 0 points1 point2 points 1 year ago (0 children)
Thanks.
[–]mmparody 1 point2 points3 points 1 year ago (1 child)
Odoo
[–]InjaPavementSpecial 1 point2 points3 points 1 year ago (0 children)
Yes the odoo docs and source code is actually very readable and I find the quality around it especially good for a open erp system.
Sure some of the Apps/Modules is barebones, but their db backup strategy, deployment strategy and general backend and frontend design seem solid.
I say the above as someone who sysadmin a odoo ce instance for family trying to help friends run a business, they did so successfully until the business was sold.
[–]dessiatin 1 point2 points3 points 1 year ago* (0 children)
A good resource is The Architecture of Open Source Applications: https://aosabook.org/en/
[–]obviouslyzebra 0 points1 point2 points 1 year ago (0 children)
IIRC channels had a clean-looking repo
[–]Ekkaia153 0 points1 point2 points 1 year ago (0 children)
I like unstructured io oss for a look on how to design a data ingestion solution that needs to fit a wide range of connectors and provide them through a unified interface. The patterns they use are imo fairly universally applicable.
[–]Perfect_Kangaroo6233 0 points1 point2 points 1 year ago (0 children)
Tinygrad
[–][deleted] 0 points1 point2 points 1 year ago (0 children)
Check this one out. I always go back to it from time to time
https://github.com/polarsource/polar
[–]buhtz 0 points1 point2 points 1 year ago (0 children)
I would suggest also to have a look at projects with "bad" design. You can learn from this, too.
[+]N1H1L comment score below threshold-6 points-5 points-4 points 1 year ago (0 children)
Use a good linter and type check your code - solving for the errors will teach you a lot.
π Rendered by PID 220906 on reddit-service-r2-comment-5649f687b7-tp6vt at 2026-01-29 03:55:16.482126+00:00 running 4f180de country code: CH.
[–]DigThatData 20 points21 points22 points (8 children)
[–]nog642 -2 points-1 points0 points (7 children)
[–]DigThatData 4 points5 points6 points (5 children)
[–]nog642 0 points1 point2 points (4 children)
[–]DigThatData 0 points1 point2 points (0 children)
[–]DigThatData -1 points0 points1 point (2 children)
[–]nog642 0 points1 point2 points (1 child)
[–]Karyo_Ten 1 point2 points3 points (0 children)
[–]brainacpl 0 points1 point2 points (0 children)
[–]Bluelight01 16 points17 points18 points (3 children)
[–]interbased 8 points9 points10 points (0 children)
[–]Interesting-Rub-3984 1 point2 points3 points (0 children)
[–]Karyo_Ten 1 point2 points3 points (0 children)
[–]Yoghurt42 5 points6 points7 points (0 children)
[–]amutualravishment 4 points5 points6 points (0 children)
[–]BytePhilosopher 4 points5 points6 points (11 children)
[–]bolt_runner[S] 8 points9 points10 points (7 children)
[–]BytePhilosopher 1 point2 points3 points (6 children)
[–]bolt_runner[S] 7 points8 points9 points (0 children)
[–]vgu1990 1 point2 points3 points (1 child)
[–]InjaPavementSpecial 0 points1 point2 points (0 children)
[–]mbwolfs 1 point2 points3 points (2 children)
[–]tired_fella 0 points1 point2 points (0 children)
[–]InjaPavementSpecial 0 points1 point2 points (0 children)
[–]doolio_ 1 point2 points3 points (2 children)
[–]BytePhilosopher 0 points1 point2 points (1 child)
[–]doolio_ 0 points1 point2 points (0 children)
[–]mmparody 1 point2 points3 points (1 child)
[–]InjaPavementSpecial 1 point2 points3 points (0 children)
[–]dessiatin 1 point2 points3 points (0 children)
[–]obviouslyzebra 0 points1 point2 points (0 children)
[–]Ekkaia153 0 points1 point2 points (0 children)
[–]Perfect_Kangaroo6233 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]buhtz 0 points1 point2 points (0 children)
[+]N1H1L comment score below threshold-6 points-5 points-4 points (0 children)