Open Source Software in Python
Curated list of production-grade libraries and tools. Updated by the community.
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.
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.
Frog is a web blog tool written in Python, and designed as a web application for Snakelets.
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
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.
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.
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.
Database connection pool with support for lots of languages and databases.
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
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.
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.
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.
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.
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. .
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.
Easy Install is a python module (easy_install) bundled with setuptools that lets you automatically download, build, install, and manage Python packages.
IssueTrackerProduct is a help desk/issue/bug tracker web application under the ZPL license
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
Brevé is a Python template engine that is designed to be clean and elegant with minimal syntax. Brevé templates are actual Python expressions.
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.
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.
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
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.
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.
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.
Cloud Wiki provides a simple, fast environment that limits itself to features necessary for providing user-editable content quickly, with a minimal learning curve.
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)
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.