dt-extensions-sdk 1.1.7__tar.gz → 1.1.9__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 (80) hide show
  1. dt_extensions_sdk-1.1.9/.github/workflows/publish.yml +107 -0
  2. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/PKG-INFO +1 -1
  3. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/__about__.py +1 -1
  4. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/main.py +17 -5
  5. dt_extensions_sdk-1.1.7/.github/workflows/publish.yml +0 -49
  6. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/.github/workflows/gh-pages-docs.yml +0 -0
  7. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/.gitignore +0 -0
  8. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/LICENSE.txt +0 -0
  9. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/README.md +0 -0
  10. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/dt-sdk-header.png +0 -0
  11. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/dt-sdk-logo.png +0 -0
  12. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/favicon.ico +0 -0
  13. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/img/migrate-01-new-extension.png +0 -0
  14. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/img/migrate-02-type.png +0 -0
  15. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/img/migrate-03-import.png +0 -0
  16. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/img/migrate-04-import-remote.png +0 -0
  17. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/img/migrate-05-activation.png +0 -0
  18. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/_static/img/migrate-06-activation-config.png +0 -0
  19. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/api/events/event_severity.rst +0 -0
  20. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/api/events/event_type.rst +0 -0
  21. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/api/events/index.rst +0 -0
  22. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/api/extension.rst +0 -0
  23. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/api/metrics/index.rst +0 -0
  24. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/api/metrics/metric.rst +0 -0
  25. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/api/metrics/metric_type.rst +0 -0
  26. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/assemble.rst +0 -0
  27. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/build.rst +0 -0
  28. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/create.rst +0 -0
  29. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/gencerts.rst +0 -0
  30. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/help.rst +0 -0
  31. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/run.rst +0 -0
  32. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/sign.rst +0 -0
  33. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/upload.rst +0 -0
  34. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/cli/wheel.rst +0 -0
  35. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/conf.py +0 -0
  36. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/guides/extension_structure.rst +0 -0
  37. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/guides/installation.rst +0 -0
  38. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/guides/migration.rst +0 -0
  39. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/index.rst +0 -0
  40. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/docs/requirements.txt +0 -0
  41. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/__init__.py +0 -0
  42. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/__init__.py +0 -0
  43. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/__init__.py +0 -0
  44. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/create.py +0 -0
  45. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/extension_template/.gitignore.template +0 -0
  46. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/extension_template/README.md.template +0 -0
  47. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/extension_template/activation.json.template +0 -0
  48. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/extension_template/extension/activationSchema.json.template +0 -0
  49. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/extension_template/extension/extension.yaml.template +0 -0
  50. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/extension_template/extension_name/__init__.py.template +0 -0
  51. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/extension_template/extension_name/__main__.py.template +0 -0
  52. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/create/extension_template/setup.py.template +0 -0
  53. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/cli/schema.py +0 -0
  54. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/__init__.py +0 -0
  55. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/activation.py +0 -0
  56. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/callback.py +0 -0
  57. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/communication.py +0 -0
  58. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/event.py +0 -0
  59. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/extension.py +0 -0
  60. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/helper.py +0 -0
  61. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/metric.py +0 -0
  62. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/runtime.py +0 -0
  63. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/vendor/__init__.py +0 -0
  64. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/vendor/mureq/LICENSE +0 -0
  65. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/vendor/mureq/__init__.py +0 -0
  66. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/dynatrace_extension/sdk/vendor/mureq/mureq.py +0 -0
  67. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/pyproject.toml +0 -0
  68. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/__init__.py +0 -0
  69. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/cli/__init__.py +0 -0
  70. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/cli/test_dt_sdk.py +0 -0
  71. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/cli/test_templates.py +0 -0
  72. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/cli/test_types.py +0 -0
  73. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/sdk/__init__.py +0 -0
  74. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/sdk/test_activation.py +0 -0
  75. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/sdk/test_callback.py +0 -0
  76. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/sdk/test_communication.py +0 -0
  77. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/sdk/test_extension.py +0 -0
  78. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/sdk/test_metric.py +0 -0
  79. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/sdk/test_runtime_properties.py +0 -0
  80. {dt_extensions_sdk-1.1.7 → dt_extensions_sdk-1.1.9}/tests/sdk/test_status.py +0 -0
