mpt-extension-sdk 4.5.0__tar.gz → 4.6.1__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 (52) hide show
  1. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/PKG-INFO +1 -1
  2. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/mpt_http/base.py +7 -0
  3. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/mpt_http/mpt.py +15 -3
  4. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/mpt_http/wrap_http_error.py +7 -0
  5. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/pyproject.toml +1 -1
  6. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/LICENSE +0 -0
  7. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/README.md +0 -0
  8. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/__init__.py +0 -0
  9. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/airtable/__init__.py +0 -0
  10. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/airtable/wrap_http_error.py +0 -0
  11. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/constants.py +0 -0
  12. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/core/__init__.py +0 -0
  13. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/core/events/__init__.py +0 -0
  14. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/core/events/dataclasses.py +0 -0
  15. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/core/events/registry.py +0 -0
  16. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/core/extension.py +0 -0
  17. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/core/security.py +0 -0
  18. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/core/utils.py +0 -0
  19. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/flows/__init__.py +0 -0
  20. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/flows/context.py +0 -0
  21. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/flows/pipeline.py +0 -0
  22. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/key_vault/__init__.py +0 -0
  23. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/key_vault/base.py +0 -0
  24. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/mpt_http/__init__.py +0 -0
  25. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/mpt_http/utils.py +0 -0
  26. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/__init__.py +0 -0
  27. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/commands/__init__.py +0 -0
  28. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/commands/django.py +0 -0
  29. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/commands/run.py +0 -0
  30. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/__init__.py +0 -0
  31. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/apps.py +0 -0
  32. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/conf/__init__.py +0 -0
  33. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/conf/default.py +0 -0
  34. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/conf/urls.py +0 -0
  35. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/management/__init__.py +0 -0
  36. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/management/commands/__init__.py +0 -0
  37. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/management/commands/consume_events.py +0 -0
  38. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/djapp/middleware.py +0 -0
  39. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/events/__init__.py +0 -0
  40. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/events/dispatcher.py +0 -0
  41. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/events/producers.py +0 -0
  42. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/events/utils.py +0 -0
  43. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/initializer.py +0 -0
  44. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/logging.py +0 -0
  45. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/master.py +0 -0
  46. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/swoext.py +0 -0
  47. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/tracer.py +0 -0
  48. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/utils.py +0 -0
  49. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/runtime/workers.py +0 -0
  50. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/swo_rql/__init__.py +0 -0
  51. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/swo_rql/constants.py +0 -0
  52. {mpt_extension_sdk-4.5.0 → mpt_extension_sdk-4.6.1}/mpt_extension_sdk/swo_rql/query_builder.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mpt-extension-sdk
3
- Version: 4.5.0
3
+ Version: 4.6.1
4
4
  Summary: Extensions SDK for SoftwareONE Marketplace Platform
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -21,6 +21,13 @@ class MPTClient(Session):
21
21
  pool_maxsize=36,
22
22
  ),
23
23
  )
24
+ self.mount(
25
+ "https://",
26
+ HTTPAdapter(
27
+ max_retries=retries,
28
+ pool_maxsize=36,
29
+ ),
30
+ )
24
31
  self.headers.update(
25
32
  {
26
33
  "User-Agent": USER_AGENT,
@@ -34,9 +34,9 @@ def _paginated(mpt_client, url, limit=10):
34
34
 
35
35
  @wrap_mpt_http_error
36
36
  def get_agreement(mpt_client, agreement_id):
37
- response = mpt_client.get(
38
- f"/commerce/agreements/{agreement_id}?select=seller,buyer,listing,product,subscriptions"
39
- )
37
+ """Retrieve an agreement by ID."""
38
+ query = "select=seller,buyer,listing,product,subscriptions,assets,lines,parameters"
39
+ response = mpt_client.get(f"/commerce/agreements/{agreement_id}?{query}")
40
40
  response.raise_for_status()
41
41
  return response.json()
42
42
 
@@ -240,6 +240,18 @@ def get_template_by_name(mpt_client, product_id, template_name):
240
240
  return templates["data"][0]
241
241
 
242
242
 
243
+ @wrap_mpt_http_error
244
+ def get_asset_template_by_name(mpt_client, product_id, template_name):
245
+ """Retrieve an asset template by name."""
246
+ rql_filter = f"and(eq(type,Asset),eq(name,{template_name}))"
247
+ url = f"/catalog/products/{product_id}/templates?{rql_filter}&limit=1"
248
+ response = mpt_client.get(url)
249
+ response.raise_for_status()
250
+
251
+ templates = response.json()
252
+ return templates["data"][0] if templates["data"] else None
253
+
254
+
243
255
  @wrap_mpt_http_error
244
256
  def update_agreement(mpt_client, agreement_id, **kwargs):
245
257
  response = mpt_client.put(
@@ -2,12 +2,17 @@ import json
2
2
  from functools import wraps
3
3
 
4
4
  from requests import HTTPError, JSONDecodeError
5
+ from requests.exceptions import RetryError
5
6
 
6
7
 
7
8
  class MPTError(Exception):
8
9
  pass
9
10
 
10
11
 
12
+ class MPTMaxRetryError(MPTError):
13
+ pass
14
+
15
+
11
16
  class MPTHttpError(MPTError):
12
17
  def __init__(self, status_code: int, content: str):
13
18
  self.status_code = status_code
@@ -46,6 +51,8 @@ def wrap_mpt_http_error(func):
46
51
  raise MPTAPIError(e.response.status_code, e.response.json())
47
52
  except JSONDecodeError:
48
53
  raise MPTHttpError(e.response.status_code, e.response.content.decode())
54
+ except RetryError as e:
55
+ raise MPTMaxRetryError(str(e))
49
56
 
50
57
  return _wrapper
51
58
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "mpt-extension-sdk"
3
- version = "4.5.0"
3
+ version = "4.6.1"
4
4
  description = "Extensions SDK for SoftwareONE Marketplace Platform"
5
5
  authors = ["SoftwareOne AG"]
6
6
  readme = "README.md"