Skip to content

Instantly share code, notes, and snippets.

@kvnxiao
Created September 27, 2020 06:22
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save kvnxiao/6a226c1bbbe8bfbd0b7c965b0a251183 to your computer and use it in GitHub Desktop.
Save kvnxiao/6a226c1bbbe8bfbd0b7c965b0a251183 to your computer and use it in GitHub Desktop.
awesome-python-sorted-2020-09-27.md

Awesome Python Awesome

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

Inspired by awesome-php.


Admin Panels

Libraries for administrative interfaces.

  •   6123 ajenti - The admin panel your servers deserve.
  •   4459 django-xadmin - Drop-in replacement of Django admin comes with lots of goodies.
  •   4435 flower - Real-time monitor and web admin for Celery.
  •   4412 flask-admin - Simple and extensible administrative interface framework for Flask.
  •   2863 django-jet - Modern responsive template for the Django admin interface with improved functionality.
  •   2015 django-suit - Alternative Django Admin-Interface (free only for Non-commercial use).
  •   1473 wooey - A Django app which creates automatic web UIs for Python scripts.
  •    799 django-grappelli - A jazzy skin for the Django Admin-Interface.
  •    784 jet-bridge - Admin panel framework for any application with nice UI (ex Jet Django)

Algorithms and Design Patterns

Python implementation of data structures, algorithms and design patterns. Also see awesome-algorithms.

  • Algorithms
    •  86100 TheAlgorithms - All Algorithms implemented in Python.
    •  17903 algorithms - Minimal examples of data structures and algorithms.
    •   1860 sortedcontainers - Fast and pure-Python implementation of sorted collections.
    •   1101 python-ds - A collection of data structure and algorithms for coding interviews.
  • Design Patterns
    •  25922 python-patterns - A collection of design patterns in Python.
    •   3169 transitions - A lightweight, object-oriented finite state machine implementation.
    •   1054 PyPattyrn - A simple yet effective library for implementing common design patterns.

ASGI Servers

ASGI-compatible web servers.

  •   3079 uvicorn - A lightning-fast ASGI server implementation, using uvloop and httptools.
  •   1348 daphne - A HTTP, HTTP2 and WebSocket protocol server for ASGI and ASGI-HTTP.

Asynchronous Programming

  •  33691 asyncio - (Python standard library) Asynchronous I/O, event loop, coroutines and tasks.
  •   7164 uvloop - Ultra fast asyncio event loop.
  •   4023 Twisted - An event-driven networking engine.
  •   3423 trio - A friendly library for async concurrency and I/O.

Audio

Libraries for manipulating audio and its metadata.

  • Audio
    •   5138 dejavu - Audio fingerprinting and recognition.
    •   4769 pydub - Manipulate audio with a simple and easy high level interface.
    •   3903 librosa - Python library for audio and music analysis
    •   3417 pyAudioAnalysis - Audio feature extraction, classification, segmentation and applications.
    •    652 kapre - Keras Audio Preprocessors
    •    345 audioread - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
    •    291 TimeSide - Open web audio processing framework.
    •    255 matchering - A library for automated reference audio mastering.
    •      0 mingus - An advanced music theory and notation package with MIDI file and playback support.
  • Metadata
    •   9608 beets - A music library manager and MusicBrainz tagger.
    •    665 mutagen - A Python module to handle audio metadata.
    •    406 tinytag - A library for reading music meta data of MP3, OGG, FLAC and Wave files.
    •    250 eyeD3 - A tool for working with audio files, specifically MP3 files containing ID3 metadata.

Authentication

Libraries for implementing authentications schemes.

  • OAuth
    •   5838 django-allauth - Authentication app for Django that "just works."
    •   2926 python-oauth2 - A fully tested, abstract interface to creating OAuth clients and servers.
    •   2789 python-social-auth - An easy-to-setup social authentication mechanism.
    •   2094 oauthlib - A generic and thorough implementation of the OAuth request-signing logic.
    •   2039 authlib - JavaScript Object Signing and Encryption draft implementation.
    •   2030 django-oauth-toolkit - OAuth 2 goodies for Django.
  • JWT
    •   3447 pyjwt - JSON Web Token implementation in Python.
    •    708 python-jose - A JOSE implementation in Python.
    •    176 python-jwt - A module for generating and verifying JSON Web Tokens.

Build Tools

Compile software from source code.

  •   4380 PlatformIO - A console tool to build code with different development platforms.
  •   1243 pybuilder - A continuous build tool written in pure Python.
  •    944 SCons - A software construction tool.
  •    492 buildout - A build system for creating, assembling and deploying applications from multiple parts.
  •      0 BitBake - A make-like build tool for embedded Linux.

Built-in Classes Enhancement

Libraries for enhancing Python built-in classes.

  •  33691 dataclasses - (Python standard library) Data classes.
  •   3228 attrs - Replacement for __init__, __eq__, __repr__, etc. boilerplate in class definitions.
  •   1534 Box - Python dictionaries with advanced dot notation access.
  •    637 bidict - Efficient, Pythonic bidirectional map data structures and related functionality..
  •    102 DottedDict - A library that provides a method of accessing lists and dicts with a dotted path notation.

CMS

Content Management Systems.

  •   9236 wagtail - A Django content management system.
  •   4128 mezzanine - A powerful, consistent, and flexible content management platform.
  •   2195 quokka - Flexible, extensible, small CMS powered by Flask and MongoDB.
  •   1090 indico - A feature-rich event management system, made @ CERN.
  •    779 feincms - One of the most advanced Content Management Systems built on Django.
  •    352 Kotti - A high-level, Pythonic web application framework built on Pyramid.
  •    137 django-cms - An Open source enterprise CMS based on the Django.
  •      0 plone - A CMS built on top of the open source application server Zope.

Caching

Libraries for caching data.

  •   2489 HermesCache - Python caching library with tag-based invalidation and dogpile effect prevention.
  •   1304 django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
  •    795 django-cache-machine - Automatic caching and invalidation for Django models.
  •    560 python-diskcache - SQLite and file backed cache backend with faster lookups than memcached and redis.
  •    459 beaker - A WSGI middleware for sessions and caching.
  •    436 pylibmc - A Python wrapper around the libmemcached interface.
  •      0 dogpile.cache - dogpile.cache is next generation replacement for Beaker made by same authors.

ChatOps Tools

Libraries for chatbot development.

  •   2330 errbot - The easiest and most popular chatbot to implement ChatOps.

Code Analysis

