Ñò ¦TµKc @s«ddkZddkZddkZddkZddkiiZddkiZddk i Z ddk i i Z defd„ƒYZdefd„ƒYZeiZdS(iÿÿÿÿNtUpdateLogExceptioncBseZdd„ZRS(cCs ||_dS(N(t_args(tselftargs((s3/usr/lib/python2.6/vendor-packages/pkg/updatelog.pyt__init__%sN(t__name__t __module__tNoneR(((s3/usr/lib/python2.6/vendor-packages/pkg/updatelog.pyR$st UpdateLogcBs,eZdZed„ƒZed„ƒZRS(sCompatibility class for receiving incremental catalog updates from v0 repositories. The catalog format is a + or -, an isoformat timestamp, and a catalog entry in server-side format. They must be in order and separated by spaces.cCsÁ|iddƒ}y>|djoti|||ƒntii|||ƒWnjtj o^}|itijot i |i ƒ‚n|iti jot i |i ƒ‚n‚nXdS(s~Take a connection object and a catalog path. This method receives a catalog from the server. If it is an incremental update, it is processed by the updatelog. If it is a full update, we call the catalog to handle the request. Ts is the timestamp when the local copy of the catalog was last modified.sX-Catalog-Typetfullt incrementalN(t getheaderRt _recv_updatestcatalogt ServerCatalogtrecvtEnvironmentErrorterrnotEACCESt api_errorstPermissionsExceptiontfilenametEROFStReadOnlyFileSystemException(tctpathttstpubt update_typete((s3/usr/lib/python2.6/vendor-packages/pkg/updatelog.pyR0s  cCsStii|ƒpti|ƒnti|ƒ}|}|}d}d}g}g}d} h} x¡|D]™} | iddƒ} t| ƒdjoqjqj| dti jojti| dƒ} | |joF| |jo|}| }nd| d| df}|i |ƒqqj| ddjoØti| dƒ} | |jo´| |jo|}| }n| dt dƒjo|yt i | dƒ}Wn't ij o}|} |}qjnXd | dd |i|if}|i |ƒ|d7}qÿqqjqjW| o | ‚ntiitii|d ƒƒ}tid |ƒ\}}ti|d ƒ}yt|dƒ}Wnhtj o\}|itijo&t|dƒiƒt|dƒ}qá|iƒti|ƒ‚nX|idƒx|D]w}|dt dƒjo|d7}n||jo2|iƒ|iƒti|ƒtd|‚n|i|ƒqõW|idti ƒ|i!|ƒt|ƒdjo|i!|ƒn|iƒ|iƒti"|ti#i$ƒti%||ƒttiitii|dƒƒdƒ}t&i'dƒ}xJ|D]B}|i(|ƒ}|djo |i)dƒ| |i)dƒs    ¶