omnata-plugin-runtime 0.5.7a139__tar.gz → 0.5.7a141__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/PKG-INFO +1 -1
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/pyproject.toml +1 -1
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/omnata_plugin.py +26 -2
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/LICENSE +0 -0
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/README.md +0 -0
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/__init__.py +0 -0
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/api.py +0 -0
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/configuration.py +0 -0
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/forms.py +0 -0
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/logging.py +0 -0
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/plugin_entrypoints.py +0 -0
- {omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/rate_limiting.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "omnata-plugin-runtime"
|
3
|
-
version = "0.5.7-
|
3
|
+
version = "0.5.7-a141"
|
4
4
|
description = "Classes and common runtime components for building and running Omnata Plugins"
|
5
5
|
authors = ["James Weakley <james.weakley@omnata.com>"]
|
6
6
|
readme = "README.md"
|
@@ -6,6 +6,7 @@ Includes data container classes and defines the contract for a plugin.
|
|
6
6
|
from __future__ import annotations
|
7
7
|
from inspect import signature
|
8
8
|
import sys
|
9
|
+
from types import FunctionType
|
9
10
|
from typing import Union
|
10
11
|
if tuple(sys.version_info[:2]) >= (3, 9):
|
11
12
|
# Python 3.9 and above
|
@@ -2232,13 +2233,24 @@ def get_nested_value(nested_dict:Dict, keys:List[str]):
|
|
2232
2233
|
|
2233
2234
|
@dataclass
|
2234
2235
|
class SnowflakeFunctionParameter:
|
2236
|
+
"""
|
2237
|
+
Represents a parameter for a Snowflake UDF or UDTF
|
2238
|
+
"""
|
2235
2239
|
name: str
|
2236
2240
|
description: str
|
2237
2241
|
data_type: str
|
2238
2242
|
default_value_clause: Optional[str] = None
|
2239
2243
|
|
2244
|
+
def __str__(self):
|
2245
|
+
if self.default_value_clause:
|
2246
|
+
return f"{self.name} {self.data_type} default {self.default_value_clause}"
|
2247
|
+
return f"{self.name} {self.data_type}"
|
2248
|
+
|
2240
2249
|
@dataclass
|
2241
2250
|
class SnowflakeUDTFResultColumn:
|
2251
|
+
"""
|
2252
|
+
Represents a result column for a Snowflake UDTF
|
2253
|
+
"""
|
2242
2254
|
name: str
|
2243
2255
|
data_type: str
|
2244
2256
|
description: str
|
@@ -2248,6 +2260,9 @@ def consumer_udtf(
|
|
2248
2260
|
description: str,
|
2249
2261
|
params: List[SnowflakeFunctionParameter],
|
2250
2262
|
result_columns: List[SnowflakeUDTFResultColumn]):
|
2263
|
+
"""
|
2264
|
+
A decorator for a class which should be automatically exposed to the consumer as a UDTF
|
2265
|
+
"""
|
2251
2266
|
def class_decorator(cls):
|
2252
2267
|
# Get the original 'process' method from the class
|
2253
2268
|
original_process = getattr(cls, 'process')
|
@@ -2303,7 +2318,10 @@ def consumer_udtf(
|
|
2303
2318
|
|
2304
2319
|
return class_decorator
|
2305
2320
|
|
2306
|
-
def find_consumer_udtf_classes(path:str = '.'):
|
2321
|
+
def find_consumer_udtf_classes(path:str = '.') -> List[type]:
|
2322
|
+
"""
|
2323
|
+
Finds all classes in the specified directory which have the 'consumer_udtf' decorator applied
|
2324
|
+
"""
|
2307
2325
|
# Get the directory's absolute path
|
2308
2326
|
current_dir = os.path.abspath(path)
|
2309
2327
|
|
@@ -2328,6 +2346,9 @@ def consumer_udf(
|
|
2328
2346
|
description: str,
|
2329
2347
|
params: List[SnowflakeFunctionParameter],
|
2330
2348
|
result_data_type: str):
|
2349
|
+
"""
|
2350
|
+
A decorator for a function which should be automatically exposed to the consumer as a UDF
|
2351
|
+
"""
|
2331
2352
|
def decorator(func):
|
2332
2353
|
sig = signature(func)
|
2333
2354
|
function_params = sig.parameters
|
@@ -2373,7 +2394,10 @@ def consumer_udf(
|
|
2373
2394
|
|
2374
2395
|
return decorator
|
2375
2396
|
|
2376
|
-
def find_consumer_udf_functions(path:str = '.'):
|
2397
|
+
def find_consumer_udf_functions(path:str = '.') -> List[function]:
|
2398
|
+
"""
|
2399
|
+
Finds all functions in the specified directory which have the 'consumer_udf' decorator applied
|
2400
|
+
"""
|
2377
2401
|
# Get the current directory's absolute path
|
2378
2402
|
current_dir = os.path.abspath(path)
|
2379
2403
|
|
File without changes
|
File without changes
|
File without changes
|
{omnata_plugin_runtime-0.5.7a139 → omnata_plugin_runtime-0.5.7a141}/src/omnata_plugin_runtime/api.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|