1
1
import logging
2
2
import os
3
- from typing import Any , Dict , List , Optional
3
+ import typing
4
4
5
- from redshift_connector .core import BINARY , Connection , Cursor , Interval
5
+ from redshift_connector .core import BINARY , Connection , Cursor
6
6
from redshift_connector .error import (
7
7
ArrayContentNotHomogenousError ,
8
8
ArrayContentNotSupportedError ,
18
18
ProgrammingError ,
19
19
Warning ,
20
20
)
21
- from redshift_connector .iamHelper import set_iam_properties
21
+ from redshift_connector .iam_helper import set_iam_properties
22
22
from redshift_connector .objects import (
23
23
Binary ,
24
24
Date ,
36
36
PGTsvector ,
37
37
PGVarchar ,
38
38
)
39
- from redshift_connector .RedshiftProperty import RedshiftProperty
39
+ from redshift_connector .redshift_property import RedshiftProperty
40
40
41
- from ._version import get_versions
41
+ from .version import __version__
42
42
43
- __version__ = get_versions ()['version' ]
44
- del get_versions
45
- path = os .path .abspath (__file__ )
46
- log_path = '/' .join (path .split ('/' )[:- 1 ]) + '/driver.log'
43
+ path : str = os .path .abspath (__file__ )
44
+ log_path : str = "/" .join (path .split ("/" )[:- 1 ]) + "/driver.log"
47
45
48
46
# Copyright (c) 2007-2009, Mathieu Fenniak
49
47
# Copyright (c) The Contributors
77
75
78
76
79
77
def connect (
80
- user : Optional [str ], host : str = 'localhost' , database : Optional [str ] = None ,
81
- port : int = 5432 , password : Optional [str ] = None ,
82
- source_address : Optional [str ] = None , unix_sock : Optional [str ] = None ,
83
- ssl : bool = True , sslmode : str = "verify-ca" , timeout : Optional [int ] = None ,
84
- max_prepared_statements : int = 1000 , tcp_keepalive : bool = True ,
85
- application_name : Optional [str ] = None , replication : Optional [str ] = None ,
86
- idp_host : Optional [str ] = None , db_user : Optional [str ] = None ,
87
- app_id : Optional [str ] = None , app_name : str = 'amazon_aws_redshift' ,
88
- preferred_role : Optional [str ] = None , principal_arn : Optional [str ] = None ,
89
- credentials_provider : Optional [str ] = None , region : Optional [str ] = None ,
90
- cluster_identifier : Optional [str ] = None , iam : bool = False ,
91
- client_id : Optional [str ] = None , idp_tenant : Optional [str ] = None ,
92
- client_secret : Optional [str ] = None , partner_sp_id : Optional [str ] = None ,
93
- idp_response_timeout : int = 120 , listen_port : int = 7890 ,
94
- login_url : Optional [str ] = None , auto_create : bool = False ,
95
- db_groups : Optional [List [str ]] = None , force_lowercase : bool = False ,
96
- allow_db_user_override : bool = False , dsilog_level : int = 0 ,
97
- log_path : str = log_path
78
+ user : str ,
79
+ database : str ,
80
+ password : str ,
81
+ port : int = 5439 ,
82
+ host : str = "localhost" ,
83
+ source_address : typing .Optional [str ] = None ,
84
+ unix_sock : typing .Optional [str ] = None ,
85
+ ssl : bool = True ,
86
+ sslmode : str = "verify-ca" ,
87
+ timeout : typing .Optional [int ] = None ,
88
+ max_prepared_statements : int = 1000 ,
89
+ tcp_keepalive : bool = True ,
90
+ application_name : typing .Optional [str ] = None ,
91
+ replication : typing .Optional [str ] = None ,
92
+ idp_host : typing .Optional [str ] = None ,
93
+ db_user : typing .Optional [str ] = None ,
94
+ app_id : typing .Optional [str ] = None ,
95
+ app_name : str = "amazon_aws_redshift" ,
96
+ preferred_role : typing .Optional [str ] = None ,
97
+ principal_arn : typing .Optional [str ] = None ,
98
+ credentials_provider : typing .Optional [str ] = None ,
99
+ region : typing .Optional [str ] = None ,
100
+ cluster_identifier : typing .Optional [str ] = None ,
101
+ iam : bool = False ,
102
+ client_id : typing .Optional [str ] = None ,
103
+ idp_tenant : typing .Optional [str ] = None ,
104
+ client_secret : typing .Optional [str ] = None ,
105
+ partner_sp_id : typing .Optional [str ] = None ,
106
+ idp_response_timeout : int = 120 ,
107
+ listen_port : int = 7890 ,
108
+ login_url : typing .Optional [str ] = None ,
109
+ auto_create : bool = False ,
110
+ db_groups : typing .Optional [typing .List [str ]] = None ,
111
+ force_lowercase : bool = False ,
112
+ allow_db_user_override : bool = False ,
113
+ log_level : int = 0 ,
114
+ log_path : str = log_path ,
98
115
) -> Connection :
99
116
100
- FORMAT_TO_USE : str = (
101
- "%(levelname)s|%(asctime)s|%(name)s|%(filename)s|" "%(funcName)s|%(lineno)d: %(message)s"
102
- )
103
- log_level_dic : Dict [int , int ] = {
117
+ FORMAT_TO_USE : str = "%(levelname)s|%(asctime)s|%(name)s|%(filename)s|" "%(funcName)s|%(lineno)d: %(message)s"
118
+ log_level_dic : typing .Dict [int , int ] = {
104
119
0 : logging .CRITICAL ,
105
120
1 : logging .ERROR ,
106
121
2 : logging .WARN ,
107
122
3 : logging .INFO ,
108
- 4 : logging .DEBUG
123
+ 4 : logging .DEBUG ,
109
124
}
110
- logging .basicConfig (filename = log_path , filemode = 'w' , format = FORMAT_TO_USE , level = logging .INFO )
111
- logging .disable (log_level_dic [dsilog_level ])
125
+ logging .basicConfig (filename = log_path , filemode = "w" , format = FORMAT_TO_USE , level = logging .INFO )
126
+ logging .disable (log_level_dic [log_level ])
112
127
113
128
info : RedshiftProperty = RedshiftProperty ()
114
- set_iam_properties (info , user , host = host , database = database , port = port , password = password ,
115
- source_address = source_address , unix_sock = unix_sock ,
116
- ssl = ssl , sslmode = sslmode , timeout = timeout ,
117
- max_prepared_statements = max_prepared_statements ,
118
- tcp_keepalive = tcp_keepalive , application_name = application_name ,
119
- replication = replication , idp_host = idp_host , db_user = db_user ,
120
- app_id = app_id , app_name = app_name , preferred_role = preferred_role , principal_arn = principal_arn ,
121
- credentials_provider = credentials_provider ,
122
- region = region , cluster_identifier = cluster_identifier , iam = iam ,
123
- client_id = client_id , idp_tenant = idp_tenant , client_secret = client_secret ,
124
- partner_sp_id = partner_sp_id , idp_response_timeout = idp_response_timeout , listen_port = listen_port ,
125
- login_url = login_url , auto_create = auto_create , db_groups = db_groups ,
126
- force_lowercase = force_lowercase , allow_db_user_override = allow_db_user_override )
129
+ set_iam_properties (
130
+ info ,
131
+ user = user ,
132
+ host = host ,
133
+ database = database ,
134
+ port = port ,
135
+ password = password ,
136
+ source_address = source_address ,
137
+ unix_sock = unix_sock ,
138
+ ssl = ssl ,
139
+ sslmode = sslmode ,
140
+ timeout = timeout ,
141
+ max_prepared_statements = max_prepared_statements ,
142
+ tcp_keepalive = tcp_keepalive ,
143
+ application_name = application_name ,
144
+ replication = replication ,
145
+ idp_host = idp_host ,
146
+ db_user = db_user ,
147
+ app_id = app_id ,
148
+ app_name = app_name ,
149
+ preferred_role = preferred_role ,
150
+ principal_arn = principal_arn ,
151
+ credentials_provider = credentials_provider ,
152
+ region = region ,
153
+ cluster_identifier = cluster_identifier ,
154
+ iam = iam ,
155
+ client_id = client_id ,
156
+ idp_tenant = idp_tenant ,
157
+ client_secret = client_secret ,
158
+ partner_sp_id = partner_sp_id ,
159
+ idp_response_timeout = idp_response_timeout ,
160
+ listen_port = listen_port ,
161
+ login_url = login_url ,
162
+ auto_create = auto_create ,
163
+ db_groups = db_groups ,
164
+ force_lowercase = force_lowercase ,
165
+ allow_db_user_override = allow_db_user_override ,
166
+ )
127
167
128
168
return Connection (
129
- user = info .user_name , host = info .host , database = info .db_name ,
130
- port = info .port , password = info .password ,
131
- source_address = info .source_address , unix_sock = info .unix_sock ,
132
- ssl = info .ssl , sslmode = info .sslmode , timeout = info .timeout ,
169
+ user = info .user_name ,
170
+ host = info .host ,
171
+ database = info .db_name ,
172
+ port = info .port ,
173
+ password = info .password ,
174
+ source_address = info .source_address ,
175
+ unix_sock = info .unix_sock ,
176
+ ssl = info .ssl ,
177
+ sslmode = info .sslmode ,
178
+ timeout = info .timeout ,
133
179
max_prepared_statements = info .max_prepared_statements ,
134
- tcp_keepalive = info .tcp_keepalive , application_name = info .application_name ,
135
- replication = info .replication )
180
+ tcp_keepalive = info .tcp_keepalive ,
181
+ application_name = info .application_name ,
182
+ replication = info .replication ,
183
+ )
136
184
137
185
138
186
apilevel : str = "2.0"
@@ -151,7 +199,7 @@ def connect(
151
199
<http://www.python.org/dev/peps/pep-0249/>`_.
152
200
"""
153
201
154
- paramstyle : str = ' format'
202
+ paramstyle : str = " format"
155
203
156
204
# I have no idea what this would be used for by a client app. Should it be
157
205
# TEXT, VARCHAR, CHAR? It will only compare against row_description's
@@ -162,20 +210,44 @@ def connect(
162
210
"""String type oid."""
163
211
164
212
165
- NUMBER : int = 1700
213
+ NUMBER : int = 1700
166
214
"""Numeric type oid"""
167
215
168
- DATETIME : int = 1114
216
+ DATETIME : int = 1114
169
217
"""Timestamp type oid"""
170
218
171
- ROWID : int = 26
219
+ ROWID : int = 26
172
220
"""ROWID type oid"""
173
221
174
- __all__ : Any = [
175
- Warning , DataError , DatabaseError , connect , InterfaceError ,
176
- ProgrammingError , Error , OperationalError , IntegrityError , InternalError ,
177
- NotSupportedError , ArrayContentNotHomogenousError ,
178
- ArrayDimensionsNotConsistentError , ArrayContentNotSupportedError ,
179
- Connection , Cursor , Binary , Date , DateFromTicks , Time , TimeFromTicks ,
180
- Timestamp , TimestampFromTicks , BINARY , Interval , PGEnum , PGJson , PGJsonb ,
181
- PGTsvector , PGText , PGVarchar ]
222
+ __all__ : typing .Any = [
223
+ "Warning" ,
224
+ "DataError" ,
225
+ "DatabaseError" ,
226
+ "connect" ,
227
+ "InterfaceError" ,
228
+ "ProgrammingError" ,
229
+ "Error" ,
230
+ "OperationalError" ,
231
+ "IntegrityError" ,
232
+ "InternalError" ,
233
+ "NotSupportedError" ,
234
+ "ArrayContentNotHomogenousError" ,
235
+ "ArrayDimensionsNotConsistentError" ,
236
+ "ArrayContentNotSupportedError" ,
237
+ "Connection" ,
238
+ "Cursor" ,
239
+ "Binary" ,
240
+ "Date" ,
241
+ "DateFromTicks" ,
242
+ "Time" ,
243
+ "TimeFromTicks" ,
244
+ "Timestamp" ,
245
+ "TimestampFromTicks" ,
246
+ "BINARY" ,
247
+ "PGEnum" ,
248
+ "PGJson" ,
249
+ "PGJsonb" ,
250
+ "PGTsvector" ,
251
+ "PGText" ,
252
+ "PGVarchar" ,
253
+ ]
0 commit comments