Tools of static analysis, linters and code quality checkers. Also see awesome-static-analysis.

  • Code Analysis
    •   3043 coala - Language independent and easily extendable code analysis application.
    •   1467 pycallgraph - A library that visualises the flow (call graph) of your Python application.
    •   1300 prospector - A tool to analyse Python code.
    •   1034 vulture - A tool for finding and analysing dead Python code.
    •    771 code2flow - Turn your Python and JavaScript code into DOT flowcharts.
  • Code Linters
  • Code Formatters
    •  17969 black - The uncompromising Python code formatter.
    •  11060 yapf - Yet another Python code formatter from Google.
    •   3317 isort - A Python utility / library to sort imports.
  • Static Type Checkers, also see awesome-python-typing
    •   9144 mypy - Check variable types during compile time.
    •   4864 pyre-check - Performant type checking.
    •   1820 typeshed - Collection of library stubs for Python, with static types.
  • Static Type Annotations Generators
    •   3098 MonkeyType - A system for Python that generates static type annotations by collecting runtime types.
    •   2914 pytype - Pytype checks and infers types for Python code - without requiring type annotations.
    •   1131 pyannotate - Auto-generate PEP-484 annotations.

Command-line Interface Development

Libraries for building command-line applications.

  • Command-line Application Development
    •  17734 python-fire - A library for creating command line interfaces from absolutely any Python object.
    •   9797 click - A package for creating beautiful command line interfaces in a composable way.
    •   6520 python-prompt-toolkit - A library for building powerful interactive command lines.
    •    953 cement - CLI Application Framework for Python.
    •      0 cliff - A framework for creating command-line programs with multi-level commands.
    •      0 docopt - Pythonic command line arguments parser.
  • Terminal Rendering
    •  15906 tqdm - Fast, extensible progress bar for loops and CLI.
    •  12595 rich - Python library for rich text and beautiful formatting in the terminal. Also provides a great RichHandler log handler.
    •   2398 asciimatics - A package to create full-screen text UIs (from interactive forms to ASCII animations).
    •   2209 colorama - Cross-platform colored terminal text.
    •   1463 bashplotlib - Making basic plots in the terminal.
    •    790 alive-progress - A new kind of Progress Bar, with real-time throughput, eta and very cool animations.

Command-line Tools

Useful CLI-based tools for productivity.

  • Productivity Tools
    •  55652 thefuck - Correcting your previous console command.
    •  12892 cookiecutter - A command-line utility that creates projects from cookiecutters (project templates).
    •   8461 howdoi - Instant coding answers via the command line.
    •   4458 PathPicker - Select files out of bash output.
    •   2985 Invoke - A tool for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks.
    •   2949 percol - Adds flavor of interactive selection to the traditional pipe concept on UNIX.
    •   2873 tmuxp - A tmux session manager.
    •   2843 doitlive - A tool for live presentations in the terminal.
    •    564 try - A dead simple CLI to try out python packages - it's never been easier.
    •    110 copier - A library and command-line utility for rendering projects templates.
  • CLI Enhancements
    •  48178 httpie - A command line HTTP client, a user-friendly cURL replacement.
    •   9056 mycli - MySQL CLI with autocompletion and syntax highlighting.
    •   8956 pgcli - PostgreSQL CLI with autocompletion and syntax highlighting.
    •   4589 saws - A Supercharged aws-cli.
    •   1709 kube-shell - An integrated shell for working with the Kubernetes CLI.
    •   1215 iredis - Redis CLI with autocompletion and syntax highlighting.
    •   1199 litecli - SQLite CLI with autocompletion and syntax highlighting.

Compatibility

Libraries for migrating from Python 2 to 3.

  •   1093 python-future - The missing compatibility layer between Python 2 and Python 3.
  •    700 six - Python 2 and 3 compatibility utilities.
  •    542 python-modernize - Modernizes Python code for eventual Python 3 migration.

Computer Vision

Libraries for Computer Vision.

  •  48546 OpenCV - Open Source Computer Vision Library.
  •  36407 Face Recognition - Simple facial recognition library.
  •   8313 EasyOCR - Ready-to-use OCR with 40+ languages supported.
  •   3158 pytesseract - A wrapper for Google Tesseract OCR.
  •   2905 Kornia - Open Source Differentiable Computer Vision Library for PyTorch.
  •   2430 SimpleCV - An open source framework for building computer vision applications.
  •   1309 tesserocr - Another simple, Pillow-friendly, wrapper around the tesseract-ocr API for OCR.

Concurrency and Parallelism

Libraries for concurrent and parallel execution. Also see awesome-asyncio.

  •  33691 concurrent.futures - (Python standard library) A high-level interface for asynchronously executing callables.
  •  33691 multiprocessing - (Python standard library) Process-based parallelism.
  •   7164 uvloop - Ultra fast implementation of asyncio event loop on top of libuv.
  •   5292 gevent - A coroutine-based Python networking library that uses greenlet.
  •    957 eventlet - Asynchronous framework with WSGI support.
  •    471 scoop - Scalable Concurrent Operations in Python.

Configuration

Libraries for storing and parsing configuration options.

  •  33691 configparser - (Python standard library) INI file parser.
  •   2867 hydra - Hydra is a framework for elegantly configuring complex applications.
  •   1489 python-decouple - Strict separation of settings from code.
  •    231 configobj - INI file parser with validation.
  •     19 profig - Config from multiple formats with value conversion.

Cryptography

  •   6509 paramiko - The leading native Python SSHv2 protocol library.
  •   3543 cryptography - A package designed to expose cryptographic primitives and recipes to Python developers.
  •    719 pynacl - Python binding to the Networking and Cryptography (NaCl) library.
  •      0 passlib - Secure password storage/hashing library, very high level.

Data Analysis

Libraries for data analyzing.

  •  26666 Pandas - A library providing high-performance, easy-to-use data structures and data analysis tools.
  •   2896 Blaze - NumPy and Pandas interface to Big Data.
  •   2406 Orange - Data mining, data visualization, analysis and machine learning through visual programming or scripts.
  •   1099 Open Mining - Business Intelligence (BI) in Pandas interface.
  •   1057 AWS Data Wrangler - Pandas on AWS.
  •    934 Optimus - Agile Data Science Workflows made easy with PySpark.

Data Validation

Libraries for validating data. Used for forms in many cases.

  •   2923 jsonschema - An implementation of JSON Schema for Python.
  •   2373 Schematics - Data Structure Validation.
  •   2189 Cerberus - A lightweight and extensible data validation library.
  •   2174 schema - A library for validating Python data structures.
  •   1634 voluptuous - A Python data validation library.
  •    393 colander - Validating and deserializing data obtained via XML, JSON, an HTML form post.
  •    237 valideer - Lightweight extensible data validation and adaptation library.

Data Visualization

Libraries for visualizing data. Also see awesome-javascript.

  •  14010 Bokeh - Interactive Web Plotting for Python.
  •  12225 Matplotlib - A Python 2D plotting library.
  •   8413 diagrams - Diagram as Code.
  •   7677 Seaborn - Statistical data visualization using Matplotlib.
  •   5971 Altair - Declarative statistical visualization library for Python.
  •   2908 bqplot - Interactive Plotting Library for the Jupyter Notebook
  •   2489 PyGraphviz - Python interface to Graphviz.
  •   2444 VisPy - High-performance scientific visualization based on OpenGL.
  •   2366 plotnine - A grammar of graphics for Python based on ggplot2.
  •   2255 Pygal - A Python SVG Charts Creator.
  •   2147 PyQtGraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
  •    789 Cartopy - A cartographic python library with matplotlib support
  •    150 Dash - Built on top of Flask, React and Plotly aimed at analytical web applications.

