mpt-extension-sdk 5.7.0__tar.gz → 5.9.0__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 (54) hide show
  1. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/PKG-INFO +1 -1
  2. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/mpt_http/mpt.py +35 -0
  3. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/pyproject.toml +1 -1
  4. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/.gitignore +0 -0
  5. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/LICENSE +0 -0
  6. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/README.md +0 -0
  7. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/__init__.py +0 -0
  8. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/airtable/__init__.py +0 -0
  9. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/airtable/wrap_http_error.py +0 -0
  10. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/constants.py +0 -0
  11. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/core/__init__.py +0 -0
  12. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/core/events/__init__.py +0 -0
  13. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/core/events/dataclasses.py +0 -0
  14. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/core/events/registry.py +0 -0
  15. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/core/extension.py +0 -0
  16. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/core/security.py +0 -0
  17. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/core/utils.py +0 -0
  18. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/flows/__init__.py +0 -0
  19. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/flows/context.py +0 -0
  20. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/flows/pipeline.py +0 -0
  21. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/key_vault/__init__.py +0 -0
  22. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/key_vault/base.py +0 -0
  23. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/mpt_http/__init__.py +0 -0
  24. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/mpt_http/base.py +0 -0
  25. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/mpt_http/utils.py +0 -0
  26. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/mpt_http/wrap_http_error.py +0 -0
  27. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/__init__.py +0 -0
  28. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/commands/__init__.py +0 -0
  29. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/commands/django.py +0 -0
  30. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/commands/run.py +0 -0
  31. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/__init__.py +0 -0
  32. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/apps.py +0 -0
  33. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/conf/__init__.py +0 -0
  34. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/conf/default.py +0 -0
  35. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/conf/urls.py +0 -0
  36. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/management/__init__.py +0 -0
  37. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/management/commands/__init__.py +0 -0
  38. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/management/commands/consume_events.py +0 -0
  39. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/djapp/middleware.py +0 -0
  40. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/errors.py +0 -0
  41. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/events/__init__.py +0 -0
  42. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/events/dispatcher.py +0 -0
  43. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/events/producers.py +0 -0
  44. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/events/utils.py +0 -0
  45. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/initializer.py +0 -0
  46. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/logging.py +0 -0
  47. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/master.py +0 -0
  48. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/swoext.py +0 -0
  49. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/tracer.py +0 -0
  50. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/utils.py +0 -0
  51. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/runtime/workers.py +0 -0
  52. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/swo_rql/__init__.py +0 -0
  53. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/mpt_extension_sdk/swo_rql/constants.py +0 -0
  54. {mpt_extension_sdk-5.7.0 → mpt_extension_sdk-5.9.0}/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: 5.7.0
3
+ Version: 5.9.0
4
4
  Summary: Extensions SDK for SoftwareONE Marketplace Platform
5
5
  Author: SoftwareOne AG
6
6
  License: Apache-2.0 license
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ from collections.abc import Iterable
2
3
  from functools import cache
3
4
  from itertools import batched
4
5
 
@@ -272,6 +273,40 @@ def get_product_onetime_items_by_ids(mpt_client, product_id, item_ids):
272
273
  return _paginated(mpt_client, url)
273
274
 
274
275
 
276
+ @wrap_mpt_http_error
277
+ def get_product_items_by_period(
278
+ mpt_client,
279
+ product_id: str,
280
+ period: str,
281
+ vendor_external_ids: Iterable[str] | None = None,
282
+ ):
283
+ """
284
+ Fetches product items based on a specified period and filters.
285
+
286
+ Args:
287
+ mpt_client: Client in tance to interact with the required API.
288
+ product_id (str): The unique identifier of the product to fetch items for.
289
+ period (str): The period for which to fetch the product items.
290
+ vendor_external_ids (Iterable[str] | None):
291
+ Optional. A list of vendor external IDs to filter out the product items by. Defaults
292
+ to None.
293
+
294
+ Returns:
295
+ list:
296
+ A paginated list of product items matching the specified criteria.
297
+
298
+ """
299
+ product_cond = f"eq(product.id,{product_id})"
300
+ vendors_cond = ""
301
+ if vendor_external_ids:
302
+ vendor_ids = ",".join(vendor_external_ids)
303
+ vendors_cond = f",in(externalIds.vendor,({vendor_ids})))"
304
+ rql_query = f"and({product_cond},eq(terms.period,{period}){vendors_cond})"
305
+ url = f"/catalog/items?{rql_query}"
306
+
307
+ return _paginated(mpt_client, url)
308
+
309
+
275
310
  def get_agreements_by_ids(mpt_client, ids):
276
311
  """Retrieve agreements by their IDs."""
277
312
  ids_str = ",".join(ids)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mpt-extension-sdk"
3
- version = "5.7.0"
3
+ version = "5.9.0"
4
4
  description = "Extensions SDK for SoftwareONE Marketplace Platform"
5
5
  authors = [{ name = "SoftwareOne AG" }]
6
6
  requires-python = ">=3.12,<4"