Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
276 lines (206 sloc) 16.2 KB

Core Python

Python is a Dynamic and strongly typed programming language. The Standard library contains a lot of useful modules to make your life easier. The language is rich in features, Algorithms, C APIs etc.

Functional Programming

Functional Programming with Python.

  • CyToolz - Cython implementation of Toolz: High performance functional utilities.
  • fn.py - Functional programming in Python: implementation of missing features to enjoy FP.
  • funcy - A fancy and practical functional tools.
  • Toolz - A collection of functional utilities for iterators, functions, and dictionaries.

Processes

Libraries for starting and communicating with OS processes.

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

Concurrency and Parallelism

Libraries for concurrent and parallel execution.

  • multiprocessing - (Python standard library) Process-based "threading" interface.
  • threading - (Python standard library) Higher-level threading interface.
  • eventlet - Asynchronous framework with WSGI support.
  • gevent - A coroutine-based Python networking library that uses greenlet.
  • Tomorrow - Magic decorator syntax for asynchronous code.

Environment Management

Libraries for Python version and environment management.

  • p - Dead simple interactive Python version management.
  • pyenv - Simple Python version management.
  • PyRun - A one-file, no-installation-needed version of Python.
  • Vex - Run a command in the named virtualenv.
  • virtualenv - A tool to create isolated Python environments.
  • virtualenvwrapper - A set of extensions to virtualenv.

Package Management

Libraries for package and dependency management.

  • pip - The Python package and dependency manager.
  • conda - Cross-platform, Python-agnostic binary package manager.
  • Curdling - Curdling is a command line tool for managing Python packages.
  • wheel - The new standard of Python distribution and are intended to replace eggs.

Package Repositories

Local PyPI repository server and proxies.

  • warehouse - Next generation Python Package Repository (PyPI).
  • bandersnatch - PyPI mirroring tool provided by Python Packaging Authority (PyPA)
  • devpi - PyPI server and packaging/testing/release tool.
  • localshop - PyPI server which mirrors official packages on-demand, and also supports local (private) package uploads.

Distribution

Libraries to create packaged executables for release distribution.

  • PyInstaller - Converts Python programs into stand-alone executables (cross-platform).
  • dh-virtualenv - Build and distribute a virtualenv as a Debian package.
  • Nuitka - Compile scripts, modules, packages to an executable or extension module.
  • py2app - Freezes Python scripts (Mac OS X).
  • py2exe - Freezes Python scripts (Windows).
  • pynsist - A tool to build Windows installers, installers bundle Python itself.

Build Tools

Compile software from source code.

  • buildout - A build system for creating, assembling and deploying applications from multiple parts, some of which may be non-Python-based.
  • BitBake - A make-like build tool with the special focus of distributions and packages for embedded Linux.
  • fabricate - A build tool that finds dependencies automatically for any language.
  • PlatformIO - A console tool to build code with different development platforms.
  • PyBuilder - A continuous build tool written in pure Python which mainly targets Python applications.
  • SCons - A software construction tool.

Interactive Interpreter

Interactive Python interpreters (REPL).

  • IPython - A rich toolkit to help you make the most out of using Python interactively.
  • bpython – A fancy interface to the Python interpreter.
  • ptpython - Advanced Python REPL built on top of the python-prompt-toolkit.

Files

Libraries for file manipulation and MIME type detection.

  • imghdr - (Python standard library) Determine the type of an image.
  • mimetypes - (Python standard library) Map filenames to MIME types.
  • path.py - A module wrapper for os.path.
  • pathlib - (Python standard library in Python 3.4+) An cross-platform, object-oriented path library.
  • python-magic - A Python interface to the libmagic file type identification library.
  • Unipath - An object-oriented approach to file/directory operations.
  • watchdog - API and shell utilities to monitor file system events.

Date and Time

Libraries for working with dates and times.

  • arrow - Better dates & times for Python.
  • Chronyk - A Python 3 library for parsing human-written times and dates.
  • dateutil - Extensions to the standard Python datetime module.
  • delorean - A library for clearing up the inconvenient truths that arise dealing with datetimes.
  • moment - A Python library for dealing with dates/times. Inspired by Moment.js.
  • PyTime - A easy-use Python module which aims to operate date/time/datetime by string.
  • pytz - World timezone definitions, modern and historical. Brings the tz database into Python.
  • when.py - Providing user-friendly functions to help perform common date and time actions.

Text Processing

Libraries for parsing and manipulating plain texts.

General

  • chardet - Python 2/3 compatible character encoding detector.
  • difflib - (Python standard library) Helpers for computing deltas.
  • esmre - Regular expression accelerator.
  • ftfy - Makes Unicode text less broken and more consistent automagically.
  • fuzzywuzzy - Fuzzy String Matching.
  • Levenshtein - Fast computation of Levenshtein distance and string similarity.
  • pangu.py - Spacing texts for CJK and alphanumerics.
  • pyfiglet - An implementation of figlet written in Python.
  • shortuuid - A generator library for concise, unambiguous and URL-safe UUIDs.
  • unidecode - ASCII transliterations of Unicode text.
  • uniout - Print readable chars instead of the escaped string.
  • xpinyin - A library to translate Chinese hanzi (漢字) to pinyin (拼音).

Slugify

  • awesome-slugify - A Python slugify library that can preserve unicode.
  • python-slugify - A Python slugify library that translates unicode to ASCII.
  • unicode-slugify - A slugifier that generates unicode slugs with Django as a dependency.

Parser

  • phonenumbers - Parsing, formatting, storing and validating international phone numbers.
  • PLY - Implementation of lex and yacc parsing tools for Python
  • Pygments - A generic syntax highlighter.
  • pyparsing - A general purpose framework for generating parsers.
  • python-nameparser - Parsing human names into their individual components.
  • python-user-agents - Browser user agent parser.
  • sqlparse - A non-validating SQL parser.

Specific Formats Processing

Libraries for parsing and manipulating specific formats.

  • General
    • rows - A common, beautiful interface to tabular data, no matter the format
    • tablib - A module for Tabular Datasets in XLS, CSV, JSON, YAML.
  • 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.
    • python-docx - Reads, queries and modifies Microsoft Word 2007/2008 docx files.
    • unoconv - Convert between any document format supported by LibreOffice/OpenOffice.
    • 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.
  • PDF
    • PDFMiner - A tool for extracting information from PDF documents.
    • PyPDF2 - A library capable of splitting, merging and transforming PDF pages.
    • ReportLab - Allowing Rapid creation of rich PDF documents.
  • Markdown
    • Mistune - Fastest and full featured pure Python parsers of Markdown.
    • Python-Markdown - A Python implementation of John Gruber’s Markdown.
  • YAML
    • PyYAML - YAML implementations for Python.
  • CSV
    • csvkit - Utilities for converting to and working with CSV.
  • Archive
    • unp - A command line tool that can unpack archives easily.

Logging

Libraries for generating and working with logs.

  • 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.
  • Sentry - A realtime logging and aggregation server.

Code Analysis and Linter

Libraries and tools for analysing, parsing and manipulation codebases.

  • Code Analysis
    • 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.
  • Linter
    • Flake8 - The modular source code checker: pep8, pyflakes and co.
    • pylama - Code audit tool for Python and JavaScript.
    • Pylint - A source code analyzer.
  • Automated Refactoring
    • isort - Automatically re-sorts and groups a projects import statements to conform to pep8 and/or internal coding standards. Fast and highly configurable.

Foreign Function Interface

Libraries for providing foreign function interface.

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

High Performance

Libraries for making Python faster.

  • Cython - Optimizing Static Compiler for Python. Uses type mixins to compile Python into C or C++ modules resulting in large performance gains.
  • PyPy - An implementation of Python in Python. The interpreter uses black magic to make Python very fast without having to add in additional type information.
  • Pyston - A Python implementation built using LLVM and modern JIT techniques with the goal of achieving good performance.
  • Stackless Python - An enhanced version of the Python.

Algorithms and Design Patterns

Python implementation of algorithms and design patterns.

Compatibility

Libraries for migrating from Python 2 to 3.

  • Python-Future - The missing compatibility layer between Python 2 and Python 3.
  • Python-Modernize - Modernizes Python code for eventual Python 3 migration.
  • Six - Python 2 and 3 compatibility utilities.

Image processing

Libraries for opening, manipulating and saving images.

  • PIL - Adds image processing capabilities to your Python interpreter.
  • pillow - The friendly PIL fork.

Contributors

The following people helped in creating the above content.