%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.pyo

ó
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_keyscCs|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_keyscCs`|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_metastringss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|ƒ||_tjddkrdtfd„ƒ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Ãd}y^t|ƒr$tdƒ‚nx)|D]!}t|ƒr+tdƒ‚q+q+Wt|ƒ}t|jdƒ|ƒr€td‚n|jjƒ}t|jd|jj	ƒ|t
j|dƒd|ƒt
jt|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(R9R1t
ValueErrorR%R>RRRWReRGRfRgtloadsRJR0tDB_RMWtappendRLRitDBErrorRhRbRcRtargs(R	R$tcolumnsRBtcolumntcolumnlist_keyt	tablelisttdberror((s*/usr/local/lib/python2.7/bsddb/dbtables.pytCreateTable5s:
'



cCs|t|ƒrtd‚nt|ƒ}t|jdƒ|ƒs@gSt|jd|jjƒ|ƒ}|rttj|ƒSgSdS(s\Return a list of columns in the given table.
        [] if the table doesn't exist.
        s-bad table name: contains reserved metastringsRDRKN(R1RR%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¸y|j||ƒWntk
r³d}y+t|ƒ}|jjƒ}tjt|j	d|j	j
ƒ|d|dt	jƒƒ}i}x|D]}|||<qŽWtj|ƒ}x*|D]"}||kr¸|j
|ƒq¸q¸W||kr7|j	j|d|ƒt|j	d|j	jƒ|tj|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(RŠRR9R%RWReRfR€R>RRJRtcopyR‚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.)


cCsyA|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ÿÿÿÿ(ttypet
isinstanceRRRRRR
(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>RJR0RtremoveRRGRgRiRjRƒRhRR„(	R	R$RBR|t	table_keyRER}RˆR‰((s*/usr/local/lib/python2.7/bsddb/dbtables.pytDropsT



(RRRRtR6RwRxR~RŠRŒRR–R‘R©R¯R´RµR·R°RÓ(((s*/usr/local/lib/python2.7/bsddb/dbtables.pyR2žs&	r					0			:			,6-	‡(ii((()t_cvsidRRbRRœ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