polyapi-python 0.3.3.dev8__tar.gz → 0.3.3.dev9__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.
Files changed (46) hide show
  1. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/LICENSE +1 -1
  2. {polyapi_python-0.3.3.dev8/polyapi_python.egg-info → polyapi_python-0.3.3.dev9}/PKG-INFO +2 -2
  3. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/execute.py +6 -1
  4. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/parser.py +1 -1
  5. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/utils.py +3 -0
  6. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9/polyapi_python.egg-info}/PKG-INFO +2 -2
  7. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/pyproject.toml +2 -1
  8. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/README.md +0 -0
  9. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/__init__.py +0 -0
  10. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/__main__.py +0 -0
  11. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/api.py +0 -0
  12. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/auth.py +0 -0
  13. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/cli.py +0 -0
  14. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/client.py +0 -0
  15. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/config.py +0 -0
  16. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/constants.py +0 -0
  17. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/deployables.py +0 -0
  18. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/error_handler.py +0 -0
  19. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/exceptions.py +0 -0
  20. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/function_cli.py +0 -0
  21. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/generate.py +0 -0
  22. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/poly_schemas.py +0 -0
  23. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/prepare.py +0 -0
  24. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/py.typed +0 -0
  25. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/rendered_spec.py +0 -0
  26. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/schema.py +0 -0
  27. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/server.py +0 -0
  28. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/sync.py +0 -0
  29. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/typedefs.py +0 -0
  30. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/variables.py +0 -0
  31. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi/webhook.py +0 -0
  32. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi_python.egg-info/SOURCES.txt +0 -0
  33. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi_python.egg-info/dependency_links.txt +0 -0
  34. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi_python.egg-info/requires.txt +0 -0
  35. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/polyapi_python.egg-info/top_level.txt +0 -0
  36. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/setup.cfg +0 -0
  37. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_api.py +0 -0
  38. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_auth.py +0 -0
  39. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_deployables.py +0 -0
  40. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_generate.py +0 -0
  41. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_parser.py +0 -0
  42. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_rendered_spec.py +0 -0
  43. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_schema.py +0 -0
  44. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_server.py +0 -0
  45. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_utils.py +0 -0
  46. {polyapi_python-0.3.3.dev8 → polyapi_python-0.3.3.dev9}/tests/test_variables.py +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 PolyAPI Inc.
3
+ Copyright (c) 2025 PolyAPI Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: polyapi-python
3
- Version: 0.3.3.dev8
3
+ Version: 0.3.3.dev9
4
4
  Summary: The Python Client for PolyAPI, the IPaaS by Developers for Developers
5
5
  Author-email: Dan Fellin <dan@polyapi.io>
6
6
  License: MIT License
7
7
 
8
- Copyright (c) 2023 PolyAPI Inc.
8
+ Copyright (c) 2025 PolyAPI Inc.
9
9
 
10
10
  Permission is hereby granted, free of charge, to any person obtaining a copy
11
11
  of this software and associated documentation files (the "Software"), to deal
@@ -1,3 +1,4 @@
1
+ from typing import Dict
1
2
  import requests
2
3
  from requests import Response
3
4
  from polyapi.config import get_api_key_and_url
@@ -7,10 +8,14 @@ from polyapi.exceptions import PolyApiException
7
8
  def execute(function_type, function_id, data) -> Response:
8
9
  """ execute a specific function id/type
9
10
  """
11
+ data_without_None = data
12
+ if isinstance(data, Dict):
13
+ data_without_None = {k: v for k, v in data.items() if v is not None}
14
+
10
15
  api_key, api_url = get_api_key_and_url()
11
16
  headers = {"Authorization": f"Bearer {api_key}"}
12
17
  url = f"{api_url}/functions/{function_type}/{function_id}/execute"
13
- resp = requests.post(url, json=data, headers=headers)
18
+ resp = requests.post(url, json=data_without_None, headers=headers)
14
19
  # print(resp.status_code)
15
20
  # print(resp.headers["content-type"])
16
21
  if resp.status_code < 200 or resp.status_code >= 300:
@@ -246,7 +246,7 @@ def _get_type_schema(json_type: str, python_type: str, schemas: List[Dict]):
246
246
  return schema
247
247
 
248
248
 
249
- def _get_type(expr: ast.expr | None, schemas: List[Dict]) -> Tuple[str, Dict | None]:
249
+ def _get_type(expr: ast.expr | None, schemas: List[Dict]) -> Tuple[Any, Any, Any]:
250
250
  if not expr:
251
251
  return "any", "Any", None
252
252
  python_type = get_python_type_from_ast(expr)
@@ -206,6 +206,9 @@ def parse_arguments(
206
206
  arg_string += (
207
207
  f" {a['name']}: {add_type_import_path(function_name, arg_type)}"
208
208
  )
209
+ if not a["required"]:
210
+ arg_string += " = None"
211
+
209
212
  description = a.get("description", "")
210
213
  description = description.replace("\n", " ")
211
214
  if description:
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: polyapi-python
3
- Version: 0.3.3.dev8
3
+ Version: 0.3.3.dev9
4
4
  Summary: The Python Client for PolyAPI, the IPaaS by Developers for Developers
5
5
  Author-email: Dan Fellin <dan@polyapi.io>
6
6
  License: MIT License
7
7
 
8
- Copyright (c) 2023 PolyAPI Inc.
8
+ Copyright (c) 2025 PolyAPI Inc.
9
9
 
10
10
  Permission is hereby granted, free of charge, to any person obtaining a copy
11
11
  of this software and associated documentation files (the "Software"), to deal
@@ -3,7 +3,7 @@ requires = ["setuptools>=61.2", "wheel"]
3
3
 
4
4
  [project]
5
5
  name = "polyapi-python"
6
- version = "0.3.3.dev8"
6
+ version = "0.3.3.dev9"
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 = [
@@ -33,3 +33,4 @@ exclude = ["polyapi/poly*", "polyapi/vari*", "polyapi/.config.env", "polyapi/cac
33
33
  [tool.mypy]
34
34
  # for now redef errors happen sometimes, we will clean this up in the future!
35
35
  disable_error_code = "no-redef,name-defined"
36
+ implicit_optional = true