%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/
Upload File :
Create Path :
Current File : //opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyo

�
��4]c@s�dZddlZddlZddlmZddlmZddlmZddlmZddlmZdd	lm	Z	dd
lm
Z
ddlmZddlm
Z
d
dlmZd
dlmZd
dlmZd
dlmZd
dlmZyddlmZWnek
r+dZnXdejfd��YZdefd��YZde
fd��YZdefd��YZde	fd��YZdefd��YZ de
fd ��YZ!d!efd"��YZ"e"Z#dS(#s�
.. dialect:: postgresql+pg8000
    :name: pg8000
    :dbapi: pg8000
    :connectstring: postgresql+pg8000://user:password@host:port/dbname[?key=value&key=value...]
    :url: https://pythonhosted.org/pg8000/

.. note::

    The pg8000 dialect is **not tested as part of SQLAlchemy's continuous
    integration** and may have unresolved issues.  The recommended PostgreSQL
    dialect is psycopg2.

.. _pg8000_unicode:

Unicode
-------

pg8000 will encode / decode string values between it and the server using the
PostgreSQL ``client_encoding`` parameter; by default this is the value in
the ``postgresql.conf`` file, which often defaults to ``SQL_ASCII``.
Typically, this can be changed to ``utf-8``, as a more useful default::

    #client_encoding = sql_ascii # actually, defaults to database
                                 # encoding
    client_encoding = utf8

The ``client_encoding`` can be overridden for a session by executing the SQL:

SET CLIENT_ENCODING TO 'utf8';

SQLAlchemy will execute this SQL on all new connections based on the value
passed to :func:`.create_engine` using the ``client_encoding`` parameter::

    engine = create_engine(
        "postgresql+pg8000://user:pass@host/dbname", client_encoding='utf8')


.. _pg8000_isolation_level:

pg8000 Transaction Isolation Level
-------------------------------------

The pg8000 dialect offers the same isolation level settings as that
of the :ref:`psycopg2 <psycopg2_isolation_level>` dialect:

* ``READ COMMITTED``
* ``READ UNCOMMITTED``
* ``REPEATABLE READ``
* ``SERIALIZABLE``
* ``AUTOCOMMIT``

.. versionadded:: 0.9.5 support for AUTOCOMMIT isolation level when using
   pg8000.

.. seealso::

    :ref:`postgresql_isolation_level`

    :ref:`psycopg2_isolation_level`


