[[PageOutline]] = Jppy = == Description == Jppy was jpilot-python. It is a C/Python layer on top of jpilot and pilot-link. This allows access via Python (and a new API, that is hopefully to edge towards being a standard API for accessing Palm data from Unix software) to palm data. You can either go in and talk line protocol to the palm, or be as high as to ignore all issues about syncing and let jpilot's backend worry about it. This lets high level applications be written pretty quick and easily, to either make a new PIM (see below), or just import/export data with quick one-off-scripts. RoadMap == Registration on the Trac site == I had to turn off registration due to the amount of automated registrations taking place (but no actual spam posted?). Write to nick-jppy of nickpiper.co.uk and I'll create your Trac account here. Sorry for that. == Parts == [[Image(architecture.png)]] === jppy python module === This provides a Python API to Palm data via reading and writing jpilot's database. You can then use jpilot-sync (or jpilot itself) to syncronise changes to the Palm. === jppy GUI === There is a GTK2/glade GUI written on top of the jppy python module. This lets you manage your data, including Contacts data like photographs and birthdays. === jpilot plugins === J-Pilot doesn't synchronise Contacts by default, so there is a plugin to ask it to do this. There is also a plugin for synchronising [http://www.mboenig.de/Palm/English/index.htm PTimLog] records, and another for running arbitrary python scripts at sync time and inside the jpilot GUI (for example, a jppy script.) == Download == Jppy has been [http://packages.debian.org/jppy available for Debian] since Debian lenny. If you want the pristine source, please download the latest tarball from a Debian mirror, e.g. the one for the [http://ftp.uk.debian.org/debian/pool/main/j/jppy/ UK], [http://ftp.de.debian.org/debian/pool/main/j/jppy/ Germany], [http://ftp.us.debian.org/debian/pool/main/j/jppy/ USA], or [http://ftp.jp.debian.org/debian/pool/main/j/jppy/ Japan]. The file will be named {{{jppy_.orig.tar.gz}}}. == News == (Don't let the recent lack of updates to this page make you think less is being done, we're up to 0.0.47 now!) === Tuesday, 31 October 2006 === 0.0.34 adds a filter language: [[Image(green-filters.png)]] allowing quite complex expressions to filter what is shown in the listview. It turns red when unable to parse what you've asked for: [[Image(red-filters.png)]] === Sunday, 22 October 2006 === 0.0.33 fixes a crash when jpilot quits suddenly, and removes 'jppy-gui' as a distinct package. The GUI code is now part of jppy itself, and the build system also lets it find the unicode collation and glade files more easily. I've tested with the official debian jpilot package too, no more having to build your own. Norbert Preining is likely to host the jppy debian package again, so I expect he won't mind if I just link there http://www.logic.at/people/preining/debian/jp === Tuesday, 23 May 2006 === 0.0.32 fixes unicode chars in category names in the main library. This allows the GUI to display them correctly. It also changes some of the dependancies, to request the pilot-link packages from experimental as we need pilot-link 0.12. We continue to require jpilot to be linked against pilot-link 0.12. Without ANY SUPPORT, you might be able to get this from {{{ deb http://www.logic.at/people/preining/debian/ jp/ }}} if you didn't want to rebuild yourself. Don't forget to pin the package so apt doesn't upgrade it to one that uses pilot-link 0.11 when you're not looking. See http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html for help there. Personally I recommend just rebuilding yourself: {{{ sudo apt-get build-dep jpilot sudo apt-get source -b jpilot sudo dpkg -i jpilot_0.99.8-0.99.9-pre-20060420-1_i386.deb jpilot-plugins_0.99.8-0.99.9-pre-20060420-1_i386.deb }}} Note you'll have to pin there too. attachment:jppy_0.0.32-1_i386.deb attachment:jppy-gui_0.0.32-1_all.deb attachment:jppy-jpilot-plugins_0.0.32-1_i386.deb === Sunday, 21 May 2006 === 0.0.31 adds some DateBk6 support for Tasks (just a little so far though; and not in the GUI), Asterisk and SMS support, and some bug fixes. Longer ChangeLog in the package itself, or see svn. Please remember that the jpilot plugin requires you to have a jpilot linked with libpisock 0.12, otherwise you'll get random crashes as the python module is linked with that version. attachment:jppy_0.0.31-1_i386.deb attachment:jppy-gui_0.0.31-1_all.deb attachment:jppy-jpilot-plugins_0.0.31-1_i386.deb === Saturday, 18 February 2006 === The JPilot jppy plugin is restored, it has been away a long time. If you try to use it, you must recompile your jpilot to make sure it is linked to the same shared libpisock library that your jpilot python module was compiled against! With this plugin, you can run python code at sync time, or do things like embed into the jpilot GUI: [[Image(jppy-in-jpilot-1.jpg)]] To do that, use something like this in your jpilot_user.py: {{{ def plugin_gui(vbox,hbox): guipath = "/usr/share/jppy/gui/" sys.path.insert(0,guipath) import jppygui jppygui.jppy(hbox,control_mainloop=0,glade_path=guipath) }}} attachment:jppy_0.0.29-2_i386.deb attachment:jppy-gui_0.0.29-2_all.deb attachment:jppy-jpilot-plugins_0.0.29-2_i386.deb === Saturday, 04 February 2006 === I had a play with http://www.djangoproject.com/ , and wrote a little test app to learn. It provides a web view onto the jpilot databases via jppy. This is literally about 10 lines of code! [[Image(jppy-with-django.png)]] === Sunday, 29 January 2006 === Now I also have J-Pilot plugins to sync the Contacts database. If you use this, remember to turn off the AddressDB syncing! attachment:jppy_0.0.29-1_i386.deb attachment:jppy-gui_0.0.29-1_all.deb attachment:jppy-jpilot-plugins_0.0.29-1_i386.deb === Friday, 27 January 2006 === That image support is read/write now! [[Image(jppy-with-images-smaller.png)]] attachment:jppy_0.0.28-1_i386.deb attachment:jppy-gui_0.0.28-1_all.deb === Friday, 06 January 2006 === Added read-only support for the images in contacts (as found on the T5, TX, etc.) attachment:jppy_0.0.27-1_i386.deb attachment:jppy-gui_0.0.27-1_all.deb === Sunday, 11 September 2005 === Switch to SVN for version control, and update jpilot parts again. attachment:jppy_0.0.26-5_i386.deb attachment:jppy-gui_0.0.26-5_all.deb === Tuesday, 23 August 2005 === Fixed a segfault when calling repr() on a contact. attachment:jppy_0.0.26-4_i386.deb attachment:jppy-gui_0.0.26-4_all.deb === Sunday, 31 July 2005 === Updated the bundled jpilot (used for reading/writing the jpilot data files) to todays CVS. attachment:jppy_0.0.26-2_i386.deb attachment:jppy-gui_0.0.26-2_all.deb === Sunday, 10 April 2005 === I've noticed a few bugs about (I don't use jppy as much while I'm working a long way from home.) This fixes a couple of them - missing icon, correction to saving code, the implementation of the gtk iter. attachment:jppy_0.0.26-1_i386.deb attachment:jppy-gui_0.0.26-1_all.deb === Sunday, 06 March 2005 === Probably the last day of the work for a while. The GTK2 GUI is working again. Don't forget the library path: {{{ LD_LIBRARY_PATH=/home/nicholas/projects/pilot-link/upstream_cvs/pilot-link/libpisock/.libs/ jppy }}} Couple of other bug fixes too, to avoid some segfaults. attachment:jppy_0.0.25-2_i386.deb attachment:jppy-gui_0.0.25-3_all.deb === Saturday, 05 March 2005 === After a week sprint, most of the code has been reworked. The API to python is only slightly different, but with a lot more flexibility. You can subclass the record types now, for example. Major features and changes: * Temporarily doesn't build jpilot plugin * Uses [http://www.scons.org/ SCons] to build * Much better python types * Reworked python code to seperate jpilot interface out a bit more, ready for when we have other backends * Includes libversit and jpilot sources which are required for the build * Debian build directory * Proper introspection on the types The GUI isn't working right now either. If you try it out, you'll need pilot-link from CVS, and as you won't want to install that - LD_LIBRARY_PATH=/home/nicholas/projects/pilot-link/upstream_cvs/pilot-link/libpisock/.libs/ For example, try out: {{{ LD_LIBRARY_PATH=/home/nicholas/projects/pilot-link/upstream_cvs/pilot-link/libpisock/.libs ipython In [1]: import jppy In [4]: book = jppy.addressBook() In [2]: f = open("/tmp/export.vcard","w") In [5]: [f.write(r.vcard()) for r in book.records(search="LogicaCMG")] }}} For an instant vcard copy of all your contacts with LogicaCMG in them! Of course, to get your Contacts over from the palm you will have to patch jpilot-sync to pull them, or pilot-xfer them over into ~/.jpilot/ for now. The other databases (memo and todo) jpilot-sync will sync for you. Grab the tarball from viewcvs (see below), or try out my (iffy) debian package :-) Generally, the interface is much nicer than before! {{{ In [10]: todo.items() Out[10]: [('description', u'See if ant -f config/build.xml works on HP Java'), ('note', u''), ('due', ), ('complete', 1), ('priority', 1)] }}} == Old Content == The old content is available at http://www.nickpiper.co.uk/jpilot-python.php3. == Resources Available == === Mailing lists === [http://mail.zanu.org.uk/mailman/listinfo/jppy jppy Mailing list] Discussion list for Jppy (was Jpilot-python) [http://mail.zanu.org.uk/mailman/listinfo/jppy-devel jppy-devel Mailing list] Jppy Development [http://mail.zanu.org.uk/mailman/listinfo/jppy-commit jppy-commit Mailing list] Commit mails for jppy git === Source control === For anonymous git clone, do: {{{ git clone git://git.debian.org/git/jppy/jppy.git }}} If you want read/write, you need an http://alioth.debian.org/ account and then request access to the http://alioth.debian.org/projects/jppy/ project. === Low level documentation === See ApiDocumentation == Screenshot == [attachment:jppy_5_shot.jpg Gtk2 PIM built on Jppy]