dt-extensions-sdk 1.1.13__tar.gz → 1.1.14__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 (82) hide show
  1. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/PKG-INFO +2 -2
  2. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/__about__.py +1 -1
  3. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/callback.py +5 -12
  4. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/extension.py +1 -1
  5. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/pyproject.toml +3 -3
  6. dt_extensions_sdk-1.1.14/test.py +19 -0
  7. dt_extensions_sdk-1.1.14/tests/sdk/__init__.py +0 -0
  8. dt_extensions_sdk-1.1.13/test.py +0 -38
  9. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/.github/workflows/gh-pages-docs.yml +0 -0
  10. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/.github/workflows/publish.yml +0 -0
  11. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/.gitignore +0 -0
  12. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/LICENSE.txt +0 -0
  13. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/README.md +0 -0
  14. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/dt-sdk-header.png +0 -0
  15. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/dt-sdk-logo.png +0 -0
  16. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/favicon.ico +0 -0
  17. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-01-new-extension.png +0 -0
  18. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-02-type.png +0 -0
  19. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-03-import.png +0 -0
  20. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-04-import-remote.png +0 -0
  21. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-05-activation.png +0 -0
  22. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-06-activation-config.png +0 -0
  23. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/events/event_severity.rst +0 -0
  24. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/events/event_type.rst +0 -0
  25. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/events/index.rst +0 -0
  26. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/extension.rst +0 -0
  27. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/metrics/index.rst +0 -0
  28. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/metrics/metric.rst +0 -0
  29. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/metrics/metric_type.rst +0 -0
  30. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/assemble.rst +0 -0
  31. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/build.rst +0 -0
  32. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/create.rst +0 -0
  33. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/gencerts.rst +0 -0
  34. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/help.rst +0 -0
  35. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/run.rst +0 -0
  36. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/sign.rst +0 -0
  37. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/upload.rst +0 -0
  38. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/wheel.rst +0 -0
  39. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/conf.py +0 -0
  40. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/guides/extension_structure.rst +0 -0
  41. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/guides/installation.rst +0 -0
  42. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/guides/migration.rst +0 -0
  43. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/index.rst +0 -0
  44. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/requirements.txt +0 -0
  45. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/__init__.py +0 -0
  46. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/__init__.py +0 -0
  47. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/__init__.py +0 -0
  48. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/create.py +0 -0
  49. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/.gitignore.template +0 -0
  50. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/README.md.template +0 -0
  51. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/activation.json.template +0 -0
  52. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/extension/activationSchema.json.template +0 -0
  53. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/extension/extension.yaml.template +0 -0
  54. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/extension_name/__init__.py.template +0 -0
  55. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/extension_name/__main__.py.template +0 -0
  56. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/setup.py.template +0 -0
  57. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/main.py +0 -0
  58. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/schema.py +0 -0
  59. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/__init__.py +0 -0
  60. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/activation.py +0 -0
  61. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/communication.py +0 -0
  62. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/event.py +0 -0
  63. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/helper.py +0 -0
  64. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/metric.py +0 -0
  65. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/runtime.py +0 -0
  66. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/__init__.py +0 -0
  67. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/mureq/LICENSE +0 -0
  68. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/mureq/__init__.py +0 -0
  69. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/mureq/mureq.py +0 -0
  70. /dt_extensions_sdk-1.1.13/tests/cli/__init__.py → /dt_extensions_sdk-1.1.14/extension.pkl +0 -0
  71. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/__init__.py +0 -0
  72. {dt_extensions_sdk-1.1.13/tests/sdk → dt_extensions_sdk-1.1.14/tests/cli}/__init__.py +0 -0
  73. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/cli/test_dt_sdk.py +0 -0
  74. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/cli/test_templates.py +0 -0
  75. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/cli/test_types.py +0 -0
  76. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_activation.py +0 -0
  77. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_callback.py +0 -0
  78. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_communication.py +0 -0
  79. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_extension.py +0 -0
  80. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_metric.py +0 -0
  81. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_runtime_properties.py +0 -0
  82. {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_status.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.1
2
2
  Name: dt-extensions-sdk
3
- Version: 1.1.13
3
+ Version: 1.1.14
4
4
  Project-URL: Documentation, https://github.com/dynatrace-extensions/dt-extensions-python-sdk#readme
5
5
  Project-URL: Issues, https://github.com/dynatrace-extensions/dt-extensions-python-sdk/issues
6
6
  Project-URL: Source, https://github.com/dynatrace-extensions/dt-extensions-python-sdk
@@ -2,4 +2,4 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- __version__ = "1.1.13"
5
+ __version__ = "1.1.14"
@@ -5,9 +5,8 @@
5
5
  import logging
6
6
  import random
7
7
  from datetime import datetime, timedelta
8
- from inspect import signature
9
8
  from timeit import default_timer as timer
10
- from typing import Callable, Optional
9
+ from typing import Callable, Dict, Optional, Tuple
11
10
 
12
11
  from .activation import ActivationType
13
12
  from .communication import Status, StatusValue
@@ -19,8 +18,8 @@ class WrappedCallback:
19
18
  interval: timedelta,
20
19
  callback: Callable,
21
20
  logger: logging.Logger,
22
- args: Optional[tuple] = None,
23
- kwargs: Optional[dict] = None,
21
+ args: Optional[Tuple] = None,
22
+ kwargs: Optional[Dict] = None,
24
23
  running_in_sim=False,
25
24
  activation_type: Optional[ActivationType] = None,
26
25
  ):
