1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
U
¸ý°dPã@sddlmZddlZddlmZddlmZddlmZddlmZddlm    Z    ddl
m Z d    d
l mZd    d l mZd    d lmZd ZdZdZGdd„dej ejƒZGdd„dejƒZGdd„dejeƒZeZGdd„dejeƒZeZGdd„dejeƒZeZ Gdd„dejeƒZ!e!Z"Gdd„dejeƒZ#Gdd„deje$ƒZ%Gd d!„d!ejeƒZ&Gd"d#„d#ejeƒZ'Gd$d%„d%ejeƒZ(Gd&d'„d'ej)ƒZ)Gd(d)„d)ej*ƒZ*Gd*d+„d+ej+ej,ƒZ-e-Z.Gd,d-„d-eje$ƒZ/e/Z0Gd.d/„d/ejeƒZ1Gd0d1„d1ej2ƒZ3dS)2é)Ú annotationsN)ÚAny)ÚOptional)Úoverload)ÚType)Ú TYPE_CHECKING)ÚUUIDé)Úsqltypes)Útype_api)ÚLiteral)iÏi¤)i¼i½iýiþ)ééééiíiïiøc@sZeZdZdZdZerVedddddœdd„ƒZedd    d
ddœd d„ƒZdd dd œdd„ZdS)ÚPGUuidT.zPGUuid[_python_UUID]z Literal[True]ÚNone)ÚselfÚas_uuidÚreturncCsdS©N©©rrrrú[d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/dialects/postgresql/types.pyÚ__init__szPGUuid.__init__z PGUuid[str]zLiteral[False]cCsdSrrrrrrr%sÚbool)rrcCsdSrrrrrrr)sN).).)T)Ú__name__Ú
__module__Ú __qualname__Zrender_bind_castZrender_literal_castrrrrrrrrsÿrc@seZdZdZdS)ÚBYTEAN©rrrÚ__visit_name__rrrrr-src@seZdZdZdS)ÚINETNr rrrrr"1sr"c@seZdZdZdS)ÚCIDRNr rrrrr#8sr#c@seZdZdZdS)ÚMACADDRNr rrrrr$?sr$c@seZdZdZdS)ÚMACADDR8Nr rrrrr%Fsr%c@seZdZdZdZdS)ÚMONEYa0Provide the PostgreSQL MONEY type.
 
    Depending on driver, result rows using this type may return a
    string value which includes currency symbols.
 
    For this reason, it may be preferable to provide conversion to a
    numerically-based currency datatype using :class:`_types.TypeDecorator`::
 
        import re
        import decimal
        from sqlalchemy import Dialect
        from sqlalchemy import TypeDecorator
 
        class NumericMoney(TypeDecorator):
            impl = MONEY
 
            def process_result_value(
                self, value: Any, dialect: Dialect
            ) -> None:
                if value is not None:
                    # adjust this for the currency and numeric
                    m = re.match(r"\$([\d.]+)", value)
                    if m:
                        value = decimal.Decimal(m.group(1))
                return value
 
    Alternatively, the conversion may be applied as a CAST using
    the :meth:`_types.TypeDecorator.column_expression` method as follows::
 
        import decimal
        from sqlalchemy import cast
        from sqlalchemy import TypeDecorator
 
        class NumericMoney(TypeDecorator):
            impl = MONEY
 
            def column_expression(self, column: Any):
                return cast(column, Numeric())
 
    .. versionadded:: 1.2
 
    N©rrrÚ__doc__r!rrrrr&Ms+r&c@seZdZdZdZdS)ÚOIDz Provide the PostgreSQL OID type.Nr'rrrrr)|sr)c@seZdZdZdZdS)Ú    REGCONFIGzLProvide the PostgreSQL REGCONFIG type.
 
    .. versionadded:: 2.0.0rc1
 
    Nr'rrrrr*ƒsr*c@seZdZdZdZdS)ÚTSQUERYzJProvide the PostgreSQL TSQUERY type.
 
    .. versionadded:: 2.0.0rc1
 
    Nr'rrrrr+Žsr+c@seZdZdZdZdS)ÚREGCLASSzHProvide the PostgreSQL REGCLASS type.
 
    .. versionadded:: 1.2.7
 
    Nr'rrrrr,™sr,cs0eZdZdZdZd
