omnata-plugin-runtime 0.4.0a88__py3-none-any.whl → 0.4.0a89__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omnata_plugin_runtime/omnata_plugin.py +102 -57
- {omnata_plugin_runtime-0.4.0a88.dist-info → omnata_plugin_runtime-0.4.0a89.dist-info}/METADATA +1 -1
- {omnata_plugin_runtime-0.4.0a88.dist-info → omnata_plugin_runtime-0.4.0a89.dist-info}/RECORD +5 -5
- {omnata_plugin_runtime-0.4.0a88.dist-info → omnata_plugin_runtime-0.4.0a89.dist-info}/LICENSE +0 -0
- {omnata_plugin_runtime-0.4.0a88.dist-info → omnata_plugin_runtime-0.4.0a89.dist-info}/WHEEL +0 -0
@@ -690,19 +690,34 @@ class OutboundSyncRequest(SyncRequest):
|
|
690
690
|
logger.info("applying results to table")
|
691
691
|
# use a random table name with a random string to avoid collisions
|
692
692
|
with self._snowflake_query_lock:
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
693
|
+
attempts_remaining = 12
|
694
|
+
while attempts_remaining > 0:
|
695
|
+
try:
|
696
|
+
success, nchunks, nrows, _ = write_pandas(
|
697
|
+
conn=self._session._conn._cursor.connection, # pylint: disable=protected-access
|
698
|
+
df=self._preprocess_results_dataframe(results_df),
|
699
|
+
quote_identifiers=False,
|
700
|
+
table_name=self._full_results_table_name,
|
701
|
+
auto_create_table=False
|
702
|
+
)
|
703
|
+
if not success:
|
704
|
+
raise ValueError(
|
705
|
+
f"Failed to write results to table {self._full_results_table_name}"
|
706
|
+
)
|
707
|
+
logger.info(
|
708
|
+
f"Wrote {nrows} rows and {nchunks} chunks to table {self._full_results_table_name}"
|
709
|
+
)
|
710
|
+
return
|
711
|
+
except Exception as e:
|
712
|
+
if 'is being committed' not in str(e):
|
713
|
+
raise e
|
714
|
+
logger.error(
|
715
|
+
f"Transaction clash writing results to table {self._full_results_table_name}: {e}"
|
716
|
+
)
|
717
|
+
attempts_remaining -= 1
|
718
|
+
time.sleep(5)
|
719
|
+
raise ValueError(
|
720
|
+
f"Failed to write results to table {self._full_results_table_name} after {attempts_remaining} attempts"
|
706
721
|
)
|
707
722
|
|
708
723
|
def __dataframe_wrapper(
|
@@ -1308,34 +1323,49 @@ class InboundSyncRequest(SyncRequest):
|
|
1308
1323
|
"""
|
1309
1324
|
if len(results_df) > 0:
|
1310
1325
|
with self._snowflake_query_lock:
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1326
|
+
attempts_remaining = 12
|
1327
|
+
while attempts_remaining > 0:
|
1328
|
+
try:
|
1329
|
+
logger.info(
|
1330
|
+
f"Applying {len(results_df)} results to {self._full_results_table_name}"
|
1331
|
+
)
|
1332
|
+
# try setting parquet engine here, since the engine parameter does not seem to make it through to the write_pandas function
|
1333
|
+
success, nchunks, nrows, _ = write_pandas(
|
1334
|
+
conn=self._session._conn._cursor.connection, # pylint: disable=protected-access
|
1335
|
+
df=results_df,
|
1336
|
+
table_name=self._full_results_table_name,
|
1337
|
+
quote_identifiers=False, # already done in get_temp_table_name
|
1338
|
+
# schema='INBOUND_RAW', # it seems to be ok to provide schema in the table name
|
1339
|
+
table_type="transient"
|
1340
|
+
)
|
1341
|
+
if not success:
|
1342
|
+
raise ValueError(
|
1343
|
+
f"Failed to write results to table {self._full_results_table_name}"
|
1344
|
+
)
|
1345
|
+
logger.info(
|
1346
|
+
f"Wrote {nrows} rows and {nchunks} chunks to table {self._full_results_table_name}"
|
1347
|
+
)
|
1348
|
+
# temp tables aren't allowed
|
1349
|
+
# snowflake_df = self._session.create_dataframe(results_df)
|
1350
|
+
# snowflake_df.write.save_as_table(table_name=temp_table,
|
1351
|
+
# mode='append',
|
1352
|
+
# column_order='index',
|
1353
|
+
# #create_temp_table=True
|
1354
|
+
# )
|
1355
|
+
for stream_name in stream_names:
|
1356
|
+
self._results_exist[stream_name] = True
|
1357
|
+
return
|
1358
|
+
except Exception as e:
|
1359
|
+
if 'is being committed' not in str(e):
|
1360
|
+
raise e
|
1361
|
+
logger.error(
|
1362
|
+
f"Transaction clash writing results to table {self._full_results_table_name}: {e}"
|
1363
|
+
)
|
1364
|
+
attempts_remaining -= 1
|
1365
|
+
time.sleep(5)
|
1366
|
+
raise ValueError(
|
1367
|
+
f"Failed to write results to table {self._full_results_table_name} after {attempts_remaining} attempts"
|
1329
1368
|
)
|
1330
|
-
# temp tables aren't allowed
|
1331
|
-
# snowflake_df = self._session.create_dataframe(results_df)
|
1332
|
-
# snowflake_df.write.save_as_table(table_name=temp_table,
|
1333
|
-
# mode='append',
|
1334
|
-
# column_order='index',
|
1335
|
-
# #create_temp_table=True
|
1336
|
-
# )
|
1337
|
-
for stream_name in stream_names:
|
1338
|
-
self._results_exist[stream_name] = True
|
1339
1369
|
else:
|
1340
1370
|
logger.info("Results dataframe is empty, not applying")
|
1341
1371
|
|
@@ -1353,23 +1383,38 @@ class InboundSyncRequest(SyncRequest):
|
|
1353
1383
|
"""
|
1354
1384
|
if len(results_df) > 0:
|
1355
1385
|
with self._snowflake_query_lock:
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
1372
|
-
|
1386
|
+
attempts_remaining = 12
|
1387
|
+
while attempts_remaining > 0:
|
1388
|
+
try:
|
1389
|
+
logger.info(
|
1390
|
+
f"Applying {len(results_df)} criteria deletes to {self._criteria_deletes_table_name}"
|
1391
|
+
)
|
1392
|
+
# try setting parquet engine here, since the engine parameter does not seem to make it through to the write_pandas function
|
1393
|
+
success, nchunks, nrows, _ = write_pandas(
|
1394
|
+
conn=self._session._conn._cursor.connection, # pylint: disable=protected-access
|
1395
|
+
df=results_df,
|
1396
|
+
table_name=self._criteria_deletes_table_name,
|
1397
|
+
quote_identifiers=False, # already done in get_temp_table_name
|
1398
|
+
table_type="transient"
|
1399
|
+
)
|
1400
|
+
if not success:
|
1401
|
+
raise ValueError(
|
1402
|
+
f"Failed to write results to table {self._criteria_deletes_table_name}"
|
1403
|
+
)
|
1404
|
+
logger.info(
|
1405
|
+
f"Wrote {nrows} rows and {nchunks} chunks to table {self._criteria_deletes_table_name}"
|
1406
|
+
)
|
1407
|
+
return
|
1408
|
+
except Exception as e:
|
1409
|
+
if 'is being committed' not in str(e):
|
1410
|
+
raise e
|
1411
|
+
logger.error(
|
1412
|
+
f"Transaction clash writing results to table {self._full_results_table_name}: {e}"
|
1413
|
+
)
|
1414
|
+
attempts_remaining -= 1
|
1415
|
+
time.sleep(5)
|
1416
|
+
raise ValueError(
|
1417
|
+
f"Failed to write results to table {self._full_results_table_name} after {attempts_remaining} attempts"
|
1373
1418
|
)
|
1374
1419
|
else:
|
1375
1420
|
logger.info("Results dataframe is empty, not applying")
|
{omnata_plugin_runtime-0.4.0a88.dist-info → omnata_plugin_runtime-0.4.0a89.dist-info}/RECORD
RENAMED
@@ -3,10 +3,10 @@ omnata_plugin_runtime/api.py,sha256=W79CsAcl127Dzy-XVS9CzvzsbS3IigVH4QAhFFDkaXg,
|
|
3
3
|
omnata_plugin_runtime/configuration.py,sha256=7cMekoY8CeZAJHpASU6tCMidF55Hzfr7CD74jtebqIY,35742
|
4
4
|
omnata_plugin_runtime/forms.py,sha256=pw_aKVsXSz47EP8PFBI3VDwdSN5IjvZxp8JTjO1V130,18421
|
5
5
|
omnata_plugin_runtime/logging.py,sha256=bn7eKoNWvtuyTk7RTwBS9UARMtqkiICtgMtzq3KA2V0,3272
|
6
|
-
omnata_plugin_runtime/omnata_plugin.py,sha256=
|
6
|
+
omnata_plugin_runtime/omnata_plugin.py,sha256=JJtpl8iKcTMgIOymkZh9yKMhZBemXQOGe8s8iJSw5Hk,108276
|
7
7
|
omnata_plugin_runtime/plugin_entrypoints.py,sha256=D2f0Qih7KTJNXIDYkA-E55RTEK_7Jtv9ySqspWxERVA,28272
|
8
8
|
omnata_plugin_runtime/rate_limiting.py,sha256=29Hjsr0i1rE8jERVdIFGINfQfp_kI3PDft-IM_ZxvCA,21509
|
9
|
-
omnata_plugin_runtime-0.4.
|
10
|
-
omnata_plugin_runtime-0.4.
|
11
|
-
omnata_plugin_runtime-0.4.
|
12
|
-
omnata_plugin_runtime-0.4.
|
9
|
+
omnata_plugin_runtime-0.4.0a89.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
|
10
|
+
omnata_plugin_runtime-0.4.0a89.dist-info/METADATA,sha256=LEkEREX1mBrQoSb6abHniwlf8gZfkBicmmzhbP_Glgw,1603
|
11
|
+
omnata_plugin_runtime-0.4.0a89.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
12
|
+
omnata_plugin_runtime-0.4.0a89.dist-info/RECORD,,
|
{omnata_plugin_runtime-0.4.0a88.dist-info → omnata_plugin_runtime-0.4.0a89.dist-info}/LICENSE
RENAMED
File without changes
|
File without changes
|