@@ -47,12 +46,10 @@ class WrappedCallback:
47
46
  self.timeouts_count = 0 # counter per interval = 1 min by default
48
47
  self.exception_count = 0 # counter per interval = 1 min by default
49
48
 
50
- self.callback_parameters = signature(callback).parameters
51
-
52
49
  def get_current_time_with_cluster_diff(self):
53
50
  return datetime.now() + timedelta(milliseconds=self.cluster_time_diff)
54
51
 
55
- def __call__(self, activation_config, extension_config):
52
+ def __call__(self):
56
53
  self.logger.debug(f"Running scheduled callback {self}")
57
54
  self.start_timestamp = self.get_current_time_with_cluster_diff()
58
55
  self.running = True
@@ -62,11 +59,7 @@ class WrappedCallback:
62
59
  start_time = timer()
63
60
  failed = False
64
61
  try:
65
- if "kwargs" in self.callback_parameters:
66
- kwargs = {"activation_config": activation_config, "extension_config": extension_config}
67
- self.callback(*self.callback_args, **kwargs)
68
- else:
69
- self.callback(*self.callback_args)
62
+ self.callback(*self.callback_args, **self.callback_kwargs)
70
63
  self.status = Status(StatusValue.OK)
71
64
  except Exception as e:
72
65
  failed = True
@@ -773,7 +773,7 @@ class Extension:
773
773
  current_thread_id = threading.get_ident()
774
774
  self._running_callbacks[current_thread_id] = callback
775
775
 
776
- callback(self.activation_config, self.extension_config)
776
+ callback()
777
777
 
778
778
  with self._sfm_metrics_lock:
779
779
  self._callbackSfmReport[callback.name()] = callback
@@ -47,7 +47,7 @@ packages = ["dynatrace_extension"]
47
47
  dependencies = [
48
48
  "coverage[toml]>=6.5",
49
49
  "pytest",
50
- "typer",
50
+ "typer[all]",
51
51
  "pyyaml",
52
52
  "dt-cli>=1.6.13"
53
53
  ]
@@ -73,7 +73,7 @@ dependencies = [
73
73
  "black>=23.1.0",
74
74
  "mypy>=1.0.0",
75
75
  "ruff>=0.0.243",
76
- "typer",
76
+ "typer[all]",
77
77
  "pyyaml"
78
78
  ]
79
79
 
@@ -100,7 +100,7 @@ dependencies = [
100
100
  "sphinxcontrib-programoutput",
101
101
  "wutch",
102
102
  "dt-cli",
103
- "typer",
103
+ "typer[all]",
104
104
  "pyyaml",
105
105
  "tomli"
106
106
  ]
@@ -0,0 +1,19 @@
1
+ import time
2
+ from concurrent.futures import ProcessPoolExecutor
3
+ from datetime import timedelta
4
+
5
+ from dynatrace_extension import Extension
6
+ from dynatrace_extension.sdk.callback import WrappedCallback
7
+
8
+
9
+ class Mass(Extension):
10
+ def initialize(self):
11
+ with ProcessPoolExecutor(max_workers=4) as metric_executor:
12
+ metric_executor.submit(self.thing)
13
+
14
+ def thing(self):
15
+ print("EITA PORRA")
16
+
17
+ if __name__ == "__main__":
18
+ m = Mass()
19
+ m.run()
File without changes
@@ -1,38 +0,0 @@
1
- import time
2
- from concurrent.futures import ThreadPoolExecutor
3
- from threading import RLock, Lock
4
-
5
- import logging
6
- log = logging.getLogger(__name__)
7
- st = logging.StreamHandler()
8
- log.setLevel(logging.DEBUG)
9
- fmt = logging.Formatter("%(asctime)s [%(levelname)s] %(name)s (%(threadName)s): %(message)s")
10
- st.setFormatter(fmt)
11
- log.addHandler(st)
12
-
13
- class Test:
14
-
15
- def __init__(self):
16
-
17
- self.lock = RLock()
18
-
19
- def sleep(self):
20
- with self.lock:
21
- log.info("Sleeping")
22
- time.sleep(1)
23
- log.info("Woke up")
24
-
25
- def t1(self):
26
- with ThreadPoolExecutor(max_workers=1) as executor:
27
- executor.submit(self.sleep)
28
-
29
- def run(self):
30
- with ThreadPoolExecutor(max_workers=10) as executor:
31
- for i in range(10):
32
- executor.submit(self.t1)
33
-
34
-
35
- if __name__ == "__main__":
36
- Test().run()
37
-
38
-