ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 4]c@sdZddlZddlmZddlmZddlmZddlmZ dd lm Z d e fd YZ d e e j fd YZde e jfdYZdefdYZdefdYZeZdS(sK .. dialect:: firebird+kinterbasdb :name: kinterbasdb :dbapi: kinterbasdb :connectstring: firebird+kinterbasdb://user:password@host:port/path/to/db[?key=value&key=value...] :url: http://firebirdsql.org/index.php?op=devel&sub=python Arguments ---------- The Kinterbasdb backend accepts the ``enable_rowcount`` and ``retaining`` arguments accepted by the :mod:`sqlalchemy.dialects.firebird.fdb` dialect. In addition, it also accepts the following: * ``type_conv`` - select the kind of mapping done on the types: by default SQLAlchemy uses 200 with Unicode, datetime and decimal support. See the linked documents below for further information. * ``concurrency_level`` - set the backend policy with regards to threading issues: by default SQLAlchemy uses policy 1. See the linked documents below for further information. .. seealso:: http://sourceforge.net/projects/kinterbasdb http://kinterbasdb.sourceforge.net/dist_docs/usage.html#adv_param_conv_dynamic_type_translation http://kinterbasdb.sourceforge.net/dist_docs/usage.html#special_issue_concurrency iN(tmatchi(t FBDialect(tFBExecutionContexti(ttypes(tutilt_kinterbasdb_numericcBseZdZRS(cCs d}|S(NcSs$t|tjrt|S|SdS(N(t isinstancetdecimaltDecimaltstr(tvalue((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pytprocess3s ((tselftdialectR ((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pytbind_processor2s (t__name__t __module__R(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyR1st_FBNumeric_kinterbasdbcBseZRS((RR(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyR<st_FBFloat_kinterbasdbcBseZRS((RR(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyR@stFBExecutionContext_kinterbasdbcBseZedZRS(cCs-|jjd|jjr%|jjSdSdS(Ntenable_rowcounti(texecution_optionstgetR Rtcursortrowcount(R ((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyREs  (RRtpropertyR(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyRDstFBDialect_kinterbasdbcBseZdZeZeZeZeZ e j e j ieej6eej6Z ddeedZedZd dZdZdZdZd Zd Zd ZRS( t kinterbasdbiicKsPtt|j|||_||_||_||_|rLt|_ndS(N( tsuperRt__init__Rt type_convtconcurrency_levelt retainingtTruetsupports_sane_rowcount(R RRRR tkwargs((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyR_s    cCs tdS(NR(t __import__(tcls((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pytdbapioscCs|j||pgdS(N(texecute(R Rt statementt parameterstcontext((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyt do_executesscCs|j|jdS(N(trollbackR (R tdbapi_connection((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyt do_rollbackxscCs|j|jdS(N(tcommitR (R R-((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyt do_commit{scCs |jdd}|jdrGd|d|df|d<|d=n|j|jtj|dt|jd|j}|jd|j }|j dk rt |j dd}|dkrt |j d t }n|s|j jd|d|qng|fS( Ntusernametusertports%s/%sthostRRt initializedt _initialized(ttranslate_connect_argsRtupdatetqueryRtcoerce_kw_typetinttpopRRR&tNonetgetattrtFalsetinit(R turltoptsRRR5((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pytcreate_connect_args~s"   cCs|j}|j}|j|S(sGet the version of the Firebird server used by a connection. Returns a tuple of (`major`, `minor`, `build`), three integers representing the version of the attached server. (t connectiontserver_versiont_parse_version_info(R RDtfbconntversion((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyt_get_server_version_infos  cCstd|}|s(td|n|jddkrvtg|jdddD]}t|^qVdgStg|jdd d D]}t|^qd gSdS( Ns3\w+-V(\d+)\.(\d+)\.(\d+)\.(\d+)( \w+ (\d+)\.(\d+))?s,Could not determine version from string '%s'iiiitfirebirdiiit interbase(RtAssertionErrortgroupR=ttupleR;(R RHtmtx((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyRFs 9cCsct||jj|jjfr[t|}d|kpZd|kpZd|kpZd|kStSdS(Ns*Unable to complete network request to hostsInvalid connection statesInvalid cursor statesconnection shutdown(RR&tOperationalErrortProgrammingErrorR R?(R teRDRtmsg((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyt is_disconnects     N(RRtdriverR?R"tsupports_sane_multi_rowcountRtexecution_ctx_clsR!tsupports_native_decimalRt update_copyRtcolspecsRtsqltypestNumericRtFloatRt classmethodR&R=R+R.R0RCRIRFRU(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyROs,        (t__doc__RtreRtbaseRRtRR\RtobjectRR]RR^RRRR (((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/kinterbasdb.pyt&s   y