‡Æ
IUó9c       s  d  Z  d Z d Z d k l Z d k l Z d k Z d k Z d k	 Z	 d k
 Z
 d k Z d k Z d e i j o e i i d ƒ n d k l Z d k l Z d k Z d	 k l Z l Z l Z d
 k l Z d k Z d k Z d k l Z l Z l Z l Z y d k Z e Z Wn d k Z n Xd „  Z d e i  i  f d „  ƒ  YZ  d e i! f d „  ƒ  YZ" d e i# f d „  ƒ  YZ$ d S(   s   Pyrite Application Subclass
s7   $Id: Application.py,v 1.6 1999/12/16 10:00:32 rob Exp $s.   Copyright 1999 Rob Tillotson <robt@debian.org>(   s	   ClassType(   s   randintNs   user(   s   Plugin(   s	   Directory(   s   Registrys   Optionss
   AppContext(   s   misc(   s   protect_names   unprotect_names   Databases   _c    sS   t  i i |  ƒ o/ t  i i |  ƒ o t t d ƒ |  ‚ n n t  i |  ƒ d  S(   Ns!   %s exists, but is not a directory(   s   oss   paths   existss   ds   isdirs   RuntimeErrors   _s   mkdir(   s   dsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   _mkdir6 s    s   Applicationc    	  s²  d  Z  d Z d Z d Z e i d d e d ƒ e f  d g ƒ e i d d e d ƒ e f  d g ƒ e i d	 d e d
 ƒ e f  d	 g ƒ g Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d d „ Z d e d ƒ d „ Z d „  Z e e d „ Z d d e d „ Z d „  Z d e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d  „  Z d! „  Z e d" „ Z e e d# „ Z d% e d$ „ Z d% d& „ Z  d% e d' „ Z! d( „  Z" d) „  Z# RS(*   s   A Pyrite application.
    s   PyriteApplications   DefaultApplications   Pyrites   old-pdbi    s   use old prc/pdb access codes   old-dlps   use old DLP access codes   debugs   enable debugging codec    sr   t  i i i |  ƒ t |  _ t |  _ t |  _ t |  _ t |  _	 t |  _
 t |  _ h  |  _ |  i i d d ƒ d  S(   Ni    s   Pyrite(   s   Sulfurs   Applications   __init__s   selfs   Nones   ports   default_users   default_uids   users   uids   sync_ids   remotes   states   plugin_module_paths   insert(   s   selfsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   __init__d s    								c    sÛ  |  i } t i i d ƒ o t i d |  _ n„t i i d ƒ o t i d |  _ n]| i d ƒ oª | i d ƒ |  _ t |  i ƒ t g  ƒ j ox |  i oK |  i	 t
 d ƒ d ƒ |  i	 t
 d ƒ |  i d d ƒ |  i d |  _ n  |  i	 t
 d ƒ d ƒ t |  _ n n£ | i d	 d
 ƒ } t | ƒ t g  ƒ j o; | o | d |  _ n  |  i	 t
 d ƒ d ƒ t |  _ n= d | j o& t i t i | d ƒ d ƒ |  _ n
 | |  _ |  i o# |  i	 t
 d ƒ d ƒ d |  _ n t i i d ƒ o t i d |  _ n" t i i | i d d
 ƒ ƒ |  _ |  i o/ |  i	 t
 d ƒ d ƒ t i i d ƒ |  _ n t |  i ƒ t i i |  i d ƒ } t | ƒ y. t i t t i i | d ƒ d ƒ ƒ |  _ Wn h  |  _ n Xt i i d ƒ o t i d |  _ n% | i d |  i i d t ƒ ƒ |  _ t i i d ƒ o t i d |  _ n% | i d |  i i d t ƒ ƒ |  _ |  i o |  i	 t
 d ƒ d ƒ n |  i o |  i o |  i |  i ƒ o |  i |  i |  i ƒ n |  i i d ƒ p( |  i i d ƒ p |  i d t i j o8 d k  l! } | d d  ƒ d! >| d d  ƒ B|  i d <n |  i i d d ƒ |  _" |  i i d" ƒ oU h  } xH |  i d" i$ ƒ  d r1 } | o | |  i& j o |  i& i' | ƒ n qŽWn |  i( |  i ƒ d  S(#   Ns
   PYRITEPORTs	   PILOTPORTs   defaults::default-ports3   defaults::default-port option should not be a list.s   warnings   using %s as the default port.i    s(   defaults::default-port is an empty list.s   defaults::ports    s    defaults::port is an empty list.s   ,s2   no port specified in config file, using /dev/pilots
   /dev/pilots
   PYRITEPATHs   defaults::data-directorys)   no data directory specified, using ~/Palms   ~/Palms   Pyrites   states   rs
   PYRITEUSERs   defaults::users   users	   PYRITEUIDs   defaults::uids   uids   no default user specifieds   syncids   pyrite_version(   s   randintiÿÿ  i   s   products()   s   selfs   registrys   rs   oss   environs   has_keys   ports   gets   types   errors   _s   Nones   ps   strings   strips   splits   data_directorys   paths
   expandusers   _mkdirs   joins   pydirs   pickles   loads   opens   states   default_users   default_uids   user_existss   user_adds   Pyrites   versions   whrandoms   randints   sync_ids   prds   valuess   pkgs   plugin_module_paths   appends   change_user(   s   selfs   rs   ps   pydirs   randints   prds   pkgsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   preruns sx    	
! &	!
.$$(?+ c    sÕ   |  i |  i d <|  i |  i d <|  i |  i d <t i |  i d <|  i ol t |  i ƒ t t	 i
 i |  i d ƒ ƒ y5 t i |  i t t	 i
 i |  i d d ƒ d ƒ ƒ Wn n Xn |  i ƒ  o |  i ƒ  n d  S(   Ns   users   uids   syncids   pyrite_versions   Pyrites   states   w(   s   selfs   users   states   uids   sync_ids   Pyrites   versions   data_directorys   _mkdirs   oss   paths   joins   pickles   dumps   opens	   connecteds
   disconnect(   s   selfsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   postrunÛ s    
!  c    s   t  d ƒ |  i GHd  S(   NsF   Waiting for connection on %s (start the HotSync(R) application now)...(   s   _s   selfs   port(   s   selfs   as   kwsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys
   preconnects    c    s¹   |  i t d ƒ ƒ | i } |  i t d ƒ | d ƒ |  i t d ƒ t i | d ƒ ƒ |  i t d ƒ t i | d ƒ ƒ |  i t d ƒ | d	 | d
 | d f ƒ |  i ƒ  d  S(   Ns   Identifying user...s   User Name: %ss   names   Last Sync: %ss   lastSyncDates   Last Successful Sync: %ss   successfulSyncDates$   UID: %s  VID: %s  LastSyncPC: 0x%08xs   userIDs   viewerIDs
   lastSyncPC(	   s   selfs   logs   _s   stores	   user_infos   uinfos   times   ctimes   connect_user(   s   selfs   stores   as   kws   uinfosI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   postconnects    	$$,c    s|   |  i d ƒ o |  i d d ƒ } n |  i d d ƒ } | |  i d |  i |  i ƒ |  _ | o |  i i	 ƒ  n |  i Sd S(   s   Instantiate a remote store.s   old-dlps   Stores   OldDLPs   DLPi    N(
   s   selfs
   get_options
   get_plugins   ps   ports
   preconnects   postconnects   remotes	   immediates   connect(   s   selfs	   immediates   psI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   connects     ! c    s   |  i i | | ƒ d  S(   N(   s   selfs   remotes
   disconnects
   successfuls   log(   s   selfs
   successfuls   logsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys
   disconnect&s    i   s   Sync completed.c    s!   |  i t j	 o |  i i ƒ  Sd  S(   N(   s   selfs   remotes   Nones	   connected(   s   selfsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys	   connected)s    c    s‚   | t j o |  i  } n |  i  o t t d ƒ ‚ n | o# t i i |  i	 t
 | ƒ | ƒ Sn t i i |  i	 t
 | ƒ ƒ Sd  S(   Ns   uid is zero(   s   uids   Nones   selfs   RuntimeErrors   _s   names   oss   paths   joins   data_directorys   str(   s   selfs   names   uidsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys	   user_path0s     #c    s·   | t j o |  i  } n | o t t d ƒ ‚ n t i i |  i t	 | ƒ | ƒ } | o t | ƒ n |  i d ƒ o |  i d d ƒ } n |  i d d ƒ } | | ƒ } | Sd S(   s¿   Access a specific user data directory.

	Returns an appropriate Directory Store object.
	If the 'make' parameter is true (the default), and the
	directory doesn't exist, it will be created.
	s   uid is zeros   old-pdbs   Stores   OldDirectorys	   DirectoryN(   s   uids   Nones   selfs   RuntimeErrors   _s   oss   paths   joins   data_directorys   strs   dirs   makes   _mkdirs
   get_options
   get_plugins   ps   s(   s   selfs   dirs   makes   uids   paths   ps   ssI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   user_directory:s      ! s   backupc    sA   t  i i |  i t |  i ƒ ƒ } t | d „ t  i	 | ƒ ƒ Sd S(   s0   List all available top-level user directories.
	c    s   t  i i t  i i | |  ƒ ƒ S(   N(   s   oss   paths   isdirs   joins   x(   s   xs   pathsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   <lambda>Ss    N(
   s   oss   paths   joins   selfs   data_directorys   strs   uids   ps   filters   listdir(   s   selfs   psI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   user_directoriesOs     !c    s¯  t  i  | ƒ \ } } } } }	 }
 | d j ot i	 | ƒ } t i i | ƒ \ } } | o | d d j o | d } n | o |  i
 } n | o
 d } n d | j o
 d } n d } y t | ƒ } Wn |  i | ƒ } n X| o t t d ƒ | ‚ n |  i | | | ƒ } t | i | | | f | ƒ Snp| d d	 g j p | d
 j o | o
 | d j oJ |  i d d ƒ } | | ƒ } | i ƒ  } t | i | | | f | ƒ Snò | d
 j o
 | } n |  i  d ƒ o |  i d d ƒ } n |  i d d ƒ } | | ƒ } | i ƒ  } | of t i i | ƒ \ } } |  i  d ƒ o |  i d d ƒ } n |  i d d ƒ } | | ƒ } | } n t | i | | | f | ƒ Sd S(   s(  Open an arbitrary database.
	This function can take either a filename or a URL as its argument.
	The following URL types are acceptable:
	    http -- database is fetched and opened read-only
	    ftp  -- database is fetched and opened read-only
	    file -- equivalent to filename if on 'localhost', otherwise
	            tries ftp
	    user -- open a database in a user directory:
	      user://username/directory/databasename

	If attempting to open by filename fails, this function then tries
	to open by *database name* in the current directory.
	s   useri    s   /i   s   backups   ws   user '%s' not founds   https   ftps   files	   localhosts   Stores   URLs   old-pdbs   OldFiles   Files   OldDirectorys	   DirectoryN(!   s   urlparses   names   schemes   locs   paths   params   querys   frags   urllibs   unquotes   users   oss   splits   ns   selfs   modes   makes   ints   us   user_lookups   RuntimeErrors   _s   user_directorys   ss   applys   opens   dbclasss   kws
   get_plugins   ps   lists   ls
   get_option(   s   selfs   names   modes   dbclasss   kws   schemes   locs   paths   params   querys   frags   users   ns   makes   us   ss   ps   lsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   openVsT     !   
 
 4  
 
s   rsc    sB  |  i i d } |  i i d } d } | o | o |  i t d ƒ ƒ d  Sn | oD t d d ƒ d >t d d ƒ B} |  i t d ƒ | d ƒ d	 } n |  i	 | ƒ o |  i
 | | ƒ | } nj |  i | ƒ } | | j oM |  i t d
 ƒ d ƒ |  i t d ƒ | | f ƒ | } | |  i i d <n |  i | ƒ d  S(   Ns   names   userIDi    s3   Pyrite does not support unidentified palmtops (yet)iÿÿ  i   s0   Palm user ID is zero.  Assigning a new one (%d).s   warningi   s*   Palm user name does not match.  Restoring.s   '%s' / '%s'(   s   selfs   remotes	   user_infos   users   uids   rewrites   errors   _s   randints   user_existss   user_adds   uns	   user_names   change_user(   s   selfs   users   uids   rewrites   unsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   connect_user·s(     

c    sÛ   |  i i ƒ  d j o |  i i ƒ  n | o d  Sn |  i | ƒ o t t d ƒ | ‚ n | |  _ |  i | ƒ |  _	 |  i i
 t i i |  i t | ƒ d d ƒ d ƒ x) |  i i ƒ  d r } | i |  i ƒ q½ Wd  S(   Ns   PALMUSERs   user #%d is unknowns   Pyrites	   palm.confi    (   s   selfs   registrys   labels   pops   uids   user_existss   RuntimeErrors   _s	   user_names   users   loads   oss   paths   joins   data_directorys   strs   pluginss   valuess   ps	   configure(   s   selfs   uids   psI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   change_userÔs     	* c    sÄ   t  i i |  i t | ƒ ƒ } t | ƒ t t  i i | d ƒ ƒ t t  i i | d ƒ ƒ t t  i i | d ƒ ƒ | o  |  i
 t d ƒ d ƒ d } n t t  i i | d ƒ d ƒ i | ƒ d  S(	   Ns   backups   installs   Pyrites$   This palmtop has an empty user name.s   warnings    s   NAMEs   w(   s   oss   paths   joins   selfs   data_directorys   strs   uids   uds   _mkdirs   users   errors   _s   opens   write(   s   selfs   uids   users   udsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   user_addãs    

c    sf   yT t  t i i |  i t | ƒ d ƒ ƒ i ƒ  } | d d j o | d  Sn | SWn d Sn Xd  S(   Ns   NAMEi   s   
s    (
   s   opens   oss   paths   joins   selfs   data_directorys   strs   uids   readlines   s(   s   selfs   uids   ssI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys	   user_nameðs    - c    s,   t  i i t  i i |  i t | ƒ ƒ ƒ Sd  S(   N(   s   oss   paths   isdirs   joins   selfs   data_directorys   strs   uid(   s   selfs   uidsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   user_existsøs    c    s–   g  } t i ƒ  } t i |  i ƒ xR t t i i	 t i
 d ƒ ƒ d r0 } y t | ƒ } | i | ƒ Wn
 qC n XqC Wt i | ƒ | i ƒ  | Sd  S(   Ns   .i    (   s   ls   oss   getcwds   _ds   chdirs   selfs   data_directorys   filters   paths   isdirs   listdirs   dirs   ints   ids   appends   sort(   s   selfs   ls   _ds   dirs   idsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys	   user_listûs    ! 
c    s?   x4 |  i ƒ  d r$ } |  i | ƒ | j o | Sn q Wd Sd  S(   Ni    (   s   selfs	   user_lists   is	   user_names   name(   s   selfs   names   isI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   user_lookup	s
      c    sM   t  i i |  i |  i ƒ } t | ƒ | o t  i i | | ƒ } n | Sd  S(   N(   s   oss   paths   joins   selfs   data_directorys
   app_prefixs   ps   _mkdir(   s   selfs   paths   psI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   app_paths
    
 c    s‹   | t j o |  i  } n | o t t d ƒ ‚ n t i i |  i t	 | ƒ |  i
 ƒ } t | ƒ | o t i i | | ƒ } n | Sd  S(   Ns   uid is zero(   s   uids   Nones   selfs   RuntimeErrors   _s   oss   paths   joins   data_directorys   strs
   app_prefixs   ps   _mkdir(   s   selfs   paths   uids   psI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   app_user_paths     $
 c    s#   |  i | | ƒ } t | | ƒ Sd  S(   N(   s   selfs	   user_paths   names   uids   ps   opens   mode(   s   selfs   names   modes   uids   psI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys	   user_open s    s   rc    s    |  i | ƒ } t | | ƒ Sd  S(   N(   s   selfs   app_paths   names   ps   opens   mode(   s   selfs   names   modes   psI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   app_open$s    c    s#   |  i | | ƒ } t | | ƒ Sd  S(   N(   s   selfs   app_user_paths   names   uids   ps   opens   mode(   s   selfs   names   modes   uids   psI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   app_user_open(s    c    sW   | d j o  |  i t d ƒ d ƒ d } n t t i i i |  | | f | | ƒ Sd  S(   Ns   AppsO   using deprecated name for application modules; should be 'Connector', not 'App's   warnings	   Connector(   s
   collections   selfs   errors   _s   applys   Sulfurs   Applications
   get_plugins   names   as   kw(   s   selfs
   collections   names   as   kwsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys
   get_plugints    
c    s    t  |  ƒ } t | | | ƒ d  S(   N(   s   PyriteCLIAppContexts   selfs   ctxs   applys   as   kw(   s   selfs   as   kws   ctxsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   __call__zs    ($   s   __doc__s   types   names
   app_prefixs   Optionss   Booleans   _s   Nones   optionss   __init__s   preruns   postruns
   preconnects   postconnects   connects
   disconnects	   connecteds	   user_paths   user_directorys   user_directoriess   Databases   opens   connect_users   change_users   user_adds	   user_names   user_existss	   user_lists   user_lookups   app_paths   app_user_paths	   user_opens   app_opens   app_user_opens
   get_plugins   __call__(    sI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   ApplicationU sB    $6		h	1		
	
	a								L	s   PyriteStatec      s   d „  Z  RS(   Nc    sI   t  i i |  | ƒ | i i d d ƒ | i i t i i	 d ƒ d ƒ d  S(   Ns   /etc/palm.confs   SYSTEMs   ~/.palm.confs   USER(
   s
   AppContexts   PickleStates   starts   selfs   contexts   registrys   loads   oss   paths
   expanduser(   s   selfs   contextsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   starts    (   s   start(    sI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   PyriteState~s    s   PyriteCLIAppContextc      s   d Z  d „  Z RS(   Ns   Pyritec    s-   t  t i i |  f | | ƒ t ƒ  |  _ d  S(   N(	   s   applys
   AppContexts   CLIAppContexts   __init__s   selfs   as   kws   PyriteStates   state_manager(   s   selfs   as   kwsI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   __init__‡s    (   s   app_types   __init__(    sI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   PyriteCLIAppContext…s    (%   s   __doc__s   __version__s   __copyright__s   typess	   ClassTypes   whrandoms   randints   oss   operators   strings   times   urlparses   urllibs   uses_netlocs   appends   Pyrites   Plugins   Pyrite.Stores	   Directorys   Sulfurs   Registrys   Optionss
   AppContexts   miscs   Sulfur.Applications   protect_names   unprotect_names   Databases   _s   cPickles   pickles   _mkdirs   Applications   PickleStates   PyriteStates   CLIAppContexts   PyriteCLIAppContext(    sI   /mit/python/lib/python2.0/site-packages/Pyrite/Application/Application.pys   ? s6   $ 				
	ÿ ÿ +