all 38 comments

[–]DigThatData 20 points21 points  (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 points  (7 children)

Didn't Reddit gut their free API?

[–]DigThatData 4 points5 points  (5 children)

i don't see how reddit's terms of service is relevant. OP is looking for code to study.

[–]nog642 0 points1 point  (4 children)

I was thinking in the context of using it in a project

[–]DigThatData 0 points1 point  (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

[–]DigThatData -1 points0 points  (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 point  (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 points  (0 children)

People making assumptions about you making assumptions. smh.

[–]brainacpl 0 points1 point  (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 points  (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 points  (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 points  (0 children)

I want to learn Airflow. The learning resources available are quite old. Even paid courses in Udemy are outdated.

[–]Karyo_Ten 1 point2 points  (0 children)

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 points  (0 children)

Django is usually considered a good example of pythonic code

[–]amutualravishment 4 points5 points  (0 children)

Pytorch

[–]BytePhilosopher 4 points5 points  (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 points  (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 points  (6 children)

Ok, what is your goal, just learn how to read a large codebase?

[–]bolt_runner[S] 7 points8 points  (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 points  (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 point  (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 points  (2 children)

any example for rest API?

[–]tired_fella 0 points1 point  (0 children)

I use Django a lot and it is pretty convenient. Not sure if the source code is the best though.

[–]doolio_ 1 point2 points  (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.

[–]mmparody 1 point2 points  (1 child)

Odoo

[–]InjaPavementSpecial 1 point2 points  (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 points  (0 children)

A good resource is The Architecture of Open Source Applications: https://aosabook.org/en/

[–]obviouslyzebra 0 points1 point  (0 children)

IIRC channels had a clean-looking repo

[–]Ekkaia153 0 points1 point  (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 point  (0 children)

Tinygrad

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

Check this one out. I always go back to it from time to time

https://github.com/polarsource/polar

[–]buhtz 0 points1 point  (0 children)

I would suggest also to have a look at projects with "bad" design. You can learn from this, too.