‡Æ
‚Uó9c       s    d  Z    d Z  d Z " d k Z $ d k Z d k Z d k Z d k Z & d Z ' d Z	 ) d Z
 * d Z + d Z , d	 Z - d
 Z / d Z 0 d Z 2 d Z 4 d „  Z D d „  Z Q d „  Z V d „  Z ƒ d „  Z ‰ d „  Z ¢ d „  Z d S(   s»   PDB file utilities.

  This module contains various utility functions which may be useful
  to programs -- installers, conduits, etc. -- that deal with PalmOS
  databases on the desktop.
s3   $Id: pdbfile.py,v 1.7 1999/08/09 21:59:13 rob Exp $s3   Copyright 1998-1999 Rob Tillotson <robt@debian.org>NiN   i€°%|i   i   i   i   i €  i   i    i€   c    s‚   4 8 9 h  |  t @d <|  t @d <|  t @d <|  t @d <|  t @d <|  t @d <|  t @d <|  t @d <} B | Sd	 S(
   s‚   Convert a numeric flag word to a dictionary.
    The result is suitable for merging into an info structure
    with 'update'.
    s	   flagResets   flagResources	   flagNewers   flagExcludeFromSyncs   flagAppInfoDirtys   flagReadOnlys
   flagBackups   flagOpenN(
   s   flagss   dlpDBFlagResets   dlpDBFlagResources   dlpDBFlagNewers   dlpDBMiscFlagExcludeFromSyncs   dlpDBFlagAppInfoDirtys   dlpDBFlagReadOnlys   dlpDBFlagBackups   dlpDBFlagOpens   i(   s   flagss   is9   /mit/python/lib/python2.0/site-packages/Pyrite/pdbfile.pys   flags_to_info4 s   q	c    s  D F G d } H |  i d ƒ o H | t B} n I |  i d ƒ o I | t B} n J |  i d ƒ o J | t B} n K |  i d ƒ o K | t B} n L |  i d ƒ o L | t B} n M |  i d ƒ o M | t B} n N |  i d ƒ o N | t	 B} n O | Sd	 S(
   s8   Extract a numeric flag word from an info structure.
    i    s	   flagResets   flagResources	   flagNewers   flagExcludeFromSyncs   flagAppInfoDirtys
   flagBackups   flagOpenN(
   s   flagss   is   gets   dlpDBFlagResets   dlpDBFlagResources   dlpDBFlagNewers   dlpDBMiscFlagExcludeFromSyncs   dlpDBFlagAppInfoDirtys   dlpDBFlagBackups   dlpDBFlagOpen(   s   is   flagss9   /mit/python/lib/python2.0/site-packages/Pyrite/pdbfile.pys   info_to_flagsD s"   	       c    sY   Q R xE t  d t |  ƒ ƒ d R r) } S |  | d j o S |  |  Sn q WT |  Sd  S(   Ni    s    (   s   ranges   lens   ss   x(   s   ss   xs9   /mit/python/lib/python2.0/site-packages/Pyrite/pdbfile.pys   null_terminatedQ s
    	 c    sÄ  V \ ^ t  |  d ƒ } _ | i t ƒ } ` | p t | ƒ t j  o ` t Sn b t i	 d | ƒ \ }  } } } } } } }	 }
 } } } } } g | o g t Sn j |	 d j  p |
 d j  p
 | d j  o j t Sn l h  t |  ƒ d <| d <| d <| t d <| t d <| t d	 <d
 d <| d <| t @d <| t @d <| t @d <| t @d <| t @d <| t @d <| t @d <| t  @d <d d <d d <} € | Sd S(   s  Read the header of a PalmOS database file.  Although there is
    no way to conclusively determine that a file contains a valid
    database, this function does a few simple checks and returns None
    if the file is invalid.  Pilot-link also does this on open, but
    since it prints error messages to stderr it is inappropriate to
    use it to test a bunch of files in a directory.s   rbs   >32shhLLLlll4s4sllhi    s   names   types   creators
   createDates
   modifyDates
   backupDatei   s   modnums   versions	   flagResets   flagResources	   flagNewers   flagExcludeFromSyncs   flagAppInfoDirtys   flagReadOnlys
   flagBackups   flagOpens   mores   indexN("   s   opens   names   fs   reads   PI_HDR_SIZEs   hstrs   lens   Nones   structs   unpacks   flagss   vers   ctimes   mtimes   btimes   mnums   appinfos   sortinfos   types   creators   uids   nextrecs   numrecs   null_terminateds   PILOT_TIME_DELTAs   dlpDBFlagResets   dlpDBFlagResources   dlpDBFlagNewers   dlpDBMiscFlagExcludeFromSyncs   dlpDBFlagAppInfoDirtys   dlpDBFlagReadOnlys   dlpDBFlagBackups   dlpDBFlagOpens   i(   s   names   fs   hstrs   flagss   vers   ctimes   mtimes   btimes   mnums   appinfos   sortinfos   types   creators   uids   nextrecs   numrecs   is9   /mit/python/lib/python2.0/site-packages/Pyrite/pdbfile.pys   infoV s    ?
 * Ýc    s,   ƒ „ † t  i |  d t ƒ} ‡ | i Sd S(   s4   Return the info structure of a PalmOS database file.s
   typemapperN(   s   Pyrites   openFiles   names   Nones   fs   info(   s   names   fs9   /mit/python/lib/python2.0/site-packages/Pyrite/pdbfile.pys   x_infoƒ s   c    s×   ‰   t  i |  ƒ }  g  } ’ x¥ | d ’ r˜ } “ t  i i |  | ƒ } – yg — t  i | ƒ } ™ t i
 | t i ƒ o7 š t | ƒ } › | o œ | i | | f ƒ n n Wn  ž n Xq- W  | Sd S(   sÚ   Scan the specified path for PalmOS database files and return
    a list of tuples of (name, info) for each database found.
    This function may be expanded in the future to handle zipfiles,
    gzipped databases, etc.i    N(   s   oss   listdirs   paths   ds   ls   fs   joins   fns   stats   sts   S_ISREGs   ST_MODEs   infos   is   append(   s   paths   ds   ls   fs   fns   sts   is9   /mit/python/lib/python2.0/site-packages/Pyrite/pdbfile.pys   listdir‰ s   	 	
"c    s´   ¢ £ ¥ t  i |  ƒ } ¦ g  } ¨ x‚ | d ¨ ru } © t  i i |  | ƒ } ª yD « t  i | ƒ } ¬ t i
 | t i ƒ o ¬ | i | ƒ n Wn ­ ® n Xq- W¯ | Sd S(   s1   List all subdirectories of the current directory.i    N(   s   oss   listdirs   paths   ds   ls   fs   joins   fns   stats   sts   S_ISDIRs   ST_MODEs   append(   s   paths   ds   ls   fs   fns   sts9   /mit/python/lib/python2.0/site-packages/Pyrite/pdbfile.pys   listsubdirs¢ s   	 	 (   s   __doc__s   __version__s   __copyright__s   Pyrites   syss   oss   stats   structs   PI_HDR_SIZEs   PILOT_TIME_DELTAs   dlpDBFlagResources   dlpDBFlagReadOnlys   dlpDBFlagAppInfoDirtys   dlpDBFlagBackups   dlpDBFlagOpens   dlpDBFlagNewers   dlpDBFlagResets   dlpDBMiscFlagExcludeFromSyncs   flags_to_infos   info_to_flagss   null_terminateds   infos   x_infos   listdirs   listsubdirs(    s9   /mit/python/lib/python2.0/site-packages/Pyrite/pdbfile.pys   ? s*   		'										-