fivetran-connector-sdk 1.3.0__py3-none-any.whl → 1.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fivetran_connector_sdk/__init__.py +20 -9
- {fivetran_connector_sdk-1.3.0.dist-info → fivetran_connector_sdk-1.3.1.dist-info}/METADATA +1 -1
- {fivetran_connector_sdk-1.3.0.dist-info → fivetran_connector_sdk-1.3.1.dist-info}/RECORD +6 -6
- {fivetran_connector_sdk-1.3.0.dist-info → fivetran_connector_sdk-1.3.1.dist-info}/WHEEL +0 -0
- {fivetran_connector_sdk-1.3.0.dist-info → fivetran_connector_sdk-1.3.1.dist-info}/entry_points.txt +0 -0
- {fivetran_connector_sdk-1.3.0.dist-info → fivetran_connector_sdk-1.3.1.dist-info}/top_level.txt +0 -0
@@ -31,13 +31,13 @@ from fivetran_connector_sdk.protos import connector_sdk_pb2_grpc
|
|
31
31
|
|
32
32
|
# Version format: <major_version>.<minor_version>.<patch_version>
|
33
33
|
# (where Major Version = 1 for GA, Minor Version is incremental MM from Jan 25 onwards, Patch Version is incremental within a month)
|
34
|
-
__version__ = "1.3.
|
34
|
+
__version__ = "1.3.1"
|
35
35
|
|
36
36
|
MAC_OS = "mac"
|
37
37
|
WIN_OS = "windows"
|
38
38
|
LINUX_OS = "linux"
|
39
39
|
|
40
|
-
TESTER_VERSION = "0.25.
|
40
|
+
TESTER_VERSION = "0.25.0411.001"
|
41
41
|
TESTER_FILENAME = "run_sdk_tester.jar"
|
42
42
|
VERSION_FILENAME = "version.txt"
|
43
43
|
UPLOAD_FILENAME = "code.zip"
|
@@ -75,6 +75,8 @@ DEBUGGING = False
|
|
75
75
|
EXECUTED_VIA_CLI = False
|
76
76
|
PRODUCTION_BASE_URL = "https://api.fivetran.com"
|
77
77
|
TABLES = {}
|
78
|
+
RENAMED_TABLE_NAMES = {}
|
79
|
+
RENAMED_COL_NAMES = {}
|
78
80
|
INSTALLATION_SCRIPT_MISSING_MESSAGE = "The 'installation.sh' file is missing in the 'drivers' directory. Please ensure that 'installation.sh' is present to properly configure drivers."
|
79
81
|
INSTALLATION_SCRIPT = "installation.sh"
|
80
82
|
DRIVERS = "drivers"
|
@@ -177,6 +179,8 @@ class Operations:
|
|
177
179
|
field_name = get_renamed_column_name(field)
|
178
180
|
columns[field_name] = common_pb2.Column(
|
179
181
|
name=field_name, type=common_pb2.DataType.UNSPECIFIED, primary_key=False)
|
182
|
+
new_table = common_pb2.Table(name=table, columns=columns.values())
|
183
|
+
TABLES[table] = new_table
|
180
184
|
|
181
185
|
mapped_data = _map_data_to_columns(data, columns)
|
182
186
|
record = connector_sdk_pb2.Record(
|
@@ -326,7 +330,6 @@ def _get_columns(table: str) -> dict:
|
|
326
330
|
columns = {}
|
327
331
|
if table in TABLES:
|
328
332
|
for column in TABLES[table].columns:
|
329
|
-
column.name = get_renamed_column_name(column.name)
|
330
333
|
columns[column.name] = column
|
331
334
|
|
332
335
|
return columns
|
@@ -459,7 +462,7 @@ def _check_dict(incoming: dict, string_only: bool = False) -> dict:
|
|
459
462
|
Args:
|
460
463
|
incoming (dict): The dictionary to validate.
|
461
464
|
string_only (bool): Whether to allow only string values.
|
462
|
-
|
465
|
+
|
463
466
|
Returns:
|
464
467
|
dict: The validated dictionary.
|
465
468
|
"""
|
@@ -661,14 +664,20 @@ def get_renamed_table_name(source_table):
|
|
661
664
|
"""
|
662
665
|
Process a source table name to ensure it conforms to naming rules.
|
663
666
|
"""
|
664
|
-
|
667
|
+
if source_table not in RENAMED_TABLE_NAMES:
|
668
|
+
RENAMED_TABLE_NAMES[source_table] = safe_drop_underscores(source_table)
|
669
|
+
|
670
|
+
return RENAMED_TABLE_NAMES[source_table]
|
665
671
|
|
666
672
|
|
667
673
|
def get_renamed_column_name(source_column):
|
668
674
|
"""
|
669
675
|
Process a source column name to ensure it conforms to naming rules.
|
670
676
|
"""
|
671
|
-
|
677
|
+
if source_column not in RENAMED_COL_NAMES:
|
678
|
+
RENAMED_COL_NAMES[source_column] = redshift_safe(source_column)
|
679
|
+
|
680
|
+
return RENAMED_COL_NAMES[source_column]
|
672
681
|
|
673
682
|
class Connector(connector_sdk_pb2_grpc.ConnectorServicer):
|
674
683
|
def __init__(self, update, schema=None):
|
@@ -1423,7 +1432,7 @@ class Connector(connector_sdk_pb2_grpc.ConnectorServicer):
|
|
1423
1432
|
|
1424
1433
|
try:
|
1425
1434
|
print_library_log("Running connector tester...")
|
1426
|
-
for log_msg in self.__run_tester(java_exe, tester_root_dir, project_path, available_port):
|
1435
|
+
for log_msg in self.__run_tester(java_exe, tester_root_dir, project_path, available_port, json.dumps(self.state), json.dumps(self.configuration)):
|
1427
1436
|
print(log_msg, end="")
|
1428
1437
|
except:
|
1429
1438
|
print(traceback.format_exc())
|
@@ -1464,7 +1473,7 @@ class Connector(connector_sdk_pb2_grpc.ConnectorServicer):
|
|
1464
1473
|
yield line
|
1465
1474
|
|
1466
1475
|
@staticmethod
|
1467
|
-
def __run_tester(java_exe: str, root_dir: str, project_path: str, port: int):
|
1476
|
+
def __run_tester(java_exe: str, root_dir: str, project_path: str, port: int, state_json: str, configuration_json: str):
|
1468
1477
|
"""Runs the connector tester.
|
1469
1478
|
|
1470
1479
|
Args:
|
@@ -1487,7 +1496,9 @@ class Connector(connector_sdk_pb2_grpc.ConnectorServicer):
|
|
1487
1496
|
"--connector-sdk=true",
|
1488
1497
|
f"--port={port}",
|
1489
1498
|
f"--working-dir={working_dir}",
|
1490
|
-
"--tester-type=source"
|
1499
|
+
"--tester-type=source",
|
1500
|
+
f"--state={state_json}",
|
1501
|
+
f"--configuration={configuration_json}"]
|
1491
1502
|
|
1492
1503
|
popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
1493
1504
|
for line in Connector.process_stream(popen.stderr):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fivetran_connector_sdk
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.1
|
4
4
|
Summary: Build custom connectors on Fivetran platform
|
5
5
|
Author-email: Fivetran <developers@fivetran.com>
|
6
6
|
Project-URL: Homepage, https://fivetran.com/docs/connectors/connector-sdk
|
@@ -1,4 +1,4 @@
|
|
1
|
-
fivetran_connector_sdk/__init__.py,sha256=
|
1
|
+
fivetran_connector_sdk/__init__.py,sha256=4ovEZ7G46t5JFEAUmyGNksa0RVs9x5eKsYfzmyBDuNs,81121
|
2
2
|
fivetran_connector_sdk/protos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
fivetran_connector_sdk/protos/common_pb2.py,sha256=kUwVcyZHgLigNR-KnHZn7dHrlxaMnUXqzprsRx6T72M,6831
|
4
4
|
fivetran_connector_sdk/protos/common_pb2.pyi,sha256=S0hdIzoXyyOKD5cjiGeDDLYpQ9J3LjAvu4rCj1JvJWE,9038
|
@@ -6,8 +6,8 @@ fivetran_connector_sdk/protos/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXH
|
|
6
6
|
fivetran_connector_sdk/protos/connector_sdk_pb2.py,sha256=9Ke_Ti1s0vAeXapfXT-EryrT2-TSGQb8mhs4gxTpUMk,7732
|
7
7
|
fivetran_connector_sdk/protos/connector_sdk_pb2.pyi,sha256=FWYxRgshEF3QDYAE0TM_mv4N2gGvkxCH_uPpxnMc4oA,8406
|
8
8
|
fivetran_connector_sdk/protos/connector_sdk_pb2_grpc.py,sha256=ZfJLp4DW7uP4pFOZ74s_wQ6tD3eIPi-08UfnLwe4tzo,7163
|
9
|
-
fivetran_connector_sdk-1.3.
|
10
|
-
fivetran_connector_sdk-1.3.
|
11
|
-
fivetran_connector_sdk-1.3.
|
12
|
-
fivetran_connector_sdk-1.3.
|
13
|
-
fivetran_connector_sdk-1.3.
|
9
|
+
fivetran_connector_sdk-1.3.1.dist-info/METADATA,sha256=qEnx2X-ac7iQhdJ7bx0p9yKhliRUAz_cxhRRgX3P-Jk,2967
|
10
|
+
fivetran_connector_sdk-1.3.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
11
|
+
fivetran_connector_sdk-1.3.1.dist-info/entry_points.txt,sha256=uQn0KPnFlQmXJfxlk0tifdNsSXWfVlnAFzNqjXZM_xM,57
|
12
|
+
fivetran_connector_sdk-1.3.1.dist-info/top_level.txt,sha256=-_xk2MFY4psIh7jw1lJePMzFb5-vask8_ZtX-UzYWUI,23
|
13
|
+
fivetran_connector_sdk-1.3.1.dist-info/RECORD,,
|
File without changes
|
{fivetran_connector_sdk-1.3.0.dist-info → fivetran_connector_sdk-1.3.1.dist-info}/entry_points.txt
RENAMED
File without changes
|
{fivetran_connector_sdk-1.3.0.dist-info → fivetran_connector_sdk-1.3.1.dist-info}/top_level.txt
RENAMED
File without changes
|