ddddœ‡fdd    „ Z‡ZS) Ú    TIMESTAMPz&Provide the PostgreSQL TIMESTAMP type.FNrú Optional[int]r©ÚtimezoneÚ    precisionrcstƒj|d||_dS)zÆConstruct a TIMESTAMP.
 
        :param timezone: boolean value if timezone present, default False
        :param precision: optional integer precision value
 
         .. versionadded:: 1.4
 
        ©r0N©Úsuperrr1©rr0r1©Ú    __class__rrrªs zTIMESTAMP.__init__)FN©rrrr(r!rÚ __classcell__rrr6rr-¤s
ÿr-cs0eZdZdZdZd
ddddœ‡fdd    „ Z‡ZS) ÚTIMEzPostgreSQL TIME type.FNrr.rr/cstƒj|d||_dS)zÁConstruct a TIME.
 
        :param timezone: boolean value if timezone present, default False
        :param precision: optional integer precision value
 
         .. versionadded:: 1.4
 
        r2Nr3r5r6rrr¿s z TIME.__init__)FNr8rrr6rr:¹s
ÿr:c@sxeZdZdZdZdZdddddœdd    „Zed
d dd œd d„ƒZe    ddœdd„ƒZ
ddd
dœdd„Z e    ddœdd„ƒZ dS)ÚINTERVALzPostgreSQL INTERVAL type.TNr.z Optional[str]r)r1ÚfieldsrcCs||_||_dS)a Construct an INTERVAL.
 
        :param precision: optional integer precision value
        :param fields: string fields specifier.  allows storage of fields
         to be limited, such as ``"YEAR"``, ``"MONTH"``, ``"DAY TO HOUR"``,
         etc.
 
         .. versionadded:: 1.2
 
        N)r1r<)rr1r<rrrrÕs zINTERVAL.__init__zsqltypes.Intervalr)ÚintervalÚkwrcKs t|jdS)N)r1)r;Úsecond_precision)Úclsr=r>rrrÚadapt_emulated_to_nativeåsz!INTERVAL.adapt_emulated_to_nativezType[sqltypes.Interval])rcCstjSr)r
ÚInterval©rrrrÚ_type_affinityëszINTERVAL._type_affinityFr)Úallow_nulltypercCstjd|jdS)NT)Únativer?)r
rBr1)rrErrrÚ
as_genericïszINTERVAL.as_genericzType[dt.timedelta]cCstjSr)ÚdtÚ    timedeltarCrrrÚ python_typeòszINTERVAL.python_type)NN)F) rrrr(r!rFrÚ classmethodrAÚpropertyrDrGrJrrrrr;Îsÿr;c@s$eZdZdZd    ddddœdd„ZdS)
ÚBITNFr.rr)ÚlengthÚvaryingrcCs |r ||_n
|pd|_||_dS)Né)rNrO)rrNrOrrrrýs
z BIT.__init__)NF)rrrr!rrrrrrMúsÿrMc@seZdZdZdZdS)ÚTSVECTORzçThe :class:`_postgresql.TSVECTOR` type implements the PostgreSQL
    text search type TSVECTOR.
 
    It can be used to do full text queries on natural language
    documents.
 
    .. seealso::
 
        :ref:`postgresql_match`
 
    Nr'rrrrrQ s rQc@seZdZdZdZdS)ÚCITEXTzFProvide the PostgreSQL CITEXT type.
 
    .. versionadded:: 2.0.7
 
    Nr'rrrrrRsrR)4Ú
__future__rÚdatetimerHÚtypingrrrrrÚuuidrZ _python_UUIDZsqlr
r Z util.typingr Z_DECIMAL_TYPESZ _FLOAT_TYPESZ
_INT_TYPESZ _UUID_RETURNrZ LargeBinaryrZ
TypeEngineÚstrr"ZPGInetr#ZPGCidrr$Z    PGMacAddrr%Z
PGMacAddr8r&Úintr)r*r+r,r-r:ZNativeForEmulatedZ_AbstractIntervalr;Z
PGIntervalrMZPGBitrQZTEXTrRrrrrÚ<module>sH          /   )