Awl-python is a list of Python resources initiated and maintained by Vinta, including: Web frameworks, Web crawlers, Web content extraction, template engines, databases, data visualization, image processing, text processing, natural language processing, machine learning, logging, code analysis, and more.
Github Address:
Github.com/jobbole/awe…
Github address:
Github.com/vinta/aweso…
The resource list
Environmental management
Tools for managing Python versions and environments
-
P: Very simple interactive Python version management tool.
-
Pyenv: A simple Python version management tool.
-
Vex: Commands can be executed in a virtual environment.
-
Virtualenv: a tool for creating standalone Python environments.
-
Virtualenvwrapper: A set of extensions to virtualenv.
-
Buildout: Uses declarative configuration management after the isolation environment is initialized.
Package management
Tools to manage packages and dependencies.
-
PIP: Python package and dependency management tool.
-
Pip-tools: A set of tools that keep Python package dependencies up-to-date.
-
PyPI: Python’s official third-party package software repository.
-
Pipenv: A new generation of package management tools recommended by Python.
-
Poetry: a package management tool that completely replaces setup.py.
-
Conda: a cross-platform Python binary package management tool.
-
Curdling: command line tool for managing Python packages.
-
Wheel: A new standard distributed by Python, intended to replace EGGS.
Package warehouse
Local PyPI warehouse services and agents.
-
Warehouse: Next-generation PyPI.
-
Bandersnatch: PyPI mirroring tool provided by PyPA.
-
Devpi: PyPI service and packaging/testing/distribution tool.
-
Localshop: local PyPI service (customized package and automatic PyPI mirroring).
distribution
Package as an executable for distribution.
-
PyInstaller: Converts Python programs into standalone executable files (cross-platform).
-
Cx_Freeze: Converts a Python program into an executable with a dynamically linked library.
-
Dh-virtualenv: Build and distribute the Virtualenv virtual environment as a Debian package.
-
Nuitka: Compile scripts, modules, packages into executable files or extension modules.
-
Py2app: Make Python scripts standalone packages (Mac OS X).
-
Py2exe: Makes Python scripts into standalone packages (Windows).
-
Pynsist: a tool for creating Windows installers that package Python itself in the installer.
-
Pyarmor: a tool for encrypting Python scripts, binding encrypted scripts to firmware, or setting the expiration date of encrypted scripts.
-
Shiv: A command-line tool that can be used to build a completely independent ZIP application (as described in PEP 441) with all dependencies.
Build tools
Compile source code into software.
-
Buildout: A build system for creating, assembling, and deploying applications from multiple components.
-
BitBake: A make-like build tool for embedded Linux.
-
Fabricate: A build tool that automatically finds dependencies for any language.
-
PlatformIO: Multi-platform command-line build tool.
-
PyBuilder: A persistent build tool for pure Python implementations.
-
SCons: Software building tools.
Interactive parser
Interactive Python parser.
-
IPython: A feature-rich tool that uses interactive Python very effectively.
-
Bpython: A Python parser with rich interfaces.
-
Ptpython: Advanced interactive Python parser, built on python-prompt-Toolkit.
-
Jupyter Notebook (IPython) : A rich toolkit that lets you use Python interactively to the maximum.
-
- awesome-jupyter
file
File management and MIME type detection.
-
Aiofiles: Provides asynchronous file operations based on asyncio.
-
Imghdr :(Python standard library) detects image types.
-
Mimetypes :(the Python standard library) maps file names to MIME types.
-
Path. py: module that encapsulates os.path.
-
Pathlib :(Python3.4+) a cross-platform, object-oriented path manipulation library.
-
Python-magic: Python interface to libmagic, a third-party library for file type detection.
-
Unipath: Operates files and directories in an object-oriented manner.
-
Watchdog: API and shell tool for managing file system events.
-
PyFilesystem2: Python’s file system abstraction layer.
Date and time
A library for manipulating dates and times.
-
Arrow: Better Python date-time manipulation library.
-
Chronyk: Python 3 library for parsing times and dates in handwritten format.
-
Dateutil: Extension of the Python datetime module.
-
Delorean: A library that solves some tricky problems with date handling in Python.
-
Maya: Humanized time processing library.
-
Moment: a Python library for handling times and dates. The inspiration came from moment.js.
-
Pendulum: A library of time manipulators with more defined, predictable behavior than Arrow.
-
PyTime: An easy-to-use Python module for manipulating dates/times with strings.
-
Pytz: Modern and historical versions of world time zone definitions. Introduce the time zone database into Python.
-
When. Py: Provides user-friendly functions to help users with common date and time operations.
-
Dateutil: Extension of the Python standard package datetime.
-
Moment: A date/time library inspired by moment.js.
-
Pytz: Supports cross-platform time zone calculation and introduces TZ Database to Python.
Text processing
A library for parsing and manipulating text.
-
general
-
-
Chardet: character encoding detector compatible with Python2 and Python3.
-
Difflib (the Python standard library) helps us to make differentiation comparisons.
-
Ftfy: Makes Unicode text more complete and coherent.
-
Fuzzywuzzy: Fuzzy string matching.
-
Levenshtein: Quickly calculates edit distance and string similarity.
-
Pangu. py: Add Spaces between Characters and alphanumeric characters in Korean and Chinese.
-
Pypinyin: Chinese phonetic conversion tool for Python.
-
Shortuuid: a generator library for generating concise, unambiguous, URL-safe UUID.
-
Simplejson: Python JSON encoding and decoder.
-
Unidecode: ASCII converted form of Unicode text.
-
Uniout: Prints readable characters instead of escaped strings.
-
Xpinyin: a library for converting Chinese characters into pinyin.
-
Pyfiglet: The Python implementation of Figlet.
-
Flashtext: an efficient text lookup and replace library.
-
Textdistance: Supports over 30 algorithms to calculate distances between sequences.
-
-
Slug,
-
-
Awesome-slugify: A Python slug library that maintains Unicode.
-
Python-slugify: A Python slug library that converts Unicode to ASCII.
-
Unicode-slugify: A slug tool that generates Unicode slugs that rely on Django.
-
-
The parser
-
-
Phonenumbers: parse, format, store, and verify phonenumbers.
-
Python-phonenumbers: parses, formats, stores, and verifies international phonenumbers.
-
PLY: Python implementations of the lex and yACC parsing tools.
-
Pyacknowledgments: Generic syntax highlighting tool.
-
Pyparsing: A framework for generating general-purpose parsers.
-
Python-nameparser: Splits a name into separate parts.
-
Python-user-agents: browser user agent parser.
-
Sqlparse: A SQL parser without validation.
-
Special text formatting processing
Libraries for parsing and manipulating particular text formats.
-
general
-
- Tablib: a module for processing tabular data.
-
Office
-
-
Marmir: Converts the input Python data structure into an e-form.
-
Openpyxl: a library for reading and writing Excel 2010 XLSX/XLSM/XLTX/XLTM files.
-
Pyexcel: a library that provides a unified API for reading, writing, and manipulating Excel files.
-
Python-docx: Read, query, and modify Microsoft Word 2007/2008 docx files.
-
Python-pptx: Python library that can be used to create and modify PPT files.
-
Relatorio: templates OpenDocument files.
-
Unoconv: Converts between any file formats supported by LibreOffice/OpenOffice.
-
XlsxWriter: a Python module for creating Excel. XLSX files.
-
Xlwings: a library that makes it easy to call Python in Excel (and vice versa) based on the BSD protocol.
-
XLWT/XLRD: Read and write data and format information of Excel files.
-
Docxtpl: Edit docX documents using the Jinja2 template.
-
-
PDF
-
-
PDFMiner: A tool for extracting information from PDF documents.
-
PyPDF2: a library that can split, merge, and convert PDF pages.
-
ReportLab: Quickly create rich text PDF documents.
-
-
Markdown
-
-
Mistune: A fast and fully featured Markdown parser for pure Python implementations.
-
Python-markdown: A Python implementation of John Gruber’s Markdown.
-
Python-markdown 2: A Markdown parser implemented purely in Python that is faster, more accurate, and extensible than python-markdown.
-
-
YAML
-
- PyYAML: The Python version of the YAML parser.
-
CSV
-
- Csvkit: A tool for converting and manipulating CSV.
-
Archive
-
- Unp: a command line tool used to easily unpack archive files.
Natural language processing
A library used to process human language.
-
NLTK: An advanced platform for building Python programs that handle human language data.
-
Gensim: Humanized topic modeling library.
-
Jieba: Chinese word segmentation tool.
-
Langid. py: Independent language recognition system.
-
Pattern: Python network information mining module.
-
SnowNLP: a library for processing Chinese text.
-
TextBlob: Provides a consistent API for doing common natural language processing tasks.
-
TextGrocery: a simple and efficient short text categorization tool based on LibLinear and Jieba.
-
Thulac: a Chinese lexical analysis kit developed by natural Language Processing and Social Human Computing Laboratory, Tsinghua University.
-
Polyglot: A natural language processing pipeline for hundreds of languages.
-
Pytext: PyTouch based natural language modeling framework.
-
PyTorch-NLP: a toolkit that supports rapid deep learning NLP prototype research.
-
Spacy: A library for industrial-scale natural language processing in Python and Cython.
-
Stanza: The official Python library of the Stanford NLP Group, supporting over 60 languages.
-
FunNLP: tools and data sets for Chinese natural language processing.
-
Pkuseg-python: a toolkit that supports Chinese word segmentation for different domains.
The document
A library used to generate project documents.
-
Sphinx: Python document generator.
-
- awesome-sphinxdoc
-
MkDocs: Markdown-friendly document generator.
-
Pdoc: A library that replaces Epydoc and automatically generates API documentation for Python libraries.
-
Pycco: Literature-programming style document generator.
-
Readthedocs: An online document hosting system based on Sphinx/MkDocs, free for open source projects.
configuration
A library for saving and parsing configurations.
-
Config: logging module Hierarchical configuration module written by the author.
-
ConfigObj: INI file parser with validation.
-
ConfigParser :(Python standard library) INI file parser.
-
Profig: Can be configured in a variety of formats, with numerical conversion function.
-
(Ppython) — Keep Settings and code completely isolated.
-
Hydra: a framework for elegantly configuring complex applications.
Command line tool
A library for creating command line programs.
-
Command line program development
-
-
Cement: Python’s command-line framework.
-
Click: a package that creates elegant command line interfaces through composition.
-
Cliff: A framework for creating command-line programs with multiple layers of commands.
-
Clint: Python command-line tool.
-
Docopt: Python style command line argument parser.
-
Gooey: a command that turns a command line program into a GUI program.
-
Python-prompt-toolkit: a library for building powerful interactive command-line programs.
-
Python-fire: A Google library for building command line interfaces based on Python classes.
-
Pythonpy: Executes any Python instruction directly from the command line.
-
-
Terminal presentation mode
-
-
Asciimatics: A cross-platform, full-screen terminal package (i.e. mouse/keyboard input and color, positioning text output), complete advanced API for complex animations and special effects.
-
Alive-progress: A new progress bar with real-time throughput information and very cool animations.
-
Colorama: cross-platform color terminal text.
-
Bashplotlib: Do basic drawing in terminal.
-
Rich: A Python library that supports rich text and formatting in terminals and provides the RichHandler log handler.
-
TQDM: A fast, extensible progress bar that can be used in loops and on the command line.
-
-
Productivity tool
-
-
Aws – CLI: Common command line interface for Amazon Web Services.
-
Caniusepython3: Determine which project is preventing you from migrating to Python3.
-
Cookiecutter: A command-line tool for creating projects from Cookiecutters (project templates).
-
Doitlive: a tool for live demos on terminals.
-
Pyftpdlib: an extremely fast and extensible Python FTP service library.
-
Howdoi: Get instant programming problem solving from the command line.
-
PathPicker: Selects files from the bash output.
-
Percol: Adds interactive selection to the traditional UNIX shell concept of pipes.
-
Thefuck: Fix your previous command line commands.
-
Try: an extremely simple command-line tool for trying python libraries.
-
Copier: Library and command-line utility for rendering project templates.
-
Invoke: Used to manage shell-oriented child processes while supporting the organization of executable Python code into a command-line callable state.
-
Tmuxp: TMUX session manager.
-
-
Advanced CLI
-
-
Httpie: a command-line HTTP client, an alternative to cURL.
-
Iredis: Redis command line tool that supports autocompletion and highlighting.
-
Kube-shell: K8S command line integrated shell tool.
-
Litecli: SQLite command-line tool that supports auto-completion and syntax highlighting.
-
Mycli: MySQL command line client that supports autocomplete and syntax highlighting
-
Pgcli: Postgres command line tool that supports automatic completion and syntax highlighting.
-
SAWS: An enhanced AWS command line.
-
-
Shell
-
- Xonsh: A cross-platform, UniX-oriented Shell language and command prompt based on Python.
downloader
A library for downloading.
-
S3cmd: a command line tool for managing Amazon S3 and CloudFront.
-
S4cmd: super S3 command line tool with more powerful performance.
-
You-get: a YouTube/Youku/Niconico video downloader written using Python3.
-
Youtube-dl: a small command-line program for downloading YouTube videos.
-
Akshare: Financial data interface library created for human use.
The image processing
A library for manipulating images.
-
Pillow: Pillow is a much easier to use version of PIL.
-
Hmap: Image histogram mapping.
-
ImgSeek: A project that searches a collection of images using visual similarity.
-
Nude. Py: Nude detection.
-
Python-barcode: Generates bar codes in Python programs without the help of other libraries.
-
Pygram: Instagram-like image filter.
-
Python-qrcode: A two-dimensional code generator for a pure Python implementation.
-
Quads: Computer art based on quadtree.
-
Scikit-image: A Python library for (scientific) image processing.
-
Thumbor: A small image service with cropping, resizing, and flipping capabilities.
-
Wand: The Python binding of MagickWand. MagickWand is ImageMagick’s C API.
-
Face_recognition: An easy-to-use Python face recognition library.
-
Pagan: Retro icon (avatars) generation tool based on input and hash.
-
PyMatting: Library that supports alpha matting.
-
Pywal: Tool for generating color schemes from images.
-
Pyvips: low memory consumption and fast image processing library.
OCR
Optical character recognition library.
-
Pyocr: a wrapper around Tesseract and Cuneiform.
-
Pytesseract: A wrapper around Google Tesseract OCR.
audio
A library used to manipulate audio
-
Audiolazy: Digital signal processing package for Python.
-
Audioread: Cross-library (GStreamer + Core Audio + MAD + FFmpeg) Audio decoding.
-
Beets: a music library management tool and MusicBrainz tag adding tool.
-
Dejavu: Audio fingerprint extraction and recognition.
-
Django-elastic-transcoder: Django + Amazon elastic transcoder.
-
EyeD3: a tool for manipulating audio files, specifically MP3 files containing ID3 bits of information.
-
Id3reader: A Python module for reading MP3 metadata.
-
M3u8: a module for parsing M3U8 files.
-
Mutagen: A Python module for handling audio metadata.
-
Pydub: A simple, concise high-level interface for manipulating audio files.
-
Pyechonest: Python client for the Echo Nest API.
-
Talkbox: A Python library for handling speech/signals.
-
TimeSide: Open source Web audio processing framework.
-
Tinytag: a library for reading music metadata from MP3, OGG, FLAC and Wave files.
-
Mingus: an advanced music theory and music package with support for MIDI files and playback capabilities.
-
Kapre: Keras audio processor.
-
Librosa: Python library for audio music analysis.
-
Matchering: Library for audio master production.
-
PyAudioAnalysis: Audio feature extraction, classification, segmentation and application.
-
Beets: a music library manager and MusicBrainz marker.
Video
Library for manipulating videos and GIFs.
-
Moviepy: Script-based video editing module for a variety of formats, including GIFs.
-
Scikit-video: SciPy video processing common application.
-
Vidgear: powerful multithreaded video processing framework.
The geographical position
Geocoding addresses and libraries for dealing with latitude and longitude.
-
GeoDjango: World-class web framework for geographic graphics.
-
GeoIP: Python API for MaxMind GeoIP Legacy database.
-
Geojson: Python bindings and tools for geoJSON.
-
Geopy: Python address coding toolkit.
-
GeoIP2: Python API for GeoIP2 Webservice client and database.
-
Django-countries: A Django application that provides country selection for tables, flag icon static files, and country fields in the model.
-
Pygeoip: Python GeoIP interface.
HTTP
Libraries that use HTTP.
-
Aiohttp: asynchronous HTTP network library based on AsynCIO.
-
Requests: User-friendly LIBRARY of HTTP requests.
-
Grequests: Requests library + gevent, used for asynchronous HTTP requests.
-
Httplib2: A comprehensive HTTP client library.
-
Treq: A Python API like Requests is built on top of the Twisted HTTP client.
-
Urllib3: a clean and friendly HTTP library with thread-safe connection pooling, file POST support.
-
HTTPX: Next-generation Python HTTP client.
The database
A database implemented in Python.
-
PickleDB: A simple, lightweight key-value store database.
-
PipelineDB: Streaming SQL database.
-
TinyDB: A tiny, document-oriented database.
-
ZODB: A Python native object database. A key value and object graph database.
Database driver
A library used to connect to and manipulate databases.
-
MySQL: awesome- MySQL series
-
-
Aiomysql: asynchronous MySQL database operation library based on AsynCIO.
-
Mysql-python: Python’s mysql database connector.
-
Ysqlclient: mysql-Python branch that supports Python 3.
-
Oursql: A better MySQL connector that supports native precompiled instructions and BLOBs.
-
PyMySQL: a pure Python MySQL driver compatible with mysql-Python.
-
-
PostgreSQL
-
-
Psycopg2: The most popular PostgreSQL adapter in Python.
-
Queries: Encapsulates the Psycopg2 library to interact with PostgreSQL.
-
Txpostgres: Twisted based asynchronous PostgreSQL driver.
-
-
Other relational databases
-
-
Apsw: Another Python SQLite package.
-
Dataset: Stores the Python dictionary in the database
-
Pymssql: a simple Microsoft SQL Server database interface.
-
-
No database
-
-
Asyncio-redis: Asyncio-based Redis client (PEP 3156).
-
Cassandra-python-driver: Python driver for Cassandra.
-
HappyBase: a developer-friendly library designed for Apache HBase.
-
Plyvel: a fast and feature-rich Python interface to LevelDB.
-
Py2neo: Python encapsulation client of Neo4j restful interfaces.
-
Pycassa: Python Thrift driver for Cassandra.
-
PyMongo: Official Python client for MongoDB.
-
Redis-py: Python client of Redis.
-
Telephus: Twisted based Cassandra client.
-
TxRedis: Twisted based Redis client.
-
Kafka-python: Apache kafka Python client.
-
-
Asynchronous client
-
- Motor: Asynchronous Python driver that supports MongoDB.
ORM
A library that implements object-relational mapping or data mapping techniques.
-
Relational database
-
-
awesome-sqlalchemy
-
Django Models: Part of Django.
-
SQLAlchemy: Python SQL tools and object-relational mapping tools.
-
Awesome – sqlalchemy series
-
Peewee: A small, expressive ORM.
-
PonyORM: ORM that provides a generator-oriented SQL interface.
-
Python-sql: Write PYTHON style SQL queries.
-
Dataset: Stores the dictionary in the database, supports SQLite, MySQL and PostgreSQL.
-
Orator: Orator ORM provides a simple and beautiful implementation of ActiveRecord.
-
Orm: An asynchronous ORM.
-
Peewee: A small but expressive ORM.
-
Pony: ORM that provides a generator-oriented SQL interface.
-
Pydal: Pure Python database abstraction interface layer.
-
-
No database
-
-
Django-mongodb -engine: specifies the django mongodb backend.
-
PynamoDB: A Python-style interface to Amazon DynamoDB.
-
Flywheel: Object mapping tool for Amazon DynamoDB.
-
MongoEngine: a Python object document mapping tool for MongoDB.
-
Hot-redis: Provides Python rich data types for Redis.
-
Redisco: A Python library that provides simple models and containers that can persist in Redis.
-
-
other
-
- Butterdb: Python ORM for Google Drive spreadsheets.
Web framework
Full stack Web framework.
-
Django: The most popular Web framework in Python.
-
-
Awesome – django (by shahraizali) series
-
Awesome – django (by wsvincent) series
-
-
Flask: A Python mini-framework.
-
- Awesome – flask series
-
Pyramid: A small, fast, and accessible open source Python Web framework.
-
- Awesome – pyramid series
-
Bottle: a fast, compact, lightweight WSGI mini-Web framework.
-
CherryPy: A minimalist Python Web framework that complies with HTTP/1.1 and has WSGI thread pools.
-
TurboGears: A miniature framework that can be expanded into a full-stack solution.
-
Web. py: A Python Web framework that is both simple and powerful.
-
Web2py: A full-stack Web framework and platform focused on ease of use.
-
Tornado: A Web framework and asynchronous network library.
-
Sanic: asynchronous networking framework based on Python3.5+.
-
Starlette: A lightweight, high-performance ASGI framework.
-
Masonite: A developer-centric modern Python Web framework.
WebSocket
Web Socket libraries.
-
Autobahn-python: Python WebSocket and WAMP for Twisted and Asyncio.
-
Channels: A developer-friendly Django asynchronous tool.
-
Websockets: A library for building WebSocket servers and clients, with an emphasis on correctness and simplicity.
permissions
A library that allows or denies users access to data or functionality.
-
Carteblanche: a code alignment module developed from a user and designer perspective that handles code navigation and permissions well.
-
Django-guardian: Django 1.2+ implements a single object permission.
-
Django-rules: A small but powerful application that provides object-level permission management and eliminates the need for a database.
CMS
Content management system.
-
Odoo-cms: An open source, enterprise CMS based on ODOO.
-
Django-cms: An open source, enterprise-class CMS based on Django.
-
Djedi – CMS: A lightweight but powerful Django CMS that takes into account plug-ins, inline editing, and performance.
-
FeinCMS: One of the most advanced content management systems built on Top of Django.
-
Kotti: A high-level, Python-style Web application framework, built on Pyramid.
-
Mezzanine: A powerful, continuous, flexible content management platform.
-
Opps: A CMS platform for magazines, newspapers, and high-traffic portals, based on Django.
-
Plone: A CMS built on top of the open source application server Zope.
-
Quokka: Flexible, scalable small CMS, based on Flask and MongoDB.
-
Wagtail: A Django content management system.
-
Widgy: The latest CMS framework, based on Django.
-
Indico: A feature-rich event management system developed by @cern.
The electronic commerce
Frameworks and libraries for e-commerce and payments.
-
Django-oscar: An open source e-business framework for Django.
-
Django-shop: A Django-based store system.
-
Cartridge: A shopping cart application built on Mezzanine.
-
Shoop: An open source Django-based e-commerce platform.
-
Alipay: Unofficial Python Alipay API.
-
Merchant: A Django application that accepts payments from a variety of payment platforms.
-
Money: A currency library. An extensible currency exchange solution with an optional CLDR backend localization format.
-
Python-currencies: Indicates the currency format and its value.
-
Forex-python: Foreign exchange rates, Bitcoin price index and currency conversion.
-
Saleor: A Django-compatible e-commerce platform.
RESTful API
A library for developing RESTful APIs
-
Django
-
-
Django-rest-framework: A powerful and flexible tool for building Web apis.
-
Django-tastypie: Develops apis for Django applications.
-
Django-formapi: Creates JSON APIs for django form validation.
-
-
Flask
-
-
Flask-api: Browsable Web APIs developed for Flask.
-
Flask-restful: Quickly creates REST APIs for the flask.
-
Flask-restless: Create RESTful APIs for the database model defined by SQLAlchemy.
-
Flask-api-utils: API representation and validation for flask processing.
-
Eve: REST API framework, driven by Flask, MongoDB, etc.
-
-
Pyramid
-
- Cornice: A REST framework for Pyramid.
-
Framework-independent
-
-
Falcon: A high-performance framework for building cloud apis and Web app backends.
-
Sandman: Automatically create REST APIs for existing database-driven systems.
-
Restless: A framework agnostic REST framework based on knowledge learned from Tastypie.
-
Ripozo: Quickly create REST/HATEOAS/Hypermedia APIs.
-
Apistar: Intelligent Web API framework designed specifically for Python 3.
-
Fastapi: a modern, fast Web framework based on standard Python-type annotations that can be built using Python3.6+.
-
Hug: A Python 3 framework for clean, open apis.
-
Sandman2: Automatically generate REST apis for database-driven systems.
-
Vibora: Fast, efficient and asynchronous Web framework, inspired by Flask.
-
validation
A library that implements validation schemes.
-
OAuth
-
-
Authlib: A powerful Python library for building OAuth and OpenID servers. The options are JWS, JWK, JWA, and JWT.
-
Authomatic: Simple but powerful framework, authentication/authorization client.
-
Django-allauth: django authentication application.
-
Django-oauth-toolkit: OAuth2 for Django users.
-
Django-oauth2-provider: provides oAuth2 access for Django applications.
-
Flask-oauthlib: OAuth 1.0/ A, 2.0 client implementation, for Flask use.
-
OAuthLib: a generic, complete implementation of OAuth request-signature logic.
-
Python-oauth2: a fully tested abstract interface. Used to create OAuth client and server.
-
Python-social-auth: A simple way to set up social validation.
-
Rauth: Python libraries for OAuth 1.0/ A, 2.0, and Ofly.
-
Sanction: a super simple OAuth2 client implementation.
-
-
other
-
-
PyJWT: JSON Web token draft 01.
-
Python-jws: Implementation of JSON Web signature Draft 02.
-
Python-jwt: a module for generating and validating JSON Web tokens.
-
Python-jose: Jose implementation for Python.
-
A template engine
Libraries and tools for template generation and lexical parsing.
-
Jinja2: A modern, designer-friendly template engine.
-
Chameleon: An HTML/XML templating engine. Speed optimization is modeled after ZPT (Zope Page Templates).
-
Genshi: Python template tool for generating Web-aware results.
-
Mako: An ultra-fast lightweight template for the Python platform.
The queue
Libraries that handle events and task queues.
-
Celery: an asynchronous task queue/job queue, based on distributed messaging
-
Daramatiq: a fast and reliable background task processing library for Python 3.
-
Huey: Small multithreaded task queues.
-
MRQ: a Python distributed queue of worker tasks, using Redis and gEvent.
-
Rq: Simple Python job queue.
-
Simpleq: A simple, infinitely scalable queue based on Amazon SQS.
search
Libraries and software that index data and perform search queries.
-
Django-haystack: Django modular search.
-
Elasticsearch -py: The official underlying Python client for ElasticSearch.
-
Elasticsearch -dsl-py: The official advanced Python client for ElasticSearch.
-
Solrpy: Python client for Solr.
-
Pysolr: A lightweight Python decorator that supports Apache Solr.
-
Whoosh: a fast, pure Python search engine library.
Dynamic message
A library for creating user activity.
-
Django-activity-stream: Generate a generic activity stream from your site’s behavior.
-
Stream-framework: Create dynamic messaging and notification systems using Cassandra and Redis.
Web Resource Management
A tool for managing, condensing, and minimizing web resources.
-
Django-compressor: Compress the linked and inline JavaScript or CSS into a separate cache file.
-
Django-pipeline: Djangos resource wrapper library.
-
Django-storages: A collection of tools for custom storage backends for Django.
-
Fanstatic: Package, optimize, and provide static file dependencies as Python packages.
-
; File Cargo: a backgrounder program used to find and synchronize files to CDNs, S3 and FTP.
-
Flask-assets: Integrates web resources into your Flask app.
-
Compressor: A Jinja extension that compasses and compresses your resources.
-
Webassets: Generate unique cache urls for packaging, optimizing, and managing your static resources.
The cache
A library that caches data.
-
Beaker: A cache and session library for Web applications and standalone Python scripts and applications.
-
Django-cache-machine: Automatic caching and invalidation of Django models.
-
Django-cacheops: ORM with automatic granulated event-driven invalidation.
-
Django-viewlet: Render templates with additional cache control.
-
Dogpile. Cache: Dogpile. Cache is a next-generation alternative to Beaker, developed by the same author.
-
HermesCache: Python cache library with tag-based invalidation and dogpile effect protection.
-
Johnny-cache: Django application cache framework.
-
Pylibmc: Python wrapper for the libmemcached interface.
-
Python-diskcache: A cache backend for SQLite and file support with faster lookups than memcached and redis.
A library for sending and parsing E-mail messages.
-
Django-celery -ses: Django email backend with AWS SES and celery.
-
envelopes: Email library for human use.
-
Flanker: An email address and Mime resolution library.
-
Imbox: Python IMAP library.
-
Inbox. py: Python SMTP server.
-
Inbox: An open source E-mail toolkit.
-
Lamson: SMTP application server in Python style.
-
Mailjet: Mailjet API implementation, used to provide bulk mail, statistics and other functions.
-
Marrow. Mailer: High-performance extensible mail distribution framework.
-
Modoboa: A mail hosting and management platform with a modern, minimalist Web UI.
-
Pyzmail: Creates, sends, and parses E-mail.
-
Talon: Mailgun library for extracting information and signatures.
-
Yagmail: YagMail is a GMAIL/SMTP client designed to make it as easy as possible to send email.
-
Salmon: A Python mail server.
-
Mailer: A high-performance extensible mail delivery framework.
internationalization
A library for internationalization.
-
Babel: an international library for Python.
-
Korean: a library of Korean morphologies.
-
PyICU: a Python extension that encapsulates the ICU C++ library.
URL processing
A library that parses URLs
-
Furl: A small Python library that makes handling urls easier.
-
Purl: A simple, immutable URL class with a concise API for querying and processing.
-
Pyshorteners: a pure Python URL shortening library.
-
Shorturl: Python implementation that generates short urls and bit.ly like short chains.
-
Webargs: A library for parsing HTTP request parameters, with built-in support for popular Web frameworks including Flask, Django, Bottle, Tornado, and Pyramid.
HTML processing
A library for processing HTML and XML.
-
BeautifulSoup: A Python-style way to iterate, search, and modify HTML or XML.
-
Bleach: A whitelist-based HTML cleanup and text link library.
-
Cssutils: A Python CSS library.
-
Html5lib: a standards-compliant HTML document and fragment parsing and serialization library.
-
LXML: a very fast, easy to use, full-featured library for processing HTML and XML.
-
MarkupSafe: Implements XML/HTML/XHTML markup security strings for Python.
-
Pyquery: a library for parsing HTML, similar to jQuery.
-
Requests – HTML: User-friendly, Pythonic HTML parsing library.
-
Untangle: Converts XML documents into Python objects for easy access.
-
Xhtml2pdf: HTML/CSS to PDF tool.
-
Xmltodict: Handles XML like JSON.
-
WeasyPrint: Visual rendering engine for HTML and CSS and can be exported to PDF.
-
Xmldataset: Simple XML parsing.
Crawl the library of a web site
-
Scrapy – a fast advanced framework for screen crawling and web page collection.
-
ScrapydWeb: a full-featured Web UI for Scrapyd cluster management, with support for Scrapy log analysis and visualization, automatic packaging, timer tasks, and email notifications.
-
Cola: A distributed crawler framework.
-
Demiurge: A pyQuery-based crawler mini-framework.
-
Feedparser: Generic feedparser.
-
Grab: site crawl framework.
-
MechanicalSoup: A Python library for automatically interacting with web sites.
-
Portia: Scrapy visual crawl.
-
Pyspider: A powerful crawler system.
-
RoboBrowser: A simple, Python-style library for browsing web sites without the need for a separate installed browser.
Web content extraction
A library for extracting web content.
-
Haul: An expandable image crawl tool.
-
Html2text: Convert HTML to Markdown text.
-
Lassie: User-friendly web content search library.
-
Micawber: A small web content extraction library for extracting rich content from URLs.
-
Newspaper: Use Python for news extraction, article extraction and content curation.
-
Opengraph: A Python module for parsing the Open Graph Protocol.
-
Python-goose: HTML content/article extractor (python2).
-
Goose3: HTML content/article extractor (PYTHon3).
-
Python-readability: Arc90’s Readability tool is a high-speed port for Python.
-
Sanitize: Bringing sanity to the cluttered world of data.
-
Sumy: a module for automatic summarization of text files and HTML pages.
-
Textract: Extract text from documents in any format, Word, PowerPoint, PDFs, etc.
The form
A library for performing form operations.
-
Deform: Python HTML form generation library, inspired by the Formish form generation library.
-
Django-bootstrap3: Django with Bootstrap 3 integration.
-
Django-bootstrap4: Django with Bootstrap 4 integration.
-
Django-crispy-forms: A Django application that allows you to create beautiful forms in a very elegant and DRY (Don’t Repeat Yourself) way.
-
Django-remote-forms: A platform-independent django form serialization tool.
-
WTForms: A flexible form validation and rendering library.
-
Wtforms-json: A WTForms extension for processing JSON data.
Data validation
Data validation library. Most commonly used for form validation.
-
Cerberus: A mapping validator (mappings- Validator). Supports multiple rules, provides normalization, and can be easily customized to Python-style schema definitions.
-
Colander: A system for validating and deserializing data from XML, JSON, HTML forms, or other equally simple serialized data.
-
Kmatch: a language for matching/validating/filtering Python dictionaries.
-
Schema: A library for validating Python data structures.
-
Schematics: Data structure validation.
-
Valideer: lightweight extensible data validation and adaptation library.
-
Voluptuous: A Python data authentication library. The main purpose is to validate JSON, YAML, etc. data passed into Python.
-
Jsonschema: Python implementation of JSON Schema for validation of JSON data.
serialization
Complex data type serialization related libraries.
-
Marshmallow: a lightweight library for converting complex objects to and from simple Python data types.
-
Pysimdjson: Simdjson bound to Python.
-
Python-rapidjson: Python encapsulation of rapidJSON.
-
Ultrajson: a fast JSON decoder and encoder written in C and bound with Python.
Anti-garbage technology
A library to help you fight e-waste.
-
Django-simple-captcha: A simple, highly customizable Django application that allows you to add captcha to any Django form.
-
Django-simple-spam-blocker: A simple e-spam blocker for Django.
tag
A library for tagging.
- Django-taggit: A simple django taggit tool.
Administration panel
Manage the interface library.
-
Ajenti: An admin panel that your server deserves.
-
Django-suit: An alternative to The Django admin interface (free for non-commercial use only).
-
Django-xadmin: An alternative to Django admin with many nice features.
-
Flask-admin: A simple extensible management interface framework for flask.
-
Flower: a tool for real-time monitoring of Celery clusters and providing a Web management interface.
-
Grappelli: A nice skin for Django admin interface.
-
Wooey: A Django application that creates a Web user interface for Python scripts.
-
Django-grappelli: Django Admin interface with a gorgeous look.
-
Django-jet: A modern, responsive Django admin interface template with improved functionality.
-
Jet-bridge: Administration panel framework for any application with a good UI (such as Django).
Serverless framework
Develop Serverless model-related libraries in Python.
-
Python-lambda: Toolkit for developing and deploying Python code in AWS Lambda.
-
Zappa: A tool to deploy WSGI applications in AWS Lambda and API Gateway.
Static site generator
A static site generator is software that takes text and templates as input and outputs HTML files.
-
Pelican: Use Markdown or ReST for content, Jinja 2 for theme. Support DVCS, Disqus. AGPL license.
-
Cactus: Static site generator for designers.
-
Hyde: Static site generator based on Jinja2.
-
Nikola: A static website and blog generator.
-
Tinkerer: Tinkerer is a blog engine/static site generator, powered by Sphinx.
-
Lektor: an easy-to-use static CMS and blogging engine.
-
Makesite: A simple lightweight site/blog generator (less than 130 lines of code).
process
Operating system process startup and communication library.
-
Envoy: More human than the Python Subprocess module.
-
Sarge: Encapsulation of another subprocess module.
-
Sh: a complete subprocess replacement library.
-
Delegator. py: Version 2.0 of humanized Subprocesses.
Concurrency and parallelism
A library for concurrent and parallel operations.
-
Multiprocessing :(the Python standard library) a process-based “threading” interface.
-
Threading: A higher level threading interface.
-
Eventlet: Asynchronous framework that supports WSGI.
-
Gevent: a Coroutine based Python network library, using greenlet.
-
Tomorrow: Fancy decorator syntax implementation for generating asynchronous code.
-
Uvloop: Super fast asyncio event loop on top of Libuv.
-
Concurrent. futures :(Python standard library) a high-level interface for asynchronously executing callable objects.
-
Gevent: A Greenlet and coroutine based Python network library.
-
Scoop: Supports scalable parallel operations in Python.
network
Library for network programming.
-
Asyncio :(Python standard library) asynchronous I/O, event loops, coroutines, and tasks.
-
Trio: Asynchronous concurrency and I/O friendly library.
-
Twisted: An event-driven network engine.
-
Pulsar: Event-driven concurrency framework.
-
Diesel: Greenlet-based event I/O framework.
-
Pyzmq: A Python encapsulation of the ZeroMQ message library.
-
Toapi: a lightweight, simple, fast Flask library dedicated to providing API services for all websites.
-
TxZMQ: A Python wrapper based on Twisted’s ZeroMQ message library.
WebSocket
Library to help use WebSocket.
-
AutobahnPython: For Python, use WebSocket & WAMP based on Twisted and Asyncio.
-
Crossbar: Open Source Unified Application Routing (Websocket & WAMP for Python on Autobahn).
-
Django-socketio: WebSockets for Django.
-
Websocket-for-python: WebSocket client and server library written for PYTHon2/3 and PyPy.
WSGI servers
Wsgi-compatible Web server
-
Gunicorn: Pre-forked, partially written in C.
-
Uwsgi: The purpose of the UWSGi project is to develop a set of full-stack tools for building managed services, written in C.
-
Bjoern: Asynchronous, very fast, written in C.
-
Fapws3: asynchronous (network only), written in C language.
-
Meinheld: asynchronous, partially written in C.
-
Netius: Asynchronous, very fast.
-
Paste: Multi-threaded, stable, time-tested.
-
Rocket: Multiple threads.
-
Waitress: Multithreading, it’s what drives the Pyramid framework.
-
Werkzeug: A WSGI toolkit that powers Flask and can be easily embedded in your projects.
ASGI server
Asgi-compliant Web server.
-
Daphne: a server for ASGI and ASGI-HTTP that supports the HTTP, HTTP2, and WebSocket protocols.
-
Uvicorn: Lightning-fast ASGI server implemented using uvloop and HttpTools.
The RPC server
Rpc-compatible server.
-
SimpleJSONRPCServer: This library is an implementation of the JSON-RPC specification.
-
SimpleXMLRPCServer :(Python standard library) simple xml-rpc server implementation, single thread.
-
ZeroRPC: zeroRPC is a flexible RPC implementation based on ZeroMQ and MessagePack.
-
Remote Python Call (RPyC) : Transparent and symmetric RPC library for Python.
cryptography
-
Cryptography: This package is intended to provide basic cryptography content and methods for Python developers.
-
Hashids: Implement hashids in Python.
-
Paramiko: Paramiko: Python (2.6+, 3.3+) of the SSHv2 protocol, providing client and server functions.
-
Passlib: security password storage/hash library.
-
PyCrypto: Python cryptography toolkit.
-
PyNacl: Python binding for the Network and Cryptography (NaCl) library.
Graphical user interface
A library for creating graphical user interface programs.
-
Curses: Built-in Ncurses package for creating terminal graphical user interfaces.
-
Enaml: Use QML-like Declaratic syntax to create a beautiful user interface.
-
Kivy: A library for creating natural user interaction (NUI) applications that run on Windows, Linux, Mac OS X, Android and iOS platforms.
-
Pyglet: a Cross-platform window and multimedia library for Python.
-
PyQt: A Python binding of the cross-platform user interface framework Qt, supporting Qt V4 and Qt V5.
-
PySide: A Python binding of the cross-platform user interface framework Qt, supporting Qt V4.
-
Tkinter: Tkinter is a de facto standard library for Python GUI.
-
Toga: A Python native, operating system native GUI toolkit.
-
Urwid: a library for creating terminal GUI applications, supporting components, events, rich colors, etc.
-
WxPython: wxPython is a hybrid of the wxWidgets C++ library and the Python language.
-
PyGObject: Python binding of GLib/GObject/GIO/GTK+ (GTK+3).
-
Flexx: Flexx is a set of tools written in pure Python for creating GUI programs that use Web technologies to display interfaces.
-
Eel: Library for making simple offline HTML/JS GUI applications.
-
PySimpleGUI: Encapsulation of Tkinter, Qt, WxPython and Remi.
-
Pywebview: A lightweight cross-platform native wrapper around webview components.
-
DearPyGui: A simple GPU-accelerated Python GUI framework.
The game development
Great game development library.
-
Cocos2d: Cocos2d is a framework for developing 2D games, examples, and other graphical/interactive applications. Based on the pyglet.
-
Panda3D: 3D game engine developed by Disney and maintained by Carnegie Mellon Entertainment Technology Center. Written in C++, it is fully encapsulated for Python.
-
Pygame: Pygame is a set of Python modules used to write games.
-
PyOgre: A Python binding of the Ogre 3D rendering engine that can be used to develop games and emulators for any 3D application.
-
PyOpenGL: The Python binding of OpenGL and its related APIs.
-
PySDL2: Encapsulation of the SDL2 library, based on ctypes.
-
RenPy: A visual novel engine.
-
Arcade: A modern Python framework for making games with compelling graphics and sounds.
-
Harfang3D: Python framework for 3D, VR, and game development.
The log
A library for generating and manipulating logs.
-
Logging :(the Python standard library) provides logging for Python.
-
Logbook: Alternative to the Logging library.
-
Eliot: Creates logs for complex and distributed systems.
-
Raven: Python client for Sentry.
-
Sentry: server that records and collects logs in real time.
-
Sentry-python: Sentry SDK for Python.
-
Loguru: A Python log library designed to be an enjoyable experience.
-
Structlog: Structuring logs to make logging simple.
test
A library that performs code base tests and generates test data.
-
The test framework
-
-
Unittest :(Python standard library) unit testing framework.
-
Nose: Nose extends the functionality of UnitTest.
-
Successor to Nose2 nose, based on Unittest2.
-
Contexts: BDD framework for Python 3.3+. Inspired by C# Machine.Specifications.
-
Hypothesis: Hypothesis is a test library based on advanced Quickcheck style features.
-
Mamba: The ultimate Python testing tool that supports BDD.
-
Pyshould: Should style assertion, based on PyHamcrest.
-
Pytest: a full-fledged Python testing tool.
-
Green: Clean, colorful testing tools.
-
Pypartisans: BDD style testing tools, inspired by libs.js.
-
Robot Framework: A generic automation testing Framework.
-
Tox: A tool for automated testing and distribution that supports multiple Python versions.
-
-
GUI/Web testing
-
-
Selenium: The Python binding of Selenium WebDriver.
-
PyAutoGUI: PyAutoGUI is a user-friendly cross-platform GUI automatic test module.
-
Locust: An extensible user-loaded test tool written in Python.
-
Sixpack: A language-independent A/B testing framework.
-
Splinter: Open source Web application testing tool.
-
Schemathesis: Attribute-based automated testing tool for testing Web applications built using the Open API/Swagger specification.
-
-
The Mock test
-
-
Mock :(the Python standard library) a library used to mock tests.
-
Doublex: A powerful Doubles testing framework for Python.
-
Freezegun: Generate different times by forging the date module.
-
Httmock: A library that generates bogus requests for Python 2.6+ and 3.2+.
-
Httpretty: Python’s HTTP request mock tool.
-
Responses: A generic library to forge the Requests library in Python.
-
Vcr.py: Record and replay HTTP interactions in your tests.
-
Mocket: GEvent/Asyncio /SSL supported socket mock framework.
-
-
Object factory
-
-
Factoryboy: A Test fixtures library for Python.
-
Mixer: Another test fixtures replacement library, supporting Django, Flask, SQLAlchemy, Peewee, etc.
-
Modelmommy: Creates random firmware for Django tests.
-
-
Code coverage
-
-
Coverage: Code coverage measurement.
-
Codecov: a code coverage testing tool that provides free code coverage testing services for open source projects.
-
-
Pseudo data
-
-
Faker: A Python library used to generate pseudo-data.
-
Fake2db: pseudo database generator.
-
Mimesis: A Python library that helps you generate pseudo-data.
-
Radar: Generates a random date/time.
-
-
Error handling
-
- Fuckit. py: Use state-of-the-art technology to ensure that your Python code continues to work, whether it’s right or wrong.
Penetration testing
Penetration testing related frameworks and tools.
-
Fsociety: A penetration testing framework.
-
Setoolkit: Social engineering toolkit.
-
Sqlmap: Automatic SQL injection and database takeover tool.
Code analysis and Lint tools
Libraries and tools for code analysis, parsing, and manipulation of code bases.
-
The code analysis
-
-
Coala: Language independent and easily extensible code analysis application.
-
Code2flow: Convert your Python and JavaScript code into flowcharts.
-
Pycallgraph: This library visualizes the flow (callgraph) of your Python application.
-
Pysonar2: Python type inference and retrieval tool.
-
Prospector: a tool for analyzing Python code.
-
Vulture: A tool for finding and analyzing invalid Python code.
-
-
Lint tools
-
-
awesome-flake8-extensions
-
Flake8: modular source checker with decorators related to PyCodeStyle, PyFlakes and McCabe.
-
Pylint: a fully customizable source code parser.
-
YAPF: Google’s Python code formatting tool.
-
Pylama: Code review tool for Python and JavaScript.
-
Wemake-python-styleguide: The most rigorous Python code review tool ever.
-
-
Code formatting
-
-
Autopep8: Automatically formats Python code to conform to the PEP8 specification.
-
Black: a stalwart Python code formatting tool.
-
Isort: A Python library for correcting the order in which packages are imported.
-
-
Static type checking, also see awesome-python-typing
-
-
Mypy: Check variable types at compile time.
-
Pyre-check: performance type check.
-
Typeshed: A collection of Python inventory roots with static types.
-
-
Static type comment generator
-
-
MonkeyType: System for generating static type comments for Python by gathering runtime types.
-
Pyannotate: Automatically generates annotations that conform to PEP-484.
-
Pytype: Examines and inferences types in Python code without adding annotations.
-
A debugging tool
A library used to debug code.
-
The debugger
-
-
Ipdb: PDB enabled by IPython.
-
Pudb: full-screen, console-based Python debugger.
-
PDB ++ : Another alternative to PDB.
-
Pyringe: Debugger that allows you to attach and inject code into a Python process.
-
WDB: a bizarre Web debugger that works over WebSockets.
-
Winpdb: A Python debugger with a graphical user interface for remote debugging, based on RPDB2.
-
-
tracker
-
-
Lptrace: Strace for Python programs.
-
Manhole: Debugs UNIX socket connections and displays stack traces and interactive prompts for all threads.
-
Pyringe: Debugger that can attach to and inject code into a Python process.
-
Python-hunter: a flexible code tracing toolkit.
-
-
Performance analyzer
-
-
Lineprofiler: Line-by-line performance analysis.
-
Memory Profiler, Memory: Monitors Memory usage for Python code.
-
Profiling: An interactive Python performance analysis tool.
-
Py-spy: Python program sampling analyzer, implemented using Rust.
-
Pyflame: Trace analyzer for Python.
-
Vprof: Visual Python parser.
-
-
other
-
-
Pyelftools: Parses and analyzes ELF files and DWARF debugging information.
-
Python-statsd: Indicates the Python client of the Statsd server.
-
Django-debug-toolbar: Displays debugging information for Django.
-
Django-devserver: a django-run server replacement.
-
Flask – Debugtoolbar: Flask version of Django-debug-Toolbar.
-
Icecream: Checks variables, expressions, and program execution with a simple function call.
-
Scientific calculation and data analysis
A library used for scientific calculations and data analysis.
-
Astropy: A Python library for astronomy.
-
Bcbio-nextgen: This toolkit provides best practice processes for fully automated high-throughput sequencing analysis.
-
BCCB: Collection of code related to biological analysis.
-
Biopython: Biopython is a set of freely available tools for conducting biological computing.
-
Blaze: Big data interface for NumPy and Pandas.
-
Cclib: a library for parsing and interpreting the output of computational chemistry packages.
-
NetworkX: a high performance software designed for complex networks.
-
Neupy: Executes and tests various artificial neural network algorithms.
-
NumPy: The basic package for scientific computation using Python.
-
Open Babel: A chemistry toolkit for describing a variety of chemical data.
-
Open Mining: Mining business Intelligence (BI) using Python (Pandas Web interface).
-
Orange: Data mining, data visualization, analysis and machine learning through visual programming or Python scripting.
-
Pandas: Provides high-performance, easy-to-use data structure and data analysis tools.
-
PyDy: PyDy is an acronym for Python Dynamics, used to help with dynamic motion modeling workflows, based on NumPy, SciPy, IPython and Matplotlib.
-
PyMC: Markov chain Monte Carlo sampling tool.
-
RDKit: Chemical informatics and machine learning software.
-
SciPy: An ecosystem of python-based open source software for math, science, and engineering.
-
Statsmodels: Statistical modeling and econometrics.
-
SymPy: A Python library for symbolic mathematics.
-
Zipline: a Python algorithmic trading library.
-
Bayesian- beliefs-networks: an elegant Bayesian network framework.
-
AWS Data Wrangler: Pandas for the AWS platform.
-
Optimus: Simplifies agile data science workflows when using PySpark.
-
Colour: Implementation of a large number of color theory conversions and algorithms.
-
Karate Club: Unsupervised machine learning toolkit for graphically structured data.
-
NIPY: A collection of neural effects toolkits.
-
ObsPy: Seismology Python toolkit.
-
QuTiP: Quantum toolkit for Python.
-
SimPy: A process-based discrete event simulation framework.
Data visualization
A library for data visualization. See also: awesome-javascript.
-
Matplotlib: a Python 2D drawing library.
-
Bokeh: Interactive Web drawing in Python.
-
Ggplot: Python version of the API provided by ggplot2 to R.
-
Plotly: A Web drawing library that works with Python and Matplotlib.
-
Pyecharts: Data visualization library based on Baidu Echarts.
-
Pygal: A Python SVG chart creation tool.
-
Pygraphviz: The Python interface for Graphviz.
-
PyQtGraph: Interactive real-time 2D/3D/ image rendering and science/engineering components.
-
SnakeViz: a browser-based tool for viewing the output of Python’s cProfile module.
-
Vincent: A conversion tool to convert Python into Vega syntax.
-
VisPy: A high-performance scientific visualization tool based on OpenGL.
-
Altair: A declarative statistical visualization library for Python.
-
Bqplot: Jupyter Notebook’s interactive drawing library.
-
Cartopy: Python drawing library with Matplotlib support.
-
Dash: Built on top of Flask, React, and Plotly, it is designed for analyzing Web applications.
-
- awesome-dash
-
Diagrams: Use diagrams as code.
-
Plotnine: Python graphics syntax based on GGplot2.
-
PyGraphviz: The Python interface for Graphviz.
-
Seaborn: Visualization of statistics using Matplotlib.
Computer vision
Computer vision related library.
-
OpenCV: Open source computer vision library.
-
Pyocr: Wrapper libraries for Tesseract and Cuneiform.
-
Pytesseract: Another wrapper for Google Tesseract OCR.
-
SimpleCV: An open source framework for creating computer vision applications.
-
EasyOCR: Ready-to-use OCR supports over 40 languages.
-
Face Recognition: A simple library for Face Recognition.
-
Kornia: PyTorch’s open source differentiated computer vision library.
-
Tesserocr: Another simple, Pillow compatible TESserACt-OCR API decorator that can be used for OCR.
Deep learning
Neural networks and deep learning related frameworks. Also see awesome-deep-learning.
-
Caffe: a Python interface to Caffe.
-
Caffe2: A lightweight, modular, scalable deep learning framework.
-
Keras: Using Tensorflow/Theano /CNTK as the back end of the deep learning package library, fast learning neural network.
-
MXNet: an efficient and flexible deep learning framework.
-
Pytorch: A deep learning framework with tensors and dynamic neural networks and powerful GPU acceleration capabilities.
-
SerpentAI: Game agent framework that can use any video game as a deep learning sandbox.
-
Theano: A library for fast numerical calculations.
-
TensorFlow: Google’s most popular open-source deep learning framework.
-
Skflow: A simplified interface to TensorFlow (modeled after scikit-learn).
-
Hebel: GPU-accelerated deep learning library.
-
Pydeep: Python deep learning library.
Machine learning
Machine learning library, also refer to awesome-machine-learning.
-
Crab: A nimble, fast recommendation engine.
-
NuPIC: Numenta platform for intelligent computing.
-
Pattern: Python network mining module.
-
PyBrain: Another Python machine learning library.
-
Pylearn2: a machine learning library based on Theano.
-
Python-recsys: A Python library used to implement recommendation systems.
-
Scikit-learn: Machine learning Python module built on SciPy.
-
Vowpalporpoise: Python encapsulation of lightweight Vowpal Wabbit.
-
Gym: Toolkit for developing and comparing reinforcement learning algorithms.
-
H2O: Open source fast scalable machine learning platform.
-
Metrics: Machine learning Metrics.
-
Vowpal_porpoise: Python version Vowpal Wabbit decorator.
-
Xgboost: Scalable, portable and distributed gradient lift library.
-
MindsDB: MindsDB is an open source AI layer on existing databases that makes it easy to develop, train, and deploy the latest machine learning models using standard queries.
Recommendation system
Libraries for building recommendation systems.
-
Annoy: memory optimization for the C++/Python implementation of the near-neighbor algorithm.
-
FastFM: Factorization Machine library.
-
Implicit: A fast Python implementation for collaborative filtering of implicit data sets.
-
Libffm: field-aware Factorization Machine (FFM) library
-
Lightfm: Python implementation of many popular recommendation algorithms.
-
Spotlight: A deep recommendation model implemented using PyTorch.
-
Surprise: Scientific tools for building and analyzing recommendation systems.
-
Tensorrec: A recommendation engine framework for TensorFlow.
Distributed computing
Distributed computing related frameworks and libraries.
-
Dpark: A Python clone of Spark, a mapReduce-like framework.
-
Dumbo: This Python module makes it easy to write and run Hadoop programs.
-
Luigi: This module helps you build a complex pipeline of batch jobs.
-
Mrjob: MapReduce jobs run on Hadoop or Amazon Web Services.
-
Dask: a flexible parallel computing library for analytical computation.
-
PySpark: The Python API of Spark.
-
Ray: A system for parallel and distributed Python that unifies the machine learning ecosystem.
-
Faust: a Python stream processing library based on Kafka Streams.
-
Streamparse: Runs Python code for streams of fact data. Apache Storm is integrated.
Functional programming
Use Python for functional programming.
-
CyToolz: Cython implementation of Toolz: high-performance functional tool.
-
Fn.py: Functional programming in Python: Implements some functionality that functional programming enjoys missing.
-
Funcy: A cool and functional tool.
-
Toolz: A set of functional programming tools for iterators, functions, and dictionaries.
-
Coconut: Variant of Python built for simple, elegant, more Pythonic functional programming.
-
More-itertools: Operations that have more iterable objects than itertools.
-
Returns: A collection of type-safe units, converters, and compositing tools.
The third party API
A library for accessing third-party apis. See: List of Python API Wrappers and Libraries.
-
Apache-libcloud: A Python library designed for various clouds.
-
Boto3: Python interface to Amazon Web Services.
-
Django-wordpress: Django’s wordpress model and view.
-
Facebook-sdk: Python SDK for the Facebook platform.
-
Facepy: Facepy makes interacting with Facebook’s Graph API much easier.
-
Gmail: Python interface for Gmail.
-
Google-api-python-client: Google APIs client library for Python.
-
Gspread: Python API for Google spreadsheets.
-
Twython: Encapsulation of the Twitter API.
The conversation tool
Software and libraries for DevOps.
-
Ansible: A very simple IT automation platform.
-
SaltStack: Infrastructure automation and management system.
-
OpenStack: Open source software for building private and public clouds.
-
Docker Compose: Fast, isolated development environment that uses Docker.
-
Fabric: A simple, Python-style tool for remote execution and deployment.
-
Cuisine: Provides a series of advanced functions for Fabric.
-
Fabtools: a tool for writing awesome Fabric files.
-
Gitapi: Git’s pure Python API.
-
Hgapi: Mercurial’s pure Python API.
-
Honcho: Foreman Python clone used to manage procfile-based applications.
-
Pexpect: Control interactive programs in a pseudo-terminal, like GNU Expect.
-
Psutil: a cross-platform process and system tools module.
-
Supervisor: A process control system for UNIX.
-
Cloudinit: A multi-distribution package that handles the early initialization of cloud instances.
-
Pyinfra: A generic CLI toolkit and Python library for automated infrastructure.
-
Honcho: A Python clone of Foreman used to manage procfile-based applications.
-
BorgBackup: Deduplication archive with compression and encryption functions.
-
Docker-compose: a fast standalone development environment that uses Docker.
Task scheduling
Task scheduling library.
-
APScheduler: lightweight but powerful in-process task scheduling that allows you to schedule functions.
-
Django-schedule: a django scheduling application.
-
Doit: A task execution and build tool.
-
Gunnery: Multi-purpose task execution tool for distributed systems with a Web interactive interface.
-
Joblib: A set of tools that provide a lightweight workflow for Python.
-
Plan: Write crontab files if the magic works.
-
Schedule: User-friendly Python task scheduling library.
-
Spiff: A powerful workflow engine implemented using pure Python.
-
TaskFlow: A Python library that makes it easy to perform tasks, consistent and reliable.
-
Airflow: Is a workflow allocation management system that manages the flow of a task via directed acyclic diagrams, setting up task dependencies and scheduling.
-
Prefect: A modern workflow choreography framework that makes it easy to build, plan, and monitor robust data pipelines.
External function interface
Libraries that use foreign function interfaces.
-
Cffi: A foreign function interface for calling C code.
-
Ctypes :(Python standard library) foreign function interfaces used to call C code.
-
PyCUDA: Nvidia CUDA API package.
-
SWIG: Simplified wrapper and interface generator.
refactoring
Python refactoring-related libraries and tools.
-
Bicycle Repair Man: A Reconstruction tool for Python.
-
Bowler: Secure code refactoring for modern Python.
-
Rope: a Python refactoring library.
A high performance
Library to make Python faster.
-
Cython: Optimized static compiler for Python. Use type mixing to compile Python into C or C++ modules for a huge performance boost.
-
CLPython: An implementation of the Python programming language written in Common Lisp.
-
Grumpy: A more powerful alternative to CPython2.7 (alpha) for the compiler than the interpreter.
-
IronPython: implementation of the Python programming language written in C#.
-
Jython: An implementation of the Python programming language written in Java for the JVM.
-
MicroPython: A compact and efficient implementation of the Python programming language.
-
Pyjion: Python JIT based on CoreCLR.
-
Numba: Python JIT (Just in time) compiler for scientific Python, developed by the developers of Cython and NumPy.
-
PeachPy: an x86-64 assembler embedded in Python. Can be used as an inline Python assembler or standalone assembler for Windows, Linux, OS X, Native Client, or Go.
-
PyPy: Python implemented using Python. The interpreter uses dark magic to speed Up Python without adding additional type information.
-
Pyston: Python implementation built using LLVM and modern JIT technology with the goal of achieving good performance.
-
Stackless Python: An enhanced version of Python.
Microsoft’s Windows platform
Python programming on Windows platforms.
-
Python(X, Y) : Python distribution for scientific applications, based on Qt and Spyder.
-
Pythonlibs: An unofficial Python extension binary for the Windows platform.
-
PythonNet: Integration of Python with the.NET common Language runtime (CLR).
-
PyWin32: Python extension for Windows.
-
WinPython: Portable development environment for Windows 7/8.
Network visualization and SDN
Tools and libraries for network visualization and SDN(software defined Networks).
-
Mininet: a popular network simulator and API written in Python.
-
POX: An open source development platform for Python-based software-defined network applications such as the OpenFlow SDN controller.
-
Pyretic: a member of the popular SDN programming language that provides powerful abstraction capabilities for network switches and emulators.
-
SDX Platform: SDN based IXP implementation that affects Mininet, POX and Pyretic.
-
NRU: a component-based software defined networking framework.
-
Napalm: Network devices can be manipulated across vendor apis.
hardware
A library used to program hardware.
-
Ino: Command line tool for operating Arduino.
-
Pyro: Python robot programming library.
-
PyUserInput: cross-platform, mouse and keyboard control module.
-
Scapy: a great library for manipulating packets.
-
Wifi: A Python library and command-line tool for operating wifi on Linux platforms.
-
Pingo: Pingo provides a unified API for programming devices like Raspberry Pi, pcDuino, Intel Galileo, and others.
-
Keyboard: Hooks and emulates global keyboard events on Windows and Linux.
-
Mouse: Hooks and emulates global mouse events on Windows and Linux.
compatibility
A library to help migrate from Python 2 to Python 3.
-
Python-future: This is the missing compatibility layer between Python 2 and Python 3.
-
Six: Compatibility tools for Python 2 and 3.
-
Modernize Python code so that it can eventually migrate to Python 3
Algorithms and design patterns
Python implementations of data structures, algorithms, and design patterns. You can also refer to awesome algorithms.
-
algorithm
-
-
Algorithms: Simple examples of data structures and algorithms.
-
Python-ds: Collection of data structures and algorithms for interviews.
-
Sortedcontainers: a fast, pure Python implementation of sorting collections.
-
TheAlgorithms: Python implementation of all algorithms.
-
-
Design patterns
-
-
PyPattyrn: A simple and effective library for implementing common design patterns.
-
Python-patterns: A collection of Python design patterns.
-
Transitions: Lightweight, object-oriented finite-state machine implementations.
-
Enhanced implementation of built-in classes
An enhanced implementation library of some of Python’s built-in classes.
-
Attrs: A template that replaces __init__, __eq__, __repr__, and other methods at class definition.
-
Bidict: Efficient Pythonic bidirectional mapping data structures and related functions.
-
Box: Python dictionary with advanced dot notation access.
-
Dataclasses :(Python standard library) dataclass.
-
DottedDict: library that provides a way to access lists and dictionaries using dot path notation.
The robot
Robot related library.
-
PythonRobotics: A collection of various robot algorithms with visual effects.
-
Rospy: ROS (Robot Operating System) library.
The chat tool
Chatbot development related library.
- Errbot: The simplest and most popular chatbot that implements ChatOps.
Editor plug-ins and ides
-
Emacs
-
- Elpy: Emacs Python development environment.
-
Sublime Text
-
-
Anaconda: Anaconda transforms a full-featured Python development IDE into Sublime Text 3.
-
SublimeJEDI: a great autocomplete library for Sublime Text of Jedi.
-
-
Vim
-
-
Jedi-vim: Vim binding for Python’s Jedi autocomplete library.
-
Python-mode: an all-in-one plug-in that converts Vim into a Python IDE.
-
YouCompleteMe: Python engine that contains Jedi completion.
-
-
Visual Studio
-
- PTVS: Visual Studio Python tools.
-
Visual Studio Code
-
- Python: an official VSCode extension with rich support for Python.
-
IDE
-
-
PyCharm: A commercial Python IDE from JetBrains. A free community version is also available.
-
Spyder: Open source Python IDE.
-
Enterprise application integration
Platforms and tools for integration in an enterprise environment.
- Zato: Python integration of ESB, SOA, REST, APIs and cloud.
GraphQL
GraphQL libraries.
-
Graphene: Python GraphQL framework.
-
Tartiflette – AIoHTTP: Tartiflette’s AIoHTTP-based decorator for exposing the GraphQL API over HTTP.
-
Tartiflette – ASGi: AsGI support for tartiflette GraphQL engine.
-
Tartiflette: SDL first GraphQL engine implementation that supports Python 3.6+ and Asyncio.
miscellaneous
A library that does not fall into any of the above categories, but is very useful.
-
Blinker: Fast Python runtime signal/event allocation system.
-
Boltons: A set of pure Python utilities.
-
Itsdangerous: A helper tool for passing trusted data to untrusted environments.
-
Magenta: Tools for generating music and art using ARTIFICIAL intelligence.
-
Pluginbase: A simple but flexible Python plug-in system.
-
Tryton: A generic business framework.