omnata-plugin-runtime 0.5.9a161__py3-none-any.whl → 0.5.10__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 +84 -84
- {omnata_plugin_runtime-0.5.9a161.dist-info → omnata_plugin_runtime-0.5.10.dist-info}/METADATA +1 -1
- {omnata_plugin_runtime-0.5.9a161.dist-info → omnata_plugin_runtime-0.5.10.dist-info}/RECORD +5 -5
- {omnata_plugin_runtime-0.5.9a161.dist-info → omnata_plugin_runtime-0.5.10.dist-info}/LICENSE +0 -0
- {omnata_plugin_runtime-0.5.9a161.dist-info → omnata_plugin_runtime-0.5.10.dist-info}/WHEEL +0 -0
@@ -112,6 +112,90 @@ class PluginManifest(SubscriptableBaseModel):
|
|
112
112
|
supported_outbound_strategies: List[OutboundSyncStrategy]
|
113
113
|
|
114
114
|
|
115
|
+
class SnowflakeFunctionParameter(BaseModel):
|
116
|
+
"""
|
117
|
+
Represents a parameter for a Snowflake UDF or UDTF
|
118
|
+
"""
|
119
|
+
name: str
|
120
|
+
description: str
|
121
|
+
data_type: str
|
122
|
+
default_value_clause: Optional[str] = None
|
123
|
+
|
124
|
+
def __str__(self):
|
125
|
+
if self.default_value_clause:
|
126
|
+
return f"{self.name} {self.data_type} default {self.default_value_clause}"
|
127
|
+
return f"{self.name} {self.data_type}"
|
128
|
+
|
129
|
+
class SnowflakeUDTFResultColumn(BaseModel):
|
130
|
+
"""
|
131
|
+
Represents a result column for a Snowflake UDTF
|
132
|
+
"""
|
133
|
+
name: str
|
134
|
+
data_type: str
|
135
|
+
def __str__(self):
|
136
|
+
return f"{self.name} {self.data_type}"
|
137
|
+
|
138
|
+
class UDTFDefinition(BaseModel):
|
139
|
+
"""
|
140
|
+
The information needed by the plugin uploader to put a Python UDTF definition into the setup script.
|
141
|
+
Do not use this class directly in plugins, instead use the omnata_udtf decorator.
|
142
|
+
"""
|
143
|
+
name: str = Field(..., title="The name of the UDTF")
|
144
|
+
language: Literal['python','java'] = Field(..., title="The language of the UDF")
|
145
|
+
runtime_version: str = Field(..., title="The runtime version of the UDF (language dependent)")
|
146
|
+
description: str = Field(..., title="A description of the UDTF")
|
147
|
+
params: List[SnowflakeFunctionParameter] = Field(..., title="The parameters of the UDTF")
|
148
|
+
result_columns: List[SnowflakeUDTFResultColumn] = Field(..., title="The result columns of the UDTF")
|
149
|
+
handler: str = Field(..., title="The handler class/function for the UDTF")
|
150
|
+
expose_to_consumer: bool = Field(..., title="Whether the UDTF should be exposed to consumers")
|
151
|
+
imports: Optional[List[str]] = Field(None, title="A list of imports required by the UDF")
|
152
|
+
packages: Optional[List[str]] = Field(None, title="A list of packages required by the UDTF")
|
153
|
+
|
154
|
+
def __str__(self):
|
155
|
+
param_str = ', '.join([str(param) for param in self.params])
|
156
|
+
table_result_columns = ', '.join([f"{col.name} {col.data_type}" for col in self.result_columns])
|
157
|
+
packages_str = ', '.join([f"'{p}'" for p in self.packages])
|
158
|
+
imports_str = ', '.join([f"'{i}'" for i in self.imports])
|
159
|
+
return f"""CREATE OR REPLACE FUNCTION UDFS.{self.name}({param_str})
|
160
|
+
RETURNS TABLE({table_result_columns})
|
161
|
+
LANGUAGE {self.language.upper()}
|
162
|
+
RUNTIME_VERSION={self.runtime_version}
|
163
|
+
COMMENT = $${self.description}$$
|
164
|
+
PACKAGES = ({packages_str})
|
165
|
+
IMPORTS = ({imports_str})
|
166
|
+
HANDLER='{self.handler}';
|
167
|
+
"""
|
168
|
+
|
169
|
+
class UDFDefinition(BaseModel):
|
170
|
+
"""
|
171
|
+
The information needed by the plugin uploader to put a Python UDF definition into the setup script.
|
172
|
+
Do not use this class directly in plugins, instead use the omnata_udf decorator.
|
173
|
+
"""
|
174
|
+
name: str = Field(..., title="The name of the UDF")
|
175
|
+
language: Literal['python','java'] = Field(..., title="The language of the UDF")
|
176
|
+
runtime_version: str = Field(..., title="The runtime version of the UDF (language dependent)")
|
177
|
+
description: str = Field(..., title="A description of the UDF")
|
178
|
+
params: List[SnowflakeFunctionParameter] = Field(..., title="The parameters of the UDF")
|
179
|
+
result_data_type: str = Field(..., title="The data type returned by the UDF")
|
180
|
+
handler: str = Field(..., title="The handler class/function for the UDF")
|
181
|
+
expose_to_consumer: bool = Field(..., title="Whether the UDF should be exposed to consumers")
|
182
|
+
imports: Optional[List[str]] = Field(None, title="A list of imports required by the UDF")
|
183
|
+
packages: Optional[List[str]] = Field(None, title="A list of packages required by the UDF")
|
184
|
+
|
185
|
+
def __str__(self):
|
186
|
+
param_str = ', '.join([str(param) for param in self.params])
|
187
|
+
packages_str = ', '.join([f"'{p}'" for p in self.packages])
|
188
|
+
imports_str = ', '.join([f"'{i}'" for i in self.imports])
|
189
|
+
return f"""CREATE OR REPLACE FUNCTION UDFS.{self.name}({param_str})
|
190
|
+
RETURNS {self.result_data_type}
|
191
|
+
LANGUAGE {self.language.upper()}
|
192
|
+
RUNTIME_VERSION={self.runtime_version}
|
193
|
+
COMMENT = $${self.description}$$
|
194
|
+
PACKAGES = ({packages_str})
|
195
|
+
IMPORTS = ({imports_str})
|
196
|
+
HANDLER='{self.handler}';
|
197
|
+
"""
|
198
|
+
|
115
199
|
class PluginInfo(BaseModel):
|
116
200
|
"""
|
117
201
|
Manifest plus other derived information about a plugin which is determined during upload.
|
@@ -2234,90 +2318,6 @@ def get_nested_value(nested_dict:Dict, keys:List[str]):
|
|
2234
2318
|
return reduce(lambda d, key: d.get(key) if isinstance(d, dict) else None, keys, nested_dict)
|
2235
2319
|
|
2236
2320
|
|
2237
|
-
class SnowflakeFunctionParameter(BaseModel):
|
2238
|
-
"""
|
2239
|
-
Represents a parameter for a Snowflake UDF or UDTF
|
2240
|
-
"""
|
2241
|
-
name: str
|
2242
|
-
description: str
|
2243
|
-
data_type: str
|
2244
|
-
default_value_clause: Optional[str] = None
|
2245
|
-
|
2246
|
-
def __str__(self):
|
2247
|
-
if self.default_value_clause:
|
2248
|
-
return f"{self.name} {self.data_type} default {self.default_value_clause}"
|
2249
|
-
return f"{self.name} {self.data_type}"
|
2250
|
-
|
2251
|
-
class SnowflakeUDTFResultColumn(BaseModel):
|
2252
|
-
"""
|
2253
|
-
Represents a result column for a Snowflake UDTF
|
2254
|
-
"""
|
2255
|
-
name: str
|
2256
|
-
data_type: str
|
2257
|
-
def __str__(self):
|
2258
|
-
return f"{self.name} {self.data_type}"
|
2259
|
-
|
2260
|
-
class UDTFDefinition(BaseModel):
|
2261
|
-
"""
|
2262
|
-
The information needed by the plugin uploader to put a Python UDTF definition into the setup script.
|
2263
|
-
Do not use this class directly in plugins, instead use the omnata_udtf decorator.
|
2264
|
-
"""
|
2265
|
-
name: str = Field(..., title="The name of the UDTF")
|
2266
|
-
language: Literal['python','java'] = Field(..., title="The language of the UDF")
|
2267
|
-
runtime_version: str = Field(..., title="The runtime version of the UDF (language dependent)")
|
2268
|
-
description: str = Field(..., title="A description of the UDTF")
|
2269
|
-
params: List[SnowflakeFunctionParameter] = Field(..., title="The parameters of the UDTF")
|
2270
|
-
result_columns: List[SnowflakeUDTFResultColumn] = Field(..., title="The result columns of the UDTF")
|
2271
|
-
handler: str = Field(..., title="The handler class/function for the UDTF")
|
2272
|
-
expose_to_consumer: bool = Field(..., title="Whether the UDTF should be exposed to consumers")
|
2273
|
-
imports: Optional[List[str]] = Field(None, title="A list of imports required by the UDF")
|
2274
|
-
packages: Optional[List[str]] = Field(None, title="A list of packages required by the UDTF")
|
2275
|
-
|
2276
|
-
def __str__(self):
|
2277
|
-
param_str = ', '.join([str(param) for param in self.params])
|
2278
|
-
table_result_columns = ', '.join([f"{col.name} {col.data_type}" for col in self.result_columns])
|
2279
|
-
packages_str = ', '.join([f"'{p}'" for p in self.packages])
|
2280
|
-
imports_str = ', '.join([f"'{i}'" for i in self.imports])
|
2281
|
-
return f"""CREATE OR REPLACE FUNCTION UDFS.{self.name}({param_str})
|
2282
|
-
RETURNS TABLE({table_result_columns})
|
2283
|
-
LANGUAGE {self.language.upper()}
|
2284
|
-
RUNTIME_VERSION={self.runtime_version}
|
2285
|
-
COMMENT = $${self.description}$$
|
2286
|
-
PACKAGES = ({packages_str})
|
2287
|
-
IMPORTS = ({imports_str})
|
2288
|
-
HANDLER='{self.handler}';
|
2289
|
-
"""
|
2290
|
-
|
2291
|
-
class UDFDefinition(BaseModel):
|
2292
|
-
"""
|
2293
|
-
The information needed by the plugin uploader to put a Python UDF definition into the setup script.
|
2294
|
-
Do not use this class directly in plugins, instead use the omnata_udf decorator.
|
2295
|
-
"""
|
2296
|
-
name: str = Field(..., title="The name of the UDF")
|
2297
|
-
language: Literal['python','java'] = Field(..., title="The language of the UDF")
|
2298
|
-
runtime_version: str = Field(..., title="The runtime version of the UDF (language dependent)")
|
2299
|
-
description: str = Field(..., title="A description of the UDF")
|
2300
|
-
params: List[SnowflakeFunctionParameter] = Field(..., title="The parameters of the UDF")
|
2301
|
-
result_data_type: str = Field(..., title="The data type returned by the UDF")
|
2302
|
-
handler: str = Field(..., title="The handler class/function for the UDF")
|
2303
|
-
expose_to_consumer: bool = Field(..., title="Whether the UDF should be exposed to consumers")
|
2304
|
-
imports: Optional[List[str]] = Field(None, title="A list of imports required by the UDF")
|
2305
|
-
packages: Optional[List[str]] = Field(None, title="A list of packages required by the UDF")
|
2306
|
-
|
2307
|
-
def __str__(self):
|
2308
|
-
param_str = ', '.join([str(param) for param in self.params])
|
2309
|
-
packages_str = ', '.join([f"'{p}'" for p in self.packages])
|
2310
|
-
imports_str = ', '.join([f"'{i}'" for i in self.imports])
|
2311
|
-
return f"""CREATE OR REPLACE FUNCTION UDFS.{self.name}({param_str})
|
2312
|
-
RETURNS {self.result_data_type}
|
2313
|
-
LANGUAGE {self.language.upper()}
|
2314
|
-
RUNTIME_VERSION={self.runtime_version}
|
2315
|
-
COMMENT = $${self.description}$$
|
2316
|
-
PACKAGES = ({packages_str})
|
2317
|
-
IMPORTS = ({imports_str})
|
2318
|
-
HANDLER='{self.handler}';
|
2319
|
-
"""
|
2320
|
-
|
2321
2321
|
def omnata_udtf(
|
2322
2322
|
name:str,
|
2323
2323
|
description: str,
|
@@ -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=PDPaUHbYuhbWfY3xj0g__EejO9bOGv7xt3weuUDM_bo,128957
|
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.10.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
|
10
|
+
omnata_plugin_runtime-0.5.10.dist-info/METADATA,sha256=kNuFZBhkStkg8wsq21vu-qPsc5_cYcWn7E1V_vrODjg,1982
|
11
|
+
omnata_plugin_runtime-0.5.10.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
12
|
+
omnata_plugin_runtime-0.5.10.dist-info/RECORD,,
|
{omnata_plugin_runtime-0.5.9a161.dist-info → omnata_plugin_runtime-0.5.10.dist-info}/LICENSE
RENAMED
File without changes
|
File without changes
|