^d?ddlmZddlmZddlZddlZGddeZGddeZ Gdd e Z d d Z dS) )ndbm)_NceZdZdS)DbErrorN)__name__ __module__ __qualname__'/usr/share/apt-listchanges/ALCSeenDb.pyrr sDr rc6eZdZdZdZdZdZdZdZdZ dS) seendb_dummyzYInterface for seen database. Also used when path to the database is not configuredcdS)NFr self srcpackages r __contains__zseendb_dummy.__contains__&sur cdSNr rs r __getitem__zseendb_dummy.__getitem__) r cdSrr rrversions r __setitem__zseendb_dummy.__setitem__,rr cdSrr rs r close_dbzseendb_dummy.close_db/rr cdSrr rs r apply_changeszseendb_dummy.apply_changes2rr c:ttd)NzPath to the seen database is unknown. Please either specify it with --save-seen option or pass --profile=apt to have it read from the configuration file.)rrrs r dumpzseendb_dummy.dump5s+a]^^__ _r N) rrr __doc__rrrrr r"r r r rr#s@@            _____r rcHeZdZdZd fd ZdZdZdZdZdZ d Z xZ S) seendbz!Class to manage the seen databaseFctd|_|dd|jkr'tt d||jdz|dd|_ |rdnd}t j|j|d|_d|jvnB#t$r5}tt d |t|d z|d}~wwxYwi|_ dS) Nz.dbz)Database %(db)s does not end with %(ext)s)dbextrczfoo%0z*Database %(db)s failed to load: %(errmsg)s)r(errmsg) super__init__ _extensionrr_dbpathropen_seen Exceptionstr _seen_new)rpathreadOnlymodeex __class__s r r/zseendb.__init__<s  9 ' '!GHH%)$/BBCDD Dcrc  G"+33D4<u==DJ tz ! ! ! G G G!HII%)SWW==>??DF G G s3/B## C"-0CC"c||jvSr)r3rs r rzseendb.__contains__PsTZ''r c@|j|Sr)r3decoders r rzseendb.__getitem__Ssz*%,,...r c|j|d|kr ||j|<dSdS)Nr )r3getr>r6rs r rzseendb.__setitem__VsC :>>*c * * 1 1 3 3w > >)0DN: & & & ? >r cF|jd|_dSr)r3closers r rzseendb.close_db[s!  r crjsdSfd}|d|d|d}}}tj|rt j||t jjdzdd}j D] \}}|||< | tj|rtj |tj|rtj ||tj ||dS)Nc(j|zjzSr)r1r0)argrs r mkz seendb.apply_changes..mkds<#%7 7r z-oldz-newr+r,)r6osr7isfileshutilcopyrr2r1itemsrBunlinklinkrename)rrFoldcurnewseenkeyvalues` r r zseendb.apply_changes_s4~  F 8 8 8 8 8FRRVVRRZZ#S 7>>#   " KS ! ! !y.U;; N0022  LS%DII  7>>#    IcNNN 7>>#    GC    #sr ct|jD]G}|j|}t|d|HdS)N )sortedr3keysprintr>)rrTrUs r r"z seendb.dump{sf$*//++,, < >>: ; ; ; ; < >r r[) dbmrALChacksrrHrJr4robjectrr%r`r r r rds4      i   _____6___.D<D<D<D<D<\D<D<D