mpt-extension-sdk 5.15__py3-none-any.whl → 5.17.0__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.
@@ -23,6 +23,13 @@ class MPTClient(Session):
23
23
  pool_maxsize=POOL_MAX_SIZE,
24
24
  ),
25
25
  )
26
+ self.mount(
27
+ "https://",
28
+ HTTPAdapter(
29
+ max_retries=retries,
30
+ pool_maxsize=POOL_MAX_SIZE,
31
+ ),
32
+ )
26
33
  self.headers.update(
27
34
  {
28
35
  "User-Agent": USER_AGENT,
@@ -253,6 +253,18 @@ def get_template_by_name(mpt_client, product_id, template_name):
253
253
  return templates["data"][0] if templates["data"] else None
254
254
 
255
255
 
256
+ @wrap_mpt_http_error
257
+ def get_asset_template_by_name(mpt_client, product_id, template_name):
258
+ """Retrieve an asset template by name."""
259
+ rql_filter = f"and(eq(type,Asset),eq(name,{template_name}))"
260
+ url = f"/catalog/products/{product_id}/templates?{rql_filter}&limit=1"
261
+ response = mpt_client.get(url)
262
+ response.raise_for_status()
263
+
264
+ templates = response.json()
265
+ return templates["data"][0] if templates["data"] else None
266
+
267
+
256
268
  @wrap_mpt_http_error
257
269
  def update_agreement(mpt_client, agreement_id, **kwargs):
258
270
  """Update an agreement."""
@@ -495,7 +507,7 @@ def get_agreements_by_customer_deployments(mpt_client, deployment_id_parameter,
495
507
  f"any(parameters.fulfillment,and("
496
508
  f"eq(externalId,{deployment_id_parameter}),"
497
509
  f"in(displayValue,({deployments_list}))))"
498
- f"&select=lines,parameters,subscriptions,subscriptions.parameters,product,listing"
510
+ f"&select=lines,parameters,subscriptions,subscriptions.parameters,assets,product,listing"
499
511
  )
500
512
 
501
513
  url = f"/commerce/agreements?{rql_query}"
@@ -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
  """Represents a generic MPT error."""
9
10
 
10
11
 
12
+ class MPTMaxRetryError(MPTError):
13
+ """Represents a maximum request retry error."""
14
+
15
+
11
16
  class MPTHttpError(MPTError):
12
17
  """Represents an HTTP error."""
13
18
 
@@ -40,6 +45,15 @@ class MPTAPIError(MPTHttpError):
40
45
  return str(self.payload)
41
46
 
42
47
 
48
+ def transform_http_error(err):
49
+ """Transform an HTTP error to an MPT error."""
50
+ try:
51
+ payload = err.response.json()
52
+ except JSONDecodeError:
53
+ return MPTHttpError(err.response.status_code, err.response.content.decode())
54
+ return MPTAPIError(err.response.status_code, payload)
55
+
56
+
43
57
  def wrap_mpt_http_error(func):
44
58
  """Wrap a function to catch MPT HTTP errors."""
45
59
 
@@ -48,12 +62,9 @@ def wrap_mpt_http_error(func):
48
62
  try:
49
63
  return func(*args, **kwargs)
50
64
  except HTTPError as err:
51
- response = err.response
52
- try:
53
- payload = response.json()
54
- except JSONDecodeError:
55
- raise MPTHttpError(response.status_code, response.content.decode()) from err
56
- raise MPTAPIError(response.status_code, payload) from err
65
+ raise transform_http_error(err) from err
66
+ except RetryError as retry_error:
67
+ raise MPTMaxRetryError(str(retry_error))
57
68
 
58
69
  return _wrapper
59
70
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mpt-extension-sdk
3
- Version: 5.15
3
+ Version: 5.17.0
4
4
  Summary: Extensions SDK for SoftwareONE Marketplace Platform
5
5
  Author: SoftwareOne AG
6
6
  License: Apache-2.0 license
@@ -15,10 +15,10 @@ mpt_extension_sdk/flows/pipeline.py,sha256=s4iYNxszt-fNKkVu3QXX7ffvsT6oehBPUPsX7
15
15
  mpt_extension_sdk/key_vault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  mpt_extension_sdk/key_vault/base.py,sha256=OnlBEhof_NMRToPQUO4Nrq-dnT_FPxr5FuSn3CRBQF0,3869
17
17
  mpt_extension_sdk/mpt_http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- mpt_extension_sdk/mpt_http/base.py,sha256=PbaicrynWLo-plMNC7urIO_iAR5u97tgYrPxrpTn5mI,1514
19
- mpt_extension_sdk/mpt_http/mpt.py,sha256=adqG6eFQ2xw-TnXKYxSB3BGKiAPwlJEf3KCdLBXWHYY,17755
18
+ mpt_extension_sdk/mpt_http/base.py,sha256=zVGW-ERSaTFzyAKWe-_vXwSX_balI1yZHW8Q9nppr4o,1689
19
+ mpt_extension_sdk/mpt_http/mpt.py,sha256=0Gwr326VTy1cPKDuTdDJKidLgQrub9FhBQT8NvYIW7U,18205
20
20
  mpt_extension_sdk/mpt_http/utils.py,sha256=Ek2D4efcJNhQlOyXd4ZeBhwqDjFpvcbBEqxuCqRQ7cU,166
21
- mpt_extension_sdk/mpt_http/wrap_http_error.py,sha256=bFaIH-VG1laWlVqnOudzKsJgKItJLI4D56phn5xGQdw,2148
21
+ mpt_extension_sdk/mpt_http/wrap_http_error.py,sha256=ULR5If8IJ9UAy137xDnOODcbMlqoW0Yc7gv6lxdbJuY,2435
22
22
  mpt_extension_sdk/runtime/__init__.py,sha256=YY7ChHKTXXv0a6_PG1F4pVASDzleSWMv_Zf7uX0UDyc,244
23
23
  mpt_extension_sdk/runtime/errors.py,sha256=dO2038Ivj9lzHtOtpJrB5fwL03tUWNT0R6HUKxrzKa4,146
24
24
  mpt_extension_sdk/runtime/initializer.py,sha256=P_cbsR10NloHQ1dYZvTeaMOZmYFgrJF0PlEytWFF6rQ,2204
@@ -47,8 +47,8 @@ mpt_extension_sdk/runtime/events/utils.py,sha256=GybK8Qs9Xj03Qqm98ulKeZzPiz92L-G
47
47
  mpt_extension_sdk/swo_rql/__init__.py,sha256=QrvRDYhpK-Pd3OF-U2aMeazuKm_kbvXwLRIjd9Mm6ok,104
48
48
  mpt_extension_sdk/swo_rql/constants.py,sha256=39BZ78OzdU_dIQtoy-Z_5utXqEXRweIFvM9Zfxg9j5M,171
49
49
  mpt_extension_sdk/swo_rql/query_builder.py,sha256=CG1dm7uJNPPCwWcf9sRD5zLbz-dtgECkQ_pX4QXpJPw,10825
50
- mpt_extension_sdk-5.15.dist-info/METADATA,sha256=pW0Jy1BmZBBPkA9NVwTbzyoPORw-ruqSFHHSk7Bq_1k,1357
51
- mpt_extension_sdk-5.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
- mpt_extension_sdk-5.15.dist-info/entry_points.txt,sha256=N8T9gBssEOm_UeBf9ABbGqtlnethrumfMoL4hNYWVFA,146
53
- mpt_extension_sdk-5.15.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
- mpt_extension_sdk-5.15.dist-info/RECORD,,
50
+ mpt_extension_sdk-5.17.0.dist-info/METADATA,sha256=NYRWDw2B9muAqhuKlF0a_tABGOaPNvpYWa7AASaHBEs,1359
51
+ mpt_extension_sdk-5.17.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
+ mpt_extension_sdk-5.17.0.dist-info/entry_points.txt,sha256=N8T9gBssEOm_UeBf9ABbGqtlnethrumfMoL4hNYWVFA,146
53
+ mpt_extension_sdk-5.17.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
+ mpt_extension_sdk-5.17.0.dist-info/RECORD,,