B *]@sdZddlZddlmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!yDddlm"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/Wne0k rYnXddlm1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>ddlm?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWdZXdZYdZZd Z[d Z\dZ]dZ^dZ_d Z`d ZadZbd Zce`ZddZedZfd Zgd ZhdZidZjd Zkd ZldZmd d ZnGdddeoZpGdddeoZqdddZresdesdfddZtddlumvZvmwZwyev\ZxZyew\ZzZ{Wne0k rtYnX[v[wddl|m}Z}[}x:e~eAD]*\ZZeddddZeeAe<qW[[dS)apsycopg extensions to the DBAPI-2.0 This module holds all the extensions to the DBAPI-2.0 provided by psycopg. - `connection` -- the new-type inheritable connection class - `cursor` -- the new-type inheritable cursor class - `lobject` -- the new-type inheritable large object class - `adapt()` -- exposes the PEP-246_ compatible adapting mechanism used by psycopg to adapt Python types to PostgreSQL ones .. _PEP-246: https://www.python.org/dev/peps/pep-0246/ N) BINARYARRAYBOOLEAN BOOLEANARRAYBYTES BYTESARRAYDATE DATEARRAY DATETIMEARRAYDECIMAL DECIMALARRAYFLOAT FLOATARRAYINTEGER INTEGERARRAYINTERVAL INTERVALARRAY LONGINTEGERLONGINTEGERARRAY ROWIDARRAY STRINGARRAYTIME TIMEARRAYUNICODE UNICODEARRAYAsIsBinaryBooleanFloatInt QuotedString)MXDATE MXDATETIME MXDATETIMETZ MXINTERVALMXTIME MXDATEARRAYMXDATETIMEARRAYMXDATETIMETZARRAYMXINTERVALARRAY MXTIMEARRAY DateFromMx TimeFromMxTimestampFromMxIntervalFromMx)PYDATE PYDATETIME PYDATETIMETZ PYINTERVALPYTIME PYDATEARRAYPYDATETIMEARRAYPYDATETIMETZARRAYPYINTERVALARRAY PYTIMEARRAY DateFromPy TimeFromPyTimestampFromPyIntervalFromPy)adaptadapters encodings connectioncursorlobjectXid libpq_version parse_dsn quote_ident string_types binary_typesnew_typenew_array_type register_type ISQLQuoteNotify DiagnosticsColumnConnectionInfoQueryCanceledErrorTransactionRollbackErrorset_wait_callbackget_wait_callbackencrypt_passwordcCs|t|tf<dS)z;Register 'callable' as an ISQLQuote adapter for type 'typ'.N)r=rK)typcallabler\F/opt/alt/python37/lib64/python3.7/site-packages/psycopg2/extensions.pyregister_adapterfsr^c@s0eZdZdZddZddZddZdd Zd S) SQL_INz-Adapt any iterable to an SQL quotable object.cCs||_d|_dS)N)_seq_conn)selfseqr\r\r]__init__nszSQL_IN.__init__cCs ||_dS)N)ra)rbZconnr\r\r]preparerszSQL_IN.preparecCs^dd|jD}|jdk r>x"|D]}t|dr ||jq Wdd|D}dd|dS)NcSsg|] }t|qSr\)r<).0or\r\r] xsz$SQL_IN.getquoted..recSsg|] }|qSr\) getquoted)rfrgr\r\r]rh}s(s, ))r`rahasattrrejoin)rbZpobjsobjZqobjsr\r\r]rius   zSQL_IN.getquotedcCs t|S)N)strri)rbr\r\r]__str__szSQL_IN.__str__N)__name__ __module__ __qualname____doc__rdrerirpr\r\r\r]r_ls  r_c@s"eZdZdZddZdddZdS) NoneAdapterzAdapt None to NULL. This adapter is not used normally as a fast path in mogrify uses NULL, but it makes easier to adapt composite types. cCsdS)Nr\)rbrnr\r\r]rdszNoneAdapter.__init__NULLcCs|S)Nr\)rbZ_nullr\r\r]riszNoneAdapter.getquotedN)rv)rqrrrsrtrdrir\r\r\r]rusrucKs|dkr|sdS|s t||Sd|krFd|kr8td|d|d<dd|D}|dk rvt|}|||}dd d |D}t||S) z4Convert a set of keywords into a connection strings.NZdatabaseZdbnamez8you can't specify both 'database' and 'dbname' argumentscSsi|]\}}|dk r||qS)Nr\)rfkvr\r\r] szmake_dsn.. cSs$g|]\}}d|tt|fqS)z%s=%s) _param_escapero)rfrxryr\r\r]rhszmake_dsn..)rD TypeErrorpopitemsupdaterm)ZdsnkwargsZtmpr\r\r]make_dsns&   rz([\\'])z\scCs.|sdS|d|}||r*d|d}|S)z9 Apply the escaping rule required by PQconnectdb z''z\\\1')subsearch)sZ re_escapeZre_spacer\r\r]r|s    r|)register_default_jsonregister_default_jsonb)Range_rw-)N)rtreZ_reZpsycopg2._psycopgrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r- ImportErrorr.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTZISOLATION_LEVEL_AUTOCOMMITZ ISOLATION_LEVEL_READ_UNCOMMITTEDZISOLATION_LEVEL_READ_COMMITTEDZISOLATION_LEVEL_REPEATABLE_READZISOLATION_LEVEL_SERIALIZABLEZISOLATION_LEVEL_DEFAULTZ STATUS_SETUPZ STATUS_READYZ STATUS_BEGINZ STATUS_SYNCZ STATUS_ASYNCZSTATUS_PREPAREDZSTATUS_IN_TRANSACTIONZPOLL_OKZ POLL_READZ POLL_WRITEZ POLL_ERRORZTRANSACTION_STATUS_IDLEZTRANSACTION_STATUS_ACTIVEZTRANSACTION_STATUS_INTRANSZTRANSACTION_STATUS_INERRORZTRANSACTION_STATUS_UNKNOWNr^objectr_rurcompiler|Zpsycopg2._jsonrrZJSONZ JSONARRAYZJSONBZ JSONBARRAYZpsycopg2._rangerlistrrxryreplaceupperr\r\r\r] sbD@l  #