I am a proficient Python coder whose learning has plateaued. Any really useful libraries I should look into learning? Taking recommendations.

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/learnpython

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
  • filprofiler

    A Python memory profiler for data processing and scientific computing applications

    And if you work with a lot of data (which I understood you do), you can even profile the memory you use to optimize it if needed. There is a great tool for this : https://github.com/pythonspeed/filprofiler

  • black

    The uncompromising Python code formatter

    For cleaner coding, you might want to use a linter such as black (https://github.com/psf/black) or whatever floats your boat. I would argue, using git and continuous integration for unit testing and checking your code style with black helps as well. Once you have unit tests you have to pass for an upload or merge, you start to think about breaking up your code in small enough chunks that are easy to understand and test.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • panel

    A high-level app and dashboarding solution for Python (by holoviz)

    Not really for cleaner code, but for fast and interactive searching through your data: holoviews or hvplot for plotting stuff using matlotlib or bokeh as backend + panel (https://panel.holoviz.org/) + jupyterlab (or jupyterHub, I guess) This way you can use your browser and create widgets in Python to search through your data.

  • nimpy

    Nim - Python bridge

    And for funsies, extend python at the speed of C without using C with Nim and nimpy

  • Nim

    Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).

    And for funsies, extend python at the speed of C without using C with Nim and nimpy

  • awesome-python

    A curated list of awesome Python frameworks, libraries, software and resources

    I suggest looking at this and this github links which group many of the most used/useful python libraries by their category of use.

  • best-of-python

    🏆 A ranked list of awesome Python open-source libraries and tools. Updated weekly.

    I suggest looking at this and this github links which group many of the most used/useful python libraries by their category of use.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • algorithms

    Minimal examples of data structures and algorithms in Python

    Here are some that might answer your question: - algorithms is a library which contains many of the most useful algorithms for sorting, searching, working with trees, math algorithms like factorials, prime finders and many more - data classes to save you the trouble of writing everytime special methods in a class like init, repr, set, get - box allows the use of dot on dictionaries to access the keys - more-itertools for more routines to operate on iterables than those itertools provide.

  • Box

    Python dictionaries with advanced dot notation access

    Here are some that might answer your question: - algorithms is a library which contains many of the most useful algorithms for sorting, searching, working with trees, math algorithms like factorials, prime finders and many more - data classes to save you the trouble of writing everytime special methods in a class like init, repr, set, get - box allows the use of dot on dictionaries to access the keys - more-itertools for more routines to operate on iterables than those itertools provide.

  • more-itertools

    More routines for operating on iterables, beyond itertools

    Here are some that might answer your question: - algorithms is a library which contains many of the most useful algorithms for sorting, searching, working with trees, math algorithms like factorials, prime finders and many more - data classes to save you the trouble of writing everytime special methods in a class like init, repr, set, get - box allows the use of dot on dictionaries to access the keys - more-itertools for more routines to operate on iterables than those itertools provide.

  • tqdm

    A Fast, Extensible Progress Bar for Python and CLI

    And here are some libraries that might pique your interest although they don't strictly answer your question: - tqdm for adding a progress bar on for loops (it comes with useful information like iteration per second and estimated time needed to finish) - alive_progress adds a progress bar like tqdm, but it works even with generators and while loops which I don't think tqdm does. -timebudget, with just a decorator as soon as a function is completed it prints the time taken to execute it - send2trash for sending files to the trash bin instead of permanently deleting them - keyboard for sending keyboard inputs or check if a key is pressed - mouse same as keyboard but with mouse buttons - textract for extracting text from many types of file with a single interface. It supports documents, powerpoint presentations, csv, excels, images, gifs, audio, and many more

  • alive-progress

    A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations!

    And here are some libraries that might pique your interest although they don't strictly answer your question: - tqdm for adding a progress bar on for loops (it comes with useful information like iteration per second and estimated time needed to finish) - alive_progress adds a progress bar like tqdm, but it works even with generators and while loops which I don't think tqdm does. -timebudget, with just a decorator as soon as a function is completed it prints the time taken to execute it - send2trash for sending files to the trash bin instead of permanently deleting them - keyboard for sending keyboard inputs or check if a key is pressed - mouse same as keyboard but with mouse buttons - textract for extracting text from many types of file with a single interface. It supports documents, powerpoint presentations, csv, excels, images, gifs, audio, and many more

  • timebudget

    Stupidly-simple speed measurements for Python.

    And here are some libraries that might pique your interest although they don't strictly answer your question: - tqdm for adding a progress bar on for loops (it comes with useful information like iteration per second and estimated time needed to finish) - alive_progress adds a progress bar like tqdm, but it works even with generators and while loops which I don't think tqdm does. -timebudget, with just a decorator as soon as a function is completed it prints the time taken to execute it - send2trash for sending files to the trash bin instead of permanently deleting them - keyboard for sending keyboard inputs or check if a key is pressed - mouse same as keyboard but with mouse buttons - textract for extracting text from many types of file with a single interface. It supports documents, powerpoint presentations, csv, excels, images, gifs, audio, and many more

  • send2trash

    Python library to natively send files to Trash (or Recycle bin) on all platforms.

    And here are some libraries that might pique your interest although they don't strictly answer your question: - tqdm for adding a progress bar on for loops (it comes with useful information like iteration per second and estimated time needed to finish) - alive_progress adds a progress bar like tqdm, but it works even with generators and while loops which I don't think tqdm does. -timebudget, with just a decorator as soon as a function is completed it prints the time taken to execute it - send2trash for sending files to the trash bin instead of permanently deleting them - keyboard for sending keyboard inputs or check if a key is pressed - mouse same as keyboard but with mouse buttons - textract for extracting text from many types of file with a single interface. It supports documents, powerpoint presentations, csv, excels, images, gifs, audio, and many more

  • keyboard

    Hook and simulate global keyboard events on Windows and Linux.

    And here are some libraries that might pique your interest although they don't strictly answer your question: - tqdm for adding a progress bar on for loops (it comes with useful information like iteration per second and estimated time needed to finish) - alive_progress adds a progress bar like tqdm, but it works even with generators and while loops which I don't think tqdm does. -timebudget, with just a decorator as soon as a function is completed it prints the time taken to execute it - send2trash for sending files to the trash bin instead of permanently deleting them - keyboard for sending keyboard inputs or check if a key is pressed - mouse same as keyboard but with mouse buttons - textract for extracting text from many types of file with a single interface. It supports documents, powerpoint presentations, csv, excels, images, gifs, audio, and many more

  • mouse

    Hook and simulate global mouse events in pure Python

    And here are some libraries that might pique your interest although they don't strictly answer your question: - tqdm for adding a progress bar on for loops (it comes with useful information like iteration per second and estimated time needed to finish) - alive_progress adds a progress bar like tqdm, but it works even with generators and while loops which I don't think tqdm does. -timebudget, with just a decorator as soon as a function is completed it prints the time taken to execute it - send2trash for sending files to the trash bin instead of permanently deleting them - keyboard for sending keyboard inputs or check if a key is pressed - mouse same as keyboard but with mouse buttons - textract for extracting text from many types of file with a single interface. It supports documents, powerpoint presentations, csv, excels, images, gifs, audio, and many more

  • textract

    extract text from any document. no muss. no fuss.

    And here are some libraries that might pique your interest although they don't strictly answer your question: - tqdm for adding a progress bar on for loops (it comes with useful information like iteration per second and estimated time needed to finish) - alive_progress adds a progress bar like tqdm, but it works even with generators and while loops which I don't think tqdm does. -timebudget, with just a decorator as soon as a function is completed it prints the time taken to execute it - send2trash for sending files to the trash bin instead of permanently deleting them - keyboard for sending keyboard inputs or check if a key is pressed - mouse same as keyboard but with mouse buttons - textract for extracting text from many types of file with a single interface. It supports documents, powerpoint presentations, csv, excels, images, gifs, audio, and many more

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts