v_c@sddlmZmZmZddlmZddlZddlZddlZdZde fdYZ de fdYZ dS( i(tsqlitet executeSQLtsql_esc(t PkgTagsErrorNcs>fd}j|_j|_|jjj|S(s;This decorator converts sqlite exceptions into PkgTagsErrorcsy||SWnmtjjk r}tjdkrnt|dr\tt|jqntt|ntt|nXdS(Nitmessage( tsqlutilsRtErrortsyst hexversionthasattrRtstrR(targstkwargste(tfunc(s1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pytnewFuncs(t__name__t__doc__t__dict__tupdate(RR((Rs1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pytcatchSqliteExceptions   t PackageTagDBcBsYeZedZdZeddddZedZdZdZ RS( cCs:||_||_tj||_|jj|_dS(N(t sqlite_filetrepoidRtconnectt_conntcursortcur(tselfRR((s1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pyt__init__1s  cCs#x|jdD] }|dSWdS(s Unused, so no need to cache. s select count(*) from packagetagsiN(t _sql_exec(Rtn((s1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pyt _getTagsCount:stfgetcCs |jS(N(R (R((s1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pyt?stdocs"Number of entries in the pkgtag DBcGst|j|||jS(s6 Exec SQL against an MD of the repo, return a cursor. (RR(RtsqlR ((s1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pyRBscCsi}t|\}}d|}d|d}|j||f}xA|D]9\}}}||krtg||R?((s1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pyR.s"  (RR0RR6R7R/R.(((s1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pyR3gs     ( RRRRtErrorsRRR;RtobjectRR3(((s1/usr/lib/python2.7/site-packages/yum/pkgtag_db.pyts    7