Open Source Software in Python
- Aspects.py - aspects.py library provides means to intercept function calls. Functions and methods (also in Python standard library and third party code) can be wrapped so that when they are called, the wrap is invoked first. Depending on the wrap, the execution of the original function can be omitted, or the function can be called arbitrarily many times. Wraps are able to modify the arguments and the return value of the original function. In the terminology of aspect-oriented programming, the library allows applying advices (wraps) to call join points of methods and functions in around fashion.
- BusyB - BusyB is a simple system for automatically executing your builds. Is very easy to install and use -- no complex software dependencies and only a single simple XML configuration file to write.
- MatPlotLib - MatPlotLib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala matlab or mathematica), web application servers, and six graphical user interface toolkits.
- PyMetrics - PyMetrics produces metrics for Python programs. Metrics include McCabe's Cyclomatic Complexity metric, LoC, Comments, etc.
- SQL Relay - Database connection pool with support for lots of languages and databases.
- Plone - Plone is a ready-to-run content management system that is built on the powerful and free Zope application server. Plone is easy to set up, extremely flexible, and provides you with a system for managing web content that is ideal for project groups, communities, web sites, extranets and intranets.
- PyTables - PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data.
- Tiny ERP - Tiny ERP is an Open Source ERP & CRM. Tiny ERP has been developed for flexible and specific needs. The principal modules are:
* Customer and supplier management
* CRM: customers, sales opportunities segmentation, ...
* Marketing: Campaigns, Reporting, ...
* Accounting: Double-entry, Analytic, Financial, ...
* Sales: Sales Management, Orders, Commercial Organisation, ...
* Stocks: Stock Management, Double-Entry, Per location, ...
* Purchase: Invoicing Control, Merchandise Control, ...
* Logistic: Work flows, Intern Request, Programmable Alarm, ...
* Human Resources: Time Sheets, Notes, ...
* Network: simultanious multiple users of a central database, ...
- 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. .
- Eric - Eric is a full featured Python and Ruby editor and IDE, written in python. It is based on the cross platform Qt gui toolkit, integrating the highly flexible Scintilla editor control. It is designed to be usable as everdays' quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder.
- Zero Install system - The Zero Install system aims to provide a better way of installing software than traditional systems (tarballs, apt-get, bundles, setup.exe, etc).
- Roundup Issue Tracker - Roundup is a simple-to-use and -install issue-tracking system with command-line, web and e-mail interfaces. It is based on the winning design from Ka-Ping Yee in the Software Carpentry \"Track\" design competition.
- 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.
- PyDNS - PyDNS provides a module for performing DNS queries from python applications.
- SimpleParse - SimpleParse is a Python package providing a simple and fast parser generator using a modified version of the mxTextTools text-tagging engine. SimpleParse allows you to generate parsers directly from your EBNF grammar.
Unlike most parser generators, SimpleParse generates single-pass parsers (there is no distinct tokenization stage), an approach taken from the predecessor project (mcf.pars) which attempted to create \"autonomously parsing regex objects\". The resulting parsers are not as generalized as those created by, for instance, the Earley algorithm, but they do tend to be useful for the parsing of computer file formats and the like (as distinct from natural language and similar \"hard\" parsing problems).
- ReportLab Toolkit - The ReportLab Toolkit is an open source PDF library that implements a flexible layout engine named Platypus that builds documents from components like headlines, paragraphs, fonts, tables, bitmap images, vector graphics, etc. These flowable elements are placed in a document \"story\" following a set of templates for frames, pages and the entire document itself. In addition to the standard 14 PostScript fonts there is full support for custom embedded Type-1 as well as for Asian fonts.
- SQLObject - SQLObject is a popular Object Relational Manager for providing an object interface to your database, with tables as classes, rows as instances, and columns as attributes.
SQLObject includes a Python-object-based query language that makes SQL more abstract, and provides substantial database independence for applications.
- Task Coach - Task Coach is a simple open source todo manager to manage personal tasks and todo lists.
Task Coach currently (0.65.0) has the following features:
* Creating, editing, and deleting tasks and subtasks.
* Tasks have a subject, description, priority, start date, due date, a completion date and an optional reminder.
* Tasks can be viewed as a list or as a tree.
* Tasks can be sorted by all task attributes, e.g. subject, budget, budget left, due date, etc.
* Several filters to e.g. hide completed tasks or view only tasks that are due today.
* Tasks can be created by dragging an e-mail message from Outlook or Thunderbird onto a task viewer.
* Attachments can be added to task by dragging and dropping files, e-mail messages from Outlook or Thunderbird, or URL's onto a task.
* Task status depends on its subtask and vice versa. E.g. if you mark the last uncompleted subtask as completed, the parent task is automatically marked as completed too.
* Tasks and notes can be assigned to user-defined categories.
* Settings are persistent and saved automatically. The last opened file is loaded automatically when starting Task Coach.
* Tracking time spent on tasks. Tasks can have a budget. Time spent can be viewed by individual effort period, by day, by week, and by month.
* The Task Coach file format (.tsk) is XML.
* Tasks, notes, effort, and categories can be exported to HTML and CSV (Comma separated format). Effort can be exported to iCalendar/ICS format as well.
* Tasks, effort, notes, and categories can be printed. When printing, Task Coach prints the information that is visible in the current view, including any filters and sort order.
* Task Coach can be run from a removable medium.
- Universal Feed Parser - Universal Feed Parser is a Python module for downloading and parsing syndicated feeds. It can handle RSS 0.90, Netscape RSS 0.91, Userland RSS 0.91, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0, and CDF feeds. It also parses several popular extension modules, including Dublin Core and Apple's iTunes extensions.
- 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.
- Cheetah - Cheetah is an open source template engine and code generation tool, written in Python. It can be used standalone or combined with other tools and frameworks. Web development is its principle use, but Cheetah is very flexible and is also being used to generate C++ game code, Java, sql, form emails and even Python code.
- PyUnit - This unit testing framework, dubbed 'PyUnit' by convention, is a Python language version of JUnit. It lets you write tests easily, aggregate them to run by groups, and run them in text or GUI mode.
- Zope - Zope is an open source web application server primarily written in the Python programming language. It features a transactional object database which can store not only content and custom data, but also dynamic HTML templates, scripts, a search engine, and relational database (RDBMS) connections and code. It features a strong through-the-web development model, allowing you to update your web site from anywhere in the world. To allow for this, Zope also features a tightly integrated security model. Built around the concept of \"safe delegation of control\", Zope's security architecture also allows you to turn control over parts of a web site to other organizations or individuals. The transactional model applies not only to Zope's object database, but to many relational database connectors as well, allowing for strong data integrity. This transaction model happens automatically, ensuring that all data is successfully stored in connected data sources by the time a response is returned to a web browser or other client.
- Snakelets - Snakelets is a very simple-to-use Python web application server. It provides a threaded web server (you don't have to provide a web server such as Apache yourself), Ypages (Python HTML template language, similar to Java's JSPs) and Snakelets: code-centric page request handlers (similar to Java's Servlets). Snakelet's focus is to make the creation of dynamic web sites as quick and easy as possible. To get started it is enough to extract Snakelets somewhere, add a single directory that will contain your files, copy-paste-edit a small configuration file that describes your site, and you're set to add your own pages and images and other content.
- 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.
- WebUnit - WebUnit is a framework for performing client-side automation of web applications by simulating a long-lived web browser session with one or more remote sites. Although it has many other uses, the primary aim of the project is to simplify the task of writing tests for web sites.
- Pwyky - Pwyky is a ~30KB single file wiki in Python. It's very easy to install, requires minimal configuration, and uses a simple structured text format.
- Web Workflow - Web Workflow is a business processes management tool based on modern web user interface. It allows for workflow graphical design, data management and processes follow up.
The web interface is based on OpenLaszlo technology.
Cherrypy is used as application server combined with SqlAlchemy for the ORM layer.
- pyRXP - pyRXP is fast validating XML parser available for Python. pyRXP, like the underlying RXP parser, is available under the GNU General Public License.