src-py-lib 0.3.0__tar.gz → 0.3.2__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 (39) hide show
  1. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/.github/workflows/release.yml +2 -2
  2. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/.github/workflows/validate.yml +10 -7
  3. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/AGENTS.md +1 -0
  4. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/PKG-INFO +4 -4
  5. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/pyproject.toml +7 -7
  6. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/clients/sourcegraph.py +8 -2
  7. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/logging.py +1 -1
  8. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/tests/test_tsv.py +2 -2
  9. src_py_lib-0.3.2/tests/test_unicode_scan.py +22 -0
  10. src_py_lib-0.3.2/tests/unicode_scan.py +65 -0
  11. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/uv.lock +47 -47
  12. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/.github/CODEOWNERS +0 -0
  13. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/.github/workflows/ci.yml +0 -0
  14. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/.gitignore +0 -0
  15. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/.markdownlint-cli2.yaml +0 -0
  16. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/.python-version +0 -0
  17. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/LICENSE +0 -0
  18. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/README.md +0 -0
  19. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/SECURITY.md +0 -0
  20. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/renovate.json +0 -0
  21. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/__init__.py +0 -0
  22. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/clients/__init__.py +0 -0
  23. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/clients/github.py +0 -0
  24. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/clients/google_sheets.py +0 -0
  25. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/clients/graphql.py +0 -0
  26. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/clients/linear.py +0 -0
  27. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/clients/one_password.py +0 -0
  28. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/clients/slack.py +0 -0
  29. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/py.typed +0 -0
  30. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/__init__.py +0 -0
  31. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/config.py +0 -0
  32. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/events.py +0 -0
  33. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/http.py +0 -0
  34. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/json_cache.py +0 -0
  35. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/json_types.py +0 -0
  36. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/telemetry.py +0 -0
  37. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/src/src_py_lib/utils/tsv.py +0 -0
  38. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/tests/test_import.py +0 -0
  39. {src_py_lib-0.3.0 → src_py_lib-0.3.2}/tests/test_logging_http_clients.py +0 -0
@@ -67,7 +67,7 @@ jobs:
67
67
 
68
68
  steps:
69
69
  - name: Check out release ref
70
- uses: actions/checkout@v6
70
+ uses: actions/checkout@v7
71
71
  with:
72
72
  fetch-depth: 0
73
73
  persist-credentials: false
@@ -79,7 +79,7 @@ jobs:
79
79
  python-version: ${{ env.PYTHON_VERSION }}
80
80
 
81
81
  - name: Cache uv
82
- uses: actions/cache@v5
82
+ uses: actions/cache@v6
83
83
  with:
84
84
  path: ~/.cache/uv
85
85
  key: uv-${{ runner.os }}-py${{ env.PYTHON_VERSION }}-${{ hashFiles('uv.lock') }}
@@ -98,7 +98,7 @@ jobs:
98
98
 
99
99
  steps:
100
100
  - name: Check out code
101
- uses: actions/checkout@v6
101
+ uses: actions/checkout@v7
102
102
  with:
103
103
  persist-credentials: false
104
104
  ref: ${{ inputs.ref || github.ref }}
@@ -130,13 +130,13 @@ jobs:
130
130
 
131
131
  steps:
132
132
  - name: Check out code
133
- uses: actions/checkout@v6
133
+ uses: actions/checkout@v7
134
134
  with:
135
135
  persist-credentials: false
136
136
  ref: ${{ inputs.ref || github.ref }}
137
137
 
138
138
  - name: Cache npm
139
- uses: actions/cache@v5
139
+ uses: actions/cache@v6
140
140
  with:
141
141
  path: ~/.npm
142
142
  key: npm-${{ runner.os }}-markdownlint-cli2-${{ env.MARKDOWNLINT_CLI2_VERSION }}
@@ -156,7 +156,7 @@ jobs:
156
156
 
157
157
  steps:
158
158
  - name: Check out code
159
- uses: actions/checkout@v6
159
+ uses: actions/checkout@v7
160
160
  with:
161
161
  fetch-depth: 0
162
162
  persist-credentials: false
@@ -168,7 +168,7 @@ jobs:
168
168
  python-version: ${{ env.PYTHON_VERSION }}
169
169
 
170
170
  - name: Cache uv
171
- uses: actions/cache@v5
171
+ uses: actions/cache@v6
172
172
  with:
173
173
  path: ~/.cache/uv
174
174
  key: uv-${{ runner.os }}-py${{ env.PYTHON_VERSION }}-${{ hashFiles('uv.lock') }}
@@ -181,6 +181,9 @@ jobs:
181
181
  - name: Validate lockfile
182
182
  run: uv lock --check
183
183
 
184
+ - name: Scan for Unicode characters
185
+ run: uv run --frozen python tests/unicode_scan.py
186
+
184
187
  - name: Lint Python
185
188
  run: uv run --frozen ruff check .
186
189
 
@@ -216,7 +219,7 @@ jobs:
216
219
 
217
220
  steps:
218
221
  - name: Check out code
219
- uses: actions/checkout@v6
222
+ uses: actions/checkout@v7
220
223
  with:
221
224
  fetch-depth: 0
222
225
  persist-credentials: false
@@ -228,7 +231,7 @@ jobs:
228
231
  python-version: ${{ env.PYTHON_VERSION }}
229
232
 
230
233
  - name: Cache uv
231
- uses: actions/cache@v5
234
+ uses: actions/cache@v6
232
235
  with:
233
236
  path: ~/.cache/uv
234
237
  key: uv-${{ runner.os }}-py${{ env.PYTHON_VERSION }}-${{ hashFiles('uv.lock') }}
@@ -17,6 +17,7 @@
17
17
  actionlint
18
18
  npx --yes markdownlint-cli2@0.22.1
19
19
  uv sync
20
+ uv run python tests/unicode_scan.py
20
21
  uv run ruff format .
21
22
  uv run ruff check .
22
23
  uv run pyright
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: src-py-lib
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Reusable libraries for Sourcegraph projects
5
5
  Project-URL: Homepage, https://github.com/sourcegraph/src-py-lib
6
6
  Project-URL: Issues, https://github.com/sourcegraph/src-py-lib/issues
@@ -17,12 +17,12 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Typing :: Typed
18
18
  Requires-Python: >=3.11
19
19
  Requires-Dist: httpx<1,>=0.28.1
20
- Requires-Dist: opentelemetry-api<2,>=1.42.1
20
+ Requires-Dist: opentelemetry-api<2,>=1.43.0
21
21
  Requires-Dist: pydantic<3,>=2.13.4
22
22
  Requires-Dist: python-dotenv<2,>=1.2.2
23
23
  Provides-Extra: otel
24
- Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.42.1; extra == 'otel'
25
- Requires-Dist: opentelemetry-sdk<2,>=1.42.1; extra == 'otel'
24
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.43.0; extra == 'otel'
25
+ Requires-Dist: opentelemetry-sdk<2,>=1.43.0; extra == 'otel'
26
26
  Description-Content-Type: text/markdown
27
27
 
28
28
  # src-py-lib
@@ -4,10 +4,10 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [dependency-groups]
6
6
  dev = [
7
- "opentelemetry-exporter-otlp-proto-http>=1.42.1,<2",
8
- "opentelemetry-sdk>=1.42.1,<2",
9
- "pyright>=1.1.410",
10
- "ruff>=0.15.16",
7
+ "opentelemetry-exporter-otlp-proto-http>=1.43.0,<2",
8
+ "opentelemetry-sdk>=1.43.0,<2",
9
+ "pyright>=1.1.411",
10
+ "ruff>=0.15.20",
11
11
  ]
12
12
 
13
13
  [project]
@@ -32,7 +32,7 @@ classifiers = [
32
32
  ]
33
33
  dependencies = [
34
34
  "httpx>=0.28.1,<1",
35
- "opentelemetry-api>=1.42.1,<2",
35
+ "opentelemetry-api>=1.43.0,<2",
36
36
  "pydantic>=2.13.4,<3",
37
37
  "python-dotenv>=1.2.2,<2",
38
38
  ]
@@ -46,8 +46,8 @@ Issues = "https://github.com/sourcegraph/src-py-lib/issues"
46
46
 
47
47
  [project.optional-dependencies]
48
48
  otel = [
49
- "opentelemetry-exporter-otlp-proto-http>=1.42.1,<2",
50
- "opentelemetry-sdk>=1.42.1,<2",
49
+ "opentelemetry-exporter-otlp-proto-http>=1.43.0,<2",
50
+ "opentelemetry-sdk>=1.43.0,<2",
51
51
  ]
52
52
 
53
53
  [tool.hatch.build.targets.wheel]
@@ -160,7 +160,10 @@ class SourcegraphClientConfig(Config):
160
160
  env_var="SRC_ENDPOINT",
161
161
  cli_flag="--src-endpoint",
162
162
  metavar="URL",
163
- help="Sourcegraph instance URL",
163
+ help=(
164
+ "Sourcegraph instance URL\n"
165
+ "Required as either env var or arg. Recommended to set SRC_ENDPOINT env var"
166
+ ),
164
167
  help_group="Sourcegraph",
165
168
  required=True,
166
169
  )
@@ -169,7 +172,10 @@ class SourcegraphClientConfig(Config):
169
172
  env_var="SRC_ACCESS_TOKEN",
170
173
  cli_flag="--src-access-token",
171
174
  metavar="TOKEN",
172
- help="Sourcegraph access token, or op:// secret reference",
175
+ help=(
176
+ "Sourcegraph access token, or op:// secret reference\n"
177
+ "Required as either env var or arg. Recommended to set SRC_ACCESS_TOKEN env var"
178
+ ),
173
179
  help_group="Sourcegraph",
174
180
  secret=True,
175
181
  required=True,