i����Ni(t_DECIMAL_TYPES(t_FLOAT_TYPES(t
_INT_TYPES(t
PGCompiler(t	PGDialect(tPGExecutionContext(tPGIdentifierPreparer(tUUID(tJSONi(texc(t
processors(ttypes(tutil(tquoted_namet
_PGNumericcBseZd�ZRS(cCs�|jr]|tkr+tjtj|j�S|tksC|tkrGdSt
jd|��nB|tkrmdS|tks�|tkr�tjSt
jd|��dS(NsUnknown PG numeric type: %d(
t	asdecimalRR
tto_decimal_processor_factorytdecimaltDecimalt_effective_decimal_return_scaleRRtNoneR	tInvalidRequestErrortto_float(tselftdialecttcoltype((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytresult_processor`s	(t__name__t
__module__R(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR_st_PGNumericNoBindcBseZd�ZRS(cCsdS(N(R(RR((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytbind_processorzs(RRR(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyRyst_PGJSONcBseZd�ZRS(cCs0|jdkrdStt|�j||�SdS(Nii
(ii
i(t_dbapi_versionRtsuperRR(RRR((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyRs(RRR(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR~st_PGUUIDcBseZd�Zd�ZRS(cCs|jsd�}|SdS(NcSs|dk	rt|�}n|S(N(Rt_python_UUID(tvalue((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytprocess�s(tas_uuid(RRR%((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR�s		cCs|jsd�}|SdS(NcSs|dk	rt|�}n|S(N(Rtstr(R$((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR%�s(R&(RRRR%((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR�s		(RRRR(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR"�s	
tPGExecutionContext_pg8000cBseZRS((RR(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR(�stPGCompiler_pg8000cBseZd�Zd�ZRS(cKs*|j|j|�d|j|j|�S(Ns %% (R%tlefttright(Rtbinarytoperatortkw((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytvisit_mod_binary�scCs,d|krtjd�n|jdd�S(Ns%%s^The SQLAlchemy postgresql dialect now automatically escapes '%' in text() expressions to '%%'.t%(Rtwarntreplace(Rttext((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytpost_process_text�s
(RRR/R4(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR)�s	tPGIdentifierPreparer_pg8000cBseZd�ZRS(cCs(|j|j|j�}|jdd�S(NR0s%%(R2tescape_quotetescape_to_quote(RR$((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyt_escape_identifier�s(RRR8(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR5�stPGDialect_pg8000cBseZdZeZeZdZeZeZ	e
ZeZ
dZejejieej6eej6ee6eej6ee6�Zdd�Zd�Zejd��Z e!d��Z"d�Z#d�Z$d	�Z%d
�Z&d�Z'd�Z(ee)d
�Z*ee)d�Z+d�Z,d�Z-RS(tpg8000tformattuse_encodingcKstj||�||_dS(N(Rt__init__tclient_encoding(RR>tkwargs((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR=�scCs,|jdk|_tt|�j|�dS(Nii	i(ii	i(R tsupports_sane_multi_rowcountR!R9t
initialize(Rt
connection((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyRA�scCsX|jrPt|jd�rPtgtjd|jj�D]}t|�^q7�SdSdS(Nt__version__s(\d+)(?:[-\.]?|$)ic(icicic(tdbapithasattrttupletretfindallRCtint(Rtx((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR �s)cCs
td�S(NR:(t
__import__(tcls((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyRD�scCsO|jdd�}d|kr5t|d�|d<n|j|j�g|fS(Ntusernametusertport(ttranslate_connect_argsRItupdatetquery(Rturltopts((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytcreate_connect_args�s
cCsdt|�kS(Nsconnection is closed(R'(RteRBtcursor((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyt
is_disconnect�scCs�|jdd�}t|d�r-|j}n|dkrEt|_nz||jkr�t|_|j�}|jd|�|jd�|j	�n+t
jd||jdj
|j�f��dS(	Nt_t RBt
AUTOCOMMITs=SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL %stCOMMITsZInvalid value '%s' for isolation_level. Valid isolation levels for %s are %s or AUTOCOMMITs, (R2RERBtTruet
autocommitt_isolation_lookuptFalseRWtexecutetcloseR	t
ArgumentErrortnametjoin(RRBtlevelRW((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytset_isolation_level�s 	

cCsWt|d�r|j}n|j�}|jd|d�|jd�|j�dS(NRBsSET CLIENT_ENCODING TO 't'R\(RERBRWRaRb(RRBR>RW((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytset_client_encodings
cCs|jjd|df�dS(Nit(RBt	tpc_begin(RRBtxid((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytdo_begin_twophasescCs|jj�dS(N(RBttpc_prepare(RRBRl((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytdo_prepare_twophasescCs|jjd|df�dS(NiRj(RBttpc_rollback(RRBRltis_preparedtrecover((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytdo_rollback_twophasescCs|jjd|df�dS(NiRj(RBt
tpc_commit(RRBRlRqRr((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytdo_commit_twophase#scCs$g|jj�D]}|d^qS(Ni(RBttpc_recover(RRBtrow((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pytdo_recover_twophase(scs�g�d�}�j|��jdk	rJ�fd�}�j|�n�jdk	rx�fd�}�j|�nt��dkr��fd�}|SdSdS(NcSs|jtj|jt<dS(N(tpy_typesRt	text_typeR
(tconn((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyt
on_connect.scs�j|�j�dS(N(RiR>(R{(R(sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR|5scs�j|�j�dS(N(Rgtisolation_level(R{(R(sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR|<sicsx�D]}||�qWdS(N((R{tfn(tfns(sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR|Cs
(tappendR>RR}tlen(RR|((RRsX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR|+s	
N(.RRtdriverR]tsupports_unicode_statementstsupports_unicode_bindstdefault_paramstyleR@R(texecution_ctx_clsR)tstatement_compilerR5tpreparertdescription_encodingRtupdate_copyRtcolspecsRtsqltypestNumericRtFloatRRR"RRR=RAtmemoized_propertyR tclassmethodRDRURXRgRiRmRoR`RsRuRxR|(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyR9�s>



					
			($t__doc__RRGtbaseRRRRRRRRtjsonRRjR	R
RR�Rtsql.elementsR
tuuidR#tImportErrorRR�RRRR"R(R)R5R9R(((sX/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/pg8000.pyt<module>Es:

�

Zerion Mini Shell 1.0