Database

Databases implemented in Python.

  •   3712 tinydb - A tiny, document-oriented database.
  •    494 pickleDB - A simple and lightweight key-value store for Python.
  •    422 ZODB - A native object database for Python. A key-value and object graph database.

Database Drivers

Libraries for connecting and operating databases.

  • MySQL - awesome-mysql
    •   6142 PyMySQL - A pure Python MySQL driver compatible to mysql-python.
    •   1802 mysqlclient - MySQL connector with Python 3 support (mysql-python fork).
  • PostgreSQL - awesome-postgres
    •   1918 psycopg2 - The most popular PostgreSQL adapter for Python.
    •    226 queries - A wrapper of the psycopg2 library for interacting with PostgreSQL.
  • Other Relational Databases
    •    647 SuperSQLite - A supercharged SQLite library built on top of apsw.
    •    529 pymssql - A simple database interface to Microsoft SQL Server.
  • NoSQL Databases
    •   8829 redis-py - The Python client for Redis.
    •   4022 kafka-python - The Python client for Apache Kafka.
    •   3113 pymongo - The official Python client for MongoDB.
    •   1179 cassandra-driver - The Python Driver for Apache Cassandra.
    •    557 py2neo - A client library and toolkit for working with Neo4j.
    •    546 happybase - A developer-friendly library for Apache HBase.
  • Asynchronous Clients
    •   1537 motor - The async Python driver for MongoDB.

Date and Time

Libraries for working with dates and times.

  •   6281 Arrow - A Python library that offers a sensible and human-friendly approach to creating, manipulating, formatting and converting dates, times and timestamps.
  •   4103 Pendulum - Python datetimes made easy.
  •   3184 maya - Datetimes for Humans.
  •   1679 delorean - A library for clearing up the inconvenient truths that arise dealing with datetimes.
  •   1397 dateutil - Extensions to the standard Python datetime module.
  •    831 pytz - World timezone definitions, modern and historical. Brings the tz database into Python.
  •    651 moment - A Python library for dealing with dates/times. Inspired by Moment.js.
  •    309 Chronyk - A Python 3 library for parsing human-written times and dates.
  •    184 when.py - Providing user-friendly functions to help perform common date and time actions.
  •    137 PyTime - An easy-to-use Python module which aims to operate date/time/datetime by string.

Debugging Tools

Libraries for debugging code.

  • pdb-like Debugger
    •   1862 pudb - A full-screen, console-based Python debugger.
    •   1490 wdb - An improbable web debugger through WebSockets.
    •   1254 ipdb - IPython-enabled pdb.
    •    579 pdb++ - Another drop-in replacement for pdb.
  • Tracing
    •   1580 pyringe - Debugger capable of attaching to and injecting code into Python processes.
    •    664 lptrace - strace for Python programs.
    •    559 python-hunter - A flexible code tracing toolkit.
    •    293 manhole - Debugging UNIX socket connections and present the stacktraces for all threads and an interactive prompt.
  • Profiler
    •   5961 py-spy - A sampling profiler for Python programs. Written in Rust.
    •   3672 vprof - Visual Python profiler.
    •   3486 line_profiler - Line-by-line profiling.
    •   3004 profiling - An interactive Python profiler.
    •   2836 pyflame - A ptracing profiler For Python.
    •     57 memory_profiler - Monitor Memory usage of Python code.
  • Others
    •   6120 django-debug-toolbar - Display various debug information for Django.
    •   1551 icecream - Inspect variables, expressions, and program execution with a single, simple function call.
    •   1254 django-devserver - A drop-in replacement for Django's runserver.
    •   1069 pyelftools - Parsing and analyzing ELF files and DWARF debugging information.
    •    763 flask-debugtoolbar - A port of the django-debug-toolbar to flask.

Deep Learning

Frameworks for Neural Networks and Deep Learning. Also see awesome-deep-learning.

  • 148764 tensorflow - The most popular Deep Learning framework created by Google.
  •  49839 keras - A high-level neural networks library and capable of running on top of either TensorFlow or Theano.
  •  42667 pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration.
  •  30884 caffe - A fast open framework for deep learning..
  •  19002 mxnet - A deep learning framework designed for both efficiency and flexibility.
  •   9225 Theano - A library for fast numerical computation.
  •   5696 SerpentAI - Game agent framework. Use any video game as a deep learning sandbox.

DevOps Tools

Software and libraries for DevOps.

  • Configuration Management
    •  44877 ansible - A radically simple IT automation platform.
    •  11252 saltstack - Infrastructure automation and management system.
    •    965 pyinfra - A versatile CLI tools and python libraries to automate infrastructure.
    •    698 cloudinit - A multi-distribution package that handles early initialization of a cloud instance.
    •      0 OpenStack - Open source software for building private and public clouds.
  • SSH-style Deployment
    •  12480 fabric - A simple, Pythonic tool for remote execution and deployment.
    •   1241 cuisine - Chef-like functionality for Fabric.
    •   1235 fabtools - Tools for writing awesome Fabric files.
  • Process Management
    •   6376 supervisor - Supervisor process control system for UNIX.
    •   1371 honcho - A Python clone of Foreman, for managing Procfile-based applications.
  • Monitoring
    •   6620 psutil - A cross-platform process and system utilities module.
  • Backup
    •     51 BorgBackup - A deduplicating archiver with compression and encryption.
  • Others

Distributed Computing

Frameworks and libraries for Distributed Computing.

  • Batch Processing
    •  27567 PySpark - Apache Spark Python API.
    •  13756 luigi - A module that helps you build complex pipelines of batch jobs.
    •  13259 Ray - A system for parallel and distributed Python that unifies the machine learning ecosystem.
    •   7254 dask - A flexible parallel computing library for analytic computing.
    •   2509 mrjob - Run MapReduce jobs on Hadoop or Amazon Web Services.
  • Stream Processing

Distribution

Libraries to create packaged executables for release distribution.

  •   7199 PyInstaller - Converts Python programs into stand-alone executables (cross-platform).
  •   3352 Nuitka - Compile scripts, modules, packages to an executable or extension module.
  •   1389 dh-virtualenv - Build and distribute a virtualenv as a Debian package.
  •   1051 shiv - A command line utility for building fully self-contained zipapps (PEP 441), but with all their dependencies included.
  •    676 pyarmor - A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
  •    618 pynsist - A tool to build Windows installers, installers bundle Python itself.
  •      0 py2app - Freezes Python scripts (Mac OS X).
  •      0 py2exe - Freezes Python scripts (Windows).

Documentation

Libraries for generating project documentation.

  •   3514 sphinx - Python Documentation generator.
  •    721 pycco - The literate-programming-style documentation generator.
  •    672 pdoc - Epydoc replacement to auto generate API documentation for Python libraries.

Downloader

Libraries for downloading.

  •  35092 you-get - A YouTube/Youku/Niconico video downloader written in Python 3.
  •   3432 s3cmd - A command line tool for managing Amazon S3 and CloudFront.
  •   2256 akshare - A financial data interface library, built for human beings!
  •   1027 s4cmd - Super S3 command line tool, good for higher performance.
  •      0 youtube-dl - A small command-line program to download videos from YouTube.

E-commerce

Frameworks and libraries for e-commerce and payments.

  •   9124 saleor - An e-commerce storefront for Django.
  •   4569 django-oscar - An open-source e-commerce framework for Django.
  •   2308 django-shop - A Django based shop system.
  •   1381 shoop - An open source E-Commerce platform based on Django.
  •    954 merchant - A Django app to accept payments from various payment processors.
  •    618 Cartridge - A shopping cart app built using the Mezzanine.
  •    335 forex-python - Foreign exchange rates, Bitcoin price index and currency conversion.
  •    316 alipay - Unofficial Alipay API for Python.
  •    187 money - Money class with optional CLDR-backed locale-aware formatting and an extensible currency exchange.
  •     44 python-currencies - Display money format and its filthy currencies.

Editor Plugins and IDEs

  • Emacs
    •   1628 elpy - Emacs Python Development Environment.
  • Sublime Text
    •   2088 anaconda - Anaconda turns your Sublime Text 3 in a full featured Python development IDE.
    •    898 SublimeJEDI - A Sublime Text plugin to the awesome auto-complete library Jedi.
  • Vim
    •  21872 YouCompleteMe - Includes Jedi-based completion engine for Python.
    •   5100 python-mode - An all in one plugin for turning Vim into a Python IDE.
    •   4547 jedi-vim - Vim bindings for the Jedi auto-completion library for Python.
  • Visual Studio
    •   2292 PTVS - Python Tools for Visual Studio.
  • Visual Studio Code
    •   2715 Python - The official VSCode extension with rich support for Python.
  • IDE
    •   5689 spyder - Open Source Python IDE.
    •      0 PyCharm - Commercial Python IDE by JetBrains. Has free community edition available.

Email

Libraries for sending and parsing email.

  • Mail Servers
    •   1620 modoboa - A mail hosting and management platform including a modern Web UI.
    •    443 salmon - A Python Mail Server.
  • Clients
    •   1854 yagmail - Yet another Gmail/SMTP client.
    •    943 imbox - Python IMAP for Humans.
  • Others
    •   1416 flanker - An email address and Mime parsing library.
    •    208 mailer - High-performance extensible mail delivery framework.

Environment Management

Libraries for Python version and virtual environment management.

  •  20811 pyenv - Simple Python version management.
  •   3685 virtualenv - A tool to create isolated Python environments.

Files

Libraries for file manipulation and MIME type detection.

  •  33691 mimetypes - (Python standard library) Map filenames to MIME types.
  •  33691 pathlib - (Python standard library) An cross-platform, object-oriented path library.
  •   4306 watchdog - API and shell utilities to monitor file system events.
  •   1666 python-magic - A Python interface to the libmagic file type identification library.
  •   1135 PyFilesystem2 - Python's filesystem abstraction layer.
  •    918 path.py - A module wrapper for os.path.
  •    492 Unipath - An object-oriented approach to file/directory operations.

Foreign Function Interface

Libraries for providing foreign function interface.

  •  33691 ctypes - (Python standard library) Foreign Function Interface for Python calling C code.
  •   2489 cffi - Foreign Function Interface for Python calling C code.
  •      0 PyCUDA - A Python wrapper for Nvidia's CUDA API.
  •      0 SWIG - Simplified Wrapper and Interface Generator.

Forms

Libraries for working with forms.

  •   3983 django-crispy-forms - A Django app which lets you create beautiful forms in a very elegant and DRY way.
  •   2199 django-bootstrap3 - Bootstrap 3 integration with Django.
  •   1154 WTForms - A flexible forms validation and rendering library.
  •    801 django-bootstrap4 - Bootstrap 4 integration with Django.
  •    338 Deform - Python HTML form generation library influenced by the formish form generation library.
  •    199 django-remote-forms - A platform independent Django form serializer.

Functional Programming

Functional Programming with Python.

  •   3035 fn.py - Functional programming in Python: implementation of missing features to enjoy FP.
  •   3016 Coconut - A variant of Python built for simple, elegant, Pythonic functional programming.
  •   2917 Toolz - A collection of functional utilities for iterators, functions, and dictionaries.
  •   2363 funcy - A fancy and practical functional tools.
  •   1549 more-itertools - More routines for operating on iterables, beyond itertools.
  •   1350 returns - A set of type-safe monads, tranformers, and composition utilities.
  •    733 CyToolz - Cython implementation of Toolz: High performance functional utilities.

GUI Development

Libraries for working with graphical user interface applications.

  •  33691 curses - Built-in wrapper for ncurses used to create terminal GUI applications.
  •  10384 Gooey - Turn command line programs into a full GUI application with one line.
  •   4502 PySimpleGUI - Wrapper for tkinter, Qt, WxPython and Remi.
  •   3843 Eel - A library for making simple Electron-like offline HTML/JS GUI apps.
  •   2457 Toga - A Python native, OS native GUI toolkit.
  •   2410 Flexx - Flexx is a pure Python toolkit for creating GUI's, that uses web technology for its rendering.
  •   2118 DearPyGui - A Simple GPU accelerated Python GUI framework
  •   2008 urwid - A library for creating terminal GUI applications with strong support for widgets, events, rich colors, etc.
  •   1993 pywebview - A lightweight cross-platform native wrapper around a webview component.
  •   1417 wxPython - A blending of the wxWidgets C++ class library with the Python.
  •    956 enaml - Creating beautiful user-interfaces with Declarative Syntax like QML.
  •    562 pyglet - A cross-platform windowing and multimedia library for Python.
  •      0 kivy - A library for creating NUI applications, running on Windows, Linux, Mac OS X, Android and iOS.
  •      0 Tkinter - Tkinter is Python's de-facto standard GUI package.
  •      0 PyGObject - Python Bindings for GLib/GObject/GIO/GTK+ (GTK+3).
  •      0 PyQt - Python bindings for the Qt cross-platform application and UI framework.

GraphQL

Libraries for working with GraphQL.

  •   6040 graphene - GraphQL framework for Python.
  •    652 tartiflette - SDL-first GraphQL engine implementation for Python 3.6+ and asyncio.
  •     68 tartiflette-asgi - ASGI support for the Tartiflette GraphQL engine.
  •     48 tartiflette-aiohttp - An aiohttp-based wrapper for Tartiflette to expose GraphQL APIs over HTTP.

