‡Æ
ÁDó9c    	   s¬    d  Z    d Z  d Z  d k Z d k Z d k Z d k Z d k Z  d k Z ( e	 Z
 ) d Z * d Z + d Z , d Z - d Z . d	 Z / d
 Z 0 d Z 4 d d d d „ Z ? d „  Z J d f  d „  ƒ  YZ „ d „  Z ‡ d „  Z Ž d „  Z   d „  Z ® d e f d „  ƒ  YZ ã d e f d „  ƒ  YZ ð d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ #d e f d  „  ƒ  YZ d S(!   s   Blocks and Records.
s2   $Id: Blocks.py,v 1.6 1999/11/29 06:57:17 rob Exp $s.   Copyright 1999 Rob Tillotson <robt@debian.org>Ns   *s   bs   ss   is   fs   ts   Ts   [c    s   4 5 6 |  d j o 6 t Snk 8 t |  ƒ }  9 t i t i |  d ?d |  d ?d @|  d @t | ƒ t | ƒ t | ƒ d d d f	 ƒ ƒ Sd	 S(
   s-   Convert a PalmOS 2-byte date to a time tuple.iÿÿ  i	   ip  i   i   i   i    i   N(	   s   ds   Nones   ints   times	   localtimes   mktimes   hours   minutes   second(   s   ds   hours   minutes   seconds=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   palm_date_to_tuple4 s
    i    c    sp   ? @ A |  d d j o B |  d d d >} n D |  d d d >} F | |  d d >B|  d B} G | Sd	 S(
   s?   Convert the date part of a time tuple to a PalmOS integer date.i    il  ip  i	   i   i   i   i   N(   s   ts   d(   s   ts   ds=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   tuple_to_palm_date? s   s   Blockc      sÑ   J d  Z  M N d d „ Z X d „  Z \ d „  Z _ d „  Z c d „  Z j d d „ Z n d „  Z o d	 „  Z p d
 „  Z	 q d „  Z
 r d „  Z s d „  Z t d „  Z v d „  Z x e i d d „ Z RS(   s”   Generic superclass for 'Things Which Can Be Packed And Unpacked',
    including but not limited to database records, appblocks, sortblocks,
    etc.c    s   N O h  |  _ P t |  d ƒ oA Q x7 |  i i ƒ  d Q r! } R |  i | d |  i | <q7 Wn T h  |  _ U | |  _ V | o V |  i | ƒ n d  S(   Ns   fieldsi    i   (   s   selfs   datas   hasattrs   fieldss   keyss   xs   raws   unpack(   s   selfs   raws   xs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __init__N s    	#
 s    c    s8   X Y d |  i i |  i o t |  i ƒ p d f Sd  S(   Ns   <%s len %s>i    (   s   selfs	   __class__s   __name__s   raws   len(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __repr__X s   c    s   \ ] | |  _  d  S(   N(   s   raws   self(   s   selfs   raws=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   unpack\ s   c    s   _ ` |  i Sd  S(   N(   s   selfs   raw(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   pack_ s   c  	  sX   c d t  t i e | f t t t i f |  i	 g t
 | ƒ g | ƒ ƒ ƒ } h | Sd  S(   N(   s   applys   structs   packs   fmts   tuples   maps   operators   getitems   selfs   datas   lens   namess   r(   s   selfs   fmts   namess   rs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys
   packfieldsc s
   c    s?   j k t  t i |  i g t | ƒ | l t i | | ƒ ƒ d  S(   N(   s   maps   operators   setitems   selfs   datas   lens   namess   structs   unpacks   fmts   r(   s   selfs   fmts   namess   rs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   unpackfieldsj s   "c    s   n n |  i | Sd  S(   N(   s   selfs   datas   k(   s   selfs   ks=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __getitem__n s    c    s   o o | |  i | <d  S(   N(   s   vs   selfs   datas   k(   s   selfs   ks   vs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __setitem__o s    c    s   p p |  i i | | ƒ Sd  S(   N(   s   selfs   datas   gets   ks   d(   s   selfs   ks   ds=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   getp s    c    s   q q |  i i ƒ  Sd  S(   N(   s   selfs   datas   keys(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   keysq s    c    s   r r |  i i ƒ  Sd  S(   N(   s   selfs   datas   values(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   valuesr s    c    s   s s |  i i ƒ  Sd  S(   N(   s   selfs   datas   items(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   itemss s    c    s   t t |  i i | ƒ Sd  S(   N(   s   selfs   datas   has_keys   k(   s   selfs   ks=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   has_keyt s    c    s   v v t  |  i ƒ  ƒ Sd  S(   N(   s   lens   selfs   pack(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __len__v s    c    sž   x y t  i |  i | ƒ { | o |  i om | | i d ƒ } |  i i ƒ  } ~ | i
 ƒ   x4 | d  r' } € | i d | |  i | f ƒ qh Wn d  S(   Ns	   
fields:
i    s	     %s: %s
(   s   debugs   dump_raws   selfs   raws   fs   verboses   fieldss   writes   keyss   flds   sorts   ks   data(   s   selfs   fs   verboses   flds   ks=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   dumpx s    	i    (   s   __doc__s   __init__s   __repr__s   unpacks   packs
   packfieldss   unpackfieldss   __getitem__s   __setitem__s   gets   keyss   valuess   itemss   has_keys   __len__s   syss   stdouts   dump(    s=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   BlockJ s    	
c    s   „ … t  i |  d ƒ d Sd  S(   Ns    i    (   s   strings   splits   s(   s   ss=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys	   trim_null„ s   c    s   ‡ ˆ t  |  ƒ | d j o ‰ |  | d  }  n Š |  d }  ‹ t  |  ƒ | j  o ‹ |  d | t  |  ƒ }  n Œ |  Sd  S(   Ni   s    (   s   lens   ss   l(   s   ss   ls=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   pad_null‡ s    c    sJ  Ž  h  d g d d <d g d d <d g d d <d d <} ” t i d | d	  ƒ d } • x  t d d ƒ d • rŠ } – | d
 | >@o — d
 | d | <n ™ t | d	 | d d | d !ƒ | d | <š t t i d | d | ƒ d ƒ | d | <qw Wœ t t i d | d ƒ d ƒ | d < |  i
 | ƒ ž d Sd  S(   Ni    i   s   categoryRenameds    s   categoryNames
   categoryIDs   categoryLastUniqueIDs   >Hi   i   i   s   >Bi  i  i  (   s   ds   structs   unpacks   raws   rs   ranges   is	   trim_nulls   ints   dicts   update(   s   dicts   raws   ds   rs   is=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   unpack_category_appinfoŽ s   B 	.3'c    s×     ¡ d } ¢ d } £ d } ¤ x| t d d ƒ d ¤ rf } ¥ |  d | o ¦ | d | >B} n § | t |  d | d ƒ } ¨ | t |  d | ƒ } q3 Wª t i	 d | ƒ | | t i	 d	 |  d
 ƒ d Sd  S(   Ni    s    i   s   categoryRenamedi   s   categoryNames
   categoryIDs   >Hs   >Bs   categoryLastUniqueIDs      (
   s   rs   namess   idss   ranges   is   ds   pad_nulls   chrs   structs   pack(   s   ds   rs   namess   idss   is=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   pack_category_appinfo  s   			 	s   Recordc      sV   ® d  Z  ¯ ° d d d d d d „ Z » d „  Z Ä d „  Z Ï e i d d „ Z RS(   s   Generic database record type.c    s¬   ° ± t  i |  | ƒ ² | d @d j |  _ ³ | d @d j |  _ ´ | d @d j |  _ µ | d @d j |  _ ¶ | d @d j |  _	 · | |  _
 ¸ | |  _ ¹ | |  _ d  S(   Ni€   i    i@   i    i   i   (   s   Blocks   __init__s   selfs   raws   attrs   deleteds   modifieds   busys   secrets   archiveds   categorys   indexs   id(   s   selfs   raws   indexs   ids   attrs   categorys=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __init__° s   s    i    c    s­   » ¼ d } ½ |  i o ½ | d B} n ¾ |  i o ¾ | d B} n ¿ |  i o ¿ | d B} n À |  i o À | d B} n Á |  i o Á | d B} n Â | Sd  S(   Ni    i€   i@   i    i   i   (   s   as   selfs   deleteds   modifieds   busys   secrets   archived(   s   selfs   as=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys
   attributes» s   	     c    s÷   Ä Å d |  i i |  i |  i |  i f } Ç |  i o Ç | d } n È |  i o È | d } n É |  i	 o É | d } n Ê |  i
 o Ê | d } n Ë |  i o Ë | d } n Ì | d |  i o t |  i ƒ p d } Í | Sd  S(	   Ns   <%s #%s id %06x cat %ss    dels    mods    busys    secs    arcs   len %s>i    (   s   selfs	   __class__s   __name__s   indexs   ids   categorys   ss   deleteds   modifieds   busys   secrets   archiveds   raws   len(   s   selfs   ss=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __repr__Ä s   (     +c    s[  Ï Ð |  i ƒ  Ñ |  i ƒ  } Ò | i d |  i t |  i ƒ |  i	 |  i
 | f ƒ × | oÓ Ø g  } Ù |  i o Ù | i d ƒ n Ú |  i o Ú | i d ƒ n Û |  i o Û | i d ƒ n Ü |  i o Ü | i d ƒ n Ý |  i o Ý | i d ƒ n Þ | i d t i | ƒ d ƒ n ß | i d	 ƒ à t i |  | | ƒ d  S(
   Ns-   #%d, %d bytes, cat %d, id 0x%06x, attr 0x%02xs   deleteds   modifieds   busys   secrets   archiveds    (s   )s   
(   s   selfs   packs
   attributess   as   fs   writes   indexs   lens   raws   categorys   ids   ans   deleteds   appends   modifieds   busys   secrets   archiveds   strings   joins   Blocks   dumps   verbose(   s   selfs   fs   verboses   as   ans=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   dumpÏ s$   5
	     %(   s   __doc__s   __init__s
   attributess   __repr__s   syss   stdouts   dump(    s=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   Record® s
   		s   AppBlockc      s/   ã d  Z  æ ç d „  Z ë e i d d „ Z RS(   s—   Generic AppBlock type.  By default, an AppBlock is treated as
    just a hunk of raw data; this class is only provided for the sake
    of consistency.c    s8   ç è d |  i i |  i o t |  i ƒ p d f Sd  S(   Ns   <%s len %s>i    (   s   selfs	   __class__s   __name__s   raws   len(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __repr__ç s   c    sG   ë ì |  i ƒ  í | i d t |  i ƒ ƒ î t i |  | | ƒ d  S(   Ns   appinfo: %d bytes
(	   s   selfs   packs   fs   writes   lens   raws   Blocks   dumps   verbose(   s   selfs   fs   verboses=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   dumpë s   i    (   s   __doc__s   __repr__s   syss   stdouts   dump(    s=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   AppBlockã s   	s   CategoryAppBlockc      s2   ð d  Z  ñ ò d „  Z þ d „  Z d „  Z RS(   s+   An AppBlock with built-in category support.c    s¾   ò ó t  |  d ƒ o ô h  |  _ n ÷ |  i i h  t d g d d d f d <t d g d d d f d <t d g d d d f d <t d f d <ƒ ü t t i |  f | | ƒ d  S(	   Ns   fieldss    i   s   categoryNamei    s
   categoryIDs   categoryRenameds   categoryLastUniqueID(   s   hasattrs   selfs   fieldss   updates   FLD_LISTs   FLD_BOOLEANs   applys   AppBlocks   __init__s   as   kw(   s   selfs   as   kws=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __init__ò s   vc    s3   þ ÿ | |  _   t |  i | ƒ } | | Sd  S(   N(   s   raws   selfs   unpack_category_appinfos   datas   l(   s   selfs   raws   ls=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   unpackþ s   c    s   t  |  i ƒ Sd  S(   N(   s   pack_category_appinfos   selfs   data(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   packs   (   s   __doc__s   __init__s   unpacks   pack(    s=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   CategoryAppBlockð s   	s	   SortBlockc      s#   d  Z  
e i d d „ Z RS(   s˜   Generic SortBlock type.  By default, a SortBlock is treated as
    just a hunk of raw data; this class is only provided for the sake
    of consistency.c    sG   |  i ƒ  | i d t |  i ƒ ƒ t i |  | | ƒ d  S(   Ns   sortinfo: %d bytes
(	   s   selfs   packs   fs   writes   lens   raws   Blocks   dumps   verbose(   s   selfs   fs   verboses=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   dumps   i    (   s   __doc__s   syss   stdouts   dump(    s=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys	   SortBlocks   	s   Resourcec      sD   d  Z  e d d d „ Z d „  Z e i d d „ Z RS(   s   Generic resource type.c    s2   t  i |  | ƒ | |  _ | |  _ d  S(   N(   s   Blocks   __init__s   selfs   raws   types   id(   s   selfs   raws   types   ids=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __init__s   s       i    c    sJ   d |  i i t |  i ƒ |  i |  i o t |  i ƒ p d f Sd  S(   Ns   <%s %s %s len %s>i    (   s   selfs	   __class__s   __name__s   reprs   types   ids   raws   len(   s   selfs=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __repr__s   c    s\   |  i ƒ  | i d t |  i ƒ |  i t |  i ƒ f ƒ !t	 i
 |  | | ƒ d  S(   Ns"   resource type %s, id %s, %d bytes
(   s   selfs   packs   fs   writes   reprs   types   ids   lens   raws   Blocks   dumps   verbose(   s   selfs   fs   verboses=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   dumps   2(   s   __doc__s   Nones   __init__s   __repr__s   syss   stdouts   dump(    s=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   Resources   	s	   PrefBlockc      s>   #d  Z  $%d d d d d d „ Z ,e i d d „ Z RS(   s   Generic AppPref block.c    sJ   %&t  i |  | ƒ '| |  _ (| |  _ )| |  _ *| |  _ d  S(   N(   s   Blocks   __init__s   selfs   raws   creators   ids   versions   backup(   s   selfs   raws   creators   ids   versions   backups=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   __init__%s
   s    s       i    c    s‡   ,-|  i ƒ  .| i d t |  i ƒ |  i |  i f ƒ 2|  i o 3| i d ƒ n 4| i d ƒ 5t	 i
 |  | | ƒ d  S(   Ns(   preference creator %s, id %d, version %ds   , backups   
(   s   selfs   packs   fs   writes   reprs   creators   ids   versions   backups   Blocks   dumps   verbose(   s   selfs   fs   verboses=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   dump,s   ,(   s   __doc__s   __init__s   syss   stdouts   dump(    s=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys	   PrefBlock#s   	(    s   __doc__s   __version__s   __copyright__s   strings   operators   structs   times   syss   debugs   Nones   FLD_UNKNOWNs   FLD_ANYs   FLD_BOOLEANs
   FLD_STRINGs   FLD_INTs	   FLD_FLOATs   FLD_TIMEs
   FLD_TIME_Ts   FLD_LISTs   palm_date_to_tuples   tuple_to_palm_dates   Blocks	   trim_nulls   pad_nulls   unpack_category_appinfos   pack_category_appinfos   Records   AppBlocks   CategoryAppBlocks	   SortBlocks   Resources	   PrefBlock(    s=   /afs/sipb.mit.edu/project/pilot-locker/share/python/Blocks.pys   ? s4   		0										:5	