1999-12-20 Rob Tillotson <robt@debian.org> * Release 0.9.3 * __init__.py.in (version): Bump version. * debian/changelog: Bump version. * debian/control (Depends): Update sulfur dependency. * dist/control.xml: Bump version. * i18n/Makefile.in: Add tests for USE_NLS, and pass on variables. * Makefile.in (messages): Add test for USE_NLS, and updated list of files to scan. * configure.in (compile_python): Added tests for gettext stuff. 1999-12-17 Rob Tillotson <robt@debian.org> * Release 0.9.2 * __init__.py.in (version): Bump version. * debian/changelog: Bump version. * dist/control.xml: Bump version. * Makefile.in: Find compileall.py in @pythonlib@. Only make directories if they don't already exist. * aclocal.m4 (else): Add check for python lib. 1999-12-16 Rob Tillotson <robt@debian.org> * Release 0.9.1 * util/sync.py (App.run_conduits): Added call to self.disconnect(). * Application/Application.py (Application.postrun): Add explicit call to self.disconnect(). (Application.__init__): Initialized self.remote. * doc/INSTALL: Updated for autoconf. * configure.in, aclocal.m4, Makefile.in, glue/Makefile.in, i18n/Makefile.in, install-sh: Now using GNU autoconf instead of old configure script. * Application/Application.py (Application.get_plugin): Change Sulfur.Application to Sulfur.Application.Application. * glue/pisock.i: Added #ifdef INCLUDE_LIBPISOCK for autoconf. * glue/_pdapalm.c: Added #ifdef INCLUDE_LIBPISOCK for autoconf. 1999-12-15 Rob Tillotson <robt@debian.org> * Store/DLP.py (DLPStore.disconnect): Catch exception from pisock.dlp_CloseDB_All. * Application/sync.py (App.run_conduits): Added call to self.disconnect(). Oops. 1999-12-14 Rob Tillotson <robt@debian.org> * Application/Application.py (Application.__init__): Fixed import and initialization. * Plugin.py: Changed import. * __init__.py.in: Changed gettext to explicitly use the pyrite message catalog. * Application/Application.py (Application.__call__): Added for backward compatibility. 1999-12-11 Rob Tillotson <robt@debian.org> * Application/product.py: Added. * Store/DLP.py (DLPStore.connect): Removed extraneous print. * Application/info.py (App.info_products): Added product list to the output of the "info" application. * */*.py: Change author strings to point to Pyrite.author in all plugins. * __init__.py.in (author): Added, so I don't have to type it in every plugin. * Application/Application.py (Application.prerun): Move 'state' pickle into %(datadir)/Pyrite/state. (Application.prerun): Create new state object if none is loaded. (Application.postrun): Make data directory and Pyrite subdirectory, and save state in %(datadir)/Pyrite/state. (Application.product_add): Added. (Application.product_list): Added. (Application.product_remove): Added. (Application.prerun): Add product packages to path. 1999-12-10 Rob Tillotson <robt@debian.org> * Application/user.py: Added. * Application/Application.py: Import randint. (Application.user_list): Fixed typo. (Application.user_list): Return ids only instead of tuples. (Application.user_lookup): Call self.user_name. * Application/sync.py: Added (from util/sync.py). * Application/install.py: Added (from util/install.py). * util/runapp.py: Added. * Application/info.py: Added (from util/info.py). * Application/Application.py (Application.user_path): Added. (Application.app_user_path): Added. (Application.app_user_open): Added. (Application.user_open): Added. 1999-12-08 Rob Tillotson <robt@debian.org> * __init__.py.in (version): Bump version number. * debian/changelog: Bump version number. * dist/control.xml: Bump version number. * glue/pisock.i: Eliminate //-comments in generated C code. 1999-12-07 Rob Tillotson <robt@debian.org> * Release 0.9.0 * doc/pyrite-sync.1: Edited "see also". * doc/pyrite-install.1: Edited "see also". * doc/pyrite-info.1: Added. * debian/postinst: Quiet compilation and remove message about 0.7.0 changes. * util/info.py (App.run): Updated to show Connectors and Applications with --all. * configure (install_dirs): Added 'Application', 'Connector', and 'test'. * prc.py (File.save): Fixes. * Store/Directory.py (DirectoryStore._find_db): Added return of filename. (DirectoryStore.delete): Use filename returned from _find_db. (DirectoryStore.info): Throw away filename, returned from _find_db. (DirectoryStore.getpref): Same. * glue/pisock.i: Added OUTSTR4 typemap, corrected dlp_*Resource* functions to use STR4 and OUTSTR4 for types. Fix typemapping for time_t and {Get,Set}SysDateTime. 1999-12-06 Rob Tillotson <robt@debian.org> * Application/Application.py (Application.user_list): Rewrote to new UID-based system. (Application.user_exists): Same. (Application.user_name): Added. (Application.change_user): Added (replaces configure_user). (Application.connect_user): Added (replaces configure_user). (Application.postconnect): Call connect_user instead of configure_user. (Application.prerun): Call change_user instead of configure_user. (Application.user_directory): Use new uid-based system. (Application.user_directories): Same. (Application.open): Same. * debian/control (Build-Depends): Added build dependency on gettext (closes Debian bug #51698). (Depends): Updated sulfur dependency to 0.1.0. * Connector/Doc.py (DocWriteStream.close): Close stream when finished. (DocWriter): Removed, as it was no longer used. 1999-12-05 Rob Tillotson <robt@debian.org> * Application/Application.py: Added 'old-dlp' option. * Store/Directory.py: Removed extraneous import of _pdapalm. * Store/DLP.py: Fixed imports. * glue/pisock.i: Added #include <time.h> to fix warning. * Store/DLP.py: Renamed to OldDLP, and replaced with version that uses SWIGged pisock module. * prc.py: Deleted old code. (File.__del__): Added. * util/fetchusa.py (App.run): Remove extraneous 'Pure'. * Application/Application.py (Application): Replace 'pure' option with 'old-pdb'. (Application.user_directory): Same. (Application.open): Same. * Store/File.py: Renamed to OldFile and replaced with PureFile. * Store/Directory.py: Renamed to OldDirectory and replaced with PureDirectory. 1999-12-04 Rob Tillotson <robt@debian.org> * Application/Application.py (Application.get_plugin): Produce error message when 'App' plugins are asked for, and load them from 'Connector' instead. * App/*.py: Renamed "App" collection to "Connector". * Store/URL.py (FileStore): Change all 'self.url' to 'self.theurl' in order to avoid conflict with the 'url' class attribute. * Conduit/Install.py (install_files): Removed moldy code. * DBTypes.py, Config.py, DLP.py: Removed old code. 1999-11-30 Rob Tillotson <robt@debian.org> * __init__.py.in (version): Bump version. * debian/changelog: Bump version. * dist/control.xml: Bump version. * Conduit/Backup.py (Conduit.__should_backup): Consolidated "should this file be backed up" tests into their own function, to make __call__ less convoluted and make it easier to refine the tests later. 1999-11-29 Rob Tillotson <robt@debian.org> * Release 0.7.9 * debian/control (Build-Depends): Added build-depends. * configure (pilot_link): Added locale-dir command line option, and add __init__.py to the list of files generated by "configure". * gettext.py: Patch from Holger Duerer. * util/sync.py (__copyright__): And still more. * util/install.py (__copyright__): More gettext-wrapping I forgot earlier. * prc.py (File.unpack): Remove extraneous debugging prints. * util/user.py (__copyright__): gettext-wrap extra_help. * doc_compress.py (uncompress): Fix small bug, thanks to Holger Duerer. * Conduit/Backup.py (Conduit.__call__): Oops, forgot to gettext-wrap a string. * Application.py (Application.prerun): Get port, data directory, and other defaults from environment variables, if available. 1999-11-19 Rob Tillotson <robt@debian.org> * Blocks.py (Block.__init__): Fixed a bug where creating an empty block would put None (instead of an empty string) as self.raw. 1999-11-13 Rob Tillotson <robt@debian.org> * Store/Store.py (Store.__call__): Copy some of the informational plug-in attributes to the BaseStore objects that are created. 1999-11-06 Rob Tillotson <robt@debian.org> * prc.py (PCache.__init__): Add allow_zero_ids attribute. (PCache.setRecord): Support zero IDs. 1999-11-04 Rob Tillotson <robt@debian.org> * Store/PureFile.py (FileStore._create): Added. * Store/Store.py (BaseStore.create): Added real code. * Store/PureDirectory.py (DirectoryStore._create): Added. * Store/Store.py (BaseStore.open): Added real code (see doc/NEWS). * Store/PureDirectory.py (DirectoryStore._try_open_db): New calling sequence, with an additional level of callback to make distributed object interfacing easier. (DirectoryStore._find_db): Same. (DirectoryStore._open): Same (new function). (DirectoryStore.open): Same. * debian/changelog: Bump version number. * __init__.py (version): Bump version number. * dist/control.xml: Bump version number. 1999-11-01 Rob Tillotson <robt@debian.org> * Release 0.7.8 1999-10-29 Rob Tillotson <robt@debian.org> * debian/rules: Relocated docs to /usr/share/doc. * debian/doc-base: Relocated docs to /usr/share/doc. * debian/control (Standards-Version): Updated to policy 3.0.0. (Depends): Updated sulfur dependency to 0.0.8. 1999-10-19 Rob Tillotson <robt@debian.org> * Conduit/Backup.py (options): Added skip-old-applications. (Conduit.__call__): Added support for skip-old-applications. 1999-10-18 Rob Tillotson <robt@debian.org> * util/info.py (App.info_state): Added and called. (App.info_header): Print Sulfur version. * Application.py (Application.prerun): Renamed (Application.prerun): Load saved state from a pickle in the data directory. (Application.postrun): Added. 1999-09-24 Rob Tillotson <robt@debian.org> * dist/exclude: Temporarily exclude App/DiddleBug.py, until I finish it. * debian/control (Suggests): Add suggestion of doc-base. 1999-08-17 Rob Tillotson <robt@debian.org> * util/info.py: Added. 1999-08-10 Rob Tillotson <robt@debian.org> * i18n/de/Makefile: Added. * i18n/Makefile.in: Added. * Makefile.in: Added 'messages' target, and call to i18n/Makefile during install. * configure: Added --locale-dir option, support for multiple makefiles, and substitution of locale_dir variable. * prc.py: Clean up debugging print statements and wrap strings for gettext. * Application.py: Wrap strings for gettext. * util/*.py [except fetchusa.py]: Wrap strings for gettext. * Store/*py: Wrap strings for gettext. * Filter/*.py: Wrap strings for gettext. * Conduit/__init__.py (__all__): Remove 'Sync'. * Conduit/*.py: Wrap strings for gettext. * App/*.py: Wrap strings for gettext. * __init__.py (_): Initialize gettext. * App/DiddleBug.py: Added. 1999-08-09 Rob Tillotson <robt@debian.org> * __init__.py (version): Bump version. * dist/control (Version): Bump version. * debian/changelog: Bump version. * debian/copyright: Updated for new URL and license. * doc/LICENSE: Added. * doc/LGPL: Renamed. * All [except glue/_pdapalm.c]: Change to Python-like license. 1999-08-07 Rob Tillotson <robt@debian.org> * Release 0.7.7 * util/sync.py (App.run_conduits): Added debugging traceback printing. * Application.py (options): Add 'debug' option. * Database.py (Database.Category): Remove redundant 'self' in call to CategoryIterator. (Database.ModifiedRecords): Same. (CategoryIterator.__init__): Remove 'db' parameter. (CategoryIterator.__getitem__): Remove 'self.db', since self.func is a bound method. (Database.next_record): Properly call classify_record. (Database.next_modified): Same. * debian/changelog: Bump version number. * __init__.py (version): Bump version number. * dist/control (Version): Bump version number. 1999-07-29 Rob Tillotson <robt@debian.org> * Release 0.7.6 * dist/exclude: Unexclude util/fetchusa.py. * debian/control (Depends): Change sulfur dependency. * util/fetchusa.py: Update to Pyrite 0.7.x. * App/App.py (App.create): Perhaps it would be nice to actually create the database, instead of trying to open it. 1999-07-26 Rob Tillotson <robt@debian.org> * __init__.py (version): Bump version number. * debian/changelog: Bump version number. * dist/control (Version): Bump version number. * Conduit/Backup.py (Conduit.presync): Added. (Conduit.__call__): Scan backup directory in presync, rather than while the connection is open, to save time. 1999-07-25 Rob Tillotson <robt@debian.org> * glue/_pdapalm.c (init_pdapalm): Call PyErr_NewException to create new exception object, instead of PyStr_FromString. 1999-07-21 Rob Tillotson <robt@debian.org> * util/sync.py (App.run_conduits): Add support for skipping conduits that return false from presync. Force connection at beginning of sync phase. * Conduit/Install.py (Conduit.presync): Added. * Conduit/Conduit.py (Conduit.presync): Return 1. 1999-07-16 Rob Tillotson <robt@debian.org> * Release 0.7.5 * debian/docs: Add some new docs. * doc/prg/Makefile (DOCBOOK_HTML, DOCBOOK_PRINT): New location. 1999-07-15 Rob Tillotson <robt@debian.org> * App/Doc.py (_header_fields): Oops, default value for 'sizes' has to be a list. 1999-07-14 Rob Tillotson <robt@debian.org> * Application.py (Application.open): Added http/ftp capability using URL store. * Store/URL.py: Added. * prc.py (File.unpack): Split 'open' into 'open' and 'unpack'. * Application.py (Application.open): Added dbclass argument. * App/Doc.py (App.open_stream): Change default mode from 'r' to 'rs' (in case a doc is marked private). * App/App.py (App.open): Change default mode to 'rs'. If store argument is None, call 'open' method in application context instead. * Application.py (Application.user_directory): Added 'user' and 'uid' parameters. (Application.open): Added 'mode' parameter, and extended to handle URLs. Also, if a prc/pdb file is not found by filename, creates a store and attempts to open by database name instead. 1999-07-11 Rob Tillotson <robt@debian.org> * App/Doc.py (_header_fields): Change name of 'spare2' field to 'position', and add 'sizes' field. (HeaderRecord.unpack): Same. (HeaderRecord.pack): Same. 1999-07-07 Rob Tillotson <robt@debian.org> * Application.py (user_directory_name): Added 'pure' option for testing. (Application.open): Support 'pure' option. (Application.user_directory): Same. (Application): Added app_prefix class variable. (Application.app_path): Added. (Application.app_open): Added. 1999-07-03 Rob Tillotson <robt@debian.org> * Application.py (Application.get_config): Default value for 'port' is now an empty string, to avoid exceptions when there is no config file. 1999-06-26 Rob Tillotson <robt@debian.org> * Store/Store.py (Store.__call__): Set context. (BaseStore.__init__): Add context attribute. (BaseStore.set_context): Added. (BaseStore.__getattr__): Added. (BaseStore.has_option): Added. (BaseStore.get_option): Added. (BaseStore.get_plugin): Added. (BaseStore.list_plugins): Added. (BaseStore.list_plugin_info): Added. 1999-06-23 Rob Tillotson <robt@debian.org> * Application.py (Application.get_config): Add packages from Pyrite::plugin-packages to self.plugin_module_path. * App/Doc.py: Use pure-Python code from doc_compress.py if the C module can't be imported. (_uncompress): Removed (equivalent in doc_compress.py). (TextRecord.unpack): Call _uncompress. (TextRecord.pack): Call _compress. * doc_compress.py: Added. * prc.py (File): New version of File class. * __init__.py (version): Bump version number. * dist/control (Version): Bump version number. 1999-06-21 Rob Tillotson <robt@debian.org> * Release 0.7.4 * util/setup_user.py (App.run): More calls to os.path.expanduser. Really need to centralize this stuff somewhere... * App/*.py, Conduit/*.py, Store/*.py, Util/*.py: Use Pyrite version number. * __init__.py: Clean out old docstring. (_dirname): Hid. (version): Added. * debian/prerm: Let debhelper automatically insert doc-base stuff. * debian/postinst: Let debhelper automatically insert doc-base stuff. * debian/links: Changed name of links. * doc/pyriteconfig.1: Moved from debian/pyriteconfig.1 and edited. * doc/pyrite-user.1: Moved from debian/pp-userconfig.1 and edited. * doc/pyrite-sync.1: Moved from debian/pp-sync.1 and edited. * doc/pyrite-install.1: Moved from debian/pp-install.1 and edited. * Conduit/Backup.py (Conduit.__call__): Move incremental delete to postsync. (Conduit): Add 'archive' and 'delete_old' options. (Conduit.postsync): Added; incremental delete and archive. * Application.py (Application.user_directory): Add 'make' parameter; if true (default), automatically make missing user subdirectories and auto-add missing users. (Application.postconnect): No longer throw an exception if Palm user name doesn't match. Instead, just use it, and auto-create the user on the desktop if it doesn't exist already. (Application.get_config): Auto-make data directory. (Application.configure_user): Auto-create user. * util/sync.py (App.run_conduits): Rewrite to pre-load conduits, and call presync/postsync. Also use the 'error' method to report exceptions instead of 'log'. (App.run_session): Move connect and disconnect to proper positing in run_conduits. * dist/control (Version): Bump version number. * Conduit/Conduit.py (Conduit.presync): Added. (Conduit.postsync): Added. 1999-06-20 Rob Tillotson <robt@debian.org> * Release 0.7.3 * Store/PureDirectory.py (DirectoryStore.getpref): Added. * dist/control (Version): Bump version number. * Thanks to Holger Duerer for reporting the issues dealt with in tonights fixes. * util/sync.py (App.run_session): Get conduit list from Pyrite::Sync::Conduits (note uppercase) but still support 'conduits' for backward compatibility. * util/setup_user.py (App.run): Make data directory and add user, if not already there. * Application.py (Application.get_config): Assorted error-checking for bad configuration files. (Application.configure_user): Error checking. 1999-06-19 Rob Tillotson <robt@debian.org> * dist/exclude: Added exclusion for "misc" directory, since it is empty. * misc/sample-conf.sys, misc/sample-conf.user: Removed, as they are obsolete. * Makefile.in: Optionally compile .py files. Added EXE variable listing files which need to have executable permissions. * configure: Add substitution for %%compile_python%%. 1999-06-17 Rob Tillotson <robt@debian.org> * App/Mail.py (App.__init__): Added pref_map. * App/App.py (App.getpref): Added. (App.setpref): Added. (App.__init__): Added pref_map. * Store/DLP.py (DLPStore.setpref): Added. (DLPStore.getpref): Added. * Store/Store.py (BaseStore.getpref): Added. (BaseStore.setpref): Added. 1999-06-14 Rob Tillotson <robt@debian.org> * App/Mail.py (SignaturePref): Added. (SyncPref): Added. * App/XWord.py (Database.__init__): Fix parameters. * App/Todo.py (Database.__init__): Fix parameters. * App/MoneyManager.py (Database.__init__): Fix parameters. * App/Memo.py (Database.__init__): Fix parameters. * App/Doc.py (Database.__init__): Fix parameters. * App/Address.py (Database.__init__): Fix parameters. * App/Mail.py: Added. (App, Record, Database): Added. 1999-06-06 Rob Tillotson <robt@debian.org> * Release 0.7.2 * Store/PureFile.py: Changes for properties etc. * Store/PureDirectory.py: Changes for properties etc. (Same as the other Stores) * Store/File.py (FileStore.open): Pass mode and properties to Database object. (FileStore.create): Same. * Store/Directory.py (DirectoryStore.create): Pass mode and properties to Database object. (DirectoryStore._try_open_db): Same. * Store/DLP.py (DLPStore.open): Pass mode and properties to Database object. (DLPStore.create): Same. * Database.py (Database.__init__): Pass and store mode and properties. * Store/File.py (FileStore): Added properties and db_properties class attributes. (FileStore.open): Added properties argument and test, plus test for write access. (FileStore.create): Same. * Store/Directory.py (DirectoryStore.open): Added "properties" argument, and tests for properties and write access. (DirectoryStore.create): Added "properties" argument and test. (DirectoryStore): Added "properties" and "db_properties" class attributes. * Store/DLP.py (DLPStore): Added "properties" and "db_properties" class attributes. (DLPStore.open): Added "properties" argument and test. (DLPStore.create): Added "properties" argument and test. * Store/Store.py (BaseStore.test_db_properties): Added. (BaseStore.has_property): Added. (BaseStore.create): Added "properties" argument. (BaseStore.open): Same. 1999-06-01 Rob Tillotson <robt@debian.org> * glue/_pdapalm.c: IRIX 6.5.2 compilation patches from Sjoerd Mullender <sjoerd@oratrix.nl> [lots and lots of casts to satisfy a picky compiler!] 1999-05-30 Rob Tillotson <robt@debian.org> * Filter/Filter.py: Beginnings of a new API. 1999-05-29 Rob Tillotson <robt@debian.org> * App/Doc.py (App.open_stream): Programming tip #010010: correct capitalization avoids bugs. 1999-05-28 Rob Tillotson <robt@debian.org> * Blocks.py (Resource.__repr__): Use repr() on self.type to avoid nonprintable characters in output. (Resource.dump): Same. (PrefBlock.dump): Same. * glue/_pdapalm.c (BuildChar4): Return all values as 4-char strings, for consistency. * Application.py (Application.open): Added. * Database.py (Database.get_id): Whoops, returning something would be nice. * Blocks.py (Record.__repr__): More useful output. (AppBlock.__repr__): Same. (Resource.__repr__): Same. (Block.__repr__): Same. * Database.py (Database.get_id): Add type parameter for resource databases. (Database.get_id): Use 'apply', and return None if no record/resource. * Platform/__init__.py: Remove try/except import, since Red Hat Linux (and possibly other platforms) has a sys.platform value containing characters not allowed in a module name. * Database.py (Database.__getitem__): Raise IndexError when get{Record,Resource} returns None. (Database.get_appblock): Return None if there is no block. (Database.get_sortblock): Same. * Makefile.dist (RELEASE): Bump version number. * Release 0.7.1 * Makefile.in: Replace -e with -d in tests. * doc/prg/ref-databases.sgml: Documented new database API, and added various other information. * Database.py (Database.new_appblock): Added. (Database.new_resource): Added. * App/Doc.py (Database.new_record): Added. 1999-05-27 Rob Tillotson <robt@debian.org> * Database.py (Database.new_record): Added. * App/Doc.py (App.open_stream): Added. 1999-05-26 Rob Tillotson <robt@debian.org> * Makefile.dist (RELEASE): Bump release number. * App/Doc.py (DOCWriter.close): Remove reference to Pyrite.DLP. (App.create_stream): Added. (DocWriteStream): Added (basically a copy of DOCWriter with slightly different semantics). * Release 0.7.0 * debian/postinst: Remove -q from compilation, until bug in python-base is fixed. * debian/examples: Added. * debian/postinst: Include warning about config file changes. * debian/links: Changes for setup_user. * debian/rules: Same. 1999-05-25 Rob Tillotson <robt@debian.org> * Database.py (Database.__getitem__): Whoops, call classify_* with apply. 1999-05-24 Rob Tillotson <robt@debian.org> * Application.py (Application.configure_user): Trap problems with user directory. * configure: Added make_symlinks. * debian/rules: Don't copy dvi and ps docs, as they won't be included. * DLP.py: Added deprecation notices. 1999-05-23 Rob Tillotson <robt@debian.org> * Store/DLP.py (DLPStore.card_info): Added. (DLPStore.system_info): Same. (DLPStore.battery_info): Same. (DLPStore.get_feature): Same. (DLPStore.sync_log): Same. (DLPStore.get_preference): Same. (DLPStore.set_preference): Same. (DLPStore.call_application): Same. (DLPStore.call_rpc): Same. 1999-05-21 Rob Tillotson <robt@debian.org> * Store/Store.py (BaseStore.copy): Rewrote to use set_appblock, get_appblock, [], len, and append. * Store/DLP.py (DLPStore.install): Rewrote to use set_appblock, get_appblock, [], len, and append. * App/Doc.py: Removed old-style type registration. (Database.classify_record): Added. (Database.getRecord): Removed. (Database.__init__): Rewrote to use len and []. (DOCWriter.close): Rewrote to use append and set_appblock. (openDoc): Removed. (openDocRemote): Removed. * App/XWord.py: Removed old-style type registration. * App/Todo.py: Removed old-style type registration. * App/MoneyManager.py: Removed old-style type registration. * App/Memo.py: Removed old-style type registration. * App/Datebook.py: Removed old-style type registration. * App/Address.py: Removed old-style type registration. * Database.py: Added. (Database.getRecords): Eliminated, in favor of the more pythonish "__len__". (Database.__len__): Call backend directly. (Database.__getitem__): Call backend directly. (Database.getResource): Eliminated in favor of __getitem__. (Database.getRecord): Eliminated in favor of __getitem__. (Database.retrieve): Eliminated, now that Stores can do this. (Database.install): Eliminated, now that Stores can do this. (Database.setRecord): Eliminated in favor of "append" (which more accurately describes what the PalmPilot actually does!) (Database.addRecord): Same. (Database.setResource): Same. (Database.addResource): Same. (Database.getPref): Removed use of obsolete classification scheme. (Database.classify_record): Added. (Database.classify_resource): Added. (Database.get_id): Added. (Database.getResourceByID): Eliminated in favor of get_id. (Database.getRecordByID): Eliminated in favor of get_id. (Database.delete_all): Added. (Database.deleteRecords): Eliminated in favor of delete_all. (Database.deleteResources): Eliminated in favor of delete_all. (Database.delete): Added. (Database.deleteRecord): Eliminated in favor of delete. (Database.deleteResource): Eliminated in favor of delete. (Database.get_appblock): Renamed from getAppBlock. (Database.set_appblock): Renamed from setAppBlock. (Database.get_sortblock): Renamed from getSortBlock. (Database.set_sortblock): Renamed from setSortBlock. (Database.category_move): Renamed from moveCategory. (Database.category_delete): Renamed from deleteCategory. (Database.get_preference): Renamed from getPref. (Database.set_preference): Renamed from setPref. (Database.reset_flags): Renamed from resetFlags. (Database.purge_deleted): Renamed from purge. (Database.next_reset): Renamed from resetNext. (Database.next_record): Renamed from getNextRecord. (Database.next_modified): Renamed from getNextModRecord. (Database.ids): Renamed from getRecordIDs. 1999-05-20 Rob Tillotson <robt@debian.org> * util/sync.py (App.run_session): Support list of conduits as option value. * util/user.py (App.__init__): Use config_path. * util/install.py (App.__init__): Use config_path. * util/sync.py (App.__init__): Use config_path. (App.run_session): Use new registry, remove backward compatibility. * Plugin.py (Plugin.__init__): Use config_path. * Application.py (Application): Remove extraneous _config_toplevel. (Application.get_config): Use new method of getting stuff from registry. 1999-05-18 Rob Tillotson <robt@debian.org> * util/user.py: Import sulfur directly. * util/install.py: Import sulfur directly. * Conduit/Conduit.py: Remove extraneous Sulfur.Options import. * Conduit/Backup.py: Import Sulfur directly, instead of as Pyrite.Sulfur. * debian/links: It's called 'user' now, not 'palmuser'. * Makefile.in (install): Make symlink for Sulfur. * debian/postinst: Changes for new location. * debian/dirs: Changes for new location. * debian/links: Changes for new location. * debian/rules: Changes for new location. * Makefile.in (install): install in %%module_path%%/Pyrite, make links to PDA/Palm if needed. * configure: %%module_path%% is now the path to the site-packages directory, not the full destination. * Everything: Replace all references to "PDA.Palm" with "Pyrite" 1999-05-16 Rob Tillotson <robt@debian.org> * util/user.py (App.run): Remove argv/help processing. * util/sync.py (App.run): Remove argv/help processing. * util/install.py (App.run): Remove argv/help processing, as it is now in Sulfur. 1999-05-15 Rob Tillotson <robt@debian.org> * Store/DLP.py (DLPStore.install): Remove debugging stuff. * Store/Store.py (BaseStore.copy): Remove debugging stuff. 1999-05-14 Rob Tillotson <robt@debian.org> * Conduit/Sync.py: Removed. * Conduit/TimeSync.py (Conduit.__call__): Remove old code. * Conduit/Install.py (Conduit.__call__): Remove old code. * Conduit/Backup.py (Conduit.__call__): Remove old code. * Conduit/Install.py (Conduit.__init__): Remove all Options stuff, since they aren't used any more in this conduit. * Conduit/Backup.py (Conduit.__init__): New option semantics. * util/user.py (App.__init__): Rewrote for new option semantics. * util/install.py (App.__init__): Rewrote for new option semantics. 1999-05-13 Rob Tillotson <robt@debian.org> * util/sync.py: Rewrote to use Sulfur. * util/install.py: Rewrote to use Sulfur. * util/user.py: Replaces palmuser.py. * Application.py (Application.connect): Added 'immediate' argument. Return the store. * Store/DLP.py (DLPStore.remote_version): Added call to try_connect. (DLPStore.get_time): Same. (DLPStore.set_time): Same. * Store/Store.py (BaseStore.install): Added default install method which is simply the reverse of 'copy'. * debian/links: Added. * debian/rules: Removed explicit symlinks, add call to dh_link. 1999-05-12 Rob Tillotson <robt@debian.org> * Conduit/Install.py: Import Options from Sulfur. * Conduit/Conduit.py: Import Options from Sulfur. * Conduit/Backup.py: Import Options from Sulfur, instead of just PDA.Palm. * Plugin.py (Plugin): Derive from Sulfur.Plugin, and remove all old code. * Application.py: Remove extraneous import of Config. (_mkdir): Added. (user_directory_name): Added. (Application.user_exists): Added. (Application.user_add): Added. (Application.user_delete): Added. (Application.user_rename): Added. (Application.user_list): Added. (Application.user_directories): Added. * Store/File.py (FileStore.create): Use pdbfile.flags_to_info. * Store/Directory.py (DirectoryStore.create): Use pdbfile.flags_to_info. * pdbfile.py (flags_to_info): Added. (info_to_flags): Added. * Store/Directory.py (Store): Updated properties. * Store/DLP.py (Store): Updated properties. * Store/File.py (Store): Added. * Store/Store.py: Documented available properties. * App/App.py (App.list): Added. (App.listinfo): Added. 1999-05-11 Rob Tillotson <robt@debian.org> * App/*.py (App.__init__): Added default database parameters. * App/App.py (App.__init__): Added default database parameters. (App.open): Added. (App.create): Added. * Conduit/TimeSync.py (Conduit.__call__): Changed to work with new calling sequence. * Store/DLP.py (DLPStore.get_time): Added. (DLPStore.set_time): Added. * Store/Directory.py (DirectoryStore.delete): Added actual code. (DirectoryStore._find_db): Now returns filename at which the database was found. * Conduit/Install.py (Conduit.__call__): Changed parameters to work with new calling sequence. * Store/DLP.py (DLPStore.install): Added. (DLPStore.remote_version): Added. (DLPStore.disconnect): Added support for reset_on_close. * glue/_pdapalm.c (Version): Added wrapper for pi_version. 1999-05-10 Rob Tillotson <robt@debian.org> * doc/prg/Makefile (DOCBOOK_DCL): Changed default location of DocBook SGML declaration. * DLP.py (Database.__init__): Added resource_class. * Store/Directory.py (DirectoryStore._find_db): Change several "if not db" to "if db is not None", since Python uses __len__ to test for boolean true/falseness. * Store/Store.py (BaseStore.copy): Added, equivalent of "retrieve" in pilot-link, but in pure Pyrite. * Application.py (Application.user_directory): Oops, pass data directory to find_user_directory. * Conduit/Backup.py (Conduit.__call__): Change parameters to work with new calling sequence. * Conduit/Conduit.py (Conduit.__call__): Change parameters. * __init__.py: Import the platform-specific module. * Application.py, Config.py, Conduit/Backup.py, Store/Directory.py: ... and change it back again. 1999-05-09 Rob Tillotson <robt@debian.org> * Application.py, Config.py, Conduit/Backup.py, Store/Directory.py: Import protect_name from Platform. * DLP.py: Moved protect_name and unprotect_name to Platform/generic.py. * Platform/generic.py: Created, along with the Platform package. * README: Added pointer to programming documentation. Changed home page URL to use purl.org. 1999-05-08 Rob Tillotson <robt@debian.org> * Sulfur/Application.py: Removed extraneous imports. * Application.py: Moved generic stuff to Sulfur/Application.py. 1999-05-05 Rob Tillotson <robt@debian.org> * Config.py (Registry): Added is_registry. * Sulfur/*: Began moving application framework code here, in preparation for eventual separation. 1999-04-25 Rob Tillotson <robt@debian.org> * Application.py (Application.get_config): Changes to use new multi-level Registry. (Application.configure_user): Added. (Application.user_directory): Use local find_user_directory function, instead of one on registry. * Registry.py (Registry): Added is_registry attribute. You know, Python really needs some way of testing for class conformance (i.e. protocols) that is more reliable than isinstance. * Plugin.py (Plugin.configure): Support for new Registry module. 1999-04-24 Rob Tillotson <robt@debian.org> * App/Doc.py (DOCWriter.__init__): Added "filename" argument. (DOCWriter.close): Pass "filename" argument to Store. * Mkdist.rc (exclude_patterns): Add 'debian' directory to main source distribution. 1999-04-20 Rob Tillotson <robt@debian.org> * Plugin.py: Added type_name attribute, for use in help text et. al. where readable type information is useful. * Application.py (process_help): Added. (help_string): Added. (Application.process_help): Added. 1999-04-18 Rob Tillotson <robt@debian.org> * _pdapalm.c: Moved to glue/_pdapalm.c. * _Doc.c: Same. * configure: Changes to support move of C modules. * Makefile.in: Same. 1999-04-11 Rob Tillotson <robt@debian.org> * Application.py (Application.connected): Added. (Application.disconnect): Added 'successful' and 'log' options, passed to the Store's disconnect() method. (Application.get_plugin): Support searches in the current directory ('' in path). * Store/DLP.py (DLPStore.try_connect): Added, plus 'connect' and 'disconnect', and put calls to try_connect in all the other methods, the purpose being to defer the actual connection until the store is *used*, instead of when it is *instantiated*. (DLPStore.__init__): Added preconnect_hook and postconnect_hook, which are called at the time the [deferred] connection is made. (DLPStore.connect): Get user info. (DLPStore.disconnect): Set sync dates and log message. * Application.py (parse_cmd_options): Added [copied from Doc Toolkit devel version]. (Application.process_options): Added. * Options.py (Option.__init__): Added a 'changed' attribute. * Plugin.py (Plugin.set_option): Added. (Plugin.get_option): Added. (Plugin.has_option): Added. * Options.py: Added a "runtime" initialization option and attribute, to specify whether an option is suitable for specification on every run [whatever that means]. The Application class will use this to select and process command-line options. 1999-04-10 Rob Tillotson <robt@debian.org> * Store/Directory.py (DirectoryStore.create): Protect against exception if flags is None. * App/Doc.py (DOCWriter.close): Fix calls to 'create' to avoid passing a None for flags. * Store/Directory.py: import time. * App/Doc.py (DOCWriter.close): Change instance test from 'Store' to 'BaseStore', after reorganization of Store plug-ins. 1999-04-04 Rob Tillotson <robt@debian.org> * Store/Directory.py (DirectoryStore.create): Implemented. * App/Doc.py (DOCWriter.close): When creating the doc over a direct DLP connection, set the version. (DOCWriter.close): Add support for Stores. * Store/Store.py: Removed extraneous 'import DBTypes' 1999-03-30 Rob Tillotson <robt@debian.org> * _Doc.c: Renamed and made static all internal functions to fix a dynamic loading conflict that manifested itself as a segfault in Doc Toolkit when using the XML package for fast parsing. 1999-03-24 Rob Tillotson <robt@debian.org> * Application.py (Application.user_directory): Added. * Store/UserInstall.py: Removed. * Store/UserBackup.py: Removed. * Store/UserDirectory.py: Removed this and its subclasses, because functionality will be moved into the Application class instead [where it can more properly take into account configuration information, user name retrieved from the handheld, etc.]. * Store/DLP.py: See below. * Store/Directory.py: Rearranged, see below. * Store/Store.py (Store): Made the default Store plugin a factory that generates BaseStore objects. (BaseStore): Renamed old Store class to BaseStore, and made it no longer a plugin. * All: Fixed many references to '$Version$' to read '$Revision: 1.60 $' instead. Argh. * Plugin.py (Plugin.configure, Plugin.__init__): Added config_section and config_prefix attributes to control searching through the registry. 1999-03-23 Rob Tillotson <robt@debian.org> * Application.py: Added. * Plugin.py (Plugin.configure): Added support for top-level configuration, so that the Application class will work more or less correctly. (This should be broken out into a mixin class at some point, since Applications aren't really Plugins otherwise.) (Plugin): Added is_plugin flag variable. 1999-03-11 Rob Tillotson <robt@debian.org> * Release 0.6.1 1999-03-10 Rob Tillotson <robt@debian.org> * Conduit/Backup.py (Conduit.__init__): Added a 'debug' option. (Conduit.__call__): Changed incremental backup rule, so that a DB is backed up if the creation date differs from the last backup, or if BOTH the modification date AND modification number differ. The reason for the latter is that under normal circumstances, the two are changed at the same time. If a DB is marked by a BackupBuddy compliant app for non-backupness, the number may differ but the date will not. On the other hand, the OS changes the date any time it moves stuff around in the heaps, even though nothing has really changed... the number, however, is left alone. Also, took the check_dates option back out again. * Plugin.py (Plugin.configure): Fixed a silly typo. 1999-02-21 Rob Tillotson <robt@debian.org> * _pdapalm.c: Rearranged a bunch of stuff to eliminate static forward references to untyped arrays [required for compilation on SGI, and possibly other platforms]. * _pdapalm.c (GetTime): Changed unsigned long to time_t. * Conduit/Backup.py (Conduit.__call__): If backup of a database fails, remove the backup file if any. * Blocks.py (palm_date_to_tuple): Change '+4' to '+1904'; some systems do not accept two-digit years above 99. * Conduit/Backup.py (Conduit.__init__): Added check_dates option. (Conduit.__call__): During incremental backup, do not compare modification dates unless the check_dates option is set. 1999-02-01 Rob Tillotson <robt@debian.org> * Release 0.6.0 1999-01-31 Rob Tillotson <robt@debian.org> * Cleaned up subclass references in all App modules. * Fixed all references to old e-mail address. 1999-01-30 Rob Tillotson <robt@debian.org> * Fixed version attributes in all plug-ins. * Store/Store.py (Store): Moved 'type' attribute to class. * App/*.py (App): Added plug-in classes to all application modules. * App/App.py: Added. * Conduit/Conduit.py (Conduit): Moved 'type' attribute to class. 1999-01-28 Rob Tillotson <robt@debian.org> * Filter/Filter.py (Filter): Whoops, forgot to subclass it. * Config.py (Registry): Made names case-insensitive. 1999-01-22 Rob Tillotson <robt@debian.org> * debian/rules: Changed pp-hotsync to pp-sync. * debian/pyriteconfig.1: See below. * debian/pp-userconfig.1: See below. * debian/pp-install.1: Edited to reflect changes in pp-hotsync, and to correct trademark use. * debian/pp-hotsync.1: Renamed and edited to reflect new name. * util/configsetup.py: Removed references to "Pilot" and "PalmPilot". * Conduit/HotSync.py: Change "HotSync" to "Sync" and rename. * util/hotsync.py: Changed "HotSync" to "sync" and renamed to "sync.py". * All: The great renaming begins. Thank Goddess for search and replace. Corrected all "PalmPython" references to say "Pyrite" instead. 1999-01-21 Rob Tillotson <robt@debian.org> * Plugin.py (find_plugins): Added. * All: Moved LGPL notices to comments instead of docstrings, updated all copyright notices with proper year and email address. 1999-01-20 Rob Tillotson <robt@debian.org> * README: Rewrote from scratch. * doc/INSTALL: Rewrote installation instructions from scratch. 1999-01-18 Rob Tillotson <robt@debian.org> * _pdapalm.c (DatebookPack): Removed. (DatebookUnpack): Removed. (DatebookUnpackAppBlock): Removed. (DatebookPackAppBlock): Removed. (stringlook): Removed (was a support function for DatebookPack). * App/Datebook.py (Record.unpack): Purified. (Record.pack): Purified. * Blocks.py (Record.dump): Added to this and all other Block classes. 1999-01-12 Rob Tillotson <robt@debian.org> * App/Datebook.py (AppBlock): Converted to child of CategoryAppBlock and added field definitions. (AppBlock.unpack): Purified. (AppBlock.pack): Purified. * App/Todo.py: Import directly from PDA.Palm.Blocks. (AppBlock): Converted to child of CategoryAppBlock. (AppBlock.__init__): Added field definitions. Use */** calling convention. (Record.__init__): Use */** calling convention. * App/Memo.py: Import directly from PDA.Palm.Blocks. (Record.__init__): Use */** calling convention. (AppBlock.__init__): Added field definitions. Use */** calling convention. (AppBlock): Converted to child of CategoryAppBlock. * App/Address.py: Import directly from PDA.Palm.Blocks. (AppBlock): Converted to child of CategoryAppBlock, with corresponding changes in __init__, unpack, and pack. * Blocks.py: Moved the whole Block family of classes, and related constants and functions, into its own module. (CategoryAppBlock): Added. 1999-01-07 Rob Tillotson <robt@debian.org> * _pdapalm.c (TodoUnpack): Removed. (TodoPack): Removed. (TodoUnpackAppBlock): Removed. (TodoPackAppBlock): Removed. * App/Todo.py (Record.unpack): Purified. (Record.pack): Purified. (AppBlock.unpack): Purified. (AppBlock.pack): Purified. * App/MoneyManager.py (AppBlock.unpack): Purified, but of course the rest of this module is still woefully out-of-sync with the current Block API. (AppBlock.pack): Purified, see comment above. * _pdapalm.c: Removed extraneous #includes and a leftover method table for the old MemoAppBlock class. (AddressUnpack): Removed. (AddressPack): Removed. (AddressUnpackAppBlock): Removed. (AddressPackAppBlock): Removed. * App/Address.py (Record.unpack): Purified. (Record.pack): Purified. (AppBlock.unpack): Purified. Also, corrected a minor bug: there are actually 22 field labels and corresponding labelRenamed bits, not 19. The three extras, plus the labels for the five phone fields, form the list of 8 possible phone labels. (AppBlock.pack): Purified and accounted for above mentioned bug. (AppBlock.__init__): Added initialization of self.fields. 1999-01-06 Rob Tillotson <robt@debian.org> * _pdapalm.c (MemoUnpack): Removed. (MemoPack): Removed. (MemoUnpackAppBlock): Removed. (MemoPackAppBlock): Removed. * App/Memo.py (Record.unpack): Purified. (Record.pack): Purified. 1999-01-05 Rob Tillotson <robt@debian.org> * App/Memo.py (AppBlock.unpack): Purified (removed call to C). (AppBlock.pack): Purified. * DLP.py (unpack_category_appinfo): Added, replacing unpackCategoryAppInfo in _pdapalm.c. (pack_category_appinfo): Replaces packCatgoryAppInfo in _pdapalm.c. 1998-12-11 Rob Tillotson <robt@debian.org> * Store/Store.py (Store): Raise exceptions for all stub methods. * Store/Directory.py (Store.open, Store._find_db, Store._try_open_db): See below. * Store/Store.py (Store.open): Added database class to default arguments. * DBTypes.py: Avoid multiple initializations of Types and PrefTypes. Thu Dec 3 16:36:36 1998 Rob Tillotson <robt@debian.org> * DBTypes.py: Created. * DLP.py (DictAssoc): Moved to its own file. Thu Dec 3 02:05:30 1998 Rob Tillotson <rob@io.com> * Store/Directory.py: Created. * Store/Store.py: Created. Sat Oct 31 14:34:40 1998 Rob Tillotson <rob@io.com> * Filter/Filter.py: See below. * Conduit/TimeSync.py: See below. * Conduit/Install.py: See below. * Conduit/HotSync.py: See below. * Conduit/Backup.py: See below. * Plugin.py: Moved static plugin information to the class, so it is accessible without instantiating an object. * Options.py: Added "import string". Oops. Sun Oct 25 20:17:00 1998 Rob Tillotson <rob@io.com> * Release 0.5.5. * App/Memo.py (AppBlock.unpack): Unpack to self.data. (AppBlock.pack): And the reverse. * App/Todo.py (Record.unpack): Stupid capitalization error. (Record.pack): Same. (AppBlock.unpack): And again. (AppBlock.pack): Yet again. * debian/rules: Added cleaning of platform binary, Makefile, and Setup.in. (Should fix #28402) * Makefile.in: Added a "clean" target which simply calls the standard "clean", in the platform binary directory. Sun Sep 13 00:01:44 1998 Rob Tillotson <rob@io.com> * App/XWord.py (Record.read_usa_today): Accounted for yet another inconsistency in USA Today puzzle header lines. * util/fetchusa.py: Updated to use new Record API. * App/XWord.py: Added imports of FLD_* constants. * Release 0.5.4. * Debian: Fixes #26672. * Conduit/Install.py (Conduit.install): Fix path. * Conduit/Backup.py (Conduit.__init__): Removed backup_dir option altogether. * Conduit/Install.py (Conduit.__init__): Removed install_dir option altogether. Sat Sep 12 23:49:37 1998 Rob Tillotson <rob@io.com> * Options.py (Filename.__init__): Call proper init function. * Conduit/Install.py (Conduit.__call__): Same stupid bugfix. * Conduit/Backup.py (Conduit.__call__): Stupid bugfix: set backup directory to correct value. Thu Sep 10 13:56:56 1998 Rob Tillotson <rob@io.com> * Release 0.5.3. * Debian: changed priority to "extra". Sun Sep 6 06:37:18 1998 Rob Tillotson <rob@io.com> * App/Doc.py (DOCReader.readline): Fixed bug which caused infinite loop at end of documents which did not end with a newline. Fri Sep 4 02:20:04 1998 Rob Tillotson <rob@io.com> * App/Doc.py (DOCWriter): Add a 'version' attribute, to control the version of the database. * _pdapalm.c: Fixed stupid typo which caused setAppBlock on files to fail. * App/Doc.py (DOCWriter.set_appinfo): Added appinfo support. Tue Sep 1 01:10:13 1998 Rob Tillotson <rob@io.com> * Release 0.5.2 * Packaged for Debian GNU/Linux. * util/configsetup.py: Added. * Conduit/HotSync.py (SyncManager.connect): Modify to use Config.PalmRegistry.port. * Config.py (Registry.del_section): Added. (Registry.del_key): Added. (PalmRegistry.port): Added. * util/palmuser.py: Added. * Tk/UserDialog.py: Added. * Config.py (PalmRegistry.list_users): Added. * DLP.py (unprotect_name): Added. * Config.py (PalmRegistry.user_directory): protect name. (PalmRegistry.user_directory): Add parameters for user name and dir. (PalmRegistry.add_user): Added. (PalmRegistry.has_user): Added. (PalmRegistry.delete_user): Added. (PalmRegistry.rename_user): Added. * DLP.py (protect_name): moved from Conduit/Backup.py to main module. Mon Aug 31 23:52:19 1998 Rob Tillotson <rob@io.com> * Config.py (Registry): Added __str__, save_file, and set methods for use in configuration editing. Fri Aug 28 04:58:06 1998 Rob Tillotson <rob@io.com> * Release 0.5.1 * Conduit/Conduit.py: Bugfix: remove import of Conduit.Config. * util/hotsync.py: Bugfix: remove import of Conduit.Config. * util/install.py (install_files): Fixed a stupid argument bug, and moved functionality to Conduit/Install.py. * Conduit/Install.py (install_files): Added function. * doc/COPYING: Changed license to LGPL v2. Fixed license boilerplate in all files. Thu Aug 27 05:12:00 1998 Rob Tillotson <rob@io.com> * App/Doc.py (DOCWriter.__init__): Added category support. Wed Aug 26 05:02:09 1998 Rob Tillotson <rob@io.com> * Release 0.5.0. Tue Aug 25 03:07:52 1998 Rob Tillotson <rob@io.com> * Makefile.dist: Use template. * util/install.py (install_files): Rewrite to use new registry. * util/hotsync.py: Changed /usr/bin/env python to /usr/bin/python. * util/hotsync.py: Now just a shell of its former self, since even its minimal functionality is now part of the SyncManager. * Conduit/HotSync.py (SyncManager): Added connect and disconnect methods, modified __call__ to use them. SyncManager.connect loads the registry, connects to the device, and verifies the user information, then stashes everything in self.dlp and self.user_info; disconnect writes the user info back and closes the connection. (__call__): Modify to use new naming convention for preferences. Sun Aug 23 16:53:35 1998 Rob Tillotson <rob@io.com> * Plugin.py (Plugin.configure): Change of Registry API. * Config.py: Created. * Options.py: Added from_str methods to all option classes. Sat Aug 22 08:38:56 1998 Rob Tillotson <rob@io.com> * App/Doc.py (DOCWriter.__init__): Added arguments for type, creator, and backup; removed argument for remote. (DOCWriter.close): Use isinstance to test for remote database; set creator, type, and backup flags. (DOCWriter.close): Fixed minor bug with remote installation. Tue Aug 18 20:20:56 1998 Rob Tillotson <rob@io.com> * App/Doc.py (DOCWriter): Now takes title and filename/remote DLP arguments, and opens the document database when the stream is closed, instead of requiring it to be open before accumulating data. (openDoc and openDocRemote): Altered to work with new DOCWriter API. Wed Jul 1 10:49:36 1998 Rob Tillotson <rob@io.com> * App/XWord.py (Record.__init__): Added field list. (Record.unpack): Field access type change. (Record.pack): Field access type change, and use self.packfields. (Record.read_usa_today): Same. * App/Doc.py (HeaderRecord.__init__): Added field list. (HeaderRecord.unpack): Unpack with self.unpackfields. (HeaderRecord.pack): Same. (TextRecord.__init__): Added field list. (TextRecord.unpack): Field access method change. (TextRecord.pack): Same. (TextRecordV1.__init__): Added field list. (TextRecordV1.unpack): Field access method change. (TextRecordV1.pack): Same. (BookmarkRecord.__init__): Added field list. (BookmarkRecord.unpack): Unpack with self.unpackfields. (BookmarkRecord.pack): Same. (Database.getRecord): Field access method change. (DOCWriter.__init__): Field access method change (throughout entire class) (DOCReader.__next): Same. * DLP.py (Block.packfields): Added convenience function for apps that don't have a C-based pack/unpack function. (Block.unpackfields): Same. * App/Todo.py (Record.__init__): Added field list. (Record.unpack): Unpack into self.data. (Record.pack): Same. * App/Memo.py (Record.__init__): Added field list. (Record.unpack): Unpack into self.data. (Record.pack): Same. * App/Datebook.py (Record.__init__): Added field list. (Record.unpack): Unpack into self.data. (Record.pack): Same. * App/Address.py (Record.__init__): Added field list. (Record.unpack): Unpack into self.data. (Record.pack): Same. * DLP.py (Block): Added internal data dictionary and field type dictionary. Note that this means that all accesses to record data should now use the dictionary interface to the record! This is intended to separate fields from any other attributes we might want to have on each record, in case there is a name overlap. (It also makes it easy to use keys(), get(), etc.) Wed Jun 24 14:02:04 1998 Rob Tillotson <rob@io.com> * App/Address.py (Record.__init__): Pass all arguments untouched to PDA.Palm.Record.__init__; should solve id/category=0 bug. Fri Jun 12 07:47:43 1998 Rob Tillotson <rob@io.com> * Conduit/Conduit.py (Conduit): Removed code that is now in the Plugin class. (Conduit.__init__): Set the 'type' attribute. * Plugin.py: Moved generic conduit code into the Plugin class, for use elsewhere. Mon Jun 8 02:57:22 1998 Rob Tillotson <rob@io.com> * Release 0.4.0. Mon Jun 1 11:04:12 1998 Rob Tillotson <rob@io.com> * Conduit/TimeSync.py (Conduit.__init__): Remove unneeded and incorrect initialization of 'options'. * configure (version): Correctly identify release version (eg. 1.5) when there is a minor release number (eg. 1.5.1). (guess_prefix): First try at a simple prefix-guessing function. Hopefully this will be the first step toward a more intelligent configuration script. Thu May 21 04:07:54 1998 Rob Tillotson <rob@io.com> * Conduit/Conduit.py (Conduit.__setattr__): Overload to allow options to be treated like instance attributes. (Conduit.__getattr__): Same. * Conduit/Install.py (Conduit.__init__): New option system. * Conduit/Backup.py (Conduit.__init__): New option system. * Conduit/Conduit.py (Conduit.configure): Rewrote to use new option system. (Conduit.gui_configure): Added. * Options.py (String.validate): Added type check. (Integer.validate): Added type check. (Float.validate): Added type check. (Filename): Made Filename a subclass of String, so that the value can be typechecked and compared against a regex (this might be useful to check if the name is in a certain directory, for instance). Mon May 18 10:59:48 1998 Rob Tillotson <rob@io.com> * Options.py: Added. * Tk/ConfigDialog.py: Added. Wed May 13 02:38:58 1998 Rob Tillotson <rob@io.com> release 0.3.0 * util/install.py (tk_install): Simple Tk installer. Call 'install.py' with no arguments and it will pop up a multiple-select DBFileDialog, installing the files you pick. Sun May 3 08:05:39 1998 Rob Tillotson <rob@io.com> * Makefile.in: Added. * configure: Generates a simple Makefile, to eliminate the need to cd into the platform binary directory. Building should now be as simple as './configure; make; make install' in most cases. * All: In accordance with Palm Computing's wish to eliminate the name "Pilot", renamed module to "PDA.Palm", correcting all internal references to the old name. Renamed the _pdapilot internal module to _pdapalm. Sat Apr 25 17:27:37 1998 Rob Tillotson <rob@io.com> * Tk/DBFileDialog.py: Added. * Tk/DBInfoDialog.py: Added. * pdbfile.py: added. Sun Apr 19 20:05:00 1998 Rob Tillotson <rob@io.com> * util/install.py: Added. Mon Apr 13 15:57:55 1998 Rob Tillotson <rob@io.com> release 0.2.3 * Makefile: New way of building source distribution, so all of my working files don't get included. Tue Mar 31 15:25:53 1998 Rob Tillotson <rob@io.com> * App/Doc.py (DOCWriter): Set the 'modified' bits of each record written, and generate unique IDs, as it appears that the Windows HotSync Manager may refuse to install databases without them. * DLP.py (createFile): set default modifyDate to the current time. Mon Mar 23 21:44:49 1998 Rob Tillotson <rob@io.com> release 0.2b * configure: Added. * INSTALL: Changed to reflect new installation procedure. * App/__init__.py: Removed platform-specific import directory, since all binaries are now at the top level. Sat Mar 14 20:35:16 1998 Rob Tillotson <rob@io.com> * Conduit/Backup.py (Conduit.__call__): Transform characters in db names which would be illegal in Unix filenames to something more appropriate (same as pilot-xfer). Sun Mar 8 08:19:19 1998 Rob Tillotson <rob@io.com> * DLP.py (openBackendDB): Added. Need to think of a good API for this and the equivalent 'create' function. * util/xmldoc.py: Removed to distribute separately. * util/PilotDoc.dtd: Removed to distribute separately. Fri Mar 6 17:34:43 1998 Rob Tillotson <rob@io.com> * App/Doc.py: Added registration for TealDoc documents (creator == 'TlDc') Thu Mar 5 10:51:05 1998 Rob Tillotson <rob@io.com> release 0.2 * doc/options.txt: Added. * util/hotsync.py: Rewrote to use Registry. * Conduit/Conduit.py (Conduit.configure): Can now configure option values from a Registry object. * Conduit/HotSync.py (SyncManager.__call__): Changed API because of new configuration interface. Lots of other changes to support Registry objects. Wed Mar 4 08:59:36 1998 Rob Tillotson <rob@io.com> * Conduit/Config.py: Added. * util/xmldoc.py: Added. * util/PilotDoc.dtd: Added. Mon Mar 2 07:09:40 1998 Rob Tillotson <rob@io.com> * DLP.py (Database.setPref): Changed to work with new C module methods that no longer access record structure directly. (DLP.setPref): Same. (DLP.getPrefRaw): Added. (DLP.setPrefRaw): Added. * _pdapilot.c (SetAppPref): Remove dependency on "pack" method, similar to all other such functions. (SetAppPrefRaw): Removed, as SetAppPref now does the same thing (but with arguments in a different order!) (DBSetAppPref): Remove dependency, as in SetAppPref. (GetAppPrefRaw): Remove, as it has been redundant for a while. * DLP.py (Database.setRecord): Changed to work with new C module methods that no longer access record structure directly. (Database.setResource): Same. (Database.addRecord): Same. (Database.addResource): Same. (Database.setAppBlock): Same. (Database.setSortBlock): Same. * _pdapilot.c (SetAppBlock): Remove dependency on "pack" method; now takes a string of raw data as argument, making the Database class responsible for packing the block. (SetSortBlock): Same. (FileSetAppBlock): Same. (FileSetSortBlock): Same. (SetRec): Same; also takes attributes, id, and category as arguments, and returns the new id. (FileAddRec): Same; also takes type and id as arguments. (FileAddRsc): Same. * Makefile: Took out PYMODULES=pdapilot, since we don't have that any more. * App/__init__.py: Added platform-specific binary directory to module path. * __init__.py: Added platform-specific binary directory to module path, so that binary modules can be placed in it. This should allow easier creation of binary distributions and easier sharing of the package in a multiplatform environment. Sat Feb 28 02:33:22 1998 Rob Tillotson <rob@io.com> release 0.1b * _pdapilot.c (TodoPack): Added check for exception in ParseTm. (DatebookPack): Fixed counting error in parsing of repeatWeekly. (DatebookPack): When packing string values, check to see if the value in the dictionary is actually a string -- if it is not, PyString_AsString raises an exception which is not caught until the *next* statement. (DatebookPack): Changed final packing to allocate a buffer only big enough to hold the data (by calling pack_Appointment with a null buffer pointer first), instead of 64k. (DatebookUnpackAppBlock): Added. (DatebookPackAppBlock): Added. * App/Datebook.py: New. * _pdapilot.c: Updated with changes between pilot-link 0.8.6 -> 0.8.11; bug fixes and addition of datebook support. (Minor "cleanup" changes not incorporated yet where they don't affect operation of the code.) Fri Feb 27 13:29:28 1998 Rob Tillotson <rob@io.com> * App/MoneyManager.py: New. * App/Doc.py: Took out redundant "import struct" Thu Feb 26 14:20:54 1998 Rob Tillotson <rob@io.com> release 0.1a * util/hotsync.py: Rewrote, so it is now useful. * Conduit/__init__.py: Added an __all__, since it is likely that a hotsync management program might import a lot of conduits at once. * Conduit/Install.py: New. * Conduit/Backup.py (backup_dir): Conduit now inserts username at %s in backup directory; default directory changed to accommodate multiple role directories under each username. * Conduit/HotSync.py (SyncManager.__call__): Now logs the contents of the userinfo structure at the beginning of sync. * Conduit/TimeSync.py: New. * _pdapilot.c: Fixed a typo in the method table for dlp objects... "setTime" was pointing at the GetTime function. * DLP.py (DLP.openSocket): now calls the socket's 'status()' method and returns the result. Apparently, it is this call (which is actually dlp_OpenConduit) which causes the HotSync display to move from 'Identifying user' to 'Synchronizing'. (Failing to call it doesn't affect the sync process one bit... the display will just sit at 'Identifying user' the whole time.) (DLP.setTime): Whoops, called self.setTime instead of self.__dlp.setTime.