Game Development

Awesome game development libraries.

  •  14678 Cocos2d - cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications.
  •   2409 Panda3D - 3D game engine developed by Disney.
  •    822 Arcade - Arcade is a modern Python framework for crafting games with compelling graphics and sound.
  •    138 PySDL2 - A ctypes based wrapper for the SDL2 library.
  •      0 Harfang3D - Python framework for 3D, VR and game development.
  •      0 PyOgre - Python bindings for the Ogre 3D render engine, can be used for games, simulations, anything 3D.
  •      0 PyOpenGL - Python ctypes bindings for OpenGL and it's related APIs.
  •      0 RenPy - A Visual Novel engine.
  •      0 Pygame - Pygame is a set of Python modules designed for writing games.

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  •  52247 GeoDjango - A world-class geographic web framework.
  •   3009 geopy - Python Geocoding Toolbox.
  •    880 django-countries - A Django app that provides a country field for models and forms.
  •    566 geojson - Python bindings and utilities for GeoJSON.
  •    481 pygeoip - Pure Python GeoIP API.
  •    210 GeoIP - Python API for MaxMind GeoIP Legacy Database.

HTML Manipulation

Libraries for working with HTML and XML.

  •   4112 xmltodict - Working with XML feel like you are working with JSON.
  •   3827 WeasyPrint - A visual rendering engine for HTML and CSS that can export to PDF.
  •   2489 cssutils - A CSS library for Python.
  •   1981 bleach - A whitelist-based HTML sanitization and text linkification library.
  •   1892 pyquery - A jQuery-like library for parsing HTML.
  •    856 html5lib - A standards-compliant library for parsing and serializing HTML documents and fragments.
  •    474 untangle - Converts XML documents to Python objects for easy access.
  •    340 MarkupSafe - Implements a XML/HTML/XHTML Markup safe string for Python.
  •      0 BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.
  •      0 xmldataset - Simple XML Parsing.
  •      0 lxml - A very fast, easy-to-use and versatile library for handling HTML and XML.

HTTP Clients

Libraries for working with HTTP.

  •  43557 requests - HTTP Requests for Humans.
  •   5665 httpx - A next generation HTTP client for Python.
  •   3532 grequests - requests + gevent for asynchronous HTTP requests.
  •   2433 urllib3 - A HTTP library with thread-safe connection pooling, file post support, sanity friendly.
  •    505 treq - Python requests like API built on top of Twisted's HTTP client.
  •    378 httplib2 - Comprehensive HTTP client library.

Hardware

Libraries for programming with hardware.

  •   5619 scapy - A brilliant packet manipulation library.
  •   2073 keyboard - Hook and simulate global keyboard events on Windows and Linux.
  •   1082 ino - Command line toolkit for working with Arduino.
  •    932 PyUserInput - A module for cross-platform control of the mouse and keyboard.
  •    355 mouse - Hook and simulate global mouse events on Windows and Linux.
  •    270 wifi - A Python library and command line tool for working with WiFi on Linux.
  •      0 Pingo - Pingo provides a uniform API to program devices like the Raspberry Pi, pcDuino, Intel Galileo, etc.

Image Processing

Libraries for manipulating images.

  •   7959 thumbor - A smart imaging service. It enables on-demand crop, re-sizing and flipping of images.
  •   7748 pillow - Pillow is the friendly PIL fork.
  •   4499 pywal - A tool that generates color schemes from images.
  •   3962 scikit-image - A Python library for (scientific) image processing.
  •   2229 python-qrcode - A pure Python QR Code generator.
  •   1016 wand - Python bindings for MagickWand, C API for ImageMagick.
  •    948 Quads - Computer art based on quadtrees.
  •    756 nude.py - Nudity detection.
  •    648 PyMatting - A library for alpha matting.
  •    260 pyvips - A fast image processing library with low memory needs.
  •    203 python-barcode - Create barcodes in Python with no extra dependencies.
  •    197 pagan - Retro identicon (Avatar) generation based on input string and hash.
  •    179 hmap - Image histogram remapping.
  •     94 pygram - Instagram-like image filters.
  •      0 imgSeek - A project for searching a collection of images using visual similarity.

Implementations

Implementations of Python.

  •  33691 CPython - Default, most widely used implementation of the Python programming language written in C.
  •  11174 MicroPython - A lean and efficient Python programming language implementation.
  •  10160 Grumpy - More compiler than interpreter as more powerful CPython2.7 replacement (alpha).
  •   5653 Numba - Python JIT compiler to LLVM aimed at scientific Python.
  •   4543 Pyston - A Python implementation using JIT techniques.
  •   1443 PeachPy - x86-64 assembler embedded in Python.
  •   1352 Pyjion - A JIT for Python based upon CoreCLR.
  •   1202 IronPython - Implementation of the Python programming language written in C#.
  •    641 Stackless Python - An enhanced version of the Python programming language.
  •    302 CLPython - Implementation of the Python programming language written in Common Lisp.
  •      0 Jython - Implementation of Python programming language written in Java for the JVM.
  •      0 PyPy - A very fast and compliant implementation of the Python language.
  •      0 Cython - Optimizing Static Compiler for Python.

Interactive Interpreter

Interactive Python interpreters (REPL).

Internationalization

Libraries for working with i18n.

  •    919 Babel - An internationalization library for Python.
  •    118 PyICU - A wrapper of International Components for Unicode C++ library (ICU).

Job Scheduler

Libraries for scheduling jobs.

  •   7740 schedule - Python job scheduling for humans.
  •   5046 Prefect - A modern workflow orchestration framework that makes it easy to build, schedule and monitor robust data pipelines.
  •   2921 APScheduler - A light but powerful in-process task scheduler that lets you schedule functions.
  •   2173 Joblib - A set of tools to provide lightweight pipelining in Python.
  •   1115 Plan - Writing crontab file in Python like a charm.
  •    907 Spiff - A powerful workflow engine implemented in pure Python.
  •    896 doit - A task runner and build tool.
  •    781 django-schedule - A calendaring app for Django.
  •    719 gunnery - Multipurpose task execution tool for distributed systems with web-based interface.
  •     23 Airflow - Airflow is a platform to programmatically author, schedule and monitor workflows.
  •      0 TaskFlow - A Python library that helps to make task execution easy, consistent and reliable.

Logging

Libraries for generating and working with logs.

  •  33691 logging - (Python standard library) Logging facility for Python.
  •   6998 loguru - Library which aims to bring enjoyable logging in Python.
  •   1386 logbook - Logging replacement for Python.
  •   1340 structlog - Structured logging made easy.
  •    747 sentry-python - Sentry SDK for Python.

Machine Learning

