%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python2.7/bsddb/
Upload File :
Create Path :
Current File : //usr/local/lib/python2.7/bsddb/dbtables.pyc

ó
Oźįac@s!dZddlZddlZddlZddlZddlZejddkrdddlZnzejd(kr‚ddlZn\ddl	Z	e	j
ƒZejƒz)e	j
ddd	d
eƒddlZWdejƒX[yddlmZWn!ek
rddlmZnXdefd
„ƒYZdefd„ƒYZdd)d„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdZdZd„ZdZdZ dZ!d „Z"d!„Z#d"„Z$d#„Z%d$„Z&d%„Z'd&d*d'„ƒYZ(dS(+s$Id$i’’’’Niiiitignoretmessages1the cPickle module has been removed in Python 3.0tcategory(tdbtTableDBErrorcBseZRS((t__name__t
__module__(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR>stTableAlreadyExistscBseZRS((RR(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR@stCondcBseZdZd„ZRS(s!This condition matches everythingcCsdS(Ni((tselfts((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt__call__Fs(RRt__doc__R(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRDst	ExactCondcBs eZdZd„Zd„ZRS(s)Acts as an exact match condition functioncCs
||_dS(N(t
strtomatch(R	R((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt__init__KscCs
||jkS(N(R(R	R
((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRMs(RRRRR(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR
Is	t
PrefixCondcBs eZdZd„Zd„ZRS(s9Acts as a condition function for matching a string prefixcCs
||_dS(N(tprefix(R	R((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRRscCs|t|jƒ |jkS(N(tlenR(R	R
((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRTs(RRRRR(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRPs	tPostfixCondcBs eZdZd„Zd„ZRS(s:Acts as a condition function for matching a string postfixcCs
||_dS(N(tpostfix(R	R((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRYscCs|t|jƒ|jkS(N(RR(R	R
((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR[s(RRRRR(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRWs	tLikeCondcBs&eZdZejd„Zd„ZRS(sĒ
    Acts as a function that will match using an SQL 'LIKE' style
    string.  Case insensitive and % signs are wild cards.
    This isn't perfect but it should work for the simple common cases.
    cCsfd}x$|D]}|j|d|ƒ}q
W|jddƒ|_tjd|jd|ƒ|_dS(Ns.*+()[]?s\t%s.*t^t$(treplacetlikestrtretcompile(R	Rtre_flagstchars_to_escapetchar((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRds

cCs|jj|ƒS(N(Rtmatch(R	R
((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRls(RRRRt
IGNORECASERR(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR^st__TABLE_NAMES__s._COLUMNS__cCs|tS(N(t_columns(ttable((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt_columns_keyuss._DATA_.s	._ROWID_.icCs|t|t|S(N(t_data(R$tcoltrowid((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt	_data_keyscCs|t|tS(N(R&(R$R'((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt_search_col_data_key„scCs|tS(N(R&(R$((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt_search_all_data_key‡scCs|t|tS(N(t_rowid(R$R(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt
_rowid_keyŠscCs|tS(N(R,(R$((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt_search_rowid_keyscCs`|jtƒdksT|jtƒdksT|jtƒdksT|jtƒdkrXdSdSdS(s‚Verify that the given string does not contain any
    metadata strings that might interfere with dbtables database operation.
    iiN(tfindt_table_names_keyR#R&R,(R
((s*/usr/local/lib/python2.7/bsddb/dbtables.pytcontains_metastringsst
bsdTableDBcBsČeZdddddd„Zd„Zd„Zdd„Zd„Zd„Zd„Zd	„Z	d
„Z
d„Zd„Zd
„Z
d„Ziid„Zid„Zid„Zd„Zd„ZRS(ii€cs"d|_tj}|r(|tjO}ntjtjBtjBtjB|B}	y|tjO}Wnt	k
rnnX|r…|	tj
B}	ntjƒ|_|jj
tjƒ|jj|||	Bƒ|rŌ|tjO}ntj|jƒ|_|jjdƒ|jjtjƒ|jj|tj||B|ƒ||_tjddkrdtfd„ƒY‰dtf‡fd†ƒY}
|
|jƒ|_n|jjƒ}yVt|jdƒt|ƒsót|jd	|jjƒttjgdƒd
|ƒnWn|j ƒ‚nX|j!ƒi|_"dS(sÄbsdTableDB(filename, dbhome, create=0, truncate=0, mode=0600)

        Open database name in the dbhome Berkeley DB directory.
        Use keyword arguments when calling this constructor.
        iiitcursor_py3kcBs,eZd„Zd„Zd„Zd„ZRS(cSs
||_dS(N(t	_dbcursor(R	tdbcursor((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRÄscSs
|jjƒS(N(R4tclose(R	((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR6ĒscSsT|jjt|dƒƒ}|dk	rP|djdƒ|djdƒf}n|S(Ns	iso8859-1ii(R4t	set_rangetbytestNonetdecode(R	tsearchtv((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR7Źs
cSsNt|jdƒƒ}|dk	rJ|djdƒ|djdƒf}n|S(Ntnextis	iso8859-1i(tgetattrR4R9R:(R	R<((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt__next__Ńs
(RRRR6R7R?(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR3Ćs			tdb_py3kcs}eZd„Zd
‡fd†Zd
d„Zdd
d„Zd
d„Zd
dd„Zd
dd„Z	d
d„Z
d	„ZRS(cSs
||_dS(N(t_db(R	R((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRŁscsˆ|jjd|ƒƒS(Nttxn(RAtcursor(R	RB(R3(s*/usr/local/lib/python2.7/bsddb/dbtables.pyRCÜscSs%t|jdƒt|dƒd|ƒS(Nthas_keys	iso8859-1RB(R>RAR8(R	tkeyRB((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRDßsicSsLt|dƒ}|dk	r-t|dƒ}n|jj||d|d|ƒS(Ns	iso8859-1tflagsRB(R8R9RAtput(R	REtvalueRFRB((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRGćscSs(t|dƒ}|jj||d|ƒS(Ns	iso8859-1RB(R8RARG(R	RERHRB((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt	put_byteséscSsOt|dƒ}|jj|d|d|ƒ}|dk	rK|jdƒ}n|S(Ns	iso8859-1RBRF(R8RAtgetR9R:(R	RERBRFR<((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRJķs
cSs+t|dƒ}|jj|d|d|ƒS(Ns	iso8859-1RBRF(R8RARJ(R	RERBRF((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt	get_bytesōscSs%t|dƒ}|jj|d|ƒS(Ns	iso8859-1RB(R8RAtdelete(R	RERB((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRLųscSs
|jjƒS(N(RAR6(R	((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR6üsN(RRRR9RCRDRGRIRJRKRLR6((R3(s*/usr/local/lib/python2.7/bsddb/dbtables.pyR@Ųs	RDRIRBN(#R9Rt	DB_THREADt	DB_CREATEt
DB_INIT_MPOOLtDB_INIT_LOCKtDB_INIT_LOGtDB_INIT_TXNtDB_AUTO_COMMITtAttributeErrort
DB_RECOVERtDBEnvtenvt
set_lk_detecttDB_LOCK_DEFAULTtopentDB_TRUNCATEtDBtset_get_returns_nonet	set_flagstDB_DUPtDB_BTREEt
dbfilenametsystversion_infotobjectt	txn_beginR>R0RGtpickletdumpstaborttcommitt_bsdTableDB__tablecolumns(R	tfilenametdbhometcreatettruncatetmodetrecovertdbflagstmyflagstflagsforenvR@RB((R3s*/usr/local/lib/python2.7/bsddb/dbtables.pyRŸsF		"
 	'#

cCs|jƒdS(N(R6(R	((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt__del__scCsT|jdk	r(|jjƒd|_n|jdk	rP|jjƒd|_ndS(N(RR9R6RW(R	((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR6s

cCs|jj|ƒdS(N(RWttxn_checkpoint(R	tmins((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt
checkpointscCs|jjƒdS(N(Rtsync(R	((s*/usr/local/lib/python2.7/bsddb/dbtables.pyRx scCs—dGH|jjƒ}y^|jƒ\}}xEti||6ƒGH|jƒ}|r_|\}}q,|jƒdSq,WWntjk
r’|jƒnXdS(s*Print the database to stdout for debuggings5******** Printing raw database for debugging ********N(RRCtfirsttreprR=R6tDBNotFoundError(R	tcurREtdataR=((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt	_db_print#s
cCsŲt|tƒst‚d}y^t|ƒr9tdƒ‚nx)|D]!}t|ƒr@tdƒ‚q@q@Wt|ƒ}t|jdƒ|ƒr•t	d‚n|j
jƒ}t|jd|jjƒ|t
j|dƒd|ƒt
jt|jd|jjƒtd|d	tjƒƒ}|j|ƒ|jjtd|ƒt|jd|jjƒtt
j|dƒd|ƒ|jƒd}WnXtjk
rÓ}|r”|jƒntjd
krĄt|d‚qŌt|jd‚nXdS(s”CreateTable(table, columns) - Create a new table in the database.

        raises TableDBError if it already exists or for other DB errors.
        s-bad table name: contains reserved metastringss.bad column name: contains reserved metastringsRDstable already existsRIiRBRKRFiiN(ii(t
isinstancetlisttAssertionErrorR9R1t
ValueErrorR%R>RRRWReRGRfRgtloadsRJR0tDB_RMWtappendRLRitDBErrorRhRbRcRtargs(R	R$tcolumnsRBtcolumntcolumnlist_keyt	tablelisttdberror((s*/usr/local/lib/python2.7/bsddb/dbtables.pytCreateTable5s<
'



cCs‘t|tƒst‚t|ƒr-td‚nt|ƒ}t|jdƒ|ƒsUgSt|jd|jjƒ|ƒ}|r‰t	j
|ƒSgSdS(s\Return a list of columns in the given table.
        [] if the table doesn't exist.
        s-bad table name: contains reserved metastringsRDRKN(RtstrRR1R‚R%R>RRJRfRƒ(R	R$RŠtpickledcolumnlist((s*/usr/local/lib/python2.7/bsddb/dbtables.pytListTableColumnses
cCs-|jjtƒ}|r%tj|ƒSgSdS(s)Return a list of tables in this database.N(Rtget_getR0RfRƒ(R	tpickledtablelist((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt
ListTablesws
c
CsĶt|tƒst‚y|j||ƒWntk
rČd}y+t|ƒ}|jjƒ}t	j
t|jd|jj
ƒ|d|dtjƒƒ}i}x|D]}|||<q£Wtj|ƒ}x*|D]"}||krĶ|j|ƒqĶqĶW||krL|jj|d|ƒt|jd|jjƒ|t	j|dƒd|ƒn|jƒd}|j|ƒWqÉtjk
rÄ}	|r’|jƒntjd	kr±t|	d‚qÅt|	jd‚qÉXnXdS(
sCreateOrExtendTable(table, columns)

        Create a new table in the database.

        If a table of this name already exists, extend it to have any
        additional columns present in the given list as well as
        all of its current columns.
        RKRBRFRIiiiN(ii(RR€RRRR9R%RWReRfRƒR>RRJR„tcopyR…RLRGRgRit_bsdTableDB__load_column_infoR†RhRbRcRR‡(
R	R$RˆRBRŠt
oldcolumnlistt
oldcolumnhashtct
newcolumnlistRŒ((s*/usr/local/lib/python2.7/bsddb/dbtables.pytCreateOrExtendTables@	
'




cCs…y+t|jd|jjƒt|ƒƒ}Wn$tjk
rQtd|f‚nX|sktd|f‚ntj|ƒ|j|<dS(s'initialize the self.__tablecolumns dictRKsunknown table: %rN(	R>RRJR%R{RRfRƒRj(R	R$ttcolpickles((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt__load_column_info¹scCsŌd}xĒ|sĻg}x-ttƒD]}|jtjddƒƒq"Wtjdt|Œ}tjddkr€|j	dƒ}ny/|j
jt||ƒd	d|dt
jƒWnt
jk
rÅq	Xd}q	W|S(
s"Create a new unique row identifierii’tBis	iso8859-1RBRFiN(txranget_rowid_str_lenR…trandomtrandinttstructtpackRbRcR:RRGR-R9tDB_NOOVERWRITEtDBKeyExistError(R	R$RBtuniquetblisttxtnewid((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt__new_rowidÅs	!
c	Cs›d}yt|jdƒt|ƒƒs3td‚n||jkrR|j|ƒnx=|jƒD]/}|j|j|ƒs_td|f‚q_q_W|j	j
ƒ}|j|d|ƒ}x?|jƒD]1\}}|jj
t|||ƒ|d|ƒqĆW|jƒd}Wn‹tjk
r–}tjƒ}|rV|jƒ|jjt||ƒƒntjd	kr|t|d|d‚q—t|jd|d‚nXdS(
sƒInsert(table, datadict) - Insert a new row into the table
        using the keys+values from rowdict as the column values.
        RDs
unknown tablesunknown column: %rRBiiiN(ii(R9R>RR%RRjR•tkeystcountRWRet_bsdTableDB__new_rowidtitemsRGR)RiR†Rbtexc_infoRhRLR-RcR‡(	R	R$trowdictRBR‰R(tdataitemRŒtinfo((s*/usr/local/lib/python2.7/bsddb/dbtables.pytInsertąs.)


cCsyA|j|g|ƒ}|jƒ}x|jƒD]}d}yßxŲ|D]Š}|jjƒ}yJ|jjt|||ƒd|ƒ}	|jjt|||ƒd|ƒWntj	k
rĀd}	nX|||	ƒ}	|	dk	r|jj
t|||ƒ|	d|ƒn|jƒd}qGWWq1|r5|jƒn‚q1Xq1WWnEtj
k
rˆ}
tjdkrut|
d‚q‰t|
jd‚nXdS(sModify(table, conditions={}, mappings={}) - Modify items in rows matching 'conditions' using mapping functions in 'mappings'

        * table - the table name
        * conditions - a dictionary keyed on column names containing
          a condition callable expecting the data string as an
          argument and returning a boolean.
        * mappings - a dictionary keyed on column names containing a
          condition callable expecting the data string as an argument and
          returning the new string for that column.
        RBiiiN(ii(t_bsdTableDB__SelectR«R9RWReRRJR)RLR{RGRiRhR†RbRcRR‡(R	R$t
conditionstmappingstmatching_rowidsRˆR(RBR‰R±RŒ((s*/usr/local/lib/python2.7/bsddb/dbtables.pytModifys@
			
	

c	Csiy|j|g|ƒ}|j|}xō|jƒD]ę}d}y«|jjƒ}xK|D]C}y&|jjt|||ƒd|ƒWqWtj	k
r™qWXqWWy#|jjt
||ƒd|ƒWntj	k
r×nX|jƒd}Wq2tjk
r}|r|j
ƒn‚q2Xq2WWnEtjk
rd}tjdkrQt|d‚qet|jd‚nXdS(sDelete(table, conditions) - Delete items matching the given
        conditions from the table.

        * conditions - a dictionary keyed on column names containing
          condition functions expecting the data string as an
          argument and returning a boolean.
        RBiiiN(ii(R“RjR«R9RWReRRLR)R{R-RiR†RhRbRcRR‡(	R	R$RµR·RˆR(RBR‰RŒ((s*/usr/local/lib/python2.7/bsddb/dbtables.pytDeleteBs6	

#


cCs¦yT||jkr"|j|ƒn|dkr>|j|}n|j|||ƒ}WnEtjk
r›}tjdkrˆt|d‚qœt|j	d‚nX|j
ƒS(s²Select(table, columns, conditions) - retrieve specific row data
        Returns a list of row column->value mapping dictionaries.

        * columns - a list of which column data to return.  If
          columns is None, all columns will be returned.
        * conditions - a dictionary keyed on column names
          containing callable conditions expecting the data string as an
          argument and returning a boolean.
        iiiN(ii(RjR•R9R“RR†RbRcRR‡tvalues(R	R$RˆRµR·RŒ((s*/usr/local/lib/python2.7/bsddb/dbtables.pytSelectos
cCs‹||jkr|j|ƒn|dkr;|j|}nxA||jƒD]/}|j|j|ƒsLtd|f‚qLqLWi}i}d„}tjd	kræ|j	ƒ}|j
|ƒnvg}xm|j	ƒD]_}	xVt|ƒD];\}
}|||	ƒ}|dkrå|j|
|	ƒPqåqåW|j
|	ƒqŅW|jjƒ}
d}xH|D]@\}}|d}t||ƒ}||kr‹d}nd}yČ|
j|ƒ\}}x¬|t|ƒ |krW|t}||krB|sģ||ƒr||kri||<n|r?||||<q?qB||kr5||=n|||<n|
jƒ\}}q¬WWqQtjk
r}|jdtjkrQ‚qQqQqQXqQW|
jƒ~t|ƒdkr‡xŠ|j	ƒD]æ\}}x°|D]Ø}||krģqŌny&|jjt|||ƒƒ||<WqŌtjk
r{}tjd
krR|dtjkrn‚qnn|jdtjkrn‚nd||<qŌXqŌWqĮWn|S(s™__Select() - Used to implement Select and Delete (above)
        Returns a dictionary keyed on rowids containing dicts
        holding the row data for columns listed in the columns param
        that match the given conditions.
        * conditions is a dictionary keyed on column names
        containing callable conditions expecting the data string as an
        argument and returning a boolean.
        sunknown column: %rcSs|d}|d}t|ƒt|ƒkr³d„}t|tƒrrt|tƒrr|t|jƒt|jƒƒSt|tƒrÆt|tƒrÆ|t|jƒt|jƒƒSdSt|tƒrĘdSt|tƒrŁdSt|tƒrģdSt|tƒr’dSdS(NicSs$||krdS||kr dSdS(Nii’’’’i((tatb((s*/usr/local/lib/python2.7/bsddb/dbtables.pytcmpØs
ii’’’’(ttypeRRRRRRR
(tatupletbtupleR¼R½R¾((s*/usr/local/lib/python2.7/bsddb/dbtables.pytcmp_conditions¢s$

	iiii’’’’iN(ii(ii(RjR•R9ttablecolumnsR«R¬RRbRcR®tsortt	enumeratetinsertR…RRCR*R7RRŸR=R†R‡tDB_NOTFOUNDR6RJR)(R	R$RˆRµR‰R·trejected_rowidsRĀt
conditionlisttitjtktrR|t
column_numt	conditiont	searchkeytsavethiscolumndataRER}R(RŒtrowdata((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt__Selectˆs‚
	
	




		c	Cs8d}yļ|jjƒ}|jjt|ƒd|ƒ|jj|ƒ}t|ƒ}xYy|j|ƒ\}}Wntj	k
r…PnX|t
|ƒ |kr Pn|jƒqUWt|ƒ}xYy|j|ƒ\}}Wntj	k
rķPnX|t
|ƒ |krPn|jƒq½W|jƒt
jt|jd|jjƒtd|dtjƒƒ}y|j|ƒWntk
r}nX|jjtd|ƒt|jd|jjƒtt
j|dƒd|ƒ|jƒd}||jkrō|j|=nWn<tjk
r3}|r|jƒnt|jdƒ‚nXdS(s(Remove an entire table from the databaseRBRKRFRIiN(R9RWReRRLR%RCR+R7R{RR.R6RfRƒR>RJR0R„tremoveR‚RGRgRiRjR†RhRR‡(	R	R$RBR|t	table_keyRER}R‹RŒ((s*/usr/local/lib/python2.7/bsddb/dbtables.pytDropsT



(RRRRtR6RwRxR~RRR“RšR•R­R³RøR¹R»R“RÖ(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR2žs&	r					0			:			,6-	‡(ii((()t_cvsidRRbR”R R¢RcRftcPickletwarningstcatch_warningstwt	__enter__tfilterwarningstDeprecationWarningt__exit__tbsddb3RtImportErrortbsddbt
StandardErrorRRRR
RRRR0R#R%R&R,RŸR)R*R+R-R.R1R2(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyt<module>sV

							

Zerion Mini Shell 1.0