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.
@@ -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.0"
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.0403.001"
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
- return safe_drop_underscores(source_table)
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
- return redshift_safe(source_column)
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.0
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=ubzp6kUWV4j8A3hgC-GRqtcX4WIQV5vMk5gdVkOZw4s,80578
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.0.dist-info/METADATA,sha256=ilFpUA6zFnHz4_tEpKpG7IZxORmHqdcMdW0wb0z2sME,2967
10
- fivetran_connector_sdk-1.3.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
11
- fivetran_connector_sdk-1.3.0.dist-info/entry_points.txt,sha256=uQn0KPnFlQmXJfxlk0tifdNsSXWfVlnAFzNqjXZM_xM,57
12
- fivetran_connector_sdk-1.3.0.dist-info/top_level.txt,sha256=-_xk2MFY4psIh7jw1lJePMzFb5-vask8_ZtX-UzYWUI,23
13
- fivetran_connector_sdk-1.3.0.dist-info/RECORD,,
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,,