Libraries for Machine Learning. Also see awesome-machine-learning.

  •  19844 xgboost - A scalable, portable, and distributed gradient boosting library.
  •   6127 NuPIC - Numenta Platform for Intelligent Computing.
  •   4993 H2O - Open Source Fast Scalable Machine Learning Platform.
  •   2853 MindsDB - MindsDB is an open source AI layer for existing databases that allows you to effortlessly develop, train and deploy state-of-the-art machine learning models using standard queries.
  •   1362 Metrics - Machine learning evaluation metrics.
  •    634 Spark ML - Apache Spark's scalable Machine Learning library.
  •    157 vowpal_porpoise - A lightweight Python wrapper for Vowpal Wabbit.
  •      0 scikit-learn - The most popular Python library for Machine Learning.

Microsoft Windows

Python programming on Microsoft Windows.

  •   2544 PyWin32 - Python Extensions for Windows.
  •   2275 PythonNet - Python Integration with the .NET Common Language Runtime (CLR).
  •     53 pythonlibs - Unofficial Windows binaries for Python extension packages.
  •      0 Python(x,y) - Scientific-applications-oriented Python Distribution based on Qt and Spyder.
  •      0 WinPython - Portable development environment for Windows 7/8.

Miscellaneous

Useful libraries or tools that don't fit in the categories above.

  •  15671 magenta - A tool to generate music and art using artificial intelligence.
  •   5245 boltons - A set of pure-Python utilities.
  •   2056 itsdangerous - Various helpers to pass trusted data to untrusted environments.
  •   1115 blinker - A fast Python in-process signal/event dispatching system.
  •    906 pluginbase - A simple but flexible plugin system for Python.
  •      0 tryton - A general purpose business framework.

Natural Language Processing

Libraries for working with human languages.

  • General
    •  17262 spacy - A library for industrial-strength natural language processing in Python and Cython.
    •  11197 gensim - Topic Modeling for Humans.
    •   9263 nltk - A leading platform for building Python programs to work with human language data.
    •   7604 pattern - A web mining module.
    •   5996 pytext - A natural language modeling framework based on PyTorch.
    •   4688 Stanza - The Stanford NLP Group's official Python library, supporting 60+ languages.
    •   1791 PyTorch-NLP - A toolkit enabling rapid deep learning NLP prototyping for research.
    •   1676 polyglot - Natural language pipeline supporting hundreds of languages.
    •   1652 langid.py - Stand-alone language identification system.
  • Chinese
    •  24758 funNLP - A collection of tools and datasets for Chinese NLP.
    •  24203 jieba - The most popular Chinese text segmentation library.
    •   5056 pkuseg-python - A toolkit for Chinese word segmentation in various domains.
    •   4956 snownlp - A library for processing Chinese text.

Network Virtualization

Tools and libraries for Virtual Networking and SDN (Software Defined Networking).

  •   3554 mininet - A popular network emulator and API written in Python.
  •   1546 napalm - Cross-vendor API to manipulate network devices.
  •    503 pox - A Python-based SDN control applications, such as OpenFlow SDN controllers.

News Feed

Libraries for building user's activities.

  •   4382 Stream Framework - Building news feed and notification systems using Cassandra and Redis.
  •   1804 django-activity-stream - Generating generic activity streams from the actions on your site.

ORM

Libraries that implement Object-Relational Mapping or data mapping techniques.

  • Relational Databases
    •  52247 Django Models - The Django ORM.
    •   7825 peewee - A small, expressive ORM.
    •   3893 dataset - Store Python dicts in a database - works with SQLite, MySQL, and PostgreSQL.
    •   2772 SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper.
    •   2309 pony - ORM that provides a generator-oriented interface to SQL.
    •   1125 orator - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.
    •   1058 orm - An async ORM.
    •    327 pydal - A pure Python Database Abstraction Layer.
  • NoSQL Databases
    •   3265 mongoengine - A Python Object-Document-Mapper for working with MongoDB.
    •   1341 PynamoDB - A Pythonic interface for Amazon DynamoDB.
    •    433 redisco - A Python Library for Simple Models and Containers Persisted in Redis.
    •    266 hot-redis - Rich Python data types for Redis.

Package Management

Libraries for package and dependency management.

  •  12293 poetry - Python dependency management and packaging made easy.
  •   6556 pip - The package installer for Python.
    •   4501 pip-tools - A set of tools to keep your pinned Python dependencies fresh.
  •   3818 conda - Cross-platform, Python-agnostic binary package manager.

Package Repositories

Local PyPI repository server and proxies.

  •   2489 warehouse - Next generation Python Package Repository (PyPI).
  •    412 devpi - PyPI server and packaging/testing/release tool.
  •    370 localshop - Local PyPI server (custom packages and auto-mirroring of pypi).
  •    195 bandersnatch - PyPI mirroring tool provided by Python Packaging Authority (PyPA).

Penetration Testing

Frameworks and tools for penetration testing.

  •  18235 sqlmap - Automatic SQL injection and database takeover tool.
  •   6038 fsociety - A Penetration testing framework.
  •   5742 setoolkit - A toolkit for social engineering.

Permissions

Libraries that allow or deny users access to data or functionality.

  •   2750 django-guardian - Implementation of per object permissions for Django 1.2+
  •   1138 django-rules - A tiny but powerful app providing object-level permissions to Django, without requiring a database.

Processes

Libraries for starting and communicating with OS processes.

  •   5437 sh - A full-fledged subprocess replacement for Python.
  •   3467 sarge - Yet another wrapper for subprocess.
  •   1510 delegator.py - Subprocesses for Humans 2.0.

Recommender Systems

Libraries for building recommender systems.

  •   7595 annoy - Approximate Nearest Neighbors in C++/Python optimized for memory usage.
  •   4375 Surprise - A scikit for building and analyzing recommender systems.
  •   3302 lightfm - A Python implementation of a number of popular recommendation algorithms.
  •   2281 spotlight - Deep recommender models using PyTorch.
  •   2083 implicit - A fast Python implementation of collaborative filtering for implicit datasets.
  •   1450 libffm - A library for Field-aware Factorization Machine (FFM).
  •   1088 tensorrec - A Recommendation Engine Framework in TensorFlow.
  •    869 fastFM - A library for Factorization Machines.

Refactoring

Refactoring tools and libraries for Python

  •   1193 Bowler - Safe code refactoring for modern Python.
  •    988 Rope - Rope is a python refactoring library.
  •      0 Bicycle Repair Man - Bicycle Repair Man, a refactoring tool for Python.

RESTful API

Libraries for building RESTful APIs.

  • Django
  • Flask
    •   6190 eve - REST API framework powered by Flask, MongoDB and good intentions.
    •   5740 flask-restful - Quickly building REST APIs for Flask.
    •   1183 flask-api - Browsable Web APIs for Flask.
  • Pyramid
    •    359 cornice - A RESTful framework for Pyramid.
  • Framework agnostic
    •  21334 fastapi - A modern, fast, web framework for building APIs with Python 3.6+ based on standard Python type hints.
    •  14127 sanic - A Python 3.6+ web server and web framework that's written to go fast.
    •   8004 falcon - A high-performance framework for building cloud APIs and web app backends.
    •   6321 hug - A Python 3 framework for cleanly exposing APIs.
    •   5619 vibora - Fast, efficient and asynchronous Web framework inspired by Flask.
    •   5485 apistar - A smart Web API framework, designed for Python 3.
    •   1574 sandman2 - Automated REST APIs for existing database-driven systems.

