%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/
Upload File :
Create Path :
Current File : //opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyc

�
��4]c@s�ddlZddlmZddlmZddlmZddlmZddlmZdd	lm	Z	dd
lmZ
ddlmZdefd
��YZ
e	jdefd��Y�ZdddddfZed�Zd�ZdS(i����Ni(t_EnumeratedValues(tSET(tDATETIME(tTIME(t	TIMESTAMPi(tlog(ttypes(tutiltReflectedStatecBseZdZd�ZRS(s;Stores raw information about a SHOW CREATE TABLE statement.cCs:g|_i|_d|_g|_g|_g|_dS(N(tcolumnst
table_optionstNonet
table_nametkeystfk_constraintstck_constraints(tself((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyt__init__s					(t__name__t
__module__t__doc__R(((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyRstMySQLTableDefinitionParsercBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
Zd�Z
d�Zd
�ZRS(s4Parses the results of a SHOW CREATE TABLE statement.cCs ||_||_|j�dS(N(tdialecttpreparert
_prep_regexes(RRR((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR$s		cCsMt�}||_x4tjd|�D] }|jd|jj�rW|j||�q%|jd�ry|j||�q%|dkr�q%|jd�r�|j	||�q%|s�q%|j
|�\}}|dkr�tj
d|�q%|dkr|jj|�q%|dkr&|jj|�q%|d	kr%|jj|�q%q%W|S(
Ns\r?\ns  s) t)sCREATE sUnknown schema content: %rtkeyt
fk_constraintt
ck_constraint(Rtcharsettretsplitt
startswithRt
initial_quotet
_parse_columnt_parse_table_optionst_parse_table_namet_parse_constraintsRRtwarnR
tappendRR(Rtshow_createRtstatetlinettype_tspec((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pytparse)s0		cCs�|jj|�}|r�|j�}|j|d�|d<|dr�|jj|d�}|r�|j�dr�|j�d|d<q�n|dr�|jj|d�d|d<nd|fS|jj|�}|rd|j�}|jj|d�|d<g|j|d�D]}|d^q|d<g|j|d�D]}|d^q@|d<d	|fS|jj|�}|r�|j�}d
|fS|j	j|�}|r�d|fSd|fS(
saParse a KEY or CONSTRAINT line.

        :param line: A line of SHOW CREATE TABLE output
        R	tversion_sqltparseriRttabletlocaltforeignRRt	partitionN(t_re_keytmatcht	groupdictt_parse_keyexprst_re_key_version_sqlRtunformat_identifierst_re_fk_constraintt_re_ck_constraintt
_re_partitionR(RR*tmR,tm2tc((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR%Is8

	

..


cCsC|j\}}|j|�}|r?||jd��|_ndS(sZExtract the table name.

        :param line: The first line of SHOW CREATE TABLE
        tnameN(t_pr_nameR5tgroupR(RR*R)tregextcleanupR=((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR${sc
Cs
i}|s�|dkrn�|}x�|jD]}\}}|j|�}|sTq-n|jd�|jd�}}	|r�||	�}	n|	||j�<|jd|�}q-Wxd
D]}
|j|
d	�q�Wx7|j�D])\}}||jd|j	j
|f<q�Wd	S(s�Build a dictionary of all reflected table-level options.

        :param line: The final line of SHOW CREATE TABLE output.
        Rt	directivetvalttauto_incrementsdata directorysindex directorys%s_%sN(RHsdata directorysindex directory(t_pr_optionstsearchRBtlowertsubtpopRtitemsR
RR@(
RR*R)toptionstrest_of_lineRCRDR=REtvaluetnopetoptRF((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR#�s"
c	Cs�d}|jj|�}|r7|j�}t|d<n1|jj|�}|rh|j�}t|d<n|s�tjd|�dS|ds�tjd|�n|d|d|d}}}y|j	j
|}Wn1tk
rtjd||f�tj
}nX|dks!|d	kr*g}	n`|d
dkr_|ddkr_|jj|�}	n+g|jj|�D]}
t|
�^qr}	i}t|tttf�r�|	r�|	jd
�|d
<q�nx-dD]%}|j|t�r�t||<q�q�Wx1d D])}|j|t�r�||||<q�q�Wt|t�rttj|	�}	t|t�rtd	|	krtt|d<qtn||	|�}
i}t|d<|jdt�dkr�t|d<n|jdt�r�t|d<nt|tj�r�t|d<n|jdd�}|dkrd}n|jdd�}|dk	r\|jdd�jdd�}ntd|d|
d|d|�}|j|�|jj |�dS(!s�Extract column details.

        Falls back to a 'minimal support' variant if full parse fails.

        :param line: Any column-bearing line from SHOW CREATE TABLE
        tfullsUnknown column definition %rNs-Incomplete reflection of column definition %rR@tcoltypetargs*Did not recognize type '%s' of column '%s'RGit'i����tfsptunsignedtzerofillRtcollatetretrieve_as_bitwisetnullabletnotnullsNOT NULLtautoincrt
autoincrementtdefaulttNULLtcomments\\s\s''ttype(RYRZ(RR[(!Rt
_re_columnR5R6tTruet_re_column_loosetFalseRR&Rt
ischema_namestKeyErrortsqltypestNullTypet_re_csv_strtfindallt_re_csv_inttintt
issubclassRRRRMtgetRt
_strip_valuesRtIntegertreplacetdicttupdateR	R'(RR*R)R,R=R@R+targstcol_typet	type_argstvttype_kwtkwt
type_instancetcol_kwRaRctcol_d((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR"�sv


 

	 +





	!
cCs�g}xQ|D]I}gdD]}||^q\}}}}	}
dg}|j|jj|��|j|�|s�|jd�n|	r*d|	kr�q*|jd	�r�|	jd
�r�|jd�|j|	�q*|	dkr�|jd�|j|	�q*|jd�|jd
|	jdd��n|
r@|j|
�n|jdj|��q
Wdjd|jj|�dj|�dg�S(s�Re-format DESCRIBE output as a SHOW CREATE TABLE string.

        DESCRIBE is a much simpler reflection and is sufficient for
        reflecting views for runtime use.  This method formats DDL
        for columns only- keys are omitted.

        :param columns: A sequence of DESCRIBE or SHOW COLUMNS 6-tuples.
          SHOW FULL COLUMNS FROM rows must be rearranged for use with
          this function.
        iiiiit sNOT NULLRHt	timestamptCtDEFAULTRbs'%s'RWs''RGsCREATE TABLE %s (
s,
s
) (iiiii(R'Rtquote_identifierR Rutjoin(RRR	tbuffertrowtiR@RyR]RatextraR*((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyt_describe_to_creates8
,	
	


 cCs|jj|�S(s8Unpack '"col"(2),"col" ASC'-ish strings into components.(t_re_keyexprsRn(Rtidentifiers((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR77scCs�g|_g|_|jj}ttd'g|jj||jj|�fD]}tj	|�^qI��}t
d||jj�|_t
d|�|_t
d�|_t
d�|_t
d|�|_t
d	|�|_t
d
|�|_t
d�|_|j�}d|d
<t
d|�|_t
d|�|_t
d�|_xtD]}|j|�qQWxd(D]}|j|�qoW|jd d!�|jd"d#�|jd$d%�d&S()s Pre-compile regular expressions.tiqtfqtesc_fqsM^CREATE (?:\w+ +)?TABLE +%(iq)s(?P<name>(?:%(esc_fq)s|[^%(fq)s])+)%(fq)s +\($sW(?:(?:%(iq)s((?:%(esc_fq)s|[^%(fq)s])+)%(fq)s)(?:\((\d+)\))?(?: +(ASC|DESC))?(?=\,|$))+s\x27(?:\x27\x27|[^\x27])*\x27s\d+s#  %(iq)s(?P<name>(?:%(esc_fq)s|[^%(fq)s])+)%(fq)s +(?P<coltype>\w+)(?:\((?P<arg>(?:\d+|\d+,\d+|(?:'(?:''|[^'])*',?)+))\))?(?: +(?P<unsigned>UNSIGNED))?(?: +(?P<zerofill>ZEROFILL))?(?: +CHARACTER SET +(?P<charset>[\w_]+))?(?: +COLLATE +(?P<collate>[\w_]+))?(?: +(?P<notnull>(?:NOT )?NULL))?(?: +DEFAULT +(?P<default>(?:NULL|'(?:''|[^'])*'|[\w\(\)]+(?: +ON UPDATE [\w\(\)]+)?)))?(?: +(?P<autoincr>AUTO_INCREMENT))?(?: +COMMENT +'(?P<comment>(?:''|[^'])*)')?(?: +COLUMN_FORMAT +(?P<colfmt>\w+))?(?: +STORAGE +(?P<storage>\w+))?(?: +(?P<extra>.*))?,?$s�  %(iq)s(?P<name>(?:%(esc_fq)s|[^%(fq)s])+)%(fq)s +(?P<coltype>\w+)(?:\((?P<arg>(?:\d+|\d+,\d+|\x27(?:\x27\x27|[^\x27])+\x27))\))?.*?(?P<notnull>(?:NOT )NULL)?sX  (?:(?P<type>\S+) )?KEY(?: +%(iq)s(?P<name>(?:%(esc_fq)s|[^%(fq)s])+)%(fq)s)?(?: +USING +(?P<using_pre>\S+))? +\((?P<columns>.+?)\)(?: +USING +(?P<using_post>\S+))?(?: +KEY_BLOCK_SIZE *[ =]? *(?P<keyblock>\S+))?(?: +WITH PARSER +(?P<parser>\S+))?(?: +COMMENT +(?P<comment>(\x27\x27|\x27([^\x27])*?\x27)+))?(?: +/\*(?P<version_sql>.+)\*/ +)?,?$s+\!\d+ (?: *WITH PARSER +(?P<parser>\S+) *)?s"RESTRICT|CASCADE|SET NULL|NOACTIONtons,  CONSTRAINT +%(iq)s(?P<name>(?:%(esc_fq)s|[^%(fq)s])+)%(fq)s +FOREIGN KEY +\((?P<local>[^\)]+?)\) REFERENCES +(?P<table>%(iq)s[^%(fq)s]+%(fq)s(?:\.%(iq)s[^%(fq)s]+%(fq)s)?) +\((?P<foreign>[^\)]+?)\)(?: +(?P<match>MATCH \w+))?(?: +ON DELETE (?P<ondelete>%(on)s))?(?: +ON UPDATE (?P<onupdate>%(on)s))?s[  CONSTRAINT +%(iq)s(?P<name>(?:%(esc_fq)s|[^%(fq)s])+)%(fq)s +CHECK +\((?P<sqltext>.+)\),?s(?:.*)(?:SUB)?PARTITION(?:.*)tENGINEtTYPEtAUTO_INCREMENTtAVG_ROW_LENGTHs
CHARACTER SETsDEFAULT CHARSETtCHECKSUMtCOLLATEtDELAY_KEY_WRITEt
INSERT_METHODtMAX_ROWStMIN_ROWSt	PACK_KEYSt
ROW_FORMATtKEY_BLOCK_SIZEtUNIONs
\([^\)]+\)t
TABLESPACEs.*? STORAGE DISKt	RAID_TYPEs4\w+\s+RAID_CHUNKS\s*\=\s*\w+RAID_CHUNKSIZE\s*=\s*\w+N(R�R�R�(R�R�R�R�s
CHARACTER SETsDEFAULT CHARSETR�R�R�R�R�R�R�R�R�(t_re_columnsRIRtfinal_quoteRvtzipR!t_escape_identifierRtescapet_pr_compilet_unescape_identifierRAt_re_compileR�RmRoReRgR4R8tcopyR:R;R<t_options_of_type_stringt_add_option_stringt_add_option_wordt_add_option_regex(Rt_finaltstquotesR}toption((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR<s~			4




	





s(?:\s*(?:=\s*)|\s+)cCs<dtj|�|jf}|jjt|d���dS(Ns0(?P<directive>%s)%s'(?P<val>(?:[^']|'')*?)'(?!')cSs|jdd�jdd�S(Ns\\s\s''RW(Ru(R{((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyt<lambda>�RG(RR�t_optional_equalsRIR'R�(RRERC((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR��s
	cCs6dtj|�|jf}|jjt|��dS(Ns(?P<directive>%s)%s(?P<val>\w+)(RR�R�RIR'R�(RRERC((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR��s
cCs9dtj|�|j|f}|jjt|��dS(Ns(?P<directive>%s)%s(?P<val>%s)(RR�R�RIR'R�(RRERC((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR��s

(RRRRR-R%R$R#R"R�R7RR�R�R�R�(((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR s		 	2			_	5		�		tCOMMENTsDATA DIRECTORYsINDEX DIRECTORYtPASSWORDt
CONNECTIONcCst|�|fS(s1Prepare a 2-tuple of compiled regex and callable.(R�(RCRD((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR�scCstj|tjtjB�S(s)Compile a string to regex, I and UNICODE.(RtcompiletItUNICODE(RC((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyR�s(Rt
enumeratedRRRRRRRGRRkRtobjectRtclass_loggerRR�RR�R�(((sW/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/reflection.pyt<module>s&	��	

Zerion Mini Shell 1.0