The PDIS project at HIIT is about next-generation data synchronization. Its central goal is to enable people to store replicas of their data on several devices, and several computers, and to keep these replicas in sync. More specifically, we have built a variety of update-anywhere replicated XML database. It is written in Python, and it even runs on Python for Series 60.
A snapshot of our source tree is available. We have also packaged a few free-standing components separately.
Please send a note to me (Ken Rimey) at rimey@hiit.fi if you attempt to do something with any of the following software. I would like to know what parts of it are of interest to people, and I would like to make improvements or add warnings if there are pitfalls.
The messkit Python package provides asynchronous bidirectional messaging over TCP. At the Python level, a message looks like a functional call with no return value. The arguments can be dictionaries, lists, or hierarchies of these. The supported primitive data types are strings, unicode strings, integers, floating-point numbers, booleans, and None.
Messkit is pure-python, so it is portable and easy to deploy in your Python application. It uses a textual wire format supporting binary data and designed for efficient processing in interpreted languages like Python.
As usual, we are making the code available under the MIT License.
The PDIS project is now officially over, and our group has moved on to a project called Services for All (E!2023 ITEA S4ALL). As a warm-up, and to provide a starting point for some of the prototyping we are planning, Ville Mäntysaari has written jabber clients for Python for Series 60 and for Maemo, the development environment of the Linux-based Nokia 770 Internet Tablet.
We are pleased to make available a snapshot of our project's source tree. It is not for the faint of heart, however.
This library provides access to a number of native phone APIs from Python for Series 60.
This is a port of the expat XML parser to Python for Series 60 enabling the standard Python xml package to be used in Python applications running on Series 60 phones.
This is a wxPython-based implementation of some of the user interface toolkit APIs defined by Python for Series 60. It enables running many Python for Series 60 scripts under Mac OS X or Linux. It may also work with Windows, but we haven't tested the latest version there.
As of 3.4.2006, the library is hosted at SourceForge under the name PyS60 Emulation Library (pys60-compat). It now includes canvas and graphics support, contributed by Alexander Igonichev, and date and time support in forms, contributed by Elvis Pfützenreuter.
This is a pure-Python XPath evaluator based on the elementtree toolkit. It supports a substantial fraction of the XPath 1.0 specification, but only the self, child, and attribute axes. I am considering adding support for the descendant-or-self axis (i.e., "//") in the future. The parser underlying the evaluator attempts to handle all of XPath 1.0.
As of 13.11.2006, the package is hosted at SourceForge:
This is a collection of Python modules for interconversion of iCalendar (RFC 2445) and xCal representations and general support for MIME directory syntax (RFC 2425).
codeprint is what we call a pretty-printing engine. It is a Ruby library that provides support for producing formatted text, with control over line breaking, indentation, and left and right margins.
Merge3 is a three-way merge for text files. It works similarly to diff3 but uses move/insert instructions to handle cases diff3 cannot. It has been implemented in Ruby.
I would be interested in hearing if you find any of this software useful.
Ken Rimey