Awesome Python
An opinionated list of awesome Python frameworks, libraries, software and resources.
Inspired by awesome-php.
- Awesome Python
- Admin Panels
- Algorithms and Design Patterns
- ASGI Servers
- Asynchronous Programming
- Audio
- Authentication
- Build Tools
- Built-in Classes Enhancement
- Caching
- ChatOps Tools
- CMS
- Code Analysis
- Command-line Interface Development
- Command-line Tools
- Computer Vision
- Configuration Files
- Cryptography
- Data Analysis
- Data Validation
- Data Visualization
- Database Drivers
- Database
- Date and Time
- Debugging Tools
- Deep Learning
- DevOps Tools
- Distributed Computing
- Distribution
- Documentation
- Downloader
- Editor Plugins and IDEs
- Environment Management
- File Manipulation
- Functional Programming
- Game Development
- Geolocation
- GUI Development
- Hardware
- HTML Manipulation
- HTTP Clients
- Image Processing
- Implementations
- Interactive Interpreter
- Internationalization
- Job Scheduler
- Logging
- Machine Learning
- Miscellaneous
- Natural Language Processing
- Network Virtualization
- News Feed
- ORM
- Package Management
- Package Repositories
- Penetration testing
- Permissions
- Processes
- Recommender Systems
- Refactoring
- RESTful API
- Robotics
- RPC Servers
- Science
- Search
- Serialization
- Serverless Frameworks
- Shell
- Specific Formats Processing
- Static Site Generator
- Tagging
- Task Queues
- Template Engine
- Testing
- Text Processing
- Third-party APIs
- URL Manipulation
- Video
- Web Asset Management
- Web Content Extracting
- Web Crawling
- Web Frameworks
- WebSocket
- WSGI Servers
- Resources
- Contributing
Admin Panels
Libraries for administrative interfaces.
- ajenti - The admin panel your servers deserve.
- django-grappelli - A jazzy skin for the Django Admin-Interface.
- flask-admin - Simple and extensible administrative interface framework for Flask.
- flower - Real-time monitor and web admin for Celery.
- jet-bridge - Admin panel framework for any application with nice UI (ex Jet Django).
- wooey - A Django app which creates automatic web UIs for Python scripts.
- streamlit - A framework which lets you build dashboards, generate reports, or create chat apps in minutes.
Algorithms and Design Patterns
Python implementation of data structures, algorithms and design patterns. Also see awesome-algorithms.
- Algorithms
- algorithms - Minimal examples of data structures and algorithms.
- python-ds - A collection of data structure and algorithms for coding interviews.
- sortedcontainers - Fast and pure-Python implementation of sorted collections.
- thealgorithms - All Algorithms implemented in Python.
- Design Patterns
- pypattyrn - A simple yet effective library for implementing common design patterns.
- python-patterns - A collection of design patterns in Python.
- transitions - A lightweight, object-oriented finite state machine implementation.
ASGI Servers
ASGI-compatible web servers.
- daphne - A HTTP, HTTP2 and WebSocket protocol server for ASGI and ASGI-HTTP.
- uvicorn - A lightning-fast ASGI server implementation, using uvloop and httptools.
- hypercorn - An ASGI and WSGI Server based on Hyper libraries and inspired by Gunicorn.
Asynchronous Programming
Libraries for asynchronous, concurrent and parallel execution. Also see awesome-asyncio.
- asyncio - (Python standard library) Asynchronous I/O, event loop, coroutines and tasks.
- concurrent.futures - (Python standard library) A high-level interface for asynchronously executing callables.
- multiprocessing - (Python standard library) Process-based parallelism.
- trio - A friendly library for async concurrency and I/O.
- twisted - An event-driven networking engine.
- uvloop - Ultra fast asyncio event loop.
- eventlet - Asynchronous framework with WSGI support.
- gevent - A coroutine-based Python networking library that uses greenlet.
Audio
Libraries for manipulating audio and its metadata.
- Audio
- audioread - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
- audioFlux - A library for audio and music analysis, feature extraction.
- dejavu - Audio fingerprinting and recognition.
- kapre - Keras Audio Preprocessors.
- librosa - Python library for audio and music analysis.
- matchering - A library for automated reference audio mastering.
- mingus - An advanced music theory and notation package with MIDI file and playback support.
- pyaudioanalysis - Audio feature extraction, classification, segmentation and applications.
- pydub - Manipulate audio with a simple and easy high level interface.
- timeside - Open web audio processing framework.
- Metadata
- beets - A music library manager and MusicBrainz tagger.
- eyed3 - A tool for working with audio files, specifically MP3 files containing ID3 metadata.
- mutagen - A Python module to handle audio metadata.
- tinytag - A library for reading music meta data of MP3, OGG, FLAC and Wave files.
Authentication
Libraries for implementing authentications schemes.
- OAuth
- authlib - JavaScript Object Signing and Encryption draft implementation.
- django-allauth - Authentication app for Django that "just works."
- django-oauth-toolkit - OAuth 2 goodies for Django.
- oauthlib - A generic and thorough implementation of the OAuth request-signing logic.
- JWT
- pyjwt - JSON Web Token implementation in Python.
- python-jose - A JOSE implementation in Python.
Build Tools
Compile software from source code.
- bitbake - A make-like build tool for embedded Linux.
- buildout - A build system for creating, assembling and deploying applications from multiple parts.
- platformio - A console tool to build code with different development platforms.
- pybuilder - A continuous build tool written in pure Python.
- scons - A software construction tool.
Built-in Classes Enhancement
Libraries for enhancing Python built-in classes.
- attrs - Replacement for
__init__
,__eq__
,__repr__
, etc. boilerplate in class definitions. - bidict - Efficient, Pythonic bidirectional map data structures and related functionality..
- box - Python dictionaries with advanced dot notation access.
- dataclasses - (Python standard library) Data classes.
- dotteddict - A library that provides a method of accessing lists and dicts with a dotted path notation.
CMS
Content Management Systems.
- feincms - One of the most advanced Content Management Systems built on Django.
- indico - A feature-rich event management system, made @ CERN.
- wagtail - A Django content management system.
Caching
Libraries for caching data.
- beaker - A WSGI middleware for sessions and caching.
- django-cache-machine - Automatic caching and invalidation for Django models.
- django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
- dogpile.cache - dogpile.cache is a next generation replacement for Beaker made by the same authors.
- hermescache - Python caching library with tag-based invalidation and dogpile effect prevention.
- pylibmc - A Python wrapper around the libmemcached interface.
- python-diskcache - SQLite and file backed cache backend with faster lookups than memcached and redis.
ChatOps Tools
Libraries for chatbot development.
- 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
- code2flow - Turn your Python and JavaScript code into DOT flowcharts.
- prospector - A tool to analyse Python code.
- vulture - A tool for finding and analysing dead Python code.
- Code Linters
- Code Formatters
- Static Type Checkers, also see awesome-python-typing
- mypy - Check variable types during compile time.
- pyre-check - Performant type checking.
- typeshed - Collection of library stubs for Python, with static types.
- Static Type Annotations Generators
- monkeytype - A system for Python that generates static type annotations by collecting runtime types.
- pytype - Pytype checks and infers types for Python code - without requiring type annotations.
Command-line Interface Development
Libraries for building command-line applications.
- Command-line Application Development
- cement - CLI Application Framework for Python.
- click - A package for creating beautiful command line interfaces in a composable way.
- cliff - A framework for creating command-line programs with multi-level commands.
- python-fire - A library for creating command line interfaces from absolutely any Python object.
- python-prompt-toolkit - A library for building powerful interactive command lines.
- Terminal Rendering
- alive-progress - A new kind of Progress Bar, with real-time throughput, eta and very cool animations.
- asciimatics - A package to create full-screen text UIs (from interactive forms to ASCII animations).