Robotics

Libraries for robotics.

  •  10210 PythonRobotics - This is a compilation of various robotics algorithms with visualizations.
  •    486 rospy - This is a library for ROS (Robot Operating System).

RPC Servers

RPC-compatible servers.

  •   2682 zeroRPC - zerorpc is a flexible RPC implementation based on ZeroMQ and MessagePack.
  •    922 RPyC (Remote Python Call) - A transparent and symmetric RPC library for Python

Science

Libraries for scientific computing. Also see Python-for-Scientists.

  •  14976 NumPy - A fundamental package for scientific computing with Python.
  •  11981 Zipline - A Pythonic algorithmic trading library.
  •   7936 NetworkX - A high-productivity software for complex networks.
  •   7377 SymPy - A Python library for symbolic mathematics.
  •   5556 statsmodels - Statistical modeling and econometrics in Python.
  •   5282 PyMC - Markov Chain Monte Carlo sampling toolkit.
  •   2516 astropy - A community Python library for Astronomy.
  •    999 Colour - Implementing a comprehensive number of colour theory transformations and algorithms.
  •    965 Karate Club - Unsupervised machine learning toolbox for graph structured data.
  •    772 bcbio-nextgen - Providing best-practice pipelines for fully automated high throughput sequencing analysis.
  •    693 ObsPy - A Python toolbox for seismology.
  •    473 bccb - Collection of useful code related to biological analysis.
  •    215 PyDy - Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion.
  •    168 cclib - A library for parsing and interpreting the results of computational chemistry packages.
  •      1 SciPy - A Python-based ecosystem of open-source software for mathematics, science, and engineering.
  •      0 Open Babel - A chemical toolbox designed to speak the many languages of chemical data.
  •      0 Biopython - Biopython is a set of freely available tools for biological computation.
  •      0 RDKit - Cheminformatics and Machine Learning Software.
  •      0 SimPy - A process-based discrete-event simulation framework.
  •      0 NIPY - A collection of neuroimaging toolkits.
  •      0 QuTiP - Quantum Toolbox in Python.

Search

Libraries and software for indexing and performing search queries on data.

Serialization

Libraries for serializing complex data types

  •   5003 marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.
  •   2967 ultrajson - A fast JSON decoder and encoder written in C with Python bindings.
  •    397 python-rapidjson - A Python wrapper around RapidJSON.
  •    374 pysimdjson - A Python bindings for simdjson.

Serverless Frameworks

Frameworks for developing serverless Python code.

  •  11065 Zappa - A tool for deploying WSGI applications on AWS Lambda and API Gateway.
  •   1175 python-lambda - A toolkit for developing and deploying Python code in AWS Lambda.

Specific Formats Processing

Libraries for parsing and manipulating specific text formats.

  • General
    •   3770 tablib - A module for Tabular Datasets in XLS, CSV, JSON, YAML.
  • Office
    •   3467 openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
    •   2351 XlsxWriter - A Python module for creating Excel .xlsx files.
    •   2342 python-docx - Reads, queries and modifies Microsoft Word 2007/2008 docx files.
    •   1960 unoconv - Convert between any document format supported by LibreOffice/OpenOffice.
    •   1795 xlwings - A BSD-licensed library that makes it easy to call Python from Excel and vice versa.
    •   1139 python-pptx - Python library for creating and updating PowerPoint (.pptx) files.
    •    960 xlwt / xlrd - Writing and reading data and formatting information from Excel files.
    •    840 pyexcel - Providing one API for reading, manipulating and writing csv, ods, xls, xlsx and xlsm files.
    •    827 docxtpl - Editing a docx document by jinja2 template
  • PDF
    •   4356 PDFMiner - A tool for extracting information from PDF documents.
    •   3314 PyPDF2 - A library capable of splitting, merging and transforming PDF pages.
    •      0 ReportLab - Allowing Rapid creation of rich PDF documents.
  • Markdown
    •   2275 Python-Markdown - A Python implementation of John Gruber’s Markdown.
    •   1842 Mistune - Fastest and full featured pure Python parsers of Markdown.
  • YAML
    •   1213 PyYAML - YAML implementations for Python.
  • CSV
    •   4358 csvkit - Utilities for converting to and working with CSV.
  • Archive
    •    365 unp - A command line tool that can unpack archives easily.

Static Site Generator

Static site generator is a software that takes some text + templates as input and produces HTML files on the output.

  •  10792 mkdocs - Markdown friendly documentation generator.
  •   9897 pelican - Static site generator that supports Markdown and reST syntax.
  •   3335 lektor - An easy to use static CMS and blog engine.
  •   1958 nikola - A static website and blog generator.
  •   1442 makesite - Simple, lightweight, and magic-free static site/blog generator (< 130 lines).

Tagging

Libraries for tagging items.

Task Queues

Libraries for working with task queues.

  •   7277 rq - Simple job queues for Python.
  •   3173 huey - Little multi-threaded task queue.
  •   2204 daramatiq - A fast and reliable background task processing library for Python 3.
  •    819 mrq - A distributed worker task queue in Python using Redis & gevent.
  •      0 celery - An asynchronous task queue/job queue based on distributed message passing.

Template Engine

Libraries and tools for templating and lexing.

  •   7275 Jinja2 - A modern and designer friendly templating language.
  •     90 Mako - Hyperfast and lightweight templating for the Python platform.
  •      0 Genshi - Python templating toolkit for generation of web-aware output.

Testing

