polyapi-python 0.2.6.dev0__tar.gz → 0.2.6.dev1__tar.gz
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.
- {polyapi_python-0.2.6.dev0/polyapi_python.egg-info → polyapi_python-0.2.6.dev1}/PKG-INFO +1 -1
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/generate.py +3 -3
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/utils.py +18 -4
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/webhook.py +2 -2
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1/polyapi_python.egg-info}/PKG-INFO +1 -1
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/pyproject.toml +1 -1
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/tests/test_api.py +5 -4
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/tests/test_auth.py +0 -1
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/tests/test_server.py +3 -1
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/LICENSE +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/README.md +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/__init__.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/__main__.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/api.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/auth.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/cli.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/client.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/config.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/constants.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/error_handler.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/exceptions.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/execute.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/function_cli.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/py.typed +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/rendered_spec.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/schema.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/server.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/typedefs.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi/variables.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi_python.egg-info/SOURCES.txt +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi_python.egg-info/dependency_links.txt +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi_python.egg-info/requires.txt +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi_python.egg-info/top_level.txt +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/setup.cfg +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/tests/test_function_cli.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/tests/test_rendered_spec.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/tests/test_schema.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/tests/test_utils.py +0 -0
- {polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/tests/test_variables.py +0 -0
|
@@ -11,7 +11,7 @@ from polyapi.webhook import render_webhook_handle
|
|
|
11
11
|
from .typedefs import PropertySpecification, SpecificationDto, VariableSpecDto
|
|
12
12
|
from .api import render_api_function
|
|
13
13
|
from .server import render_server_function
|
|
14
|
-
from .utils import add_import_to_init, get_auth_headers, init_the_init
|
|
14
|
+
from .utils import add_import_to_init, get_auth_headers, init_the_init, to_func_namespace
|
|
15
15
|
from .variables import generate_variables
|
|
16
16
|
from .config import get_api_key_and_url, initialize_config
|
|
17
17
|
|
|
@@ -232,10 +232,10 @@ def add_function_file(
|
|
|
232
232
|
# add function to init
|
|
233
233
|
init_path = os.path.join(full_path, "__init__.py")
|
|
234
234
|
with open(init_path, "a") as f:
|
|
235
|
-
f.write(f"\n\nfrom . import
|
|
235
|
+
f.write(f"\n\nfrom . import {to_func_namespace(function_name)}\n\n{func_str}")
|
|
236
236
|
|
|
237
237
|
# add type_defs to underscore file
|
|
238
|
-
file_path = os.path.join(full_path, f"
|
|
238
|
+
file_path = os.path.join(full_path, f"{to_func_namespace(function_name)}.py")
|
|
239
239
|
with open(file_path, "w") as f:
|
|
240
240
|
f.write(func_type_defs)
|
|
241
241
|
|
|
@@ -75,11 +75,11 @@ def add_type_import_path(function_name: str, arg: str) -> str:
|
|
|
75
75
|
else:
|
|
76
76
|
if '"' in sub:
|
|
77
77
|
sub = sub.replace('"', "")
|
|
78
|
-
return f'List["
|
|
78
|
+
return f'List["{to_func_namespace(function_name)}.{camelCase(sub)}"]'
|
|
79
79
|
else:
|
|
80
|
-
return f'List[
|
|
80
|
+
return f'List[{to_func_namespace(function_name)}.{camelCase(sub)}]'
|
|
81
81
|
|
|
82
|
-
return f'
|
|
82
|
+
return f'{to_func_namespace(function_name)}.{camelCase(arg)}'
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
def get_type_and_def(type_spec: PropertyType) -> Tuple[str, str]:
|
|
@@ -183,4 +183,18 @@ def poly_full_path(context, name) -> str:
|
|
|
183
183
|
path = context + "." + name
|
|
184
184
|
else:
|
|
185
185
|
path = name
|
|
186
|
-
return f"poly.{path}"
|
|
186
|
+
return f"poly.{path}"
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
RESERVED_TYPES = {"List", "Dict", "Any", "Optional", "Callable"}
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
def to_func_namespace(s: str) -> str:
|
|
193
|
+
""" convert a function name to some function namespace
|
|
194
|
+
by default it is
|
|
195
|
+
"""
|
|
196
|
+
rv = s[0].upper() + s[1:]
|
|
197
|
+
if rv in RESERVED_TYPES:
|
|
198
|
+
return "_" + rv
|
|
199
|
+
else:
|
|
200
|
+
return rv
|
|
@@ -6,7 +6,7 @@ from typing import Any, Dict, List, Tuple
|
|
|
6
6
|
|
|
7
7
|
from polyapi.config import get_api_key_and_url
|
|
8
8
|
from polyapi.typedefs import PropertySpecification
|
|
9
|
-
from polyapi.utils import parse_arguments, poly_full_path
|
|
9
|
+
from polyapi.utils import parse_arguments, poly_full_path, to_func_namespace
|
|
10
10
|
|
|
11
11
|
# all active webhook handlers, used by unregister_all to cleanup
|
|
12
12
|
active_handlers: List[Dict[str, Any]] = []
|
|
@@ -124,7 +124,7 @@ def render_webhook_handle(
|
|
|
124
124
|
|
|
125
125
|
if "WebhookEventType" in function_args:
|
|
126
126
|
# let's add the function name import!
|
|
127
|
-
function_args = function_args.replace("WebhookEventType", f"
|
|
127
|
+
function_args = function_args.replace("WebhookEventType", f"{to_func_namespace(function_name)}.WebhookEventType")
|
|
128
128
|
|
|
129
129
|
func_str = WEBHOOK_TEMPLATE.format(
|
|
130
130
|
description=function_description,
|
|
@@ -3,7 +3,7 @@ requires = ["setuptools>=61.2", "wheel"]
|
|
|
3
3
|
|
|
4
4
|
[project]
|
|
5
5
|
name = "polyapi-python"
|
|
6
|
-
version = "0.2.6.
|
|
6
|
+
version = "0.2.6.dev1"
|
|
7
7
|
description = "The Python Client for PolyAPI, the IPaaS by Developers for Developers"
|
|
8
8
|
authors = [{ name = "Dan Fellin", email = "dan@polyapi.io" }]
|
|
9
9
|
dependencies = [
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import unittest
|
|
2
2
|
|
|
3
3
|
from polyapi.api import render_api_function
|
|
4
|
+
from polyapi.utils import to_func_namespace
|
|
4
5
|
|
|
5
6
|
ACCUWEATHER = {
|
|
6
7
|
"id": "f7588018-2364-4586-b60d",
|
|
@@ -235,7 +236,7 @@ class T(unittest.TestCase):
|
|
|
235
236
|
)
|
|
236
237
|
self.assertIn(ACCUWEATHER["id"], func_str)
|
|
237
238
|
self.assertIn("locationId: int,", func_str)
|
|
238
|
-
self.assertIn(f"->
|
|
239
|
+
self.assertIn(f"-> {to_func_namespace(name)}.{name}Response", func_str)
|
|
239
240
|
|
|
240
241
|
def test_render_function_zillow(self):
|
|
241
242
|
name = ZILLOW["name"]
|
|
@@ -249,7 +250,7 @@ class T(unittest.TestCase):
|
|
|
249
250
|
)
|
|
250
251
|
self.assertIn(ZILLOW["id"], func_str)
|
|
251
252
|
self.assertIn("locationId: int,", func_str)
|
|
252
|
-
self.assertIn(f"->
|
|
253
|
+
self.assertIn(f"-> {to_func_namespace(name)}.{name}Response", func_str)
|
|
253
254
|
|
|
254
255
|
def test_render_function_twilio_api(self):
|
|
255
256
|
name = TWILIO["name"]
|
|
@@ -264,7 +265,7 @@ class T(unittest.TestCase):
|
|
|
264
265
|
self.assertIn(TWILIO["id"], func_str)
|
|
265
266
|
self.assertIn("conversationSID: str", func_str)
|
|
266
267
|
self.assertIn("authToken: str", func_str)
|
|
267
|
-
self.assertIn(f"->
|
|
268
|
+
self.assertIn(f"-> {to_func_namespace(name)}.{name}Response", func_str)
|
|
268
269
|
|
|
269
270
|
def test_render_function_twilio_get_details(self):
|
|
270
271
|
# same test but try it as a serverFunction rather than an apiFunction
|
|
@@ -278,6 +279,6 @@ class T(unittest.TestCase):
|
|
|
278
279
|
TWILIO_GET_DETAILS["function"]["returnType"],
|
|
279
280
|
)
|
|
280
281
|
self.assertIn(TWILIO_GET_DETAILS["id"], func_str)
|
|
281
|
-
self.assertIn(f"->
|
|
282
|
+
self.assertIn(f"-> {to_func_namespace(name)}.{name}Response", func_str)
|
|
282
283
|
self.assertIn("class SubresourceUris", func_type_defs)
|
|
283
284
|
# self.assertIn('Required["SubresourceUris"]', func_type_defs)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import unittest
|
|
2
2
|
|
|
3
|
+
from polyapi.utils import to_func_namespace
|
|
4
|
+
|
|
3
5
|
from .test_api import TWILIO
|
|
4
6
|
from polyapi.server import render_server_function
|
|
5
7
|
|
|
@@ -45,7 +47,7 @@ class T(unittest.TestCase):
|
|
|
45
47
|
self.assertIn(TWILIO["id"], func_str)
|
|
46
48
|
self.assertIn("conversationSID: str", func_str)
|
|
47
49
|
self.assertIn("authToken: str", func_str)
|
|
48
|
-
self.assertIn(f"->
|
|
50
|
+
self.assertIn(f"-> {to_func_namespace(name)}.ResponseType", func_str)
|
|
49
51
|
|
|
50
52
|
def test_render_function_get_products_count(self):
|
|
51
53
|
return_type = GET_PRODUCTS_COUNT["function"]["returnType"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{polyapi_python-0.2.6.dev0 → polyapi_python-0.2.6.dev1}/polyapi_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|