@@ -0,0 +1,107 @@
1
+ name: Publish to PyPI
2
+ on:
3
+ workflow_dispatch:
4
+
5
+ jobs:
6
+ build-package:
7
+ name: Build distribution 📦
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - id: check_ref
12
+ run: echo "::set-output name=match::$(echo '${{ github.ref }}' | grep -Pq '^refs/tags/v\d+\.\d+\.\d+$' && echo true || echo false)"
13
+ shell: bash
14
+
15
+ - name: Check if tag is valid
16
+ if: steps.check_ref.outputs.match != 'true'
17
+ run: exit 1
18
+
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: "3.10"
25
+
26
+ - name: Install hatch
27
+ run: |
28
+ pip install hatch --user
29
+
30
+ - name: Build a wheel and a source tarball
31
+ run: |
32
+ python3 -m hatch build
33
+
34
+ - name: Store the distribution packages
35
+ uses: actions/upload-artifact@v4
36
+ with:
37
+ name: package
38
+ path: |
39
+ dist/*
40
+
41
+ github-release:
42
+ name: Create GitHub release
43
+ if: startsWith(github.ref, 'refs/tags/v')
44
+ runs-on: ubuntu-latest
45
+ needs:
46
+ - build-package
47
+ steps:
48
+ - uses: actions/checkout@v4
49
+
50
+ - name: Generate changelog
51
+ run: |
52
+ cat > CHANGELOG.md <<EOT
53
+ # CHANGELOG
54
+
55
+ **Release**: dt-cli (${GITHUB_REF#refs/tags/})
56
+
57
+ # Changes
58
+
59
+ EOT
60
+
61
+ git log --format=format:"%ad: %s" --date=short >> CHANGELOG.md
62
+
63
+ - name: Download cached built package
64
+ uses: actions/download-artifact@v4
65
+ with:
66
+ name: package
67
+ path: dist
68
+
69
+ - name: Create GitHub release
70
+ uses: softprops/action-gh-release@v1
71
+ with:
72
+ files: |
73
+ dist/*
74
+ LICENSE
75
+ body_path: CHANGELOG.md
76
+ env:
77
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
78
+
79
+ publish-to-pypi:
80
+ name: Publish to PyPI
81
+ if: startsWith(github.ref, 'refs/tags/v')
82
+ runs-on: ubuntu-latest
83
+ needs:
84
+ - build-package
85
+ steps:
86
+ - uses: actions/checkout@v4
87
+
88
+ - name: Set up Python 3.10
89
+ uses: actions/setup-python@v5
90
+ with:
91
+ python-version: '3.10'
92
+
93
+ - name: Install hatch
94
+ run: |
95
+ pip install hatch --user
96
+
97
+ - name: Download cached built package
98
+ uses: actions/download-artifact@v4
99
+ with:
100
+ name: package
101
+ path: dist
102
+
103
+ - name: Publish to PyPI
104
+ env:
105
+ PYPI_PUBLISH_TOKEN: ${{ secrets.PYPI_PUBLISH_TOKEN }}
106
+ run: |
107
+ hatch publish --user __token__ --auth $PYPI_PUBLISH_TOKEN --no-prompt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dt-extensions-sdk
3
- Version: 1.1.7
3
+ Version: 1.1.9
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
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2023-present Dynatrace LLC
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "1.1.7"
4
+ __version__ = "1.1.9"
@@ -7,6 +7,8 @@ from pathlib import Path
7
7
  from typing import List, Optional
8
8
 
9
9
  import typer
10
+ from dtcli.server_api import upload as dt_cli_upload
11
+ from dtcli.server_api import validate as dt_cli_validate
10
12
  from rich.console import Console
11
13
 
12
14
  from ..__about__ import __version__
@@ -77,6 +79,7 @@ def build(
77
79
  extra_index_url: Optional[str] = typer.Option(
78
80
  None, "--extra-index-url", "-i", help="Extra index url to use when downloading dependencies"
79
81
  ),
82
+ find_links: Optional[str] = typer.Option( None, "--find-links", "-f", help="Extra index url to use when downloading dependencies" ),
80
83
  ):
81
84
  """
82
85
  Builds and signs an extension using the developer fused key-certificate
@@ -88,6 +91,7 @@ def build(
88
91
  folder
89
92
  :param extra_platforms: Attempt to also download wheels for an extra platform (e.g. manylinux1_x86_64 or win_amd64)
90
93
  :param extra_index_url: Extra index url to use when downloading dependencies
94
+ :param find_links: Extra index url to use when downloading dependencies
91
95
  """
92
96
  console.print(f"Building and signing extension from {extension_dir} to {target_directory}", style="cyan")
93
97
  if target_directory is None:
@@ -96,7 +100,7 @@ def build(
96
100
  target_directory.mkdir()
97
101
 
98
102
  console.print("Stage 1 - Download and build dependencies", style="bold blue")
99
- wheel(extension_dir, extra_platforms, extra_index_url)
103
+ wheel(extension_dir, extra_platforms, extra_index_url, find_links)
100
104
 
101
105
  console.print("Stage 2 - Create the extension zip file", style="bold blue")
102
106
  built_zip = assemble(extension_dir, target_directory)
@@ -161,6 +165,7 @@ def wheel(
161
165
  extra_index_url: Optional[str] = typer.Option(
162
166
  None, "--extra-index-url", "-i", help="Extra index url to use when downloading dependencies"
163
167
  ),
168
+ find_links: Optional[str] = typer.Option( None, "--find-links", "-f", help="Extra index url to use when downloading dependencies" ),
164
169
  ):
165
170
  """
166
171
  Builds the extension and it's dependencies into wheel files
@@ -169,6 +174,7 @@ def wheel(
169
174
  :param extension_dir: The directory of the extension, by default this is the current directory
170
175
  :param extra_platforms: Attempt to also download wheels for an extra platform (e.g. manylinux1_x86_64 or win_amd64)
171
176
  :param extra_index_url: Extra index url to use when downloading dependencies
177
+ :param find_links: Extra index url to use when downloading dependencies
172
178
  """
173
179
  relative_lib_folder_dir = "extension/lib"
174
180
  lib_folder: Path = extension_dir / relative_lib_folder_dir
@@ -180,6 +186,8 @@ def wheel(
180
186
  command = [sys.executable, "-m", "pip", "wheel", "-w", relative_lib_folder_dir]
181
187
  if extra_index_url is not None:
182
188
  command.extend(["--extra-index-url", extra_index_url])
189
+ if find_links is not None:
190
+ command.extend(["--find-links", find_links])
183
191
  command.append(".")
184
192
  run_process(command, cwd=extension_dir)
185
193
 
@@ -199,6 +207,8 @@ def wheel(
199
207
  ]
200
208
  if extra_index_url:
201
209
  command.extend(["--extra-index-url", extra_index_url])
210
+ if find_links:
211
+ command.extend(["--find-links", find_links])
202
212
  command.append(".")
203
213
 
204
214
  run_process(command, cwd=extension_dir)
@@ -277,7 +287,7 @@ def upload(
277
287
  :param api_token: The Dynatrace API token
278
288
  :param validate: If true, only validate the extension and exit
279
289
  """
280
- action = "upload" if not validate else "validate"
290
+
281
291
  zip_file_path = extension_path
282
292
  if extension_path is None:
283
293
  extension_path = Path(".")
@@ -299,9 +309,11 @@ def upload(
299
309
  console.print("Set the --api-token parameter or the DT_API_TOKEN environment variable", style="bold red")
300
310
  sys.exit(1)
301
311
 
302
- command = ["dt", "ext", action, "--tenant-url", api_url, "--api-token", api_token, f"{zip_file_path}"]
303
- run_process(command, print_message=f"{action} extension {zip_file_path} to {api_url}")
304
- console.print(f"Extension {zip_file_path} uploaded to {api_url}", style="bold green")
312
+ if validate:
313
+ dt_cli_validate(f"{zip_file_path}", api_url, api_token)
314
+ else:
315
+ dt_cli_upload(f"{zip_file_path}", api_url, api_token)
316
+ console.print(f"Extension {zip_file_path} uploaded to {api_url}", style="bold green")
305
317
 
306
318
 
307
319
  @app.command(help="Generate root and developer certificates and key")
@@ -1,49 +0,0 @@
1
- name: Publish to PyPI
2
- on: push
3
-
4
- jobs:
5
- build:
6
- name: Build distribution 📦
7
- runs-on: ubuntu-latest
8
-
9
- steps:
10
- - uses: actions/checkout@v4
11
- - name: Set up Python
12
- uses: actions/setup-python@v4
13
- with:
14
- python-version: "3.10"
15
-
16
- - name: Install hatch and build
17
- run: >-
18
- python3 -m
19
- pip install
20
- hatch
21
- --user
22
- - name: Build a binary wheel and a source tarball
23
- run: python3 -m hatch build
24
- - name: Store the distribution packages
25
- uses: actions/upload-artifact@v3
26
- with:
27
- name: python-package-distributions
28
- path: dist/
29
-
30
- publish-to-pypi:
31
- name: >-
32
- Publish to PyPI
33
- if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
34
- needs:
35
- - build
36
- runs-on: ubuntu-latest
37
- environment:
38
- name: pypi
39
- url: https://pypi.org/p/dt-extensions-sdk
40
- permissions:
41
- id-token: write # IMPORTANT: mandatory for trusted publishing
42
- steps:
43
- - name: Download dist from build
44
- uses: actions/download-artifact@v3
45
- with:
46
- name: python-package-distributions
47
- path: dist/
48
- - name: Publish to PyPI
49
- uses: pypa/gh-action-pypi-publish@release/v1