Exuberant Ctags indexing python bindings
Exuberant Ctags supports indexing of many modern programming languages. Python
is a powerful scriptable dynamic language. Using Python to access Ctags index
file is a natural fit in extending an application's capability to examine
source code.
This project wrote a wrapper for readtags.c. I have been using the package in
a couple of projects and it has been shown that it could easily handle hundreds
source files.
pyNotifier is a notifier/event scheduler abstraction written in python.
It implements notification mechanisms for socket events (read or write)
and timers. Additionally external event dispatchers may be called during
an idle period.
A collection of Python deprecation patterns and strategies that help you
collect your technical debt in a non-destructive manner.
The goal of this library is to provide well documented developer facing
deprecation patterns that start of with a basic set and can expand into
a larger set of patterns as time goes on. The desired output of these
patterns is to apply the warnings module to emit DeprecationWarning or
PendingDeprecationWarning or similar derivative to developers using
libraries (or potentially applications) about future deprecations.
The point of this exception class is to be able to create an error
class that automatically combines keyword arguments given to the
exception instance
py-demjson provides classes and functions for encoding or decoding
data represented in the language-neutral JSON format (which is often
used as a simpler substitute for XML in Ajax web applications). This
implementation tries to be as compliant to the JSON specification (RFC
4627) as possible, while still providing many optional extensions to
allow less restrictive JavaScript syntax. It includes complete Unicode
support, including UTF-32, BOM, and surrogate pair processing. It can
also support JavaScript's NaN and Infinity numeric types as well as
it's 'undefined' type. It also includes a lint-like JSON syntax
validator which tests JSON text for strict compliance to the standard.
The dexml module takes the obvious mapping between XML tags and
Python objects and lets you capture that as cleanly as possible.
Loosely inspired by Django's ORM, you write simple class definitions
to define the expected structure of your XML document.
Durus is a persistent object system for applications written in
the Python programming language.
Durus offers an easy way to use and maintain a consistent collection
of object instances used by one or more processes. Access and change
of a persistent instances is managed through a cached Connection
instance which includes commit() and abort() methods so that changes
are transactional. Durus is best suited to collections of less than a
million instances with relatively stable state.
dynrules is a dynamic ruleset scripting package for Python. It uses the
Dynamic Scripting technique to create adaptive AI scripts automatically
from predefined rulesets.
Envisage is a Python-based framework for building extensible applications, that
is, applications whose functionality can be extended by adding "plug-ins".
Envisage provides a standard mechanism for features to be added to an
application, whether by the original developer or by someone else. In fact,
when you build an application using Envisage, the entire application consists
primarily of plug-ins. In this respect, it is similar to the Eclipse and
Netbeans frameworks for Java applications.
Each plug-in is able to:
* Advertise where and how it can be extended (its "extension points").
* Contribute extensions to the extension points offered by other plug-ins.
* Create and share the objects that perform the real work of the application
("services").
The Envisage project provides the basic machinery of the Envisage framework.
PyProtocols extends the PEP 246 adapt() function with a new "declaration API"
that lets you easily define your own protocols and adapters, and declare what
adapters should be used to adapt what types, objects, or protocols.
In addition to its own Interface type, PyProtocols can also use Twisted and
Zope's Interface types too.