@@ -378,7 +378,7 @@ def cli_logging_handlers(
378
378
  """Attach terminal (and optional bridge) handlers to the named loggers.
379
379
 
380
380
  Adds and removes only its own handlers, restores prior logger levels on
381
- exit, and never touches the root logger or other handlers — safe to
381
+ exit, and never touches the root logger or other handlers - safe to
382
382
  compose with a host application's logging configuration.
383
383
 
384
384
  With `suppress_http_dependency_logs=False`, httpx/httpcore loggers are
@@ -31,9 +31,9 @@ class TSVTest(unittest.TestCase):
31
31
 
32
32
  def test_display_width_handles_wide_and_combining_characters(self) -> None:
33
33
  self.assertEqual(display_width("a"), 1)
34
- self.assertEqual(display_width("測"), 2)
34
+ self.assertEqual(display_width("\u6e2c"), 2)
35
35
  self.assertEqual(display_width("e\u0301"), 1)
36
- self.assertEqual(pad_display("測", 4), "測 ")
36
+ self.assertEqual(pad_display("\u6e2c", 4), "\u6e2c ")
37
37
 
38
38
  def test_write_tsv_creates_aligned_table(self) -> None:
39
39
  with tempfile.TemporaryDirectory() as directory:
@@ -0,0 +1,22 @@
1
+ from __future__ import annotations
2
+
3
+ import unittest
4
+
5
+ from tests import unicode_scan
6
+
7
+
8
+ class UnicodeScanTests(unittest.TestCase):
9
+ def test_ascii_text_has_no_findings(self) -> None:
10
+ self.assertEqual(unicode_scan.findings_in_text("plain - ascii 'text' x 2\n"), [])
11
+
12
+ def test_non_ascii_characters_are_flagged(self) -> None:
13
+ findings = unicode_scan.findings_in_text("first line\na \u2014 b \u2192 c\n")
14
+ self.assertEqual(findings, [(2, 3, "\u2014"), (2, 7, "\u2192")])
15
+
16
+ def test_invisible_character_is_flagged(self) -> None:
17
+ findings = unicode_scan.findings_in_text("zero\u200bwidth")
18
+ self.assertEqual(findings, [(1, 5, "\u200b")])
19
+
20
+
21
+ if __name__ == "__main__":
22
+ unittest.main()
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env python3
2
+ """Fail on non-ASCII characters in tracked text files.
3
+
4
+ Usage: uv run python tests/unicode_scan.py
5
+ Exit code 1 when any Unicode character outside ASCII is found.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import subprocess
11
+ import sys
12
+ import unicodedata
13
+ from pathlib import Path
14
+
15
+
16
+ def findings_in_text(text: str) -> list[tuple[int, int, str]]:
17
+ """Return (line, column, character) findings, 1-based."""
18
+ findings: list[tuple[int, int, str]] = []
19
+ for line_number, line in enumerate(text.splitlines(), start=1):
20
+ for column_number, character in enumerate(line, start=1):
21
+ if not character.isascii():
22
+ findings.append((line_number, column_number, character))
23
+ return findings
24
+
25
+
26
+ def tracked_files(root: Path) -> list[Path]:
27
+ """Return tracked files the gate should scan."""
28
+ listing = subprocess.run(
29
+ ["git", "ls-files", "-z"],
30
+ capture_output=True,
31
+ text=True,
32
+ check=True,
33
+ cwd=root,
34
+ )
35
+ return [root / name for name in listing.stdout.split("\0") if name]
36
+
37
+
38
+ def describe(character: str) -> str:
39
+ name = unicodedata.name(character, f"U+{ord(character):04X}")
40
+ return f"`{character}` ({name}, U+{ord(character):04X})"
41
+
42
+
43
+ def main() -> int:
44
+ root = Path(__file__).resolve().parent.parent
45
+ finding_count = 0
46
+ for path in tracked_files(root):
47
+ try:
48
+ text = path.read_text(encoding="utf-8")
49
+ except (UnicodeDecodeError, FileNotFoundError, IsADirectoryError):
50
+ continue # binary or vanished files are not lintable text
51
+ for line_number, column_number, character in findings_in_text(text):
52
+ print(
53
+ f"{path.relative_to(root)}:{line_number}:{column_number} "
54
+ f"non-ASCII character {describe(character)}"
55
+ )
56
+ finding_count += 1
57
+ if finding_count:
58
+ print(f"\nFound {finding_count} non-ASCII character(s).")
59
+ return 1
60
+ print("No non-ASCII characters found.")
61
+ return 0
62
+
63
+
64
+ if __name__ == "__main__":
65
+ sys.exit(main())
@@ -191,31 +191,31 @@ wheels = [
191
191
 
192
192
  [[package]]
193
193
  name = "opentelemetry-api"
194
- version = "1.42.1"
194
+ version = "1.43.0"
195
195
  source = { registry = "https://pypi.org/simple" }
196
196
  dependencies = [
197
197
  { name = "typing-extensions" },
198
198
  ]
199
- sdist = { url = "https://files.pythonhosted.org/packages/b4/1c/125e1c936c0873796771b7f04f6c93b9f1bf5d424cea90fda94a99f61da8/opentelemetry_api-1.42.1.tar.gz", hash = "sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716", size = 72296, upload-time = "2026-05-21T16:32:49.335Z" }
199
+ sdist = { url = "https://files.pythonhosted.org/packages/ae/cc/e4c9584181f86494df0f6bdec1a4f3280c50db44704dc2a407e994fc87bb/opentelemetry_api-1.43.0.tar.gz", hash = "sha256:107d0d03857ea8fc7c5fcbbbd83f800c281f0d560553d61c1d675fccfd1761c1", size = 73476, upload-time = "2026-06-24T15:19:55.323Z" }
200
200
  wheels = [
201
- { url = "https://files.pythonhosted.org/packages/a3/ca/9520cc1f3dfbbd03ac5903bbf55833e257bc64b1cf30fa8b0d6df374d821/opentelemetry_api-1.42.1-py3-none-any.whl", hash = "sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714", size = 61311, upload-time = "2026-05-21T16:32:28.822Z" },
201
+ { url = "https://files.pythonhosted.org/packages/17/83/6dba32b85f31868400440dc7ad2ca1eab94cbbf3a7b0459ed39f8311a9e2/opentelemetry_api-1.43.0-py3-none-any.whl", hash = "sha256:20acf45e9b21851926835292e4045d290acade1edd2ff3de86d2f069687ba1fd", size = 61912, upload-time = "2026-06-24T15:19:35.434Z" },
202
202
  ]
203
203
 
204
204
  [[package]]
205
205
  name = "opentelemetry-exporter-otlp-proto-common"
206
- version = "1.42.1"
206
+ version = "1.43.0"
207
207
  source = { registry = "https://pypi.org/simple" }
208
208
  dependencies = [
209
209
  { name = "opentelemetry-proto" },
210
210
  ]
211
- sdist = { url = "https://files.pythonhosted.org/packages/0e/9c/216acfeaedadf2e1937f4373929b20f73197c5c4a2546d4f584b7fa63813/opentelemetry_exporter_otlp_proto_common-1.42.1.tar.gz", hash = "sha256:04f1f01fb597c4249dfcd7f8b861c902c2102369d376d9d346ff38de4469a2ee", size = 21433, upload-time = "2026-05-21T16:32:55.526Z" }
211
+ sdist = { url = "https://files.pythonhosted.org/packages/55/c1/e8098490ab15abf116dcaf9fa89ededcb35547c7d08d4b5a62f573dc1e63/opentelemetry_exporter_otlp_proto_common-1.43.0.tar.gz", hash = "sha256:c4e32ba6d6b13bdb2b8f6764c4fd28d00192826561aa04f6d14eedfce7ac076f", size = 20197, upload-time = "2026-06-24T15:20:00.247Z" }
212
212
  wheels = [
213
- { url = "https://files.pythonhosted.org/packages/d6/43/2375e7612e1121a4518c17603b6e0b03ad94f565aafad53f464dc5be2bf6/opentelemetry_exporter_otlp_proto_common-1.42.1-py3-none-any.whl", hash = "sha256:f48d395ab815b444da118868977e9798ea354c25737d5cf39578ae894011c140", size = 17327, upload-time = "2026-05-21T16:32:33.387Z" },
213
+ { url = "https://files.pythonhosted.org/packages/d0/b2/41ebc74ae1d5859901f1b69305de58724bf043381103d6ef413521cbc35a/opentelemetry_exporter_otlp_proto_common-1.43.0-py3-none-any.whl", hash = "sha256:123c3f9cc87218562490c63b36f497bf3a722faf174a515d1443f31ababa6264", size = 17048, upload-time = "2026-06-24T15:19:41.264Z" },
214
214
  ]
215
215
 
216
216
  [[package]]
217
217
  name = "opentelemetry-exporter-otlp-proto-http"
218
- version = "1.42.1"
218
+ version = "1.43.0"
219
219
  source = { registry = "https://pypi.org/simple" }
220
220
  dependencies = [
221
221
  { name = "googleapis-common-protos" },
@@ -226,48 +226,48 @@ dependencies = [
226
226
  { name = "requests" },
227
227
  { name = "typing-extensions" },
228
228
  ]
229
- sdist = { url = "https://files.pythonhosted.org/packages/77/32/826bfa1d80ecea24f47808de03cd4a0d13c17ecc07712f45123f0f61e4ac/opentelemetry_exporter_otlp_proto_http-1.42.1.tar.gz", hash = "sha256:bf142a21035d7571ac3a09cb2e5639f49886f243972883cfe777ed3bf02b734d", size = 25406, upload-time = "2026-05-21T16:32:56.807Z" }
229
+ sdist = { url = "https://files.pythonhosted.org/packages/fc/92/0b9f56412483a8891d4843890294796c9df8ab42417bd9bad8035d840cb3/opentelemetry_exporter_otlp_proto_http-1.43.0.tar.gz", hash = "sha256:fa8a42bb7d00ee5391f4c0b04d8e6a46c03caa437903296ab73a81dc11ba118f", size = 25406, upload-time = "2026-06-24T15:20:01.515Z" }
230
230
  wheels = [
231
- { url = "https://files.pythonhosted.org/packages/d3/96/82cb223a1502f0787d4bbff12907f5f8d870a50731febcd5818d93ef9555/opentelemetry_exporter_otlp_proto_http-1.42.1-py3-none-any.whl", hash = "sha256:00a16da1b312a1d6c7233d600d557c91df71125af73020f3b9a7765bd699d59d", size = 21793, upload-time = "2026-05-21T16:32:35.277Z" },
231
+ { url = "https://files.pythonhosted.org/packages/b3/20/b685ed7af2e17c29ffc8af56f1fa8bc2033258fc30fb0d2b722f49d13ba0/opentelemetry_exporter_otlp_proto_http-1.43.0-py3-none-any.whl", hash = "sha256:647f603aa8efdbdb4dbff842e0729d0406a6fff26b295a72d3d60e7d963b2610", size = 21795, upload-time = "2026-06-24T15:19:43.164Z" },
232
232
  ]
233
233
 
234
234
  [[package]]
235
235
  name = "opentelemetry-proto"
236
- version = "1.42.1"
236
+ version = "1.43.0"
237
237
  source = { registry = "https://pypi.org/simple" }
238
238
  dependencies = [
239
239
  { name = "protobuf" },
240
240
  ]
241
- sdist = { url = "https://files.pythonhosted.org/packages/b4/55/63eac3e1089b768ba014091fdd2ae8a9a440c821ef5e2b786909c94c8836/opentelemetry_proto-1.42.1.tar.gz", hash = "sha256:c6a51e6b4f05ae63565f3a113217f3d2bfaec68f78c02d7a6c85f9010d1cfca6", size = 45839, upload-time = "2026-05-21T16:33:03.937Z" }
241
+ sdist = { url = "https://files.pythonhosted.org/packages/e0/b9/d357faefb40bda1d4799913e6af611171ff22a2dedcb93576bc92242d056/opentelemetry_proto-1.43.0.tar.gz", hash = "sha256:224778df17e1f3fafeaaa21d874236ca5f6ffc2f86e0899298ec7351aac27924", size = 46481, upload-time = "2026-06-24T15:20:07.625Z" }
242
242
  wheels = [
243
- { url = "https://files.pythonhosted.org/packages/41/9d/171c02c84a76940b7e601805b3bb536985aded9168fbcc9ba52f0a730fa2/opentelemetry_proto-1.42.1-py3-none-any.whl", hash = "sha256:dedb74cba2886c59c7789b227a7a670613025a07489040050aedff6e5c0fb43c", size = 71782, upload-time = "2026-05-21T16:32:44.867Z" },
243
+ { url = "https://files.pythonhosted.org/packages/ed/a7/3e5308cf548b8f72529c7db1afdb3a404211982376a12927fd7759f77bf3/opentelemetry_proto-1.43.0-py3-none-any.whl", hash = "sha256:c58f1f7ef84bc7dc2834016c0c37fe0081dde7ca9f6339be1970fbf9cdaaa90d", size = 72489, upload-time = "2026-06-24T15:19:51.164Z" },
244
244
  ]
245
245
 
246
246
  [[package]]
247
247
  name = "opentelemetry-sdk"
248
- version = "1.42.1"
248
+ version = "1.43.0"
249
249
  source = { registry = "https://pypi.org/simple" }
250
250
  dependencies = [
251
251
  { name = "opentelemetry-api" },
252
252
  { name = "opentelemetry-semantic-conventions" },
253
253
  { name = "typing-extensions" },
254
254
  ]
255
- sdist = { url = "https://files.pythonhosted.org/packages/40/f7/b390bd9bfd703bf98a68fea1f27786c6872331fd617164a54b8a59bdc008/opentelemetry_sdk-1.42.1.tar.gz", hash = "sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7", size = 239262, upload-time = "2026-05-21T16:33:04.641Z" }
255
+ sdist = { url = "https://files.pythonhosted.org/packages/3e/eb/5041074274ac0956b03637cc039d434569112468e875eddfcc9a0674ce06/opentelemetry_sdk-1.43.0.tar.gz", hash = "sha256:d8187c81c162df9913e4003dd6485f7390d9a24fc17026ec7387b8b8218b08e9", size = 254744, upload-time = "2026-06-24T15:20:08.467Z" }
256
256
  wheels = [
257
- { url = "https://files.pythonhosted.org/packages/8f/6b/4287766cfbde577ae2272e8884abac325aeaac0d64f41c61d5b8cc595105/opentelemetry_sdk-1.42.1-py3-none-any.whl", hash = "sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d", size = 170907, upload-time = "2026-05-21T16:32:45.894Z" },
257
+ { url = "https://files.pythonhosted.org/packages/49/e3/b17be23af124201c9f52eececd4cc8ddfed1597d37b4ee771895d325805c/opentelemetry_sdk-1.43.0-py3-none-any.whl", hash = "sha256:d1323a547c1ce69d6a069a17a44b7da82bb8b332051ecb074041f87642c86823", size = 178852, upload-time = "2026-06-24T15:19:52.169Z" },
258
258
  ]
259
259
 
260
260
  [[package]]
261
261
  name = "opentelemetry-semantic-conventions"
262
- version = "0.63b1"
262
+ version = "0.64b0"
263
263
  source = { registry = "https://pypi.org/simple" }
264
264
  dependencies = [
265
265
  { name = "opentelemetry-api" },
266
266
  { name = "typing-extensions" },
267
267
  ]
268
- sdist = { url = "https://files.pythonhosted.org/packages/93/99/4d7dd6df64795951413ce6e815f8cf1eb191daf7196ae86574589643d5f3/opentelemetry_semantic_conventions-0.63b1.tar.gz", hash = "sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9", size = 148340, upload-time = "2026-05-21T16:33:05.455Z" }
268
+ sdist = { url = "https://files.pythonhosted.org/packages/5a/30/5f26df29509eccd86b99b481ac9ffa39da49ba9577cc69071c552ae30447/opentelemetry_semantic_conventions-0.64b0.tar.gz", hash = "sha256:72f76fb2d1582d9d033dd1fcd84532e961e6ff3d90d24ba6fabc72975a83864c", size = 148340, upload-time = "2026-06-24T15:20:09.267Z" }
269
269
  wheels = [
270
- { url = "https://files.pythonhosted.org/packages/cb/7a/7fe66f5f3682b1dd47d88cc4e11f1c6c0966b737de2d16671146e23c39a5/opentelemetry_semantic_conventions-0.63b1-py3-none-any.whl", hash = "sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682", size = 203713, upload-time = "2026-05-21T16:32:47.016Z" },
270
+ { url = "https://files.pythonhosted.org/packages/f2/ca/23ba87a221b574a7c5a99d48849d80bfe8b047624681357e2b002e566187/opentelemetry_semantic_conventions-0.64b0-py3-none-any.whl", hash = "sha256:ea77e85e354b8f604ddbe5f3d9135216f982fa4d77e5859ac30f6d8a50505aa6", size = 203713, upload-time = "2026-06-24T15:19:53.339Z" },
271
271
  ]
272
272
 
273
273
  [[package]]
@@ -404,15 +404,15 @@ wheels = [
404
404
 
405
405
  [[package]]
406
406
  name = "pyright"
407
- version = "1.1.410"
407
+ version = "1.1.411"
408
408
  source = { registry = "https://pypi.org/simple" }
409
409
  dependencies = [
410
410
  { name = "nodeenv" },
411
411
  { name = "typing-extensions" },
412
412
  ]
413
- sdist = { url = "https://files.pythonhosted.org/packages/10/53/e4d8ea1391bd4355231be6f91bf239479aa0014260ed3fb5526eeb12a1f2/pyright-1.1.410.tar.gz", hash = "sha256:07a073b8ba6749826773c1269773efa11b93440d9a6aa60419d9a3172d6dc488", size = 4062013, upload-time = "2026-06-01T17:35:48.894Z" }
413
+ sdist = { url = "https://files.pythonhosted.org/packages/7e/ab/265f7dc69d28113ebba19092e57b075f41543b2ed048429c5f56e2b88eac/pyright-1.1.411.tar.gz", hash = "sha256:d885a0551f2e763b089a02702174e7f4ba77548cddabc972ab86d1f7f1b0f998", size = 4112861, upload-time = "2026-06-25T02:14:06.37Z" }
414
414
  wheels = [
415
- { url = "https://files.pythonhosted.org/packages/d7/33/288b5868fa00846dacf249633719d747893e54aebd196b9968ac1878a5d3/pyright-1.1.410-py3-none-any.whl", hash = "sha256:5e961bed37cacf96b3f7cd7b1da39b350a9239aa2e69138d0e88f728cfaf296c", size = 6082448, upload-time = "2026-06-01T17:35:46.387Z" },
415
+ { url = "https://files.pythonhosted.org/packages/0a/49/385be530a6a5b78d1cbcd5c2e38debc8959a2fc6bdb716f4e581002979fc/pyright-1.1.411-py3-none-any.whl", hash = "sha256:dc7c72a8e2700c55baa127554040e067041ea53ccfd50bf96308cc4291c7d5d9", size = 6181526, upload-time = "2026-06-25T02:14:04.691Z" },
416
416
  ]
417
417
 
418
418
  [[package]]
@@ -441,27 +441,27 @@ wheels = [
441
441
 
442
442
  [[package]]
443
443
  name = "ruff"
444
- version = "0.15.16"
444
+ version = "0.15.20"
445
445
  source = { registry = "https://pypi.org/simple" }
446
- sdist = { url = "https://files.pythonhosted.org/packages/a6/bd/5f7ec371001337d8fa61701c186ff8b613ecac1651848c5950f4c4d5f2e9/ruff-0.15.16.tar.gz", hash = "sha256:d05e78d38c78caf020b03789e25106c93017db5a0cb6e2819885018c61343b78", size = 4714267, upload-time = "2026-06-04T16:33:09.974Z" }
446
+ sdist = { url = "https://files.pythonhosted.org/packages/43/dc/35b341fc554ba02f217fc10da57d1a75168cfbcf75b0ef2202176d4c4f2d/ruff-0.15.20.tar.gz", hash = "sha256:1416eb04349192646b54de98f146c4f59afe37d0decfc02c3cbbf396f3a28566", size = 4755489, upload-time = "2026-06-25T17:20:37.578Z" }
447
447
  wheels = [
448
- { url = "https://files.pythonhosted.org/packages/0c/42/53ef1c3953f157956db9bf7861e3bc50b9b887ce93300aa48cdba8336fe6/ruff-0.15.16-py3-none-linux_armv6l.whl", hash = "sha256:6ac3c0b3969cc6cf6b158c4e2f8f682acb58e7d700d8a44b65ecdc72d66ab0b2", size = 10709025, upload-time = "2026-06-04T16:32:51.935Z" },
449
- { url = "https://files.pythonhosted.org/packages/93/9a/a79159346f19134a956607754e57d8d128f7a4c00f4ad2f7514d224c172c/ruff-0.15.16-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:197c207ed75ffba54a0dec23db4aa939a27a3053073e085e0042433cbdc58e4a", size = 11063550, upload-time = "2026-06-04T16:32:42.24Z" },
450
- { url = "https://files.pythonhosted.org/packages/bc/72/3ce2ac000a5299ec238e01f51397b3b653c93b077d9b1bfe8715bb895f20/ruff-0.15.16-py3-none-macosx_11_0_arm64.whl", hash = "sha256:3a39fec45ab316cc23e7558f23fea4a70403ddb5648ea9a4a3854a16973d0071", size = 10421345, upload-time = "2026-06-04T16:32:37.251Z" },
451
- { url = "https://files.pythonhosted.org/packages/b0/c2/cc7fad3ec9169373f5b6a18f1917b91080feec40c3f9658334a1d28e2f03/ruff-0.15.16-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba93191d79003116b95128c9d306e045200fdbd0bccb782b110f3cd1d4abc5cf", size = 10757217, upload-time = "2026-06-04T16:32:54.722Z" },
452
- { url = "https://files.pythonhosted.org/packages/69/d2/3474009eaa0a65b31fa7152a2fad5e2f050c640ceb1e6b02ee6922e94c82/ruff-0.15.16-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c6ee4b90520630120ef032aa5cc10db483852dff950e78b1d717e2993a61ac8d", size = 10507035, upload-time = "2026-06-04T16:33:05.343Z" },
453
- { url = "https://files.pythonhosted.org/packages/ca/81/b7ae6ccbd11f0c8dc3d5d67fc4be9b57ff57ca86ba56152021378e1277f2/ruff-0.15.16-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e4215bc938bc3c8215c1472c1aa437e310fee20cd427335fec9d7e609563628", size = 11255291, upload-time = "2026-06-04T16:32:49.49Z" },
454
- { url = "https://files.pythonhosted.org/packages/d9/e1/46e526f1a7cc90857ce6ddf25fbb77eb6568651ac38d71b033af07076dd5/ruff-0.15.16-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7c8d26be963b090f10e29abc8b3e74a2a321f6fa34e02424e30b5af89350ecbb", size = 12124922, upload-time = "2026-06-04T16:33:07.821Z" },
455
- { url = "https://files.pythonhosted.org/packages/1a/da/5c791b088b596b24d0deb967fa28ae02ad751a140c0b9ea81c5ab915d6c0/ruff-0.15.16-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f198cf4123602a2280ed46c307bcbafe41758d6fee5b456b6b6058ca1514b3b4", size = 11332186, upload-time = "2026-06-04T16:33:02.971Z" },
456
- { url = "https://files.pythonhosted.org/packages/72/11/5da87abe20047c8962361473923ebb2f62b595250126aadfad8c20649c1e/ruff-0.15.16-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb27515fa6240fb586ae82b901a59e67d24acff86f2190b433dc542fe0435aeb", size = 11373541, upload-time = "2026-06-04T16:32:47.007Z" },
457
- { url = "https://files.pythonhosted.org/packages/fe/2a/8554754c23a854ae3fd6b507e36ad61ddb121e298c6d5d617dec94ed0f14/ruff-0.15.16-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:a267c46ba1593fc26b8eecbea050b39d40c0b6bb7781ee11c90a02cd10032951", size = 11353014, upload-time = "2026-06-04T16:32:34.795Z" },
458
- { url = "https://files.pythonhosted.org/packages/62/25/62ea41529ec89f742ea3fed9cb1059c72877ec7cf9b9e99ac9cf3294d1d9/ruff-0.15.16-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:528c68f39a91498a8d50e91ff5985df3d105782bab49cc378e73ac26bff083e8", size = 10737467, upload-time = "2026-06-04T16:32:26.348Z" },
459
- { url = "https://files.pythonhosted.org/packages/90/17/334d3ad9de4d40f9dd58fdd09e35ce64553bb501e2f19a839e2fb6be14fc/ruff-0.15.16-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7ed55c58950df60589a9a7a5d2f8fa5f54ebd287163be805adfe6ee95a9de123", size = 10521910, upload-time = "2026-06-04T16:32:32.54Z" },
460
- { url = "https://files.pythonhosted.org/packages/4d/bd/3ac7c6ae77a885c1004b3dda2446ea401768d24f851c14b4ad4b24f6639c/ruff-0.15.16-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d482feaf51512b50f9790ceb417a56a61dd1e9d9bf967662b9ed27c01b34f53a", size = 10979190, upload-time = "2026-06-04T16:32:57.492Z" },
461
- { url = "https://files.pythonhosted.org/packages/33/d7/609546e6a413c3f216fbf2a50c928f97c80939154f6a0503114094a86191/ruff-0.15.16-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1e15bc8c94513dae2a40cc9ef07c94fdd4ecc9e29dabebeebe170f952322c9e3", size = 11477014, upload-time = "2026-06-04T16:32:44.687Z" },
462
- { url = "https://files.pythonhosted.org/packages/74/0d/f2cd247ad32633a5c36e97141a2c21b11c6279f7957bc2ff360b1e08fddd/ruff-0.15.16-py3-none-win32.whl", hash = "sha256:580378f7bd4aa25f72e74aa54948a9622f142b1e509521dd10902e886681cc1e", size = 10735541, upload-time = "2026-06-04T16:32:30.145Z" },
463
- { url = "https://files.pythonhosted.org/packages/8b/9e/02e845ef151b1dee585e55c4739f8e1734ae1d9f1221dff65761c162208b/ruff-0.15.16-py3-none-win_amd64.whl", hash = "sha256:408256017284eddf98fff77b29aa4fb30f586042d535b2d9befc6512f400aaec", size = 11843403, upload-time = "2026-06-04T16:32:39.76Z" },
464
- { url = "https://files.pythonhosted.org/packages/15/19/016553f86f207450aebebc2b2b5088d086b901cc8186c02ac4284db3bd88/ruff-0.15.16-py3-none-win_arm64.whl", hash = "sha256:8cd61783afb39638a7133ef0d2dfb1e91277593962f81b5a8423eb0b888a6121", size = 11134555, upload-time = "2026-06-04T16:33:00.136Z" },
448
+ { url = "https://files.pythonhosted.org/packages/94/d9/2d5014f0253ba541d2061d9fa7193f48e941c8b21bb88a7ff9bbe0bd0596/ruff-0.15.20-py3-none-linux_armv6l.whl", hash = "sha256:00e188c53e499c3c1637f73c91dcf2fb56d576cab76ce1be50a27c4e80e37078", size = 10839665, upload-time = "2026-06-25T17:19:44.702Z" },
449
+ { url = "https://files.pythonhosted.org/packages/c6/d3/ac1798ba64f670698867fcfc591d50e7e421bef137db564858f619a30fcf/ruff-0.15.20-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9ebd1fd9b9c95fc0bd7b2761aebec1f030013d2e193a2901b224af68fe47251b", size = 11208649, upload-time = "2026-06-25T17:19:48.787Z" },
450
+ { url = "https://files.pythonhosted.org/packages/47/47/d3ac899991202095dfcf3d5176be4272642be3cf981a2f1a30f72a2afb95/ruff-0.15.20-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c5b16cdd67ca108185cd36dce98c576350c03b1660a751de725fb049193a0632", size = 10622638, upload-time = "2026-06-25T17:19:51.354Z" },
451
+ { url = "https://files.pythonhosted.org/packages/33/13/4e043fe30aa94d4ff5213a9881fc296d12960f5971b234a5263fdc225312/ruff-0.15.20-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3413bb3c3d2ca6a8208f1f4809cd2dca3c6de6d0b491c0e70847672bde6e6efd", size = 10984227, upload-time = "2026-06-25T17:19:54.044Z" },
452
+ { url = "https://files.pythonhosted.org/packages/76/e6/92e7bf40388bc5800073b96564f56264f7e48bfd1a498f5ced6ae6d5a769/ruff-0.15.20-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd7ec42b3bb3da066488db093308a69c4ac5ee6d2af333a86ba6e2eb2e7dd44b", size = 10622882, upload-time = "2026-06-25T17:19:57.037Z" },
453
+ { url = "https://files.pythonhosted.org/packages/13/7a/43460be3f24495a3aa46d4b16873e2c4941b3b5f0b00cf88c03b7b94b339/ruff-0.15.20-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1a36ad0eb77fba9aabfb69ede54de6f376d04ac18ebea022847046d340a8267", size = 11474808, upload-time = "2026-06-25T17:20:00.357Z" },
454
+ { url = "https://files.pythonhosted.org/packages/27/a0/f37077884873221c6b33b4ab49eb18f9f88e54a16a25a5bca59bef46dd66/ruff-0.15.20-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b6df3b1e4610432f0386dba04d853b5f08cbbc903410c6fcc02f620f05aff53c", size = 12293094, upload-time = "2026-06-25T17:20:03.446Z" },
455
+ { url = "https://files.pythonhosted.org/packages/a6/74/165545b60256a9704c21ac0ec4a0d07933b320812f9584836c9f4aca4292/ruff-0.15.20-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e89f198a1ea6ef0d727c1cf16088bc91a6cb0ab947dedc966715691647186eae", size = 11526176, upload-time = "2026-06-25T17:20:06.301Z" },
456
+ { url = "https://files.pythonhosted.org/packages/86/b1/a976a136d40ade83ce743578399865f57001003a409acadc0ecbb3051082/ruff-0.15.20-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309809086c2acb67624950a3c8133e80f32d0d3e27106c0cd60ff26657c9f24b", size = 11520767, upload-time = "2026-06-25T17:20:09.191Z" },
457
+ { url = "https://files.pythonhosted.org/packages/19/0f/f032696cb01c9b54c0263fa393474d7758f1cdc021a01b04e3cbc2500999/ruff-0.15.20-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:2d2374caa2f2c2f9e2b7da0a50802cfb8b79f55a9b5e49379f564544fbf56487", size = 11500132, upload-time = "2026-06-25T17:20:13.602Z" },
458
+ { url = "https://files.pythonhosted.org/packages/4b/f4/51b1a14bc69e8c224b15dab9cce8e99b425e0455d462caa2b3c9be2b6a8e/ruff-0.15.20-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a1ed17b65293e0c2f22fc387bc13198a5de94bf4429589b0ff6946b0feaf21a3", size = 10943828, upload-time = "2026-06-25T17:20:16.635Z" },
459
+ { url = "https://files.pythonhosted.org/packages/71/4b/fe267640783cd02bf6c5cc290b1df1051be2ec294c678b5c15fe19e52343/ruff-0.15.20-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f701305e66b38ea6c91882490eb73459796808e4c6362a1b765255e0cdcd4053", size = 10645418, upload-time = "2026-06-25T17:20:19.4Z" },
460
+ { url = "https://files.pythonhosted.org/packages/b0/c0/a65aa4ec2f5e87a1df32dc3ec1fede434fe3dfd5cbcf3b503cafc676ab54/ruff-0.15.20-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b9c0c367ad8e5d0d5b5b8537864c469a0a0e55417aadfbeca41fa61333be9f4", size = 11211770, upload-time = "2026-06-25T17:20:22.033Z" },
461
+ { url = "https://files.pythonhosted.org/packages/5a/a4/0caa331d954ae2723d729d351c989cb4ca8b6077d5c6c2cb6de75e98c041/ruff-0.15.20-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:01cc00dd58f0df339d0e902219dd53990ea99996a0344e5d9cc8d45d5307e460", size = 11618698, upload-time = "2026-06-25T17:20:25.259Z" },
462
+ { url = "https://files.pythonhosted.org/packages/10/9b/5f14927848d2fd4aa891fd88d883788c5a7baba561c7874732364045708c/ruff-0.15.20-py3-none-win32.whl", hash = "sha256:ed65ef510e43a137207e0f01cfcf998aeddb1aeeda5c9d35023e910284d7cf21", size = 10857322, upload-time = "2026-06-25T17:20:28.612Z" },
463
+ { url = "https://files.pythonhosted.org/packages/fa/f0/fe47c501f9dea92a26d788ff98bb5d92ed4cb4c88792c5c88af6b697dc8e/ruff-0.15.20-py3-none-win_amd64.whl", hash = "sha256:a525c81c70fb0380344dd1d8745d8cc1c890b7fc94a58d5a07bd8eb9557b8415", size = 11993274, upload-time = "2026-06-25T17:20:31.871Z" },
464
+ { url = "https://files.pythonhosted.org/packages/d7/2b/9555445e1201d92b3195f45cdb153a0b68f24e0a4273f6e3d5ab46e212bb/ruff-0.15.20-py3-none-win_arm64.whl", hash = "sha256:2f5b2a6d614e8700388806a14996c40fab2c47b819ef57d790a34878858ed9ca", size = 11343498, upload-time = "2026-06-25T17:20:35.03Z" },
465
465
  ]
466
466
 
467
467
  [[package]]
@@ -491,9 +491,9 @@ dev = [
491
491
  [package.metadata]
492
492
  requires-dist = [
493
493
  { name = "httpx", specifier = ">=0.28.1,<1" },
494
- { name = "opentelemetry-api", specifier = ">=1.42.1,<2" },
495
- { name = "opentelemetry-exporter-otlp-proto-http", marker = "extra == 'otel'", specifier = ">=1.42.1,<2" },
496
- { name = "opentelemetry-sdk", marker = "extra == 'otel'", specifier = ">=1.42.1,<2" },
494
+ { name = "opentelemetry-api", specifier = ">=1.43.0,<2" },
495
+ { name = "opentelemetry-exporter-otlp-proto-http", marker = "extra == 'otel'", specifier = ">=1.43.0,<2" },
496
+ { name = "opentelemetry-sdk", marker = "extra == 'otel'", specifier = ">=1.43.0,<2" },
497
497
  { name = "pydantic", specifier = ">=2.13.4,<3" },
498
498
  { name = "python-dotenv", specifier = ">=1.2.2,<2" },
499
499
  ]
@@ -501,10 +501,10 @@ provides-extras = ["otel"]
501
501
 
502
502
  [package.metadata.requires-dev]
503
503
  dev = [
504
- { name = "opentelemetry-exporter-otlp-proto-http", specifier = ">=1.42.1,<2" },
505
- { name = "opentelemetry-sdk", specifier = ">=1.42.1,<2" },
506
- { name = "pyright", specifier = ">=1.1.410" },
507
- { name = "ruff", specifier = ">=0.15.16" },
504
+ { name = "opentelemetry-exporter-otlp-proto-http", specifier = ">=1.43.0,<2" },
505
+ { name = "opentelemetry-sdk", specifier = ">=1.43.0,<2" },
506
+ { name = "pyright", specifier = ">=1.1.411" },
507
+ { name = "ruff", specifier = ">=0.15.20" },
508
508
  ]
509
509
 
510
510
  [[package]]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes