Managing Python Dependencies Transcripts
Chapter: Finding Quality Python Packages
Lecture: Finding Popular Packages on Curated Lists
0:01 Browsing through curated lists is one of the quickest ways
0:04 you can find a Python package that can help you with a problem at hand.
0:07 So you can just pull up one of these curated lists websites
0:10 and then browse popular libraries by topic.
0:14 For example, one topic might be web development,
0:17 another one might be database interfaces or data science.
0:21 And that gives you a good idea of what the popular and recommended choices
0:25 for solving those problems are in the Python community.
0:29 I've listed some of these curated list websites for you
0:32 and we're going to take a look at a couple of those now.
0:35 The first curated list website that I want to show you is called Awesome Python,
0:40 you can find it at awesome-python.com
0:43 This is a really extensive list with useful Python packages.
0:48 You can see here, it's split up into different categories
0:51 and then you can drill down into those.
0:54 Let's check out database drivers here.
0:57 now you can see here that there are actually subcategories
1:00 for example, the drivers for MySQL, Postgres, and so on.
1:04 Now this isn't a review site, this is nearly a list of popular packages
1:09 so you will still have to make a decision which one you prefer
1:13 and I am going to give you some tips for that, later on in the course.
1:17 You can also search this list, which is handy sometimes,
1:21 so for example if you're looking for libraries to download stuff through http
1:26 you can find those quickly through the search function.
1:29 Now what's interesting about Awesome Python too is
1:32 that it's an open source website, there is a community of people
1:35 working on the website contents through GitHub.
1:38 And you can see ongoing development here on the GitHub project page,
1:42 people will create issues and pull requests
1:45 to add new recommended libraries or change the preferred choice.
1:49 So all of this is very fluid, and the great thing is that it's usually fairly up to date.
1:54 So what I really like about this curated list is that there is so much activity
1:59 and people are working hard to keep it up to date.
2:02 Also, you can contribute and jump in and help make the site better if you want to.
2:06 Another useful website is python.libhunt.com, the packages that show up here
2:13 are actually based on the contents of the Awesome Python list.
2:17 But libhunt adds some extra features on top of that,
2:20 for example, more extensive search and then they also have
2:27 some metrics for project health and popularity which can be helpful sometimes.
2:32 For example, there is this relative popularity indicator,
2:36 that might be helpful for you to make a choice between two libraries,
2:39 there is also this activity indicator telling you
2:42 how much activity there is on the project repository.
2:45 Again, this can be a good way to identify a well maintained package,
2:49 now when I click on one of those packages, I get some more stats here
2:52 instead of just being redirected to the project homepage.
2:56 Depending on what you're looking for, this python.libhunt website
3:00 might be a good way for you to find quality Python packages.
3:03 The Hitchhiker's Guide To Python is another great website
3:08 with library recommendations. You can find it at python-guide.org
3:13 When you scroll down a little bit,
3:16 you will find the scenario guide for Python applications,
3:19 and this guide makes some recommendations
3:22 around tools and modules based on different scenarios.
3:25 Let's check out this network application section here.
3:28 We see a list of recommended libraries here
3:31 and while this is not as extensive as Awesome Python
3:34 what I like about this is that it gives a little bit more
3:37 background info about the library.
3:39 This might save you some research time, and in general,
3:42 the Hitchhiker's Guide To Python is a pretty fantastic website,
3:45 so you might want to check it out in any case.
3:48 Again, this guide is an open source website on GitHub,
3:52 so people can contribute to the site through issues
3:55 and by opening pull requests and that generally means
3:58 that there is some activity and it's kept up to date over time.
4:01 Another handy website is Python Module Of The Week,
4:05 you can find it at pymotw.com
4:10 Now, this website is mainly focused on modules in the Python standard library,
4:14 it's not really reviewing any third party modules but nevertheless,
4:19 this is a great resource to find some of the awesome packages
4:23 that are shipping with Python and that are included in the standard library.
4:26 One of the great things about Python is that it comes with "batteries included",
4:30 you will be able to solve many of the problems you encounter in practice
4:34 by working with the Python standard library;
4:36 generally the implementations there are well maintained,
4:39 and they are included with any Python install,
4:42 so it makes sense to do a quick check if what you are looking for
4:44 is already part of the Python standard library,
4:47 and for that kind of research, Python Module Of The Week is a great website.
4:51 Okay, here is one more useful website for doing that kind of library research.
4:56 Python has an official wiki at wiki.python.org
5:00 and it also includes some library recommendations
5:03 or generally useful libraries that you might want to check out.
5:06 There is a useful modules page in the wiki and it will point you
5:10 to some of the building blocks that you can use
5:13 in your own projects, let's check it out.
5:16 Again, this is organized by category and while I found this
5:20 isn't as well maintained as let's say Awesome Python
5:23 there is still some interesting modules in here,
5:26 so if you have the time to do research you might want to check out the wiki as well.
5:31 Some of these sections have specific pages
5:34 that talk about web programming for example,
5:37 so you also might want to check those out.
5:40 The page on web frameworks for example is pretty extensive,
5:42 it's kept fairly up to date and there is a big list of Python web frameworks
5:47 that you might want to browse through if that is what you're interested in.
5:51 Personally, I would probably start my research with one of the other websites,
5:55 but it might still pay off to spend some time
5:57 browsing around on the official Python wiki.