omnata-plugin-runtime 0.5.7a145__py3-none-any.whl → 0.5.7a146__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.
- omnata_plugin_runtime/omnata_plugin.py +40 -31
- {omnata_plugin_runtime-0.5.7a145.dist-info → omnata_plugin_runtime-0.5.7a146.dist-info}/METADATA +1 -1
- {omnata_plugin_runtime-0.5.7a145.dist-info → omnata_plugin_runtime-0.5.7a146.dist-info}/RECORD +5 -5
- {omnata_plugin_runtime-0.5.7a145.dist-info → omnata_plugin_runtime-0.5.7a146.dist-info}/LICENSE +0 -0
- {omnata_plugin_runtime-0.5.7a145.dist-info → omnata_plugin_runtime-0.5.7a146.dist-info}/WHEEL +0 -0
@@ -2259,13 +2259,14 @@ class SnowflakeUDTFResultColumn:
|
|
2259
2259
|
class PythonUDTFDefinition:
|
2260
2260
|
"""
|
2261
2261
|
The information needed by the plugin uploader to put a Python UDTF definition into the setup script.
|
2262
|
-
Do not use this class directly in plugins, instead use the
|
2262
|
+
Do not use this class directly in plugins, instead use the omnata_udtf decorator.
|
2263
2263
|
"""
|
2264
2264
|
name: str
|
2265
2265
|
description: str
|
2266
2266
|
params: List[SnowflakeFunctionParameter]
|
2267
2267
|
result_columns: List[SnowflakeUDTFResultColumn]
|
2268
2268
|
handler: str
|
2269
|
+
expose_to_consumer: bool
|
2269
2270
|
packages: Optional[List[str]] = None
|
2270
2271
|
|
2271
2272
|
def __str__(self):
|
@@ -2317,13 +2318,14 @@ HANDLER='{self.handler}';
|
|
2317
2318
|
class PythonUDFDefinition:
|
2318
2319
|
"""
|
2319
2320
|
The information needed by the plugin uploader to put a Python UDF definition into the setup script.
|
2320
|
-
Do not use this class directly in plugins, instead use the
|
2321
|
+
Do not use this class directly in plugins, instead use the omnata_udf decorator.
|
2321
2322
|
"""
|
2322
2323
|
name: str
|
2323
2324
|
description: str
|
2324
2325
|
params: List[SnowflakeFunctionParameter]
|
2325
2326
|
result_data_type: str
|
2326
2327
|
handler: str
|
2328
|
+
expose_to_consumer: bool
|
2327
2329
|
packages: Optional[List[str]] = None
|
2328
2330
|
|
2329
2331
|
def __str__(self):
|
@@ -2351,6 +2353,7 @@ class JavaUDFDefinition:
|
|
2351
2353
|
packages: List[str]
|
2352
2354
|
imports: List[str]
|
2353
2355
|
handler: str
|
2356
|
+
expose_to_consumer: bool
|
2354
2357
|
|
2355
2358
|
def __str__(self):
|
2356
2359
|
param_str = ', '.join([str(param) for param in self.params])
|
@@ -2366,13 +2369,14 @@ IMPORTS = ({imports_str})
|
|
2366
2369
|
HANDLER='{self.handler}';
|
2367
2370
|
"""
|
2368
2371
|
|
2369
|
-
def
|
2372
|
+
def omnata_udtf(
|
2370
2373
|
name:str,
|
2371
2374
|
description: str,
|
2372
2375
|
params: List[SnowflakeFunctionParameter],
|
2373
|
-
result_columns: List[SnowflakeUDTFResultColumn]
|
2376
|
+
result_columns: List[SnowflakeUDTFResultColumn],
|
2377
|
+
expose_to_consumer: bool):
|
2374
2378
|
"""
|
2375
|
-
A decorator for a class which should
|
2379
|
+
A decorator for a class which should create a UDTF in the UDFS schema of the native app
|
2376
2380
|
"""
|
2377
2381
|
def class_decorator(cls):
|
2378
2382
|
# Get the original 'process' method from the class
|
@@ -2420,18 +2424,19 @@ def consumer_udtf(
|
|
2420
2424
|
return original_process(self, parameters, *args, **kwargs)
|
2421
2425
|
# Replace the original 'process' method with the wrapped version
|
2422
2426
|
setattr(cls, 'process', wrapped_process)
|
2423
|
-
cls.
|
2424
|
-
cls.
|
2425
|
-
cls.
|
2426
|
-
cls.
|
2427
|
-
cls.
|
2427
|
+
cls._is_omnata_udtf = True
|
2428
|
+
cls._omnata_udtf_name = name
|
2429
|
+
cls._omnata_udtf_description = description
|
2430
|
+
cls._omnata_udtf_params = params
|
2431
|
+
cls._omnata_udtf_result_columns = result_columns
|
2432
|
+
cls._omnata_udtf_expose_to_consumer = expose_to_consumer
|
2428
2433
|
return cls
|
2429
2434
|
|
2430
2435
|
return class_decorator
|
2431
2436
|
|
2432
|
-
def
|
2437
|
+
def find_udtf_classes(path:str = '.') -> List[PythonUDTFDefinition | JavaUDTFDefinition]:
|
2433
2438
|
"""
|
2434
|
-
Finds all classes in the specified directory which have the '
|
2439
|
+
Finds all classes in the specified directory which have the 'omnata_udtf' decorator applied
|
2435
2440
|
"""
|
2436
2441
|
# Get the directory's absolute path
|
2437
2442
|
current_dir = os.path.abspath(path)
|
@@ -2447,12 +2452,13 @@ def find_consumer_udtf_classes(path:str = '.') -> List[PythonUDTFDefinition | Ja
|
|
2447
2452
|
# Iterate over all members of the module
|
2448
2453
|
for name, obj in inspect.getmembers(module, inspect.isclass):
|
2449
2454
|
# Check if the class has the specified attribute
|
2450
|
-
if hasattr(obj, '
|
2455
|
+
if hasattr(obj, '_is_omnata_udtf'):
|
2451
2456
|
matching_classes.append(PythonUDTFDefinition(
|
2452
|
-
name=obj.
|
2453
|
-
description=obj.
|
2454
|
-
params=obj.
|
2455
|
-
result_columns=obj.
|
2457
|
+
name=obj._omnata_udtf_name,
|
2458
|
+
description=obj._omnata_udtf_description,
|
2459
|
+
params=obj._omnata_udtf_params,
|
2460
|
+
result_columns=obj._omnata_udtf_result_columns,
|
2461
|
+
expose_to_consumer=obj._omnata_udtf_expose_to_consumer,
|
2456
2462
|
handler=obj.__module__+'.'+obj.__name__
|
2457
2463
|
))
|
2458
2464
|
elif isinstance(obj, JavaUDTFDefinition):
|
@@ -2461,11 +2467,12 @@ def find_consumer_udtf_classes(path:str = '.') -> List[PythonUDTFDefinition | Ja
|
|
2461
2467
|
return matching_classes
|
2462
2468
|
|
2463
2469
|
|
2464
|
-
def
|
2470
|
+
def omnata_udf(
|
2465
2471
|
name: str,
|
2466
2472
|
description: str,
|
2467
2473
|
params: List[SnowflakeFunctionParameter],
|
2468
|
-
result_data_type: str
|
2474
|
+
result_data_type: str,
|
2475
|
+
expose_to_consumer: bool):
|
2469
2476
|
"""
|
2470
2477
|
A decorator for a function which should be automatically exposed to the consumer as a UDF
|
2471
2478
|
"""
|
@@ -2505,18 +2512,19 @@ def consumer_udf(
|
|
2505
2512
|
# Pass the validated arguments to the function
|
2506
2513
|
return func(parameters, *args, **kwargs)
|
2507
2514
|
|
2508
|
-
wrapper.
|
2509
|
-
wrapper.
|
2510
|
-
wrapper.
|
2511
|
-
wrapper.
|
2512
|
-
wrapper.
|
2515
|
+
wrapper._is_omnata_udf = True
|
2516
|
+
wrapper._omnata_udf_name = name
|
2517
|
+
wrapper._omnata_udf_description = description
|
2518
|
+
wrapper._omnata_udf_params = params
|
2519
|
+
wrapper._omnata_udf_result_data_type = result_data_type
|
2520
|
+
wrapper._omnata_udf_expose_to_consumer = expose_to_consumer
|
2513
2521
|
return wrapper
|
2514
2522
|
|
2515
2523
|
return decorator
|
2516
2524
|
|
2517
|
-
def
|
2525
|
+
def find_udf_functions(path:str = '.') -> List[PythonUDFDefinition | JavaUDFDefinition]:
|
2518
2526
|
"""
|
2519
|
-
Finds all functions in the specified directory which have the '
|
2527
|
+
Finds all functions in the specified directory which have the 'omnata_udf' decorator applied
|
2520
2528
|
"""
|
2521
2529
|
# Get the current directory's absolute path
|
2522
2530
|
current_dir = os.path.abspath(path)
|
@@ -2532,12 +2540,13 @@ def find_consumer_udf_functions(path:str = '.') -> List[PythonUDFDefinition | Ja
|
|
2532
2540
|
# Iterate over all members of the module
|
2533
2541
|
for name, obj in inspect.getmembers(module, inspect.isfunction):
|
2534
2542
|
# Check if the class has the specified attribute
|
2535
|
-
if hasattr(obj, '
|
2543
|
+
if hasattr(obj, '_is_omnata_udf'):
|
2536
2544
|
matching_classes.append(PythonUDFDefinition(
|
2537
|
-
name=obj.
|
2538
|
-
description=obj.
|
2539
|
-
params=obj.
|
2540
|
-
result_data_type=obj.
|
2545
|
+
name=obj._omnata_udf_name,
|
2546
|
+
description=obj._omnata_udf_description,
|
2547
|
+
params=obj._omnata_udf_params,
|
2548
|
+
result_data_type=obj._omnata_udf_result_data_type,
|
2549
|
+
expose_to_consumer=obj._omnata_udf_expose_to_consumer,
|
2541
2550
|
packages=[],
|
2542
2551
|
handler=obj.__module__+'.'+obj.__name__
|
2543
2552
|
))
|
{omnata_plugin_runtime-0.5.7a145.dist-info → omnata_plugin_runtime-0.5.7a146.dist-info}/RECORD
RENAMED
@@ -3,10 +3,10 @@ omnata_plugin_runtime/api.py,sha256=FxzTqri4no8ClkOm7vZADG8aD47jcGBCTTQDEORmOJM,
|
|
3
3
|
omnata_plugin_runtime/configuration.py,sha256=TI6GaVFhewVawBCaYN34GujY57qEP6q2nik4YpSEk5s,38100
|
4
4
|
omnata_plugin_runtime/forms.py,sha256=GzSPEwcijsoPCXEO1mHiE8ylvX_KSE5TkhwqkymA2Ss,19755
|
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=ifAO6xKNc2PxgREVzdBPUhOAj9YZM2zfqxkFaz2WOS4,125274
|
7
7
|
omnata_plugin_runtime/plugin_entrypoints.py,sha256=PFSLsYEVnWHVvSoOYTtTK2JY6pp6_8_eYP53WqLRiPE,27975
|
8
8
|
omnata_plugin_runtime/rate_limiting.py,sha256=DVQ_bc-mVLBkrU1PTns1MWXhHiLpSB5HkWCcdePtJ2A,25611
|
9
|
-
omnata_plugin_runtime-0.5.
|
10
|
-
omnata_plugin_runtime-0.5.
|
11
|
-
omnata_plugin_runtime-0.5.
|
12
|
-
omnata_plugin_runtime-0.5.
|
9
|
+
omnata_plugin_runtime-0.5.7a146.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
|
10
|
+
omnata_plugin_runtime-0.5.7a146.dist-info/METADATA,sha256=HvJqCDheEO7VC4AZCklXNHrRJvXCpeCERZuK29cK3UE,1985
|
11
|
+
omnata_plugin_runtime-0.5.7a146.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
12
|
+
omnata_plugin_runtime-0.5.7a146.dist-info/RECORD,,
|
{omnata_plugin_runtime-0.5.7a145.dist-info → omnata_plugin_runtime-0.5.7a146.dist-info}/LICENSE
RENAMED
File without changes
|
{omnata_plugin_runtime-0.5.7a145.dist-info → omnata_plugin_runtime-0.5.7a146.dist-info}/WHEEL
RENAMED
File without changes
|