Libraries for testing codebases and generating test data.

  • Testing Frameworks
    •  33691 unittest - (Python standard library) Unit testing framework.
    •   6529 pytest - A mature full-featured Python testing tool.
    •   5053 Robot Framework - A generic test automation framework.
    •   4648 hypothesis - Hypothesis is an advanced Quickcheck style property based testing library.
    •    654 nose2 - The successor to nose, based on `unittest2.
  • Test Runners
    •   1863 tox - Auto builds and tests distributions in multiple Python versions
    •    664 green - A clean, colorful test runner.
    •      0 mamba - The definitive testing tool for Python. Born under the banner of BDD.
  • GUI / Web Testing
    •  18711 Selenium - Python bindings for Selenium WebDriver.
    •  13864 locust - Scalable user load testing tool written in Python.
    •   4295 PyAutoGUI - PyAutoGUI is a cross-platform GUI automation Python module for human beings.
    •   2290 splinter - Open source tool for testing web applications.
    •   1649 sixpack - A language-agnostic A/B Testing framework.
    •    582 Schemathesis - A tool for automatic property-based testing of web applications built with Open API / Swagger specifications.
  • Mock
    •  33691 mock - (Python standard library) A mocking and patching library.
    •   2932 responses - A utility library for mocking out the requests Python library.
    •   2559 freezegun - Travel through time by mocking the datetime module.
    •   1810 httpretty - HTTP request mock tool for Python.
    •   1774 VCR.py - Record and replay HTTP interactions on your tests.
    •    410 httmock - A mocking library for requests for Python 2.6+ and 3.2+.
    •    197 mocket - A socket mock framework with gevent/asyncio/SSL support.
    •      3 doublex - Powerful test doubles framework for Python.
  • Object Factories
    •   2278 factory_boy - A test fixtures replacement for Python.
    •    937 model_mommy - Creating random fixtures for testing in Django.
    •    705 mixer - Another fixtures replacement. Supported Django, Flask, SQLAlchemy, Peewee and etc.
  • Code Coverage
    •   1312 coverage - Code coverage measurement.
  • Fake Data
    •  10562 faker - A Python package that generates fake data.
    •   3008 mimesis - is a Python library that help you generate fake data.
    •   2028 fake2db - Fake database generator.
    •      6 radar - Generate random datetime / time.

Text Processing

Libraries for parsing and manipulating plain texts.

  • General
    •  33691 difflib - (Python standard library) Helpers for computing deltas.
    •   7327 fuzzywuzzy - Fuzzy String Matching.
    •   2859 pypinyin - Convert Chinese hanzi (漢字) to pinyin (拼音).
    •   2763 ftfy - Makes Unicode text less broken and more consistent automagically.
    •   1782 textdistance - Compute distance between sequences with 30+ algorithms.
    •   1364 chardet - Python 2/3 compatible character encoding detector.
    •    865 Levenshtein - Fast computation of Levenshtein distance and string similarity.
    •    698 pyfiglet - An implementation of figlet written in Python.
    •    149 pangu.py - Paranoid text spacing.
    •     51 unidecode - ASCII transliterations of Unicode text.
  • Slugify
    •    911 python-slugify - A Python slugify library that translates unicode to ASCII.
    •    450 awesome-slugify - A Python slugify library that can preserve unicode.
    •    293 unicode-slugify - A slugifier that generates unicode slugs with Django as a dependency.
  • Unique identifiers
    •   1328 shortuuid - A generator library for concise, unambiguous and URL-safe UUIDs.
    •   1124 hashids - Implementation of hashids in Python.
  • Parser
    •   2538 python-phonenumbers - Parsing, formatting, storing and validating international phone numbers.
    •   2167 sqlparse - A non-validating SQL parser.
    •   1749 ply - Implementation of lex and yacc parsing tools for Python.
    •   1058 python-user-agents - Browser user agent parser.
    •    871 pyparsing - A general purpose framework for generating parsers.
    •    428 python-nameparser - Parsing human names into their individual components.
    •    389 pygments - A generic syntax highlighter.

Third-party APIs

Libraries for accessing third party services APIs. Also see List of Python API Wrappers and Libraries.

URL Manipulation

Libraries for parsing URLs.

  •   1869 furl - A small Python library that makes parsing and manipulating URLs easy.
  •   1064 webargs - A friendly library for parsing HTTP request arguments with built-in support for popular web frameworks.
  •    267 pyshorteners - A pure Python URL shortening lib.
  •    246 purl - A simple, immutable URL class with a clean API for interrogation and manipulation.

Video

Libraries for manipulating video and GIFs.

  •   1386 vidgear - Most Powerful multi-threaded Video Processing framework.
  •    102 scikit-video - Video processing routines for SciPy.
  •      0 moviepy - A module for script-based movie editing with many formats, including animated GIFs.

Web Asset Management

Tools for managing, compressing and minifying website assets.

  •   3467 fanstatic - Packages, optimizes, and serves static file dependencies as Python packages.
  •   2364 django-compressor - Compresses linked and inline JavaScript or CSS into a single cached file.
  •   1688 django-storages - A collection of custom storage back ends for Django.
  •   1372 django-pipeline - An asset packaging library for Django.
  •    885 webassets - Bundles, optimizes, and manages unique cache-busting URLs for static resources.
  •    401 flask-assets - Helps you integrate webassets into your Flask app.
  •    330 fileconveyor - A daemon to detect and sync files to CDNs, S3 and FTP.

Web Content Extracting

Libraries for extracting web contents.

  •  11187 requests-html - Pythonic HTML Parsing for Humans.
  •  10193 newspaper - News extraction, article extraction and content curation in Python.
  •   3050 toapi - Every web site provides APIs.
  •   2873 textract - Extract text from any document, Word, PowerPoint, PDFs, etc.
  •   2370 sumy - A module for automatic summarization of text documents and HTML pages.
  •   1873 python-readability - Fast Python port of arc90's readability tool.
  •    994 html2text - Convert HTML to Markdown-formatted text.
  •    506 lassie - Web Content Retrieval for Humans.
  •    500 micawber - A small library for extracting rich content from URLs.

Web Crawling

Libraries to automate web scraping.

  •  38352 scrapy - A fast high-level screen scraping and web crawling framework.
  •  14593 pyspider - A powerful spider system.
  •   7905 portia - Visual scraping for Scrapy.
  •   3569 MechanicalSoup - A Python library for automating interaction with websites.
  •   3483 robobrowser - A simple, Pythonic library for browsing the web without a standalone web browser.
  •   1972 grab - Site scraping framework.
  •   1375 cola - A distributed crawling framework.
  •      0 feedparser - Universal feed parser.

Web Frameworks

Traditional full stack web frameworks. Also see RESTful API.

  • Synchronous
  • Asynchronous
    •  19439 Tornado - A web framework and asynchronous networking library.

WebSocket

Libraries for working with WebSocket.

  •   4562 channels - Developer-friendly asynchrony for Django.
  •   2946 websockets - A library for building WebSocket servers and clients with a focus on correctness and simplicity.
  •   2212 autobahn-python - WebSocket & WAMP for Python on Twisted and asyncio.

WSGI Servers

WSGI-compatible web servers.

  •   7166 gunicorn - Pre-forked, partly written in C.
  •   5448 werkzeug - A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects.
  •   2420 bjoern - Asynchronous, very fast and written in C.
  •    833 waitress - Multi-threaded, powers Pyramid.
  •    604 uWSGI - A project aims at developing a full stack for building hosting services, written in C.

Resources

Where to discover learning resources or new Python libraries.

Books

Websites

Newsletters

Podcasts

Contributing

Your contributions are always welcome! Please take a look at the contribution guidelines first.

I will keep some pull requests open if I'm not sure whether those libraries are awesome, you could vote for them by adding 👍 to them. Pull requests will be merged when their votes reach 20.


If you have any question about this opinionated list, do not hesitate to contact me @VintaChen on Twitter or open an issue on GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment