Open Source Software in Python

Curated list of production-grade libraries and tools. Updated by the community.

demjson.py

This is a comprehensive python binding to the JSON language-independent data encoding standard, which is often used as a simpler substitute for XML in AJAX-based web applications.

See all ajax
AOPython

AOPython is an AOP (Aspect Oriented Programming) module for Python. AOPython provides a base Aspect that can advise or wrap function and/or method calls. It also contains a weave function that can weave (apply advice to a subset of- or all functions and methods in) a module, class, or instance. Advice may modify or replace parameters and/or the return value of the advised function or method each time it is called. It can do many other things such as handle exceptions raised by an advised function, collect information on the method call (logging), or obtain and release resources before and after a method is invoked.

See all aspect-oriented-frameworks
Frog

Frog is a web blog tool written in Python, and designed as a web application for Snakelets.

See all bloggers
Aap

The Aap program executes recipes. It is a kind of super-make program. In a recipe you describe how to perform a certain task. Like a Makefile it contains dependencies and build commands. Additionally, many powerful features are included, so that you can use a recipe to: * Build a program by just specifying the program name and the source files * Maintain a web site (the A-A-P site is generated and uploaded with a recipe) * Download the latest version of files * Distribute files to several servers at once * Obtain a module from CVS * Commit changes to CVS; add and remove files automatically * Generate and filter files * Build several variants and on multiple platforms with little effort

See all build-systems
Gnuplot.py

Gnuplot.py is a Python package that interfaces to gnuplot, the popular open-source plotting program. It allows you to use gnuplot from within Python to plot arrays of data from memory, data files, or mathematical functions. If you use Python to perform computations or as `glue' for numerical programs, you can use this package to plot data on the fly as they are computed. And the combination with Python makes it is easy to automate things, including to create crude `animations' by plotting different datasets one after another.

See all charting-and-reporting
GNOWSYS

GNOWSYS is an acronym for Gnowledge Networking and Organizing SYStem. It is developed as a product of a widely used free (as in freedom) web-application server, ZOPE (Zee Object Publishing Environment), and is implemented in a versatile, full-featured object-oriented programming language Python. Its development is supported by Homi Bhabha Centre for Science Education, TIFR. Features: * It is an object oriented database with each object provided by an unique URL. * It is a web-application server. * It can store both data and meta-data of objects. * Objects can be classified according to subclass/superclass relation, and also instantiation relation (class-instance). Polymorphism is possible. * Objects and their classes (called ObjectTypes) can be related in terms of arbitrary relation names. * Metatype (type of types) and relations among them can also be expressed. * Quantifiers and modalities can also be part of the persistent data. * Data and meta-data of objects can be indexed in a catalogue for faster query. * Optionally data can remain anywhere on the Internet keeping only the metadata in the database. This feature will be most useful for what is now becoming popular as semantic web. * Surrogates of procedures (classes, functions, and system calls) can also be installed in the database as special objects. (Any procedure callable through Python is supported.) These procedures execute when invoked as web services. * Using the above feature it is possible to design applications without writing program in any programming language: i.e., specifying the semantics of a program and mapping the elements of the program to the surrogates of procedures is sufficient for GNOWSYS to test the application design. This forms the foundation for semantic computing using GNOWSYS. * Data can be accessed through HTTP, FTP, WebDav, XML-RPC protocols. * GQL: Gnowledge Query Library is being developed for query, retrieval, and management of the DB. Presently it is implemented in XML-RPC. * It is interoperable. Works in all the known operating systems where both Python and Zope are known to work.

See all content-management-systems
PyChecker

PyChecker is a tool for finding bugs in python source code. It finds problems that are typically caught by a compiler for less dynamic languages, like C and C++. It is similar to lint. Because of the dynamic nature of python, some warnings may be incorrect; however, spurious warnings should be fairly infrequent.

See all code-analyzers
SQL Relay

Database connection pool with support for lots of languages and databases.

See all connection-pools
Buzhug

Buzhug is a fast, pure-Python database engine, using a syntax that Python programmers should find very intuitive The data is stored and accessed on disk (it is not an in-memory database) ; the implementation has been designed to make all operations, and especially selection, as fast as possible with an interpreted language

See all database-engines
Frepple

Frepple aims at building a lightweight open source framework that easily and quickly delivers a solution for production planning problems. The initial focus is on small to medium sized planning problems for the discrete manufacturing industry.

See all erp-crm
SnapLogic

SnapLogicis an Open Source Data Integration framework that uses the universal standards of the Web and applies them to the problem of data integration. Unlike commercial integration solutions that are designed for individual integration tasks, SnapLogic has the power and flexibility to address a wide range of data integration requirements without hand-coding. Whether it is data migration and synchronization, ETL for data analytics or data services for Rich Internet Applications, SnapLogic can meet all of your data integration needs.

See all enterprise-service-bus
Sphene Community Tools

SCT (Sphene Community Tools) is a collection of Django applications that are designed to be easily pluggable into any Django project. It currently consists of a Wiki and an extensible Forum application. Features for the forum include rendering of BBCode or markdown (with a pluggable rendering architecture), hierarchical forum categories, granular permissions, new posts-notifications and many more. It is extensible through 'Category Types' and includes a LinkList and Blog application to demonstrate it's use.

See all forum-software
Python Hyperschema

Python Hyperschema is an open source public domain project that creates useful and really cool HTML hypermaps from SQL database schema, consisting of two small PL/SQL files and one Python (or C) source code file. The generated HTML pages have mousover data displays for all foreign keys, hyperlinked to the foreign key tables, as well as a hyperlinked list of all foreign keys pointing to each table and a master index of all tables.

See all general-purpose
Beautiful Soup

Beautiful Soup is a Python HTML/XML parser designed for quick turnaround projects like screen-scraping. Features: * Beautiful Soup won't choke if you give it bad markup. It yields a parse tree that makes approximately as much sense as your original document. This is usually good enough to collect the data you need and run away. * Beautiful Soup provides a few simple methods and Pythonic idioms for navigating, searching, and modifying a parse tree: a toolkit for dissecting a document and extracting what you need. You don't have to create a custom parser for each application. * Beautiful Soup automatically converts incoming documents to Unicode and outgoing documents to UTF-8. .

See all html-parsers
Scribes

Scribes is a text editor for GNOME. Scribes focuses on streamlining your workflow. It does so by ensuring common and repetitive operations are intelligently automated. And also by eliminating factors that prevent you from focusing on your tasks.

See all ides
EasyInstall

Easy Install is a python module (easy_install) bundled with setuptools that lets you automatically download, build, install, and manage Python packages.

See all installer-generators
IssueTrackerProduct

IssueTrackerProduct is a help desk/issue/bug tracker web application under the ZPL license

See all issue-trackers
Logging

Logging is a standard logging system. Based on PEP 282 and comments thereto in comp.lang.python, and influenced by Apache's log4j system. Should work under Python versions >= 1.5.2, except that source line information is not available unless 'sys._getframe()' is.

See all logging
Emesene

Emesene is a platform independent MSN Messenger client written in Python+GTK and distributed under the GNU GPLv2 license. The main idea is to make a client similar to the official client but with a simpler GUI and a nice look.

See all network-clients
NetworkX

NetworkX (NX) is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. Features: * Includes standard graph-theoretic and statistical physics functions * Easy exchange of network algorithms between applications, disciplines, and platforms * Includes many classic graphs and synthetic networks * Nodes and edges can be \"anything\" (e.g. time-series, text, images, XML records) * Exploits existing code from high-quality legacy software in C, C++, Fortran, etc. * Open source (encourages community input) * Unit-tested

See all network-servers
PLY (Python Lex-Yacc)

PLY is an implementation of lex and yacc parsing tools for Python. It uses LR-parsing which is reasonably efficient and well suited for larger grammars and provides most of the standard lex/yacc features including support for empty productions, precedence rules, error recovery, and support for ambiguous grammars.

See all parser-generators
PyPDF

PyPDF is a Pure-Python library built as a PDF toolkit. It is capable of: * extracting document information (title, author, ...), * splitting documents page by page, * merging documents page by page, * cropping pages, * merging multiple pages into a single page, * encrypting and decrypting PDF files.

See all pdf-libraries
adodbapi

adodbapi is a Python module that makes it easy to use Microsoft ADO for connecting with databases and other data sources. Features: * 100% DB-API 2.0 compliant. * Includes pyunit testcases that describes how to use the module.

See all persistence
Basie

Basie is a web-based software project forge that integrates revision control, issue tracking, mailing lists, wikis, status dashboards, and other tools that developers need to work effectively in teams. Basie is simple enough for undergraduate students to master in ten minutes, but powerful enough to support large, distributed teams.

See all project-management
rdfxml.py

rdfxml.py is a standalone Python module in under 10KB that parses RDF/XML using SAX. It was written to be used as a simple drop-in module for larger projectsfor when you just want the smallest and simplest possible module to get the job done.

See all rss-rdf-tools
advas

advas is a python module which provides algorithms for advanced search. These methods are mainly used in information retrieval and linguistics. This package contains: * statistical algorithms: term frequency (tf), term frequency with stop list, inverse document frequency (idf), retrieval status value (rsv), language detection, k-nearest neighbour algorithm (kNN). * linguistic algorithms: stemming algorithms, synonym detection with the use of the OpenThesaurus (plain text version). * sound-like methods: soundex, metaphone, NYSIIS algorithm, caverphone algorithm (version 2.0). * ranking methods a simple descriptor-based ranking algorithm. * text search algorithms: Knuth-Morris-Pratt.

See all search-engines
fcrypt

Python fcrypt is a pure Python implementation of the Unix crypt(3) algorithm, and packaged it with Distutils and with doc strings for pydoc and doctest. It's based on Eric A. Young's optimized fcrypt code, which was written in C.

See all security
Bazaar

Bazaar is a distributed version control system, that reduces barriers to participation in your project. Features: * Good performance: Bazaar status in a tree of 5,000 files takes just 0.5 seconds, so almost every open source project can get the advanced features of Bazaar without slowing down its developers. * Safe with your data: Bazaar has a huge test suite that ensures that new file formats can be tested automatically. The development process follows best practice with code review of all core and community code landings. * Friendly: Bazaar \"Just Works\" (which is why the Ubuntu team chose it for their project). Bazaar has a natural feel, you can publish your code on any web server or use a custom server for performance. Bazaar has perfect support for renaming files AND directories, which means you can unleash your community and merge efficiently even from contributors who are radically restructuring the tree. * Easy to integrate: Bazaar is designed as a Python API with a plugin system, so it is easy to embed in your tools and projects and easy to extend or integrate with existing infrastructure.

See all source-control
Breve

Brevé is a Python template engine that is designed to be clean and elegant with minimal syntax. Brevé templates are actual Python expressions.

See all template-engines
apycot

apycot is an Automated Pythonic Code Tester. This package is designed to run tests on a code repository on a daily basis. It comes with a set of predefined test, essentially for python packages, and a set of predefined reports to display execution results. However, it has been designed to be highly extensible, so you could write your own test or report using the Python language.

See all testing-tools
Aquarium

Aquarium is a Web application framework, written in Python. It provides an approach to producing a Web application without duplication of effort by reducing the amount of code you need to write. It offers convenient libraries and extensible APIs for items such as session management and Web server integration (including CGI, mod_python, FastCGI, or its own Web server, Glass). It provides tight integration with Cheetah, including autocompilation of Cheetah templates.

See all web-frameworks
BoboMail

BoboMail is a webmail application, which provides mail access through a web interface. Features: * read, write, reply, forward, delete and bounce messages * send and receive attachments * decodes quoted-printable, base64 and uuencoded * handles HTML-mails properly (with inline images!) * does not need Javascript * direct support for the following MIME types: message/rfc822, message/delivery-status, multipart/alternative, multipart/mixed, multipart/report, multipart/related, multipart/digest, text/plain, text/html, text/x-vcard, image/jpeg, text/rfc822-headers, image/png, image/x-xpixmap, image/gif * works with POP3-servers and partially IMAP4 (spool-files under development) * easy to modify and customize through HTML-templates * modular design provides easy interface for other authentication methods and mail protocols * provides optionally its own fast multithreading webserver (BoboMailHTTPD) * multi-lingual support (i18n) - currently English, Brazilian Portuguese, Finish, Spanish and German * and it's 100% Python

See all web-mail
CherryPy

CherryPy is object-oriented HTTP framework written in python. CherryPy allows developers to build web applications in much the same way they would build any other object-oriented Python program. This usually results in smaller source code developed in less time.

See all web-servers
Python Web Services

The Web Services for Python Project provides libraries for developing web services using the python programming language. The libraries implement the various protocols used when writing web services including SOAP, WSDL, and other related protocols.

See all web-services-tools
PAMIE

PAMIE stands for Python Automated Module For I.E. Pamie's main use is for testing web sites by which you automate the Internet Explorer client using the Pamie scripting language.

See all web-testing-tools
Cloud Wiki

Cloud Wiki provides a simple, fast environment that limits itself to features necessary for providing user-editable content quickly, with a minimal learning curve.

See all wiki-engines
Bika LIMPS

Bika combines workflow processing with web content management for a one-stop web-based LIMS (Software used in the laboratory for the management of samples, users, instruments, standards and other laboratory functions)

See all workflow-engines
4Suite

4Suite is a toolkit for XML and RDF application development. It features a library of integrated tools for XML processing, implementing open technologies such as DOM, RDF, XSLT, XInclude, XPointer, XLink, XPath, XUpdate, RELAX NG, and XML/SGML Catalogs. Layered upon this is an XML and RDF data repository and server, which supports multiple methods of data access, query, indexing, transformation, rich linking, and rule processing, and provides the data infrastructure of a full database system, including transactions, concurrency, access control, and management tools.It also supports HTTP, RPC, and FTP, plus APIs in Python and XSLT.

See all xml-parsers