Awesome Python Awesome

-

A curated list of awesome Python frameworks, libraries and software. Inspired by awesome-php.

+

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

+

Inspired by awesome-php.

@@ -520,13 +527,14 @@
  • Office
    • Marmir - Takes Python data structures and turns them into spreadsheets.
    • -
    • openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
    • +
    • openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
    • +
    • pyexcel - Providing one API for reading, manipulating and writing csv, ods, xls, xlsx and xlsm files.
    • python-docx - Reads, queries and modifies Microsoft Word 2007/2008 docx files.
    • +
    • relatorio - Templating OpenDocument files.
    • unoconv - Convert between any document format supported by LibreOffice/OpenOffice.
    • -
    • XlsxWriter - A Python module for creating Excel .xlsx files.
    • +
    • XlsxWriter - A Python module for creating Excel .xlsx files.
    • xlwings - A BSD-licensed library that makes it easy to call Python from Excel and vice versa.
    • xlwt / xlrd - Writing and reading data and formatting information from Excel files.
    • -
    • relatorio - Templating OpenDocument files.
  • PDF
      @@ -557,12 +565,13 @@

      Libraries for working with human languages.

      • NLTK - A leading platform for building Python programs to work with human language data.
      • -
      • Jieba - Chinese text segmentation.
      • -
      • langid.py - Stand-alone language identification system.
      • Pattern - A web mining module for the Python.
      • +
      • Jieba - Chinese text segmentation.
      • SnowNLP - A library for processing Chinese text.
      • -
      • TextBlob - Providing a consistent API for diving into common NLP tasks.
      • +
      • spaCy - A library for industrial-strength natural language processing in Python and Cython.
      • +
      • TextBlob - Providing a consistent API for diving into common NLP tasks.
      • TextGrocery - A simple, efficient short-text classification tool based on LibLinear and Jieba.
      • +
      • langid.py - Stand-alone language identification system.

      Documentation

      Libraries for generating project documentation.

      @@ -588,6 +597,7 @@

      Libraries for building command-line application.

      • Command-line Application Development
          +
        • asciimatics - Cross-platform, full-screen terminal package (i.e. mouse/keyboard input and coloured, positioned text output) complete with high-level API for complex animations and special effects.
        • 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.
        • @@ -610,6 +620,7 @@
        • percol - Adds flavor of interactive selection to the traditional pipe concept on UNIX.
        • SAWS - A Supercharged AWS CLI.
        • thefuck - Correcting your previous console command.
        • +
        • try - A dead simple CLI to try out python packages - It's never been easier.
        • mycli - A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.
        • pgcli - Postgres CLI with autocompletion and syntax highlighting.
        @@ -626,7 +637,7 @@

        Imagery

        Libraries for manipulating images.

          -
        • pillow - Pillow is the friendly PIL fork.
        • +
        • pillow - Pillow is the friendly PIL fork.
        • hmap - Image histogram remapping.
        • imgSeek - A project for searching a collection of images using visual similarity.
        • nude.py - Nudity detection.
        • @@ -709,7 +720,7 @@
        • PostgreSQL
          • psycopg2 - The most popular PostgreSQL adapter for Python.
          • queries - A wrapper of the psycopg2 library for interacting with PostgreSQL.
          • -
          • txpostgres - Twisted based asynchronous driver for PostgreSQL.
          • +
          • txpostgres - Twisted based asynchronous driver for PostgreSQL.
        • Other Relational Databases
            @@ -720,8 +731,8 @@
          • NoSQL Databases
            • cassandra-python-driver - Python driver for Cassandra.
            • -
            • HappyBase - A developer-friendly library for Apache HBase.
            • -
            • Plyvel - A fast and feature-rich Python interface to LevelDB.
            • +
            • HappyBase - A developer-friendly library for Apache HBase.
            • +
            • Plyvel - A fast and feature-rich Python interface to LevelDB.
            • py2neo - Python wrapper client for Neo4j's restful interface.
            • pycassa - Python Thrift driver for Cassandra.
            • PyMongo - The official Python client for MongoDB.
            • @@ -781,6 +792,13 @@
            • web2py - A full stack web framework and platform focused in the ease of use.
            • Tornado - A Web framework and asynchronous networking library.
            +

            Serverless Frameworks

            +

            Frameworks for developing serverless Python code.

            +
              +
            • apex - Build, deploy, and manage AWS Lambda functions with ease.
            • +
            • Zappa - A tool for deploying WSGI applications on AWS Lambda and API Gateway.
            • +
            • python-lambda - A toolkit for developing and deploying Python code in AWS Lambda.
            • +

            Permissions

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

              @@ -825,20 +843,21 @@
            • Flask
              • flask-api - Browsable Web APIs for Flask.
              • -
              • flask-restful - Quickly building REST APIs for Flask.
              • -
              • flask-restless - Generating RESTful APIs for database models defined with SQLAlchemy.
              • +
              • flask-restful - Quickly building REST APIs for Flask.
              • +
              • flask-restless - Generating RESTful APIs for database models defined with SQLAlchemy.
              • flask-api-utils - Taking care of API representation and authentication for Flask.
              • eve - REST API framework powered by Flask, MongoDB and good intentions.
            • Pyramid
                -
              • cornice - A REST framework for Pyramid.
              • +
              • cornice - A RESTful framework for Pyramid.
            • Framework agnostic
              • falcon - A high-performance framework for building cloud APIs and web app backends.
              • +
              • hug - A Python3 framework for cleanly exposing APIs over HTTP and the Command Line with automatic documentation and validation.
              • sandman - Automated REST APIs for existing database-driven systems.
              • -
              • restless - Framework agnostic REST framework based on lessons learned from Tastypie.
              • +
              • restless - Framework agnostic REST framework based on lessons learned from Tastypie.
              • ripozo - Quickly creating REST/HATEOAS/Hypermedia APIs.
            • @@ -846,7 +865,7 @@

              Serialization

              Libraries for serializing complex data types

                -
              • marshmallow - marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.
              • +
              • marshmallow - marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.

              Authentication

              Libraries for implementing authentications schemes.

              @@ -875,8 +894,7 @@

              Template Engine

              Libraries and tools for templating and lexing.

                -
              • Jinja2 - A modern and designer friendly templating language.
              • -
              • Chameleon - An HTML/XML template engine. Modeled after ZPT, optimized for speed.
              • +
              • Jinja2 - A modern and designer friendly templating language.
              • Genshi - Python templating toolkit for generation of web-aware output.
              • Mako - Hyperfast and lightweight templating for the Python platform.
              @@ -897,7 +915,7 @@
            • elasticsearch-dsl-py - The official high-level Python client for Elasticsearch.
            • esengine - ElasticSearch ODM (Object Document Mapper) for Python.
            • solrpy - A Python client for solr.
            • -
            • Whoosh - A fast, pure Python search engine library.
            • +
            • Whoosh - A fast, pure Python search engine library.

            News Feed

            Libraries for building user's activities.

            @@ -909,46 +927,45 @@

            Tools for managing, compressing and minifying website assets.

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

            Caching

            Libraries for caching data.

              -
            • Beaker - A library for caching and sessions for use with web applications and stand-alone Python scripts and applications.
            • +
            • Beaker - A library for caching and sessions for use with web applications and stand-alone Python scripts and applications.
            • django-cache-machine - Automatic caching and invalidation for Django models.
            • django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
            • django-viewlet - Render template parts with extended cache control.
            • -
            • dogpile.cache - dogpile.cache is next generation replacement for Beaker made by same authors.
            • +
            • dogpile.cache - dogpile.cache is next generation replacement for Beaker made by same authors.
            • HermesCache - Python caching library with tag-based invalidation and dogpile effect prevention.
            • johnny-cache - A caching framework for django applications.
            • pylibmc - A Python wrapper around the libmemcached interface.
            • +
            • DiskCache - SQLite and file backed cache backend with faster lookups than memcached and redis.

            Email

            Libraries for sending and parsing email.

              -
            • django-celery-ses - Django email back end with AWS SES and Celery.
            • envelopes - Mailing for human beings.
            • flanker - A email address and Mime parsing library.
            • imbox - Python IMAP for Humans.
            • inbox.py - Python SMTP Server for Humans.
            • -
            • inbox - The open source email toolkit.
            • lamson - Pythonic SMTP Application Server.
            • -
            • mailjet - Mailjet API implementation for batch mailing, statistics and more.
            • -
            • marrow.mailer - High-performance extensible mail delivery framework.
            • +
            • Marrow Mailer - High-performance extensible mail delivery framework.
            • modoboa - A mail hosting and management platform including a modern and simplified Web UI.
            • -
            • pyzmail - Compose, send and parse emails.
            • -
            • Talon - Mailgun library to extract message quotations and signatures.
            • +
            • Nylas Sync Engine - Providing a RESTful API on top of a powerful email sync platform.
            • +
            • yagmail - Yet another Gmail/SMTP client.

            Internationalization

            Libraries for working with i18n.

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

            URL Manipulation

            Libraries for parsing URLs.

            @@ -962,12 +979,12 @@

            HTML Manipulation

            Libraries for working with HTML and XML.

              -
            • BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.
            • -
            • bleach - A whitelist-based HTML sanitization and text linkification library.
            • +
            • BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.
            • +
            • bleach - A whitelist-based HTML sanitization and text linkification library.
            • cssutils - A CSS library for Python.
            • html5lib - A standards-compliant library for parsing and serializing HTML documents and fragments.
            • lxml - A very fast, easy-to-use and versatile library for handling HTML and XML.
            • -
            • MarkupSafe - Implements a XML/HTML/XHTML Markup safe string for Python.
            • +
            • MarkupSafe - Implements a XML/HTML/XHTML Markup safe string for Python.
            • pyquery - A jQuery-like library for parsing HTML.
            • untangle - Converts XML documents to Python objects for easy access.
            • xhtml2pdf - HTML/CSS to PDF converter.
            • @@ -1004,23 +1021,22 @@

              Forms

              Libraries for working with forms.

                -
              • Deform - Python HTML form generation library influenced by the formish form generation library.
              • +
              • Deform - Python HTML form generation library influenced by the formish form generation library.
              • django-bootstrap3 - Bootstrap 3 integration with Django.
              • -
              • django-crispy-forms - A Django app which lets you create beautiful forms in a very elegant and DRY way.
              • +
              • django-crispy-forms - A Django app which lets you create beautiful forms in a very elegant and DRY way.
              • django-remote-forms - A platform independent Django form serializer.
              • -
              • WTForms - A flexible forms validation and rendering library.
              • -
              • WTForms-JSON - A WTForms extension for JSON data handling.
              • +
              • WTForms - A flexible forms validation and rendering library.

              Data Validation

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

                -
              • Cerberus - A mappings-validator with a variety of rules, normalization-features and simple customization that uses a pythonic schema-definition.
              • -
              • colander - A system for validating and deserializing data obtained via XML, JSON, an HTML form post or any other equally simple data serialization.
              • -
              • kmatch - A language for matching/validating/filtering Python dictionaries.
              • -
              • schema - A library for validating Python data structures.
              • Schematics - Data Structure Validation.
              • +
              • schema - A library for validating Python data structures.
              • +
              • jsonschema - An implementation of JSON Schema for Python.
              • +
              • Cerberus - A lightweight and extensible data validation library.
              • +
              • colander - Validating and deserializing data obtained via XML, JSON, an HTML form post.
              • +
              • voluptuous - A Python data validation library.
              • valideer - Lightweight extensible data validation and adaptation library.
              • -
              • voluptuous - A Python data validation library. It is primarily intended for validating data coming into Python as JSON, YAML, etc.

              Anti-spam

              Libraries for fighting spam.

              @@ -1038,7 +1054,7 @@
              • Ajenti - The admin panel your servers deserve.
              • django-suit - Alternative Django Admin-Interface (free only for Non-commercial use).
              • -
              • django-xadmin - Drop-in replacement of Django admin comes with lots of goodies.
              • +
              • django-xadmin - Drop-in replacement of Django admin comes with lots of goodies.
              • flask-admin - Simple and extensible administrative interface framework for Flask.
              • flower - Real-time monitor and web admin for Celery.
              • Grappelli – A jazzy skin for the Django Admin-Interface.
              • @@ -1058,7 +1074,7 @@

                Libraries for starting and communicating with OS processes.

                • envoy - Python subprocess for Humans™.
                • -
                • sarge - Yet another wrapper for subprocess.
                • +
                • sarge - Yet another wrapper for subprocess.
                • sh - A full-fledged subprocess replacement for Python.

                Concurrency and Parallelism

                @@ -1092,14 +1108,14 @@

                WSGI-compatible web servers.

                • gunicorn - Pre-forked, partly written in C.
                • -
                • uwsgi - A project aims at developing a full stack for building hosting services, written in C.
                • +
                • uwsgi - A project aims at developing a full stack for building hosting services, written in C.
                • bjoern - Asynchronous, very fast and written in C.
                • fapws3 - Asynchronous (network side only), written in C.
                • meinheld - Asynchronous, partly written in C.
                • netius - Asynchronous, very fast.
                • paste - Multi-threaded, stable, tried and tested.
                • rocket - Multi-threaded.
                • -
                • waitress - Multi-threaded, poweres Pyramid.
                • +
                • waitress - Multi-threaded, poweres Pyramid.
                • Werkzeug - A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects.

                RPC Servers

                @@ -1142,7 +1158,7 @@
              • Pygame - Pygame is a set of Python modules designed for writing games.
              • PyOgre - Python bindings for the Ogre 3D render engine, can be used for games, simulations, anything 3D.
              • PyOpenGL - Python ctypes bindings for OpenGL and it's related APIs.
              • -
              • PySDL2 - A ctypes based wrapper for the SDL2 library.
              • +
              • PySDL2 - A ctypes based wrapper for the SDL2 library.
              • RenPy - A Visual Novel engine.

              Logging

              @@ -1150,8 +1166,8 @@
              • logging - (Python standard library) Logging facility for Python.
              • logbook - Logging replacement for Python.
              • -
              • Eliot - Logging for complex & distributed systems.
              • -
              • Raven - The Python client for Sentry.
              • +
              • Eliot - Logging for complex & distributed systems.
              • +
              • Raven - The Python client for Sentry.
              • Sentry - A realtime logging and aggregation server.

              Testing

              @@ -1159,23 +1175,24 @@
              • Testing Frameworks
                • unittest - (Python standard library) Unit testing framework.
                • -
                • nose - nose extends unittest.
                • -
                • contexts - A BDD framework for Python 3.3+. Inspired by C#'s Machine.Specifications.
                • -
                • hypothesis - Hypothesis is an advanced Quickcheck style property based testing library.
                • -
                • mamba - The definitive testing tool for Python. Born under the banner of BDD.
                • -
                • PyAutoGUI - PyAutoGUI is a cross-platform GUI automation Python module for human beings.
                • -
                • pyshould - Should style asserts based on PyHamcrest.
                • +
                • nose - A nicer unittest for Python.
                • pytest - A mature full-featured Python testing tool.
                • -
                • green - A clean, colorful test runner.
                • -
                • pyvows - BDD style testing for Python. Inspired by Vows.js.
                • +
                • hypothesis - Hypothesis is an advanced Quickcheck style property based testing library.
                • +
                • mamba - The definitive testing tool for Python. Born under the banner of BDD.
                • Robot Framework - A generic test automation framework.
              • -
              • Web Testing
                  +
                • Test Runners
                    +
                  • tox - Auto builds and tests distributions in multiple Python versions
                  • +
                  • green - A clean, colorful test runner.
                  • +
                  +
                • +
                • GUI / Web Testing
                  • Selenium - Python bindings for Selenium WebDriver.
                  • locust - Scalable user load testing tool written in Python.
                  • sixpack - A language-agnostic A/B Testing framework.
                  • -
                  • splinter - Open source tool for testing web applications.
                  • +
                  • splinter - Open source tool for testing web applications.
                  • +
                  • PyAutoGUI - PyAutoGUI is a cross-platform GUI automation Python module for human beings.
                • Mock
                    @@ -1216,12 +1233,13 @@
                  • code2flow - Turn your Python and JavaScript code into DOT flowcharts.
                  • pycallgraph - A library that visualises the flow (call graph) of your Python application.
                  • pysonar2 - A type inferencer and indexer for Python.
                  • +
                  • coala - Language independent and easily extendable code analysis application.
                • Linter
                  • Flake8 - The modular source code checker: pep8, pyflakes and co.
                  • Pylint - A Fully customizable source code analyzer.
                  • -
                  • pylama - Code audit tool for Python and JavaScript.
                  • +
                  • pylama - Code audit tool for Python and JavaScript.
                @@ -1258,10 +1276,11 @@
              • bcbio-nextgen - A toolkit providing best-practice pipelines for fully automated high throughput sequencing analysis.
              • bccb - Collection of useful code related to biological analysis.
              • Biopython - Biopython is a set of freely available tools for biological computation.
              • -
              • blaze - NumPy and Pandas interface to Big Data.
              • +
              • blaze - NumPy and Pandas interface to Big Data.
              • cclib - A library for parsing and interpreting the results of computational chemistry packages.
              • NetworkX - A high-productivity software for complex networks.
              • Neupy - Running and testing different Artificial Neural Networks algorithms.
              • +
              • NIPY - A collection of neuroimaging toolkits.
              • Numba - Python JIT (just in time) complier to LLVM aimed at scientific Python by the developers of Cython and NumPy.
              • NumPy - A fundamental package for scientific computing with Python.
              • Open Babel - A chemical toolbox designed to speak the many languages of chemical data.
              • @@ -1308,7 +1327,7 @@
              • Pylearn2 - A Machine Learning library based on Theano.
              • python-recsys - A Python library for implementing a Recommender System.
              • scikit-learn - A Python module for machine learning built on top of SciPy.
              • -
              • pydeep-Deep learning in python
              • +
              • pydeep - Deep learning in python
              • vowpal_porpoise - A lightweight Python wrapper for Vowpal Wabbit.
              • skflow - A simplified interface for TensorFlow (mimicking scikit-learn).
              @@ -1336,7 +1355,7 @@
            • apache-libcloud - One Python library for all clouds.
            • boto - Python interface to Amazon Web Services.
            • django-wordpress - WordPress models and views for Django.
            • -
            • facebook-sdk - Facebook Platform Python SDK.
            • +
            • facebook-sdk - Facebook Platform Python SDK.
            • facepy - Facepy makes it really easy to interact with Facebook's Graph API
            • gmail - A Pythonic interface for Gmail.
            • google-api-python-client - Google APIs Client Library for Python.
            • @@ -1350,20 +1369,24 @@
            • SaltStack - Infrastructure automation and management system.
            • OpenStack - Open source software for building private and public clouds.
            • Docker Compose - Fast, isolated development environments using Docker.
            • -
            • Fabric - A simple, Pythonic tool for remote execution and deployment.
            • +
            • Cloud-Init - A multi-distribution package that handles early initialization of a cloud instance.
            • cuisine - Chef-like functionality for Fabric.
            • +
            • Fabric - A simple, Pythonic tool for remote execution and deployment.
            • Fabtools - Tools for writing awesome Fabric files.
            • -
            • gitapi - Pure-Python API for Git.
            • -
            • hgapi - Pure-Python API for Mercurial.
            • honcho - A Python clone of Foreman, for managing Procfile-based applications.
            • pexpect - Controlling interactive programs in a pseudo-terminal like GNU expect.
            • psutil - A cross-platform process and system utilities module.
            • supervisor - Supervisor process control system for UNIX.
            +

            ChatOps Tools

            +

            Libraries for chatbot development.

            +
              +
            • Errbot - The easiest and most popular chatbot to implement ChatOps.
            • +

            Job Scheduler

            Libraries for scheduling jobs.

              -
            • APScheduler - A light but powerful in-process task scheduler that lets you schedule functions.
            • +
            • APScheduler - A light but powerful in-process task scheduler that lets you schedule functions.
            • django-schedule - A calendaring app for Django.
            • doit - A task runner and build tool.
            • gunnery - Multipurpose task execution tool for distributed systems with web-based interface.
            • @@ -1414,7 +1437,7 @@
            • Pyro - Python Robotics.
            • PyUserInput - A module for cross-platform control of the mouse and keyboard.
            • scapy - A brilliant packet manipulation library.
            • -
            • wifi - A Python library and command line tool for working with WiFi on Linux.
            • +
            • wifi - A Python library and command line tool for working with WiFi on Linux.
            • Pingo - Pingo provides a uniform API to program devices like the Raspberry Pi, pcDuino, Intel Galileo, etc.

            Compatibility

            @@ -1428,7 +1451,7 @@

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

            • blinker - A fast Python in-process signal/event dispatching system.
            • -
            • itsdangerous - Various helpers to pass trusted data to untrusted environments.
            • +
            • itsdangerous - Various helpers to pass trusted data to untrusted environments.
            • pluginbase - A simple but flexible plugin system for Python.
            • Pychievements - A framework for creating and tracking achievements.
            • Tryton - A general purpose business framework.
            • @@ -1482,7 +1505,9 @@

            Code Quality

              +
            • Codecov - Code coverage dashboard.
            • Codacy - Automated Code Review to ship better code, faster. Free for Open Source.
            • +
            • Landscape - Hosted continuous Python code metrics.
            • QuantifiedCode - A data-driven, automated, continuous code review tool.

            Resources

            @@ -1492,7 +1517,7 @@
          • r/Python
          • CoolGithubProjects
          • Django Packages
          • -
          • Full Stack Python
          • +
          • Full Stack Python
          • Python 3 Wall of Superpowers
          • Python Hackers
          • Python ZEEF
          • @@ -1501,6 +1526,7 @@

          Weekly

          Contributing

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

          -

          I would keep some pull requests open if I'm not sure whether the libraries are awesome, you could vote for them by leaving a comment that contains +1.