
D9c       s     d  Z    d Z  d Z ) d k l Z l Z l Z + d f  d     YZ  d f  d     YZ  d f  d	     YZ	 d
 S(   s   Pyrite Databases.
s4   $Id: Database.py,v 1.7 1999/08/09 21:59:12 rob Exp $s.   Copyright 1999 Rob Tillotson <robt@debian.org>(   s   Records   AppBlocks   Resources   Databasec      s  + , d f  d  Z  7 d   Z : d d d d d  Z ? d   Z D d d d  Z I d	   Z S d
   Z [ d   Z ^ d   Z h d   Z	 y e
 d  Z  e
 d  Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d d d  Z  d   Z  d   Z  d   Z  d   Z  d   Z  d d  Z  d d  Z  d    Z  d!   Z  d"   Z  d d#  Z RS($   Nc    sp   , - | |  _ . | |  _ / t |  _ 0 t |  _ 1 t |  _	 2 | |  _
 3 | |  _ 4 | i d  |  _ d  S(   Ns   flagResource(   s   dbs   selfs   _Database__dbs   infos   Records   record_classs   AppBlocks   appblock_classs   Resources   resource_classs
   propertiess   modes   gets   is_resource(   s   selfs   dbs   infos   modes
   propertiessF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __init__, s   s   rwsc    s   7 8 | |  i j Sd  S(   N(   s   ps   selfs
   properties(   s   selfs   psF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   has_property7 s   c    s&   : < = |  i d | | | |  Sd S(   s   Return a new, blank record.
	s    N(   s   selfs   record_classs   indexs   ids
   attributess   category(   s   selfs   indexs   ids
   attributess   categorys   as   kwsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys
   new_record: s   i    c    s   ? A B |  i   Sd S(   s$   Return a new, empty appinfo block.
	N(   s   selfs   appblock_class(   s   selfs   as   kwsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   new_appblock? s   c    s    D F G |  i d | |  Sd S(   s   Return a new, empty resource.
	s    N(   s   selfs   resource_classs   types   id(   s   selfs   types   ids   as   kwsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   new_resourceD s   s       c    s    I P Q t  |  i | |  Sd S(   s   Classify a record.

	The actual parameters this is called with are:
	    (raw, index, id, attributes, category)
	and it should, from this, determine what kind of record it
	is and wrap it in the proper class.
	N(   s   applys   selfs   record_classs   as   kw(   s   selfs   as   kwsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   classify_recordI s   c    s    S W X t  |  i | |  Sd S(   sS   Classify a resource.

	Like classify_record, but with parameters (raw, type, id).
	N(   s   applys   selfs   resource_classs   as   kw(   s   selfs   as   kwsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   classify_resourceS s   c    s   [ \ |  i i   Sd  S(   N(   s   selfs   _Database__dbs
   getRecords(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __len__[ s   c    s   ^ _ |  i oL ` |  i i |  } a | t j o a t |  n b t |  i	 |  SnI d |  i i
 |  } e | t j o e t |  n f t |  i |  Sd  S(   N(   s   selfs   is_resources   _Database__dbs   getResources   is   rs   Nones
   IndexErrors   applys   classify_resources	   getRecords   classify_record(   s   selfs   is   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __getitem__^ s     c    s  h i |  i on j y) k |  i i | i | i | i    SWn; l t j
 o, m |  i i	 | i | i | i    Sn Xn o y5 p |  i i
 | i   | i | i q | i    SWn\ r t j
 oM s |  i i | i   | i | i t | i    } u | | _ v | Sn Xd  S(   N(   s   selfs   is_resources   _Database__dbs   addResources   recs   types   ids   packs   AttributeErrors   setResources	   addRecords
   attributess   categorys	   setRecord(   s   selfs   recs   idsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   appendh s   ).!!c    s   y z |  i oJ { |  i i | |  } | | t j o | t Sn } t |  i	 |  SnD  |  i i
 |  }  | t j o  t Sn  t |  i |  Sd  S(   N(   s   selfs   is_resources   _Database__dbs   getResourceByIDs   as   bs   rs   Nones   applys   classify_resources   getRecordByIDs   classify_record(   s   selfs   as   bs   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   get_idy s     c    sA     |  i o  |  i i | |  Sn  |  i i |  Sd  S(   N(   s   selfs   is_resources   _Database__dbs   deleteResources   as   bs   deleteRecord(   s   selfs   as   bsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   delete s   c    s8     |  i o  |  i i   Sn  |  i i   Sd  S(   N(   s   selfs   is_resources   _Database__dbs   deleteResourcess   deleteRecords(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys
   delete_all s   c    sD     |  i i   }  | t j	 o  |  i |  Sn  t Sd  S(   N(   s   selfs   _Database__dbs   getAppBlocks   rs   Nones   appblock_class(   s   selfs   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   get_appblock s   c    s      |  i i | i    Sd  S(   N(   s   selfs   _Database__dbs   setAppBlocks   blks   pack(   s   selfs   blksF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   set_appblock s   c    sD     |  i i   }  | t j	 o  |  i |  Sn  t Sd  S(   N(   s   selfs   _Database__dbs   getSortBlocks   rs   Nones   sortblock_class(   s   selfs   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   get_sortblock s   c    s      |  i i | i    Sd  S(   N(   s   selfs   _Database__dbs   setSortBlocks   blks   pack(   s   selfs   blksF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   set_sortblock s   c    s     |  i i | |  Sd  S(   N(   s   selfs   _Database__dbs   moveCategorys   frms   to(   s   selfs   frms   tosF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   category_move s   c    s     |  i i |  Sd  S(   N(   s   selfs   _Database__dbs   deleteCategorys   cat(   s   selfs   catsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   category_delete s   c    sS     |  i i |  i i  | |  \ } } } } }  t	 | | | | |  Sd  S(   N(
   s   selfs   _Database__dbs   getPrefs   infos   creators   ids   backups   raws   versions	   PrefBlock(   s   selfs   ids   backups   raws   creators   versionsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   get_preference s   i   c    s;     |  i i | i | i | i  | i | i    Sd  S(   N(	   s   selfs   _Database__dbs   setPrefs   prefs   creators   ids   backups   versions   pack(   s   selfs   prefsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   set_preference s   c    s      |  i i   Sd S(   s8   Clear all record dirty flags; set last sync time to now.N(   s   selfs   _Database__dbs
   resetFlags(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   reset_flags s   c    s      |  i i   Sd S(   s#   Purge deleted and archived records.N(   s   selfs   _Database__dbs   purge(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   purge_deleted s   c    s     |  i i   Sd  S(   N(   s   selfs   _Database__dbs	   resetNext(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys
   next_reset s   c    sJ     |  i i |  }  | t j o  t Sn  t |  i |  Sd  S(   N(   s   selfs   _Database__dbs   getNextRecords   cats   rs   Nones   applys   classify_record(   s   selfs   cats   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   next_record s    c    sJ     |  i i |  }  | t j o  t Sn  t |  i |  Sd  S(   N(   s   selfs   _Database__dbs   getNextModRecords   cats   rs   Nones   applys   classify_record(   s   selfs   cats   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   next_modified s    c    s     |  i i |  Sd  S(   N(   s   selfs   _Database__dbs   getRecordIDss   sort(   s   selfs   sortsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   ids s   c    s     |  i i   Sd  S(   N(   s   selfs   _Database__dbs   close(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   close s   c    s     t  |  | |  Sd  S(   N(   s   Slices   selfs   lows   high(   s   selfs   lows   highsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __getslice__ s   c    s'     |  i    t | |  i  Sd  S(   N(   s   selfs
   next_resets   CategoryIterators   cats   next_record(   s   selfs   catsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   Category s   c    s'     |  i    t | |  i  Sd  S(   N(   s   selfs
   next_resets   CategoryIterators   cats   next_modified(   s   selfs   catsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   ModifiedRecords s   (    s   __init__s   has_propertys
   new_records   new_appblocks   new_resources   classify_records   classify_resources   __len__s   __getitem__s   appends   Nones   get_ids   deletes
   delete_alls   get_appblocks   set_appblocks   get_sortblocks   set_sortblocks   category_moves   category_deletes   get_preferences   set_preferences   reset_flagss   purge_deleteds
   next_resets   next_records   next_modifieds   idss   closes   __getslice__s   Categorys   ModifiedRecords(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   Database+ s>   


s   Slicec      s2    d  Z    d   Z  d   Z  d   Z RS(   s   A generic slice, which serves mainly to permit Python to not
    have to retrieve a bunch of records at once.  Doesn't support
    everything a real slice does, but should allow iteration and
    retrieval over a portion of a database.c    s;     | |  _   | |  _  | |  _  | | |  _ d  S(   N(   s   lists   selfs   lows   highs   len(   s   selfs   lists   lows   highsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __init__ s   c    s     |  i Sd  S(   N(   s   selfs   len(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __len__ s    c    s<     | |  i j o  t  n  |  i | |  i Sd  S(   N(   s   ns   selfs   lens
   IndexErrors   lists   low(   s   selfs   nsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __getitem__ s    (   s   __doc__s   __init__s   __len__s   __getitem__(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   Slice s   	s   CategoryIteratorc      s&    d  Z    d   Z  d   Z RS(   s`   An iterator which returns each record in a category using
    getNextModRecord or getNextRecord.c    s     | |  _   | |  _ d  S(   N(   s   cats   selfs   func(   s   selfs   cats   funcsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __init__ s   c    s     |  i |  i  Sd  S(   N(   s   selfs   funcs   cat(   s   selfs   nsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   __getitem__ s   (   s   __doc__s   __init__s   __getitem__(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   CategoryIterator s   	N(
   s   __doc__s   __version__s   __copyright__s   Blockss   Records   AppBlocks   Resources   Databases   Slices   CategoryIterator(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Pyrite/Database.pys   ? s   		