mpt-extension-sdk 5.4.4__py3-none-any.whl → 5.6.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.
- mpt_extension_sdk/constants.py +4 -0
- mpt_extension_sdk/mpt_http/mpt.py +1 -1
- mpt_extension_sdk/runtime/commands/django.py +10 -9
- mpt_extension_sdk/runtime/commands/run.py +8 -6
- mpt_extension_sdk/runtime/master.py +1 -3
- mpt_extension_sdk/runtime/utils.py +20 -0
- mpt_extension_sdk/runtime/workers.py +6 -4
- {mpt_extension_sdk-5.4.4.dist-info → mpt_extension_sdk-5.6.0.dist-info}/METADATA +1 -1
- {mpt_extension_sdk-5.4.4.dist-info → mpt_extension_sdk-5.6.0.dist-info}/RECORD +12 -12
- {mpt_extension_sdk-5.4.4.dist-info → mpt_extension_sdk-5.6.0.dist-info}/WHEEL +0 -0
- {mpt_extension_sdk-5.4.4.dist-info → mpt_extension_sdk-5.6.0.dist-info}/entry_points.txt +0 -0
- {mpt_extension_sdk-5.4.4.dist-info → mpt_extension_sdk-5.6.0.dist-info}/licenses/LICENSE +0 -0
mpt_extension_sdk/constants.py
CHANGED
|
@@ -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
|
+
)
|
|
@@ -358,7 +358,7 @@ def get_agreements_by_customer_deployments(
|
|
|
358
358
|
f"any(parameters.fulfillment,and("
|
|
359
359
|
f"eq(externalId,{deployment_id_parameter}),"
|
|
360
360
|
f"in(displayValue,({deployments_list}))))"
|
|
361
|
-
f"&select=lines,parameters,subscriptions,product,listing"
|
|
361
|
+
f"&select=lines,parameters,subscriptions,subscriptions.parameters,product,listing"
|
|
362
362
|
)
|
|
363
363
|
|
|
364
364
|
url = f"/commerce/agreements?{rql_query}"
|
|
@@ -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.
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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.
|
|
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
|
-
|
|
32
|
+
initialize_extension(options)
|
|
33
33
|
call_command("consume_events")
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def start_gunicorn(
|
|
37
|
-
options,
|
|
37
|
+
options,
|
|
38
|
+
group=DEFAULT_APP_CONFIG_GROUP,
|
|
39
|
+
name=DEFAULT_APP_CONFIG_NAME,
|
|
38
40
|
):
|
|
39
|
-
|
|
41
|
+
initialize_extension(options, group=group, name=name)
|
|
40
42
|
|
|
41
43
|
logging_config = {
|
|
42
44
|
"version": 1,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
mpt_extension_sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
mpt_extension_sdk/constants.py,sha256=
|
|
2
|
+
mpt_extension_sdk/constants.py,sha256=rlO7WRImnzrb41zlkjka25CQQtEYid-0iGaupg_pk_k,485
|
|
3
3
|
mpt_extension_sdk/airtable/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
mpt_extension_sdk/airtable/wrap_http_error.py,sha256=Shiy4uwpdpgkevooLjhpe1grhgJRj7cV6lUMMCQKogc,1263
|
|
5
5
|
mpt_extension_sdk/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -16,20 +16,20 @@ mpt_extension_sdk/key_vault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
|
16
16
|
mpt_extension_sdk/key_vault/base.py,sha256=RVG_Wiq-MrPyngJ4gfUd8oxoh1LUop1SvtCM2xdlx8M,3361
|
|
17
17
|
mpt_extension_sdk/mpt_http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
18
|
mpt_extension_sdk/mpt_http/base.py,sha256=3qgo9BW-uTRAbex26urMvLZU0fwnYnBprDRIJCHvTOk,1284
|
|
19
|
-
mpt_extension_sdk/mpt_http/mpt.py,sha256=
|
|
19
|
+
mpt_extension_sdk/mpt_http/mpt.py,sha256=JseULzTqa4PjQowsbCnMuP1qAMvExHcmu4mZYgv2AuM,12263
|
|
20
20
|
mpt_extension_sdk/mpt_http/utils.py,sha256=3wJTT84CXYGjZw6FksNDX8tIHijkL3Wcmld9r6Iz0xc,95
|
|
21
21
|
mpt_extension_sdk/mpt_http/wrap_http_error.py,sha256=j8K6Ddx7NiM-FPRMQi25vuULAW8LXxzZ4EwuIJufxis,1801
|
|
22
22
|
mpt_extension_sdk/runtime/__init__.py,sha256=PQSAz9qvXHbxrn4KvuXSHB8y-A4Jpgbm6ZV-wPiNPyw,194
|
|
23
23
|
mpt_extension_sdk/runtime/initializer.py,sha256=V8fubCULUJlvCBkYhJM52GUNoHNWVI-siaecmZv3kzk,2154
|
|
24
24
|
mpt_extension_sdk/runtime/logging.py,sha256=wJ6KyvnuvMZELI1Hd0fYbuHr7YiP3GIXFBvvSdmd7nQ,885
|
|
25
|
-
mpt_extension_sdk/runtime/master.py,sha256=
|
|
25
|
+
mpt_extension_sdk/runtime/master.py,sha256=ALbtAsb6ubhWcEpAXpzHSZixYXZ3Qfdf2ttOLb04nlc,4536
|
|
26
26
|
mpt_extension_sdk/runtime/swoext.py,sha256=jtqAOASJzf66FkXGcUS1iOx-bN5hCv3pFVQfJGd3Abc,1664
|
|
27
27
|
mpt_extension_sdk/runtime/tracer.py,sha256=Mvt1BKBdSvb4FlOcjUDhIKEXmiYETrFGgHdhOQwEr7g,415
|
|
28
|
-
mpt_extension_sdk/runtime/utils.py,sha256=
|
|
29
|
-
mpt_extension_sdk/runtime/workers.py,sha256=
|
|
28
|
+
mpt_extension_sdk/runtime/utils.py,sha256=zSQ3esb6OxAeJc-hoXy4xFpOJUGTrsYFQiAP3RHrZOc,4516
|
|
29
|
+
mpt_extension_sdk/runtime/workers.py,sha256=TMJd13yxKDJBQ5PY9J4qdvIwSzVanySir_pfEzWy-dY,2676
|
|
30
30
|
mpt_extension_sdk/runtime/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
mpt_extension_sdk/runtime/commands/django.py,sha256=
|
|
32
|
-
mpt_extension_sdk/runtime/commands/run.py,sha256=
|
|
31
|
+
mpt_extension_sdk/runtime/commands/django.py,sha256=x_B_j4B4scicy_dcDlH5mEpAjDh0gNBvKr4vzL9pKfg,1233
|
|
32
|
+
mpt_extension_sdk/runtime/commands/run.py,sha256=Iv7vt_BcHWYOEREYbUCyxHJ5yukp0CGpu_nzwXV1Zlg,1142
|
|
33
33
|
mpt_extension_sdk/runtime/djapp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
34
|
mpt_extension_sdk/runtime/djapp/apps.py,sha256=YA1G5HaRqFBS-0DfYQuFpMgzUCYpu5T8x5LEC6MwI_M,1398
|
|
35
35
|
mpt_extension_sdk/runtime/djapp/middleware.py,sha256=oAA5khXW6xeUjnOV63pNCF4D7QFVD6PayIa_489KRmg,555
|
|
@@ -46,8 +46,8 @@ mpt_extension_sdk/runtime/events/utils.py,sha256=bxFo-iQUqEJDqcIotC88Ty3Xt0K2FyY
|
|
|
46
46
|
mpt_extension_sdk/swo_rql/__init__.py,sha256=QrvRDYhpK-Pd3OF-U2aMeazuKm_kbvXwLRIjd9Mm6ok,104
|
|
47
47
|
mpt_extension_sdk/swo_rql/constants.py,sha256=39BZ78OzdU_dIQtoy-Z_5utXqEXRweIFvM9Zfxg9j5M,171
|
|
48
48
|
mpt_extension_sdk/swo_rql/query_builder.py,sha256=xTdPGkI9MzCJyg-oOkK0z2oHFNjhEe8ihR-OmDL-kto,10500
|
|
49
|
-
mpt_extension_sdk-5.
|
|
50
|
-
mpt_extension_sdk-5.
|
|
51
|
-
mpt_extension_sdk-5.
|
|
52
|
-
mpt_extension_sdk-5.
|
|
53
|
-
mpt_extension_sdk-5.
|
|
49
|
+
mpt_extension_sdk-5.6.0.dist-info/METADATA,sha256=4297k5Qql80d-FPoneTN3-JdkTdxVuflpGL_-C5aPRM,1358
|
|
50
|
+
mpt_extension_sdk-5.6.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
51
|
+
mpt_extension_sdk-5.6.0.dist-info/entry_points.txt,sha256=N8T9gBssEOm_UeBf9ABbGqtlnethrumfMoL4hNYWVFA,146
|
|
52
|
+
mpt_extension_sdk-5.6.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
53
|
+
mpt_extension_sdk-5.6.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|