mpt-extension-sdk 5.4.4__tar.gz → 5.5.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 (53) hide show
  1. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/PKG-INFO +1 -1
  2. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/constants.py +4 -0
  3. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/commands/django.py +10 -9
  4. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/commands/run.py +8 -6
  5. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/master.py +1 -3
  6. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/utils.py +20 -0
  7. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/workers.py +6 -4
  8. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/pyproject.toml +1 -1
  9. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/.gitignore +0 -0
  10. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/LICENSE +0 -0
  11. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/README.md +0 -0
  12. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/__init__.py +0 -0
  13. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/airtable/__init__.py +0 -0
  14. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/airtable/wrap_http_error.py +0 -0
  15. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/core/__init__.py +0 -0
  16. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/core/events/__init__.py +0 -0
  17. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/core/events/dataclasses.py +0 -0
  18. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/core/events/registry.py +0 -0
  19. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/core/extension.py +0 -0
  20. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/core/security.py +0 -0
  21. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/core/utils.py +0 -0
  22. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/flows/__init__.py +0 -0
  23. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/flows/context.py +0 -0
  24. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/flows/pipeline.py +0 -0
  25. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/key_vault/__init__.py +0 -0
  26. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/key_vault/base.py +0 -0
  27. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/mpt_http/__init__.py +0 -0
  28. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/mpt_http/base.py +0 -0
  29. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/mpt_http/mpt.py +0 -0
  30. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/mpt_http/utils.py +0 -0
  31. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/mpt_http/wrap_http_error.py +0 -0
  32. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/__init__.py +0 -0
  33. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/commands/__init__.py +0 -0
  34. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/__init__.py +0 -0
  35. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/apps.py +0 -0
  36. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/conf/__init__.py +0 -0
  37. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/conf/default.py +0 -0
  38. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/conf/urls.py +0 -0
  39. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/management/__init__.py +0 -0
  40. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/management/commands/__init__.py +0 -0
  41. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/management/commands/consume_events.py +0 -0
  42. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/djapp/middleware.py +0 -0
  43. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/events/__init__.py +0 -0
  44. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/events/dispatcher.py +0 -0
  45. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/events/producers.py +0 -0
  46. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/events/utils.py +0 -0
  47. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/initializer.py +0 -0
  48. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/logging.py +0 -0
  49. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/swoext.py +0 -0
  50. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/runtime/tracer.py +0 -0
  51. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/swo_rql/__init__.py +0 -0
  52. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.0}/mpt_extension_sdk/swo_rql/constants.py +0 -0
  53. {mpt_extension_sdk-5.4.4 → mpt_extension_sdk-5.5.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.4.4
3
+ Version: 5.5.0
4
4
  Summary: Extensions SDK for SoftwareONE Marketplace Platform
5
5
  Author: SoftwareOne AG
6
6
  License: Apache-2.0 license
@@ -5,3 +5,7 @@ CONSUME_EVENTS_HELP_TEXT = "Consume events from the MPT platform"
5
5
  DEFAULT_APP_CONFIG_GROUP = "swo.mpt.ext"
6
6
  DEFAULT_APP_CONFIG_NAME = "app_config"
7
7
  DJANGO_SETTINGS_MODULE = "mpt_extension_sdk.runtime.djapp.conf.default"
8
+ ERR_DJANGO_SETTINGS_MODULE_TEXT = (
9
+ "DJANGO_SETTINGS_MODULE environment variable is not set. "
10
+ "Please set it to your Django settings module before running this command."
11
+ )
@@ -9,7 +9,7 @@ from mpt_extension_sdk.constants import (
9
9
  DEFAULT_APP_CONFIG_NAME,
10
10
  DJANGO_SETTINGS_MODULE,
11
11
  )
12
- from mpt_extension_sdk.runtime.initializer import initialize
12
+ from mpt_extension_sdk.runtime.utils import initialize_extension
13
13
 
14
14
 
15
15
  @click.command(
@@ -20,20 +20,21 @@ from mpt_extension_sdk.runtime.initializer import initialize
20
20
  @click.pass_context
21
21
  def django(ctx, management_args): # pragma: no cover
22
22
  "Execute Django subcommands."
23
+
23
24
  from django.conf import settings
24
25
 
25
- initialize(
26
- {
27
- "group": DEFAULT_APP_CONFIG_GROUP,
28
- "name": DEFAULT_APP_CONFIG_NAME,
29
- "django_settings_module": DJANGO_SETTINGS_MODULE,
30
- }
31
- )
26
+ options = {
27
+ "group": DEFAULT_APP_CONFIG_GROUP,
28
+ "name": DEFAULT_APP_CONFIG_NAME,
29
+ "django_settings_module": DJANGO_SETTINGS_MODULE,
30
+ }
31
+
32
+ initialize_extension(options=options)
32
33
 
33
34
  if settings.USE_APPLICATIONINSIGHTS:
34
35
  tracer = trace.get_tracer(__name__)
35
36
  tracer_context = tracer.start_as_current_span(
36
- f"Running Django command {management_args}",
37
+ f"Running Django command {management_args[0]}",
37
38
  )
38
39
  else:
39
40
  tracer_context = nullcontext()
@@ -30,13 +30,15 @@ def run(component, color, debug, reload, debug_py):
30
30
  host, port = debug_py.split(":")
31
31
  debugpy.listen((host, int(port))) # noqa
32
32
 
33
+ options = {
34
+ "color": color,
35
+ "debug": debug,
36
+ "reload": reload,
37
+ "component": component,
38
+ }
39
+
33
40
  master = Master(
34
- {
35
- "color": color,
36
- "debug": debug,
37
- "reload": reload,
38
- "component": component,
39
- },
41
+ options,
40
42
  settings=settings,
41
43
  )
42
44
  master.run() # pragma: no cover
@@ -53,9 +53,7 @@ class Master:
53
53
  "gunicorn": start_gunicorn,
54
54
  }
55
55
  case "consumer":
56
- self.proc_targets = {
57
- "event-consumer": start_event_consumer,
58
- }
56
+ self.proc_targets = {"event-consumer": start_event_consumer}
59
57
  case _:
60
58
  self.proc_targets = {
61
59
  "event-consumer": start_event_consumer,
@@ -6,6 +6,7 @@ from importlib.metadata import entry_points
6
6
  from django.apps import apps
7
7
  from django.contrib import admin
8
8
  from django.urls import path
9
+ from django.utils.module_loading import import_string
9
10
  from pyfiglet import Figlet
10
11
  from rich.console import Console
11
12
  from rich.text import Text
@@ -127,3 +128,22 @@ def get_urlpatterns(extension):
127
128
  urlpatterns.append(path("api/", api_url))
128
129
 
129
130
  return urlpatterns
131
+
132
+
133
+ def get_initializer_function():
134
+ """
135
+ Dynamically import and return the initializer function from settings.INITIALIZER.
136
+ """
137
+ # Read from environment variable instead of Django settings to avoid circular dependency
138
+ # (Django settings need to be configured before we can read settings.INITIALIZER)
139
+ return os.getenv(
140
+ "MPT_INITIALIZER", "mpt_extension_sdk.runtime.initializer.initialize"
141
+ )
142
+
143
+
144
+ def initialize_extension(
145
+ options, group=DEFAULT_APP_CONFIG_GROUP, name=DEFAULT_APP_CONFIG_NAME
146
+ ):
147
+ initialize_path = get_initializer_function()
148
+ initialize_func = import_string(initialize_path)
149
+ initialize_func(options, group=group, name=name)
@@ -6,7 +6,7 @@ from mpt_extension_sdk.constants import (
6
6
  DEFAULT_APP_CONFIG_GROUP,
7
7
  DEFAULT_APP_CONFIG_NAME,
8
8
  )
9
- from mpt_extension_sdk.runtime.initializer import initialize
9
+ from mpt_extension_sdk.runtime.utils import initialize_extension
10
10
 
11
11
 
12
12
  class ExtensionWebApplication(BaseApplication):
@@ -29,14 +29,16 @@ class ExtensionWebApplication(BaseApplication):
29
29
 
30
30
 
31
31
  def start_event_consumer(options):
32
- initialize(options)
32
+ initialize_extension(options)
33
33
  call_command("consume_events")
34
34
 
35
35
 
36
36
  def start_gunicorn(
37
- options, group=DEFAULT_APP_CONFIG_GROUP, name=DEFAULT_APP_CONFIG_NAME
37
+ options,
38
+ group=DEFAULT_APP_CONFIG_GROUP,
39
+ name=DEFAULT_APP_CONFIG_NAME,
38
40
  ):
39
- initialize(options, group=group, name=name)
41
+ initialize_extension(options, group=group, name=name)
40
42
 
41
43
  logging_config = {
42
44
  "version": 1,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mpt-extension-sdk"
3
- version = "5.4.4"
3
+ version = "5.5.0"
4
4
  description = "Extensions SDK for SoftwareONE Marketplace Platform"
5
5
  authors = [{ name = "SoftwareOne AG" }]
6
6
  requires-python = ">=3.12,<4"