Skip to content

Commit a68e27d

Browse files
authored
chore: init repository
1 parent da4fe70 commit a68e27d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+4828
-2107
lines changed

.pre-commit-config.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
repos:
2+
- repo: https://github.com/pre-commit/pre-commit-hooks
3+
rev: v2.3.0
4+
hooks:
5+
- id: check-yaml
6+
- id: end-of-file-fixer
7+
- id: trailing-whitespace
8+
- repo: https://github.com/pre-commit/mirrors-isort
9+
rev: v5.1.0 # must be >5.0.0 for black compatibility
10+
hooks:
11+
- id: isort
12+
args: ["--profile", "black", "."]
13+
- repo: https://github.com/ambv/black
14+
rev: stable
15+
hooks:
16+
- id: black

build.sh

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
pip3 install setuptools --user
2-
python3 setup.py install --user
1+
python3 setup.py sdist bdist_wheel

redshift_connector/CredentialsHolder.py

-98
This file was deleted.

redshift_connector/__init__.py

+137-65
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import logging
22
import os
3-
from typing import Any, Dict, List, Optional
3+
import typing
44

5-
from redshift_connector.core import BINARY, Connection, Cursor, Interval
5+
from redshift_connector.core import BINARY, Connection, Cursor
66
from redshift_connector.error import (
77
ArrayContentNotHomogenousError,
88
ArrayContentNotSupportedError,
@@ -18,7 +18,7 @@
1818
ProgrammingError,
1919
Warning,
2020
)
21-
from redshift_connector.iamHelper import set_iam_properties
21+
from redshift_connector.iam_helper import set_iam_properties
2222
from redshift_connector.objects import (
2323
Binary,
2424
Date,
@@ -36,14 +36,12 @@
3636
PGTsvector,
3737
PGVarchar,
3838
)
39-
from redshift_connector.RedshiftProperty import RedshiftProperty
39+
from redshift_connector.redshift_property import RedshiftProperty
4040

41-
from ._version import get_versions
41+
from .version import __version__
4242

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"
4745

4846
# Copyright (c) 2007-2009, Mathieu Fenniak
4947
# Copyright (c) The Contributors
@@ -77,62 +75,112 @@
7775

7876

7977
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,
98115
) -> Connection:
99116

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] = {
104119
0: logging.CRITICAL,
105120
1: logging.ERROR,
106121
2: logging.WARN,
107122
3: logging.INFO,
108-
4: logging.DEBUG
123+
4: logging.DEBUG,
109124
}
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])
112127

113128
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+
)
127167

128168
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,
133179
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+
)
136184

137185

138186
apilevel: str = "2.0"
@@ -151,7 +199,7 @@ def connect(
151199
<http://www.python.org/dev/peps/pep-0249/>`_.
152200
"""
153201

154-
paramstyle: str = 'format'
202+
paramstyle: str = "format"
155203

156204
# I have no idea what this would be used for by a client app. Should it be
157205
# TEXT, VARCHAR, CHAR? It will only compare against row_description's
@@ -162,20 +210,44 @@ def connect(
162210
"""String type oid."""
163211

164212

165-
NUMBER: int = 1700
213+
NUMBER: int = 1700
166214
"""Numeric type oid"""
167215

168-
DATETIME: int = 1114
216+
DATETIME: int = 1114
169217
"""Timestamp type oid"""
170218

171-
ROWID: int = 26
219+
ROWID: int = 26
172220
"""ROWID type oid"""
173221

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

Comments
 (0)