

feat: add instrumentation
@ed631910e8093ba32b297898ecd86d61100c3b28
--- Dockerfile.cpu
+++ Dockerfile.cpu
... | ... | @@ -3,19 +3,19 @@ |
3 | 3 |
# `ffmpeg` is installed because without it `gradio` won't work with mp3(possible others as well) files |
4 | 4 |
# hadolint ignore=DL3008 |
5 | 5 |
RUN apt-get update && \ |
6 |
- DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ffmpeg python3.12 && \ |
|
7 |
- apt-get clean && \ |
|
8 |
- rm -rf /var/lib/apt/lists/* |
|
6 |
+ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ffmpeg python3.12 && \ |
|
7 |
+ apt-get clean && \ |
|
8 |
+ rm -rf /var/lib/apt/lists/* |
|
9 | 9 |
COPY --from=ghcr.io/astral-sh/uv:0.5.9 /uv /bin/uv |
10 | 10 |
WORKDIR /root/faster-whisper-server |
11 | 11 |
# https://docs.astral.sh/uv/guides/integration/docker/#intermediate-layers |
12 | 12 |
RUN --mount=type=cache,target=/root/.cache/uv \ |
13 |
- --mount=type=bind,source=uv.lock,target=uv.lock \ |
|
14 |
- --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ |
|
15 |
- uv sync --frozen --no-install-project |
|
13 |
+ --mount=type=bind,source=uv.lock,target=uv.lock \ |
|
14 |
+ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ |
|
15 |
+ uv sync --frozen --no-install-project |
|
16 | 16 |
COPY ./src ./pyproject.toml ./uv.lock ./ |
17 | 17 |
RUN --mount=type=cache,target=/root/.cache/uv \ |
18 |
- uv sync --frozen --extra ui |
|
18 |
+ uv sync --frozen --extra ui |
|
19 | 19 |
ENV WHISPER__MODEL=Systran/faster-whisper-small |
20 | 20 |
ENV UVICORN_HOST=0.0.0.0 |
21 | 21 |
ENV UVICORN_PORT=8000 |
--- Dockerfile.cuda
+++ Dockerfile.cuda
... | ... | @@ -3,20 +3,20 @@ |
3 | 3 |
# `ffmpeg` is installed because without it `gradio` won't work with mp3(possible others as well) files |
4 | 4 |
# hadolint ignore=DL3008 |
5 | 5 |
RUN apt-get update && \ |
6 |
- DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ffmpeg python3.12 && \ |
|
7 |
- apt-get clean && \ |
|
8 |
- rm -rf /var/lib/apt/lists/* |
|
6 |
+ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ffmpeg python3.12 && \ |
|
7 |
+ apt-get clean && \ |
|
8 |
+ rm -rf /var/lib/apt/lists/* |
|
9 | 9 |
COPY --from=ghcr.io/astral-sh/uv:0.5.9 /uv /bin/uv |
10 | 10 |
WORKDIR /root/faster-whisper-server |
11 | 11 |
# https://docs.astral.sh/uv/guides/integration/docker/#intermediate-layers |
12 | 12 |
RUN --mount=type=cache,target=/root/.cache/uv \ |
13 |
- --mount=type=bind,source=uv.lock,target=uv.lock \ |
|
14 |
- --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ |
|
15 |
- uv sync --frozen --no-install-project |
|
13 |
+ --mount=type=bind,source=uv.lock,target=uv.lock \ |
|
14 |
+ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ |
|
15 |
+ uv sync --frozen --no-install-project |
|
16 | 16 |
COPY ./src ./pyproject.toml ./uv.lock ./ |
17 | 17 |
RUN --mount=type=cache,target=/root/.cache/uv \ |
18 |
- uv sync --frozen --extra ui |
|
18 |
+ uv sync --frozen --extra ui --extra opentelemetry |
|
19 | 19 |
ENV WHISPER__MODEL=Systran/faster-whisper-large-v3 |
20 | 20 |
ENV UVICORN_HOST=0.0.0.0 |
21 | 21 |
ENV UVICORN_PORT=8000 |
22 |
-CMD ["uv", "run", "uvicorn", "--factory", "faster_whisper_server.main:create_app"] |
|
22 |
+CMD ["uv", "run", "opentelemetry-instrument", "uvicorn", "--factory", "faster_whisper_server.main:create_app"] |
--- Taskfile.yaml
+++ Taskfile.yaml
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 |
server: |
4 | 4 |
cmds: |
5 | 5 |
- pkill --signal SIGKILL --echo --full 'uvicorn --factory --host 0.0.0.0 faster_whisper_server.main:create_app' || true |
6 |
- - uvicorn --factory --host 0.0.0.0 faster_whisper_server.main:create_app {{.CLI_ARGS}} |
|
6 |
+ - opentelemetry-instrument uvicorn --factory --host 0.0.0.0 faster_whisper_server.main:create_app {{.CLI_ARGS}} |
|
7 | 7 |
sources: |
8 | 8 |
- src/**/*.py |
9 | 9 |
test: |
--- compose.yaml
+++ compose.yaml
... | ... | @@ -1,4 +1,6 @@ |
1 | 1 |
# TODO: https://docs.astral.sh/uv/guides/integration/docker/#configuring-watch-with-docker-compose |
2 |
+include: |
|
3 |
+ - observability-compose.yaml |
|
2 | 4 |
services: |
3 | 5 |
faster-whisper-server-cuda: |
4 | 6 |
image: fedirz/faster-whisper-server:latest-cuda |
+++ configuration/grafana/datasources.yaml
... | ... | @@ -0,0 +1,23 @@ |
1 | +apiVersion: 1 | |
2 | +datasources: | |
3 | + - name: tempo | |
4 | + type: tempo | |
5 | + access: proxy | |
6 | + url: http://tempo:3200 | |
7 | + editable: true | |
8 | + jsonData: | |
9 | + tracesToLogsV2: | |
10 | + datasourceUid: loki | |
11 | + filterByTraceID: true | |
12 | + lokiSearch: | |
13 | + datasourceUid: loki | |
14 | + - name: loki | |
15 | + type: loki | |
16 | + access: proxy | |
17 | + url: http://loki:3100 | |
18 | + editable: true | |
19 | + - name: prometheus | |
20 | + type: prometheus | |
21 | + editable: true | |
22 | + url: http://prometheus:9090 | |
23 | +# TODO: https://grafana.com/docs/tempo/latest/getting-started/metrics-from-traces/ |
+++ configuration/loki.yaml
... | ... | @@ -0,0 +1,41 @@ |
1 | +# https://github.com/grafana/loki/blob/811f5f015cd5da4e25d800307b905c3385406be3/docs/sources/configure/examples/configuration-examples.md | |
2 | + | |
3 | +auth_enabled: false # default: true | |
4 | +# https://grafana.com/docs/loki/latest/configure/#server | |
5 | +server: | |
6 | + http_listen_port: 3100 # default: 3100 | |
7 | + grpc_listen_port: 9095 # default: 9095 | |
8 | + log_level: info # default: info | |
9 | + log_format: json # default: logfmt | |
10 | +limits_config: | |
11 | + allow_structured_metadata: true # needed for OTEL | |
12 | + volume_enabled: true # not sure what this does | |
13 | +common: | |
14 | + ring: | |
15 | + instance_addr: 0.0.0.0 | |
16 | + kvstore: | |
17 | + store: inmemory | |
18 | + replication_factor: 1 | |
19 | + path_prefix: /tmp/loki | |
20 | +storage_config: | |
21 | + tsdb_shipper: | |
22 | + active_index_directory: /tmp/loki/index | |
23 | + cache_location: /tmp/loki/index_cache | |
24 | + filesystem: | |
25 | + directory: /tmp/loki/chunks | |
26 | +pattern_ingester: | |
27 | + enabled: true | |
28 | +analytics: | |
29 | + reporting_enabled: false # default: true | |
30 | +tracing: | |
31 | + enabled: true # default: false | |
32 | +# https://grafana.com/docs/loki/latest/configure/#schema_config | |
33 | +schema_config: | |
34 | + configs: | |
35 | + - from: 2020-05-15 | |
36 | + store: tsdb | |
37 | + object_store: filesystem | |
38 | + schema: v13 | |
39 | + index: | |
40 | + prefix: index_ | |
41 | + period: 24h |
+++ configuration/opentelemetry-collector.yaml
... | ... | @@ -0,0 +1,46 @@ |
1 | +receivers: | |
2 | + otlp: | |
3 | + protocols: | |
4 | + grpc: | |
5 | + endpoint: 0.0.0.0:4317 | |
6 | + http: | |
7 | + endpoint: 0.0.0.0:4318 | |
8 | +processors: | |
9 | + batch: | |
10 | +exporters: | |
11 | + otlp/tempo: | |
12 | + endpoint: http://tempo:4317 | |
13 | + tls: | |
14 | + insecure: true | |
15 | + prometheus: | |
16 | + endpoint: 0.0.0.0:8889 | |
17 | + otlphttp/loki: | |
18 | + # https://github.com/grafana/loki/issues/5346 | |
19 | + # endpoint: http://loki:3100/otlp/v1/logs | |
20 | + endpoint: http://loki:3100/otlp | |
21 | + tls: | |
22 | + insecure: true | |
23 | + debug: | |
24 | + verbosity: detailed | |
25 | +extensions: | |
26 | + health_check: | |
27 | + endpoint: 0.0.0.0:13133 # default port | |
28 | +service: | |
29 | + extensions: [health_check] | |
30 | + telemetry: | |
31 | + logs: | |
32 | + level: debug | |
33 | + # development: true | |
34 | + pipelines: | |
35 | + traces: | |
36 | + receivers: [otlp] | |
37 | + processors: [batch] | |
38 | + exporters: [otlp/tempo] | |
39 | + metrics: | |
40 | + receivers: [otlp] | |
41 | + processors: [batch] | |
42 | + exporters: [prometheus] | |
43 | + logs: | |
44 | + receivers: [otlp] | |
45 | + processors: [batch] | |
46 | + exporters: [otlphttp/loki] |
+++ configuration/prometheus.yaml
... | ... | @@ -0,0 +1,6 @@ |
1 | +global: | |
2 | + scrape_interval: 5s | |
3 | +scrape_configs: | |
4 | + - job_name: "opentelemetry-collector" | |
5 | + static_configs: | |
6 | + - targets: ["opentelemetry-collector:8889"] |
+++ configuration/tempo.yaml
... | ... | @@ -0,0 +1,19 @@ |
1 | +server: | |
2 | + http_listen_port: 3200 # default: 80 | |
3 | + grpc_listen_port: 9095 # default: 9095 | |
4 | + | |
5 | +usage_report: | |
6 | + reporting_enabled: false | |
7 | + | |
8 | +distributor: | |
9 | + receivers: | |
10 | + otlp: | |
11 | + protocols: | |
12 | + grpc: | |
13 | + | |
14 | +# TODO: S3 storage | |
15 | +storage: | |
16 | + trace: | |
17 | + backend: local | |
18 | + local: | |
19 | + path: /tmp/tempo/traces |
+++ observability-compose.yaml
... | ... | @@ -0,0 +1,73 @@ |
1 | +services: | |
2 | + opentelemetry-collector: | |
3 | + image: otel/opentelemetry-collector-contrib:0.107.0 | |
4 | + command: ["--config=/etc/opentelemetry-collector.yaml"] | |
5 | + volumes: | |
6 | + - ./configuration/opentelemetry-collector.yaml:/etc/opentelemetry-collector.yaml | |
7 | + ports: | |
8 | + # NOTE: when `faster-whisper-server` is also running as a Docker Compose service, this doesn't need to be exposed. | |
9 | + - 4317:4317 # OTLP gRPC receiver | |
10 | + # - 4318:4318 # OTLP HTTP receiver | |
11 | + # - 8888:8888 # Prometheus metrics exposed by the Collector | |
12 | + # - 8889:8889 # Prometheus exporter metrics | |
13 | + # - 13133:13133 # health_check extension | |
14 | + # NOTE: `healthcheck` can't be set up, as the container doesn't have a shell to run the healthcheck command. | |
15 | + loki: | |
16 | + image: grafana/loki:3.0.0 | |
17 | + command: ["-config.file=/etc/loki.yaml"] | |
18 | + volumes: | |
19 | + - ./configuration/loki.yaml:/etc/loki.yaml | |
20 | + - loki-data:/loki | |
21 | + ports: | |
22 | + - "3100:3100" | |
23 | + healthcheck: | |
24 | + # NOTE: doesn't have a proper healthcheck endpoint | |
25 | + test: wget --no-verbose --tries=1 --spider http://localhost:3100/ready || exit 1 | |
26 | + interval: 5s | |
27 | + timeout: 5s | |
28 | + retries: 3 | |
29 | + prometheus: | |
30 | + image: prom/prometheus:v2.55.0 | |
31 | + command: ["--config.file=/etc/prometheus.yaml"] | |
32 | + volumes: | |
33 | + - ./configuration/prometheus.yaml:/etc/prometheus.yaml | |
34 | + - prometheus-data:/prometheus | |
35 | + healthcheck: | |
36 | + test: wget --no-verbose --tries=1 --spider http://localhost:9090/-/healthy || exit 1 | |
37 | + interval: 5s | |
38 | + timeout: 5s | |
39 | + retries: 3 | |
40 | + tempo: | |
41 | + image: grafana/tempo:2.5.0 | |
42 | + command: ["-config.file=/etc/tempo.yaml"] | |
43 | + volumes: | |
44 | + - ./configuration/tempo.yaml:/etc/tempo.yaml | |
45 | + - tempo-data:/tmp | |
46 | + # https://github.com/grafana/tempo/issues/1657#issuecomment-2049987178 | |
47 | + # - tempo-data:/tmp/tempo | |
48 | + healthcheck: | |
49 | + test: wget --no-verbose --tries=1 --spider http://localhost:3200/status || exit 1 | |
50 | + interval: 5s | |
51 | + timeout: 5s | |
52 | + retries: 3 | |
53 | + grafana: | |
54 | + image: grafana/grafana:11.3.0 | |
55 | + volumes: | |
56 | + - ./configuration/grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml | |
57 | + - grafana-data:/var/lib/grafana | |
58 | + environment: | |
59 | + - GF_AUTH_ANONYMOUS_ENABLED=true | |
60 | + - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin | |
61 | + - GF_AUTH_DISABLE_LOGIN_FORM=true | |
62 | + ports: | |
63 | + - "3000:3000" | |
64 | + healthcheck: | |
65 | + test: wget --no-verbose --tries=1 --spider http://localhost:3000/api/health || exit 1 | |
66 | + interval: 5s | |
67 | + timeout: 5s | |
68 | + retries: 3 | |
69 | +volumes: | |
70 | + loki-data: | |
71 | + prometheus-data: | |
72 | + tempo-data: | |
73 | + grafana-data: |
--- pyproject.toml
+++ pyproject.toml
... | ... | @@ -43,6 +43,20 @@ |
43 | 43 |
"httpx-sse>=0.4.0", |
44 | 44 |
"openai>=1.48.0", |
45 | 45 |
] |
46 |
+opentelemetry = [ |
|
47 |
+ "opentelemetry-distro>=0.48b0", |
|
48 |
+ "opentelemetry-exporter-otlp>=1.27.0", |
|
49 |
+ "opentelemetry-instrumentation-asyncio==0.48b0", |
|
50 |
+ "opentelemetry-instrumentation-logging==0.48b0", |
|
51 |
+ "opentelemetry-instrumentation-threading==0.48b0", |
|
52 |
+ "opentelemetry-instrumentation-urllib==0.48b0", |
|
53 |
+ # "opentelemetry-instrumentation-wsgi==0.48b0" |
|
54 |
+ "opentelemetry-instrumentation-fastapi==0.48b0", |
|
55 |
+ "opentelemetry-instrumentation-grpc==0.48b0", |
|
56 |
+ "opentelemetry-instrumentation-httpx==0.48b0", |
|
57 |
+ "opentelemetry-instrumentation-requests==0.48b0", |
|
58 |
+ "opentelemetry-instrumentation-urllib3==0.48b0", |
|
59 |
+] |
|
46 | 60 |
|
47 | 61 |
[build-system] |
48 | 62 |
requires = ["hatchling"] |
--- uv.lock
+++ uv.lock
... | ... | @@ -40,6 +40,15 @@ |
40 | 40 |
] |
41 | 41 |
|
42 | 42 |
[[package]] |
43 |
+name = "asgiref" |
|
44 |
+version = "3.8.1" |
|
45 |
+source = { registry = "https://pypi.org/simple" } |
|
46 |
+sdist = { url = "https://files.pythonhosted.org/packages/29/38/b3395cc9ad1b56d2ddac9970bc8f4141312dbaec28bc7c218b0dfafd0f42/asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590", size = 35186 } |
|
47 |
+wheels = [ |
|
48 |
+ { url = "https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47", size = 23828 }, |
|
49 |
+] |
|
50 |
+ |
|
51 |
+[[package]] |
|
43 | 52 |
name = "av" |
44 | 53 |
version = "12.3.0" |
45 | 54 |
source = { registry = "https://pypi.org/simple" } |
... | ... | @@ -188,6 +197,18 @@ |
188 | 197 |
] |
189 | 198 |
|
190 | 199 |
[[package]] |
200 |
+name = "deprecated" |
|
201 |
+version = "1.2.14" |
|
202 |
+source = { registry = "https://pypi.org/simple" } |
|
203 |
+dependencies = [ |
|
204 |
+ { name = "wrapt" }, |
|
205 |
+] |
|
206 |
+sdist = { url = "https://files.pythonhosted.org/packages/92/14/1e41f504a246fc224d2ac264c227975427a85caf37c3979979edb9b1b232/Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3", size = 2974416 } |
|
207 |
+wheels = [ |
|
208 |
+ { url = "https://files.pythonhosted.org/packages/20/8d/778b7d51b981a96554f29136cd59ca7880bf58094338085bcf2a979a0e6a/Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c", size = 9561 }, |
|
209 |
+] |
|
210 |
+ |
|
211 |
+[[package]] |
|
191 | 212 |
name = "distlib" |
192 | 213 |
version = "0.3.9" |
193 | 214 |
source = { registry = "https://pypi.org/simple" } |
... | ... | @@ -283,6 +304,19 @@ |
283 | 304 |
{ name = "srt" }, |
284 | 305 |
{ name = "webvtt-py" }, |
285 | 306 |
] |
307 |
+opentelemetry = [ |
|
308 |
+ { name = "opentelemetry-distro" }, |
|
309 |
+ { name = "opentelemetry-exporter-otlp" }, |
|
310 |
+ { name = "opentelemetry-instrumentation-asyncio" }, |
|
311 |
+ { name = "opentelemetry-instrumentation-fastapi" }, |
|
312 |
+ { name = "opentelemetry-instrumentation-grpc" }, |
|
313 |
+ { name = "opentelemetry-instrumentation-httpx" }, |
|
314 |
+ { name = "opentelemetry-instrumentation-logging" }, |
|
315 |
+ { name = "opentelemetry-instrumentation-requests" }, |
|
316 |
+ { name = "opentelemetry-instrumentation-threading" }, |
|
317 |
+ { name = "opentelemetry-instrumentation-urllib" }, |
|
318 |
+ { name = "opentelemetry-instrumentation-urllib3" }, |
|
319 |
+] |
|
286 | 320 |
ui = [ |
287 | 321 |
{ name = "gradio" }, |
288 | 322 |
{ name = "httpx" }, |
... | ... | @@ -306,6 +340,17 @@ |
306 | 340 |
{ name = "mkdocstrings", extras = ["python"], marker = "extra == 'dev'", specifier = ">=0.26.1" }, |
307 | 341 |
{ name = "numpy", specifier = ">=2.1.1" }, |
308 | 342 |
{ name = "openai", marker = "extra == 'ui'", specifier = ">=1.48.0" }, |
343 |
+ { name = "opentelemetry-distro", marker = "extra == 'opentelemetry'", specifier = ">=0.48b0" }, |
|
344 |
+ { name = "opentelemetry-exporter-otlp", marker = "extra == 'opentelemetry'", specifier = ">=1.27.0" }, |
|
345 |
+ { name = "opentelemetry-instrumentation-asyncio", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
346 |
+ { name = "opentelemetry-instrumentation-fastapi", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
347 |
+ { name = "opentelemetry-instrumentation-grpc", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
348 |
+ { name = "opentelemetry-instrumentation-httpx", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
349 |
+ { name = "opentelemetry-instrumentation-logging", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
350 |
+ { name = "opentelemetry-instrumentation-requests", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
351 |
+ { name = "opentelemetry-instrumentation-threading", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
352 |
+ { name = "opentelemetry-instrumentation-urllib", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
353 |
+ { name = "opentelemetry-instrumentation-urllib3", marker = "extra == 'opentelemetry'", specifier = "==0.48b0" }, |
|
309 | 354 |
{ name = "piper-phonemize", marker = "platform_machine == 'x86_64'", url = "https://github.com/fedirz/piper-phonemize/raw/refs/heads/master/dist/piper_phonemize-1.2.0-cp312-cp312-manylinux_2_28_x86_64.whl" }, |
310 | 355 |
{ name = "piper-tts", marker = "platform_machine == 'x86_64'", specifier = ">=1.2.0" }, |
311 | 356 |
{ name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.0.1" }, |
... | ... | @@ -373,6 +418,18 @@ |
373 | 418 |
] |
374 | 419 |
|
375 | 420 |
[[package]] |
421 |
+name = "googleapis-common-protos" |
|
422 |
+version = "1.65.0" |
|
423 |
+source = { registry = "https://pypi.org/simple" } |
|
424 |
+dependencies = [ |
|
425 |
+ { name = "protobuf" }, |
|
426 |
+] |
|
427 |
+sdist = { url = "https://files.pythonhosted.org/packages/53/3b/1599ceafa875ffb951480c8c74f4b77646a6b80e80970698f2aa93c216ce/googleapis_common_protos-1.65.0.tar.gz", hash = "sha256:334a29d07cddc3aa01dee4988f9afd9b2916ee2ff49d6b757155dc0d197852c0", size = 113657 } |
|
428 |
+wheels = [ |
|
429 |
+ { url = "https://files.pythonhosted.org/packages/ec/08/49bfe7cf737952cc1a9c43e80cc258ed45dad7f183c5b8276fc94cb3862d/googleapis_common_protos-1.65.0-py2.py3-none-any.whl", hash = "sha256:2972e6c496f435b92590fd54045060867f3fe9be2c82ab148fc8885035479a63", size = 220890 }, |
|
430 |
+] |
|
431 |
+ |
|
432 |
+[[package]] |
|
376 | 433 |
name = "gradio" |
377 | 434 |
version = "5.0.2" |
378 | 435 |
source = { registry = "https://pypi.org/simple" } |
... | ... | @@ -435,6 +492,23 @@ |
435 | 492 |
sdist = { url = "https://files.pythonhosted.org/packages/ae/d1/dcd486d6d577cb12490c78cfa88679fb9b481b227807f14632ba9bd82245/griffe-1.3.1.tar.gz", hash = "sha256:3f86a716b631a4c0f96a43cb75d05d3c85975003c20540426c0eba3b0581c56a", size = 382412 } |
436 | 493 |
wheels = [ |
437 | 494 |
{ url = "https://files.pythonhosted.org/packages/1b/19/63971981a20aecfa7cbd07c5cac6914cf1180b3dd8db5fe8ab2ea410315f/griffe-1.3.1-py3-none-any.whl", hash = "sha256:940aeb630bc3054b4369567f150b6365be6f11eef46b0ed8623aea96e6d17b19", size = 126902 }, |
495 |
+] |
|
496 |
+ |
|
497 |
+[[package]] |
|
498 |
+name = "grpcio" |
|
499 |
+version = "1.67.1" |
|
500 |
+source = { registry = "https://pypi.org/simple" } |
|
501 |
+sdist = { url = "https://files.pythonhosted.org/packages/20/53/d9282a66a5db45981499190b77790570617a604a38f3d103d0400974aeb5/grpcio-1.67.1.tar.gz", hash = "sha256:3dc2ed4cabea4dc14d5e708c2b426205956077cc5de419b4d4079315017e9732", size = 12580022 } |
|
502 |
+wheels = [ |
|
503 |
+ { url = "https://files.pythonhosted.org/packages/6e/25/6f95bd18d5f506364379eabc0d5874873cc7dbdaf0757df8d1e82bc07a88/grpcio-1.67.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:267d1745894200e4c604958da5f856da6293f063327cb049a51fe67348e4f953", size = 5089809 }, |
|
504 |
+ { url = "https://files.pythonhosted.org/packages/10/3f/d79e32e5d0354be33a12db2267c66d3cfeff700dd5ccdd09fd44a3ff4fb6/grpcio-1.67.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:85f69fdc1d28ce7cff8de3f9c67db2b0ca9ba4449644488c1e0303c146135ddb", size = 10981985 }, |
|
505 |
+ { url = "https://files.pythonhosted.org/packages/21/f2/36fbc14b3542e3a1c20fb98bd60c4732c55a44e374a4eb68f91f28f14aab/grpcio-1.67.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:f26b0b547eb8d00e195274cdfc63ce64c8fc2d3e2d00b12bf468ece41a0423a0", size = 5588770 }, |
|
506 |
+ { url = "https://files.pythonhosted.org/packages/0d/af/bbc1305df60c4e65de8c12820a942b5e37f9cf684ef5e49a63fbb1476a73/grpcio-1.67.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4422581cdc628f77302270ff839a44f4c24fdc57887dc2a45b7e53d8fc2376af", size = 6214476 }, |
|
507 |
+ { url = "https://files.pythonhosted.org/packages/92/cf/1d4c3e93efa93223e06a5c83ac27e32935f998bc368e276ef858b8883154/grpcio-1.67.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7616d2ded471231c701489190379e0c311ee0a6c756f3c03e6a62b95a7146e", size = 5850129 }, |
|
508 |
+ { url = "https://files.pythonhosted.org/packages/ae/ca/26195b66cb253ac4d5ef59846e354d335c9581dba891624011da0e95d67b/grpcio-1.67.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8a00efecde9d6fcc3ab00c13f816313c040a28450e5e25739c24f432fc6d3c75", size = 6568489 }, |
|
509 |
+ { url = "https://files.pythonhosted.org/packages/d1/94/16550ad6b3f13b96f0856ee5dfc2554efac28539ee84a51d7b14526da985/grpcio-1.67.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:699e964923b70f3101393710793289e42845791ea07565654ada0969522d0a38", size = 6149369 }, |
|
510 |
+ { url = "https://files.pythonhosted.org/packages/33/0d/4c3b2587e8ad7f121b597329e6c2620374fccbc2e4e1aa3c73ccc670fde4/grpcio-1.67.1-cp312-cp312-win32.whl", hash = "sha256:4e7b904484a634a0fff132958dabdb10d63e0927398273917da3ee103e8d1f78", size = 3599176 }, |
|
511 |
+ { url = "https://files.pythonhosted.org/packages/7d/36/0c03e2d80db69e2472cf81c6123aa7d14741de7cf790117291a703ae6ae1/grpcio-1.67.1-cp312-cp312-win_amd64.whl", hash = "sha256:5721e66a594a6c4204458004852719b38f3d5522082be9061d6510b455c90afc", size = 4346574 }, |
|
438 | 512 |
] |
439 | 513 |
|
440 | 514 |
[[package]] |
... | ... | @@ -530,6 +604,18 @@ |
530 | 604 |
sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } |
531 | 605 |
wheels = [ |
532 | 606 |
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, |
607 |
+] |
|
608 |
+ |
|
609 |
+[[package]] |
|
610 |
+name = "importlib-metadata" |
|
611 |
+version = "8.4.0" |
|
612 |
+source = { registry = "https://pypi.org/simple" } |
|
613 |
+dependencies = [ |
|
614 |
+ { name = "zipp" }, |
|
615 |
+] |
|
616 |
+sdist = { url = "https://files.pythonhosted.org/packages/c0/bd/fa8ce65b0a7d4b6d143ec23b0f5fd3f7ab80121078c465bc02baeaab22dc/importlib_metadata-8.4.0.tar.gz", hash = "sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5", size = 54320 } |
|
617 |
+wheels = [ |
|
618 |
+ { url = "https://files.pythonhosted.org/packages/c0/14/362d31bf1076b21e1bcdcb0dc61944822ff263937b804a79231df2774d28/importlib_metadata-8.4.0-py3-none-any.whl", hash = "sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1", size = 26269 }, |
|
533 | 619 |
] |
534 | 620 |
|
535 | 621 |
[[package]] |
... | ... | @@ -853,6 +939,306 @@ |
853 | 939 |
] |
854 | 940 |
|
855 | 941 |
[[package]] |
942 |
+name = "opentelemetry-api" |
|
943 |
+version = "1.27.0" |
|
944 |
+source = { registry = "https://pypi.org/simple" } |
|
945 |
+dependencies = [ |
|
946 |
+ { name = "deprecated" }, |
|
947 |
+ { name = "importlib-metadata" }, |
|
948 |
+] |
|
949 |
+sdist = { url = "https://files.pythonhosted.org/packages/c9/83/93114b6de85a98963aec218a51509a52ed3f8de918fe91eb0f7299805c3f/opentelemetry_api-1.27.0.tar.gz", hash = "sha256:ed673583eaa5f81b5ce5e86ef7cdaf622f88ef65f0b9aab40b843dcae5bef342", size = 62693 } |
|
950 |
+wheels = [ |
|
951 |
+ { url = "https://files.pythonhosted.org/packages/fb/1f/737dcdbc9fea2fa96c1b392ae47275165a7c641663fbb08a8d252968eed2/opentelemetry_api-1.27.0-py3-none-any.whl", hash = "sha256:953d5871815e7c30c81b56d910c707588000fff7a3ca1c73e6531911d53065e7", size = 63970 }, |
|
952 |
+] |
|
953 |
+ |
|
954 |
+[[package]] |
|
955 |
+name = "opentelemetry-distro" |
|
956 |
+version = "0.48b0" |
|
957 |
+source = { registry = "https://pypi.org/simple" } |
|
958 |
+dependencies = [ |
|
959 |
+ { name = "opentelemetry-api" }, |
|
960 |
+ { name = "opentelemetry-instrumentation" }, |
|
961 |
+ { name = "opentelemetry-sdk" }, |
|
962 |
+] |
|
963 |
+sdist = { url = "https://files.pythonhosted.org/packages/f4/09/423e17c439ed24c45110affe84aad886a536b7871a42637d2ad14a179b47/opentelemetry_distro-0.48b0.tar.gz", hash = "sha256:5cb15915780ac4972583286a56683d43bd4ca95371d72f5f3f179c8b0b2ddc91", size = 2556 } |
|
964 |
+wheels = [ |
|
965 |
+ { url = "https://files.pythonhosted.org/packages/82/cf/fa9a5fe954f1942e03b319ae0e319ebc93d9f984b548bcd9b3f232a1434d/opentelemetry_distro-0.48b0-py3-none-any.whl", hash = "sha256:b2f8fce114325b020769af3b9bf503efb8af07efc190bd1b9deac7843171664a", size = 3321 }, |
|
966 |
+] |
|
967 |
+ |
|
968 |
+[[package]] |
|
969 |
+name = "opentelemetry-exporter-otlp" |
|
970 |
+version = "1.27.0" |
|
971 |
+source = { registry = "https://pypi.org/simple" } |
|
972 |
+dependencies = [ |
|
973 |
+ { name = "opentelemetry-exporter-otlp-proto-grpc" }, |
|
974 |
+ { name = "opentelemetry-exporter-otlp-proto-http" }, |
|
975 |
+] |
|
976 |
+sdist = { url = "https://files.pythonhosted.org/packages/fc/d3/8156cc14e8f4573a3572ee7f30badc7aabd02961a09acc72ab5f2c789ef1/opentelemetry_exporter_otlp-1.27.0.tar.gz", hash = "sha256:4a599459e623868cc95d933c301199c2367e530f089750e115599fccd67cb2a1", size = 6166 } |
|
977 |
+wheels = [ |
|
978 |
+ { url = "https://files.pythonhosted.org/packages/59/6d/95e1fc2c8d945a734db32e87a5aa7a804f847c1657a21351df9338bd1c9c/opentelemetry_exporter_otlp-1.27.0-py3-none-any.whl", hash = "sha256:7688791cbdd951d71eb6445951d1cfbb7b6b2d7ee5948fac805d404802931145", size = 7001 }, |
|
979 |
+] |
|
980 |
+ |
|
981 |
+[[package]] |
|
982 |
+name = "opentelemetry-exporter-otlp-proto-common" |
|
983 |
+version = "1.27.0" |
|
984 |
+source = { registry = "https://pypi.org/simple" } |
|
985 |
+dependencies = [ |
|
986 |
+ { name = "opentelemetry-proto" }, |
|
987 |
+] |
|
988 |
+sdist = { url = "https://files.pythonhosted.org/packages/cd/2e/7eaf4ba595fb5213cf639c9158dfb64aacb2e4c7d74bfa664af89fa111f4/opentelemetry_exporter_otlp_proto_common-1.27.0.tar.gz", hash = "sha256:159d27cf49f359e3798c4c3eb8da6ef4020e292571bd8c5604a2a573231dd5c8", size = 17860 } |
|
989 |
+wheels = [ |
|
990 |
+ { url = "https://files.pythonhosted.org/packages/41/27/4610ab3d9bb3cde4309b6505f98b3aabca04a26aa480aa18cede23149837/opentelemetry_exporter_otlp_proto_common-1.27.0-py3-none-any.whl", hash = "sha256:675db7fffcb60946f3a5c43e17d1168a3307a94a930ecf8d2ea1f286f3d4f79a", size = 17848 }, |
|
991 |
+] |
|
992 |
+ |
|
993 |
+[[package]] |
|
994 |
+name = "opentelemetry-exporter-otlp-proto-grpc" |
|
995 |
+version = "1.27.0" |
|
996 |
+source = { registry = "https://pypi.org/simple" } |
|
997 |
+dependencies = [ |
|
998 |
+ { name = "deprecated" }, |
|
999 |
+ { name = "googleapis-common-protos" }, |
|
1000 |
+ { name = "grpcio" }, |
|
1001 |
+ { name = "opentelemetry-api" }, |
|
1002 |
+ { name = "opentelemetry-exporter-otlp-proto-common" }, |
|
1003 |
+ { name = "opentelemetry-proto" }, |
|
1004 |
+ { name = "opentelemetry-sdk" }, |
|
1005 |
+] |
|
1006 |
+sdist = { url = "https://files.pythonhosted.org/packages/a1/d0/c1e375b292df26e0ffebf194e82cd197e4c26cc298582bda626ce3ce74c5/opentelemetry_exporter_otlp_proto_grpc-1.27.0.tar.gz", hash = "sha256:af6f72f76bcf425dfb5ad11c1a6d6eca2863b91e63575f89bb7b4b55099d968f", size = 26244 } |
|
1007 |
+wheels = [ |
|
1008 |
+ { url = "https://files.pythonhosted.org/packages/8d/80/32217460c2c64c0568cea38410124ff680a9b65f6732867bbf857c4d8626/opentelemetry_exporter_otlp_proto_grpc-1.27.0-py3-none-any.whl", hash = "sha256:56b5bbd5d61aab05e300d9d62a6b3c134827bbd28d0b12f2649c2da368006c9e", size = 18541 }, |
|
1009 |
+] |
|
1010 |
+ |
|
1011 |
+[[package]] |
|
1012 |
+name = "opentelemetry-exporter-otlp-proto-http" |
|
1013 |
+version = "1.27.0" |
|
1014 |
+source = { registry = "https://pypi.org/simple" } |
|
1015 |
+dependencies = [ |
|
1016 |
+ { name = "deprecated" }, |
|
1017 |
+ { name = "googleapis-common-protos" }, |
|
1018 |
+ { name = "opentelemetry-api" }, |
|
1019 |
+ { name = "opentelemetry-exporter-otlp-proto-common" }, |
|
1020 |
+ { name = "opentelemetry-proto" }, |
|
1021 |
+ { name = "opentelemetry-sdk" }, |
|
1022 |
+ { name = "requests" }, |
|
1023 |
+] |
|
1024 |
+sdist = { url = "https://files.pythonhosted.org/packages/31/0a/f05c55e8913bf58a033583f2580a0ec31a5f4cf2beacc9e286dcb74d6979/opentelemetry_exporter_otlp_proto_http-1.27.0.tar.gz", hash = "sha256:2103479092d8eb18f61f3fbff084f67cc7f2d4a7d37e75304b8b56c1d09ebef5", size = 15059 } |
|
1025 |
+wheels = [ |
|
1026 |
+ { url = "https://files.pythonhosted.org/packages/2d/8d/4755884afc0b1db6000527cac0ca17273063b6142c773ce4ecd307a82e72/opentelemetry_exporter_otlp_proto_http-1.27.0-py3-none-any.whl", hash = "sha256:688027575c9da42e179a69fe17e2d1eba9b14d81de8d13553a21d3114f3b4d75", size = 17203 }, |
|
1027 |
+] |
|
1028 |
+ |
|
1029 |
+[[package]] |
|
1030 |
+name = "opentelemetry-instrumentation" |
|
1031 |
+version = "0.48b0" |
|
1032 |
+source = { registry = "https://pypi.org/simple" } |
|
1033 |
+dependencies = [ |
|
1034 |
+ { name = "opentelemetry-api" }, |
|
1035 |
+ { name = "setuptools" }, |
|
1036 |
+ { name = "wrapt" }, |
|
1037 |
+] |
|
1038 |
+sdist = { url = "https://files.pythonhosted.org/packages/04/0e/d9394839af5d55c8feb3b22cd11138b953b49739b20678ca96289e30f904/opentelemetry_instrumentation-0.48b0.tar.gz", hash = "sha256:94929685d906380743a71c3970f76b5f07476eea1834abd5dd9d17abfe23cc35", size = 24724 } |
|
1039 |
+wheels = [ |
|
1040 |
+ { url = "https://files.pythonhosted.org/packages/0a/7f/405c41d4f359121376c9d5117dcf68149b8122d3f6c718996d037bd4d800/opentelemetry_instrumentation-0.48b0-py3-none-any.whl", hash = "sha256:a69750dc4ba6a5c3eb67986a337185a25b739966d80479befe37b546fc870b44", size = 29449 }, |
|
1041 |
+] |
|
1042 |
+ |
|
1043 |
+[[package]] |
|
1044 |
+name = "opentelemetry-instrumentation-asgi" |
|
1045 |
+version = "0.48b0" |
|
1046 |
+source = { registry = "https://pypi.org/simple" } |
|
1047 |
+dependencies = [ |
|
1048 |
+ { name = "asgiref" }, |
|
1049 |
+ { name = "opentelemetry-api" }, |
|
1050 |
+ { name = "opentelemetry-instrumentation" }, |
|
1051 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1052 |
+ { name = "opentelemetry-util-http" }, |
|
1053 |
+] |
|
1054 |
+sdist = { url = "https://files.pythonhosted.org/packages/44/ac/fd3d40bab3234ec3f5c052a815100676baaae1832fa1067935f11e5c59c6/opentelemetry_instrumentation_asgi-0.48b0.tar.gz", hash = "sha256:04c32174b23c7fa72ddfe192dad874954968a6a924608079af9952964ecdf785", size = 23435 } |
|
1055 |
+wheels = [ |
|
1056 |
+ { url = "https://files.pythonhosted.org/packages/db/74/a0e0d38622856597dd8e630f2bd793760485eb165708e11b8be1696bbb5a/opentelemetry_instrumentation_asgi-0.48b0-py3-none-any.whl", hash = "sha256:ddb1b5fc800ae66e85a4e2eca4d9ecd66367a8c7b556169d9e7b57e10676e44d", size = 15958 }, |
|
1057 |
+] |
|
1058 |
+ |
|
1059 |
+[[package]] |
|
1060 |
+name = "opentelemetry-instrumentation-asyncio" |
|
1061 |
+version = "0.48b0" |
|
1062 |
+source = { registry = "https://pypi.org/simple" } |
|
1063 |
+dependencies = [ |
|
1064 |
+ { name = "opentelemetry-api" }, |
|
1065 |
+ { name = "opentelemetry-instrumentation" }, |
|
1066 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1067 |
+ { name = "wrapt" }, |
|
1068 |
+] |
|
1069 |
+sdist = { url = "https://files.pythonhosted.org/packages/2d/cb/f7232878b8ce2ff5bf8f1801c691d596dc7292e62ae00488f357874f475c/opentelemetry_instrumentation_asyncio-0.48b0.tar.gz", hash = "sha256:f932eb49cb6050eb85905f600124e06868d4712b117ad7ac7c0af048f03b8fd4", size = 12641 } |
|
1070 |
+wheels = [ |
|
1071 |
+ { url = "https://files.pythonhosted.org/packages/af/5b/35eaaaa57c26f698c0d47a5bb2512805f7bc4cb47c6727c329f38acd9675/opentelemetry_instrumentation_asyncio-0.48b0-py3-none-any.whl", hash = "sha256:dfa8e80ba4c6ba9c17a9f1a0f7d9a8d09787a5407254efd2c9ed5ab7c478b027", size = 13235 }, |
|
1072 |
+] |
|
1073 |
+ |
|
1074 |
+[[package]] |
|
1075 |
+name = "opentelemetry-instrumentation-fastapi" |
|
1076 |
+version = "0.48b0" |
|
1077 |
+source = { registry = "https://pypi.org/simple" } |
|
1078 |
+dependencies = [ |
|
1079 |
+ { name = "opentelemetry-api" }, |
|
1080 |
+ { name = "opentelemetry-instrumentation" }, |
|
1081 |
+ { name = "opentelemetry-instrumentation-asgi" }, |
|
1082 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1083 |
+ { name = "opentelemetry-util-http" }, |
|
1084 |
+] |
|
1085 |
+sdist = { url = "https://files.pythonhosted.org/packages/58/20/43477da5850ef2cd3792715d442aecd051e885e0603b6ee5783b2104ba8f/opentelemetry_instrumentation_fastapi-0.48b0.tar.gz", hash = "sha256:21a72563ea412c0b535815aeed75fc580240f1f02ebc72381cfab672648637a2", size = 18497 } |
|
1086 |
+wheels = [ |
|
1087 |
+ { url = "https://files.pythonhosted.org/packages/ee/50/745ab075a3041b7a5f29a579d2c28eaad54f64b4589d8f9fd364c62cf0f3/opentelemetry_instrumentation_fastapi-0.48b0-py3-none-any.whl", hash = "sha256:afeb820a59e139d3e5d96619600f11ce0187658b8ae9e3480857dd790bc024f2", size = 11777 }, |
|
1088 |
+] |
|
1089 |
+ |
|
1090 |
+[[package]] |
|
1091 |
+name = "opentelemetry-instrumentation-grpc" |
|
1092 |
+version = "0.48b0" |
|
1093 |
+source = { registry = "https://pypi.org/simple" } |
|
1094 |
+dependencies = [ |
|
1095 |
+ { name = "opentelemetry-api" }, |
|
1096 |
+ { name = "opentelemetry-instrumentation" }, |
|
1097 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1098 |
+ { name = "wrapt" }, |
|
1099 |
+] |
|
1100 |
+sdist = { url = "https://files.pythonhosted.org/packages/1a/15/e7f8c1023dff7143ffbab017434d7f1f7014986fa76b9badbc1a3bd3ed3a/opentelemetry_instrumentation_grpc-0.48b0.tar.gz", hash = "sha256:b95c11056dc384a926c2a16b994d7caa2fcf73abe0fe8b4db3007d5c9cf0be81", size = 30759 } |
|
1101 |
+wheels = [ |
|
1102 |
+ { url = "https://files.pythonhosted.org/packages/69/41/e01925e976b68ad1e640f3a0a66f16b0f5d6b0a56b56096c076b030f7e7e/opentelemetry_instrumentation_grpc-0.48b0-py3-none-any.whl", hash = "sha256:50eb68fec49ceb1bbb0a06e5a2456bf6a5d7d56c7cecd152199f566f02030995", size = 27085 }, |
|
1103 |
+] |
|
1104 |
+ |
|
1105 |
+[[package]] |
|
1106 |
+name = "opentelemetry-instrumentation-httpx" |
|
1107 |
+version = "0.48b0" |
|
1108 |
+source = { registry = "https://pypi.org/simple" } |
|
1109 |
+dependencies = [ |
|
1110 |
+ { name = "opentelemetry-api" }, |
|
1111 |
+ { name = "opentelemetry-instrumentation" }, |
|
1112 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1113 |
+ { name = "opentelemetry-util-http" }, |
|
1114 |
+] |
|
1115 |
+sdist = { url = "https://files.pythonhosted.org/packages/d3/d9/c65d818607c16d1b7ea8d2de6111c6cecadf8d2fd38c1885a72733a7c6d3/opentelemetry_instrumentation_httpx-0.48b0.tar.gz", hash = "sha256:ee977479e10398931921fb995ac27ccdeea2e14e392cb27ef012fc549089b60a", size = 16931 } |
|
1116 |
+wheels = [ |
|
1117 |
+ { url = "https://files.pythonhosted.org/packages/c2/fe/f2daa9d6d988c093b8c7b1d35df675761a8ece0b600b035dc04982746c9d/opentelemetry_instrumentation_httpx-0.48b0-py3-none-any.whl", hash = "sha256:d94f9d612c82d09fe22944d1904a30a464c19bea2ba76be656c99a28ad8be8e5", size = 13900 }, |
|
1118 |
+] |
|
1119 |
+ |
|
1120 |
+[[package]] |
|
1121 |
+name = "opentelemetry-instrumentation-logging" |
|
1122 |
+version = "0.48b0" |
|
1123 |
+source = { registry = "https://pypi.org/simple" } |
|
1124 |
+dependencies = [ |
|
1125 |
+ { name = "opentelemetry-api" }, |
|
1126 |
+ { name = "opentelemetry-instrumentation" }, |
|
1127 |
+] |
|
1128 |
+sdist = { url = "https://files.pythonhosted.org/packages/22/3c/0d329da676f17ad3b527cdb8accf63681d99a6a458d355e4559fa31cd4a7/opentelemetry_instrumentation_logging-0.48b0.tar.gz", hash = "sha256:529eb13eedf57d6b2f94e20e996271db2957b817b9457fe4796365d6d4238dec", size = 9729 } |
|
1129 |
+wheels = [ |
|
1130 |
+ { url = "https://files.pythonhosted.org/packages/e0/c5/119676ba0bae61887b812d5777a521327a2335ff350cbbc8864e4200fdd7/opentelemetry_instrumentation_logging-0.48b0-py3-none-any.whl", hash = "sha256:75e5357d9b8c12071a19e1fef664dc1f430ef45874445c324ba4439a00972dc0", size = 12145 }, |
|
1131 |
+] |
|
1132 |
+ |
|
1133 |
+[[package]] |
|
1134 |
+name = "opentelemetry-instrumentation-requests" |
|
1135 |
+version = "0.48b0" |
|
1136 |
+source = { registry = "https://pypi.org/simple" } |
|
1137 |
+dependencies = [ |
|
1138 |
+ { name = "opentelemetry-api" }, |
|
1139 |
+ { name = "opentelemetry-instrumentation" }, |
|
1140 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1141 |
+ { name = "opentelemetry-util-http" }, |
|
1142 |
+] |
|
1143 |
+sdist = { url = "https://files.pythonhosted.org/packages/52/ac/5eb78efde21ff21d0ad5dc8c6cc6a0f8ae482ce8a46293c2f45a628b6166/opentelemetry_instrumentation_requests-0.48b0.tar.gz", hash = "sha256:67ab9bd877a0352ee0db4616c8b4ae59736ddd700c598ed907482d44f4c9a2b3", size = 14120 } |
|
1144 |
+wheels = [ |
|
1145 |
+ { url = "https://files.pythonhosted.org/packages/43/df/0df9226d1b14f29d23c07e6194b9fd5ad50e7d987b7fd13df7dcf718aeb1/opentelemetry_instrumentation_requests-0.48b0-py3-none-any.whl", hash = "sha256:d4f01852121d0bd4c22f14f429654a735611d4f7bf3cf93f244bdf1489b2233d", size = 12366 }, |
|
1146 |
+] |
|
1147 |
+ |
|
1148 |
+[[package]] |
|
1149 |
+name = "opentelemetry-instrumentation-threading" |
|
1150 |
+version = "0.48b0" |
|
1151 |
+source = { registry = "https://pypi.org/simple" } |
|
1152 |
+dependencies = [ |
|
1153 |
+ { name = "opentelemetry-api" }, |
|
1154 |
+ { name = "opentelemetry-instrumentation" }, |
|
1155 |
+ { name = "wrapt" }, |
|
1156 |
+] |
|
1157 |
+sdist = { url = "https://files.pythonhosted.org/packages/18/d0/362c906bb98acc20fe13c04840c11cc238908979bdec3cefc7c90e3eaf97/opentelemetry_instrumentation_threading-0.48b0.tar.gz", hash = "sha256:daef8a6fd06aa8b35594582d96ffb30954c4a9ae1ffdace7b00d0904fd650d2e", size = 8282 } |
|
1158 |
+wheels = [ |
|
1159 |
+ { url = "https://files.pythonhosted.org/packages/6a/00/223a9fb84b08b83d09612f2d8994142447f2cd08fdd0ddf5d1bf5d80eb68/opentelemetry_instrumentation_threading-0.48b0-py3-none-any.whl", hash = "sha256:e81cb3a5342bbbc3f40b4c3f5180629905d504e2f364dc436ecb1123491f4080", size = 9073 }, |
|
1160 |
+] |
|
1161 |
+ |
|
1162 |
+[[package]] |
|
1163 |
+name = "opentelemetry-instrumentation-urllib" |
|
1164 |
+version = "0.48b0" |
|
1165 |
+source = { registry = "https://pypi.org/simple" } |
|
1166 |
+dependencies = [ |
|
1167 |
+ { name = "opentelemetry-api" }, |
|
1168 |
+ { name = "opentelemetry-instrumentation" }, |
|
1169 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1170 |
+ { name = "opentelemetry-util-http" }, |
|
1171 |
+] |
|
1172 |
+sdist = { url = "https://files.pythonhosted.org/packages/05/4f/9887c18154de0ffabf4b7e0de923e3a6ea93f407a5dd245cb7202a495613/opentelemetry_instrumentation_urllib-0.48b0.tar.gz", hash = "sha256:a9db839b4248efc9b01628dc8aa886c1269a81cec84bc375d344239037823d48", size = 13830 } |
|
1173 |
+wheels = [ |
|
1174 |
+ { url = "https://files.pythonhosted.org/packages/da/6b/94774f730522cff6a18e7fe7b3fc48e3152c2b21f5bd94999231625340a1/opentelemetry_instrumentation_urllib-0.48b0-py3-none-any.whl", hash = "sha256:8115399fc786f5a46f30b158ab32a9cc77a248d421dcb0d411da657250388915", size = 12306 }, |
|
1175 |
+] |
|
1176 |
+ |
|
1177 |
+[[package]] |
|
1178 |
+name = "opentelemetry-instrumentation-urllib3" |
|
1179 |
+version = "0.48b0" |
|
1180 |
+source = { registry = "https://pypi.org/simple" } |
|
1181 |
+dependencies = [ |
|
1182 |
+ { name = "opentelemetry-api" }, |
|
1183 |
+ { name = "opentelemetry-instrumentation" }, |
|
1184 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1185 |
+ { name = "opentelemetry-util-http" }, |
|
1186 |
+ { name = "wrapt" }, |
|
1187 |
+] |
|
1188 |
+sdist = { url = "https://files.pythonhosted.org/packages/a3/95/aff5c7533096c8809b6d073fbbca6cbde057ce898355424c2d77c61fc456/opentelemetry_instrumentation_urllib3-0.48b0.tar.gz", hash = "sha256:6b03d6ee9b6e001cc73bb07ccf71bc42886eb006885ff6d53b5b00751bb01326", size = 15432 } |
|
1189 |
+wheels = [ |
|
1190 |
+ { url = "https://files.pythonhosted.org/packages/2e/36/ca3c9f077a3e682de59f9178a87c4580d051b01172cb5b4c3052de8f590e/opentelemetry_instrumentation_urllib3-0.48b0-py3-none-any.whl", hash = "sha256:3ba2b874d798996a105fcb887491ecf78c1c47dc39516c8544680b2e32fc8d18", size = 12846 }, |
|
1191 |
+] |
|
1192 |
+ |
|
1193 |
+[[package]] |
|
1194 |
+name = "opentelemetry-proto" |
|
1195 |
+version = "1.27.0" |
|
1196 |
+source = { registry = "https://pypi.org/simple" } |
|
1197 |
+dependencies = [ |
|
1198 |
+ { name = "protobuf" }, |
|
1199 |
+] |
|
1200 |
+sdist = { url = "https://files.pythonhosted.org/packages/9a/59/959f0beea798ae0ee9c979b90f220736fbec924eedbefc60ca581232e659/opentelemetry_proto-1.27.0.tar.gz", hash = "sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6", size = 34749 } |
|
1201 |
+wheels = [ |
|
1202 |
+ { url = "https://files.pythonhosted.org/packages/94/56/3d2d826834209b19a5141eed717f7922150224d1a982385d19a9444cbf8d/opentelemetry_proto-1.27.0-py3-none-any.whl", hash = "sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace", size = 52464 }, |
|
1203 |
+] |
|
1204 |
+ |
|
1205 |
+[[package]] |
|
1206 |
+name = "opentelemetry-sdk" |
|
1207 |
+version = "1.27.0" |
|
1208 |
+source = { registry = "https://pypi.org/simple" } |
|
1209 |
+dependencies = [ |
|
1210 |
+ { name = "opentelemetry-api" }, |
|
1211 |
+ { name = "opentelemetry-semantic-conventions" }, |
|
1212 |
+ { name = "typing-extensions" }, |
|
1213 |
+] |
|
1214 |
+sdist = { url = "https://files.pythonhosted.org/packages/0d/9a/82a6ac0f06590f3d72241a587cb8b0b751bd98728e896cc4cbd4847248e6/opentelemetry_sdk-1.27.0.tar.gz", hash = "sha256:d525017dea0ccce9ba4e0245100ec46ecdc043f2d7b8315d56b19aff0904fa6f", size = 145019 } |
|
1215 |
+wheels = [ |
|
1216 |
+ { url = "https://files.pythonhosted.org/packages/c1/bd/a6602e71e315055d63b2ff07172bd2d012b4cba2d4e00735d74ba42fc4d6/opentelemetry_sdk-1.27.0-py3-none-any.whl", hash = "sha256:365f5e32f920faf0fd9e14fdfd92c086e317eaa5f860edba9cdc17a380d9197d", size = 110505 }, |
|
1217 |
+] |
|
1218 |
+ |
|
1219 |
+[[package]] |
|
1220 |
+name = "opentelemetry-semantic-conventions" |
|
1221 |
+version = "0.48b0" |
|
1222 |
+source = { registry = "https://pypi.org/simple" } |
|
1223 |
+dependencies = [ |
|
1224 |
+ { name = "deprecated" }, |
|
1225 |
+ { name = "opentelemetry-api" }, |
|
1226 |
+] |
|
1227 |
+sdist = { url = "https://files.pythonhosted.org/packages/0a/89/1724ad69f7411772446067cdfa73b598694c8c91f7f8c922e344d96d81f9/opentelemetry_semantic_conventions-0.48b0.tar.gz", hash = "sha256:12d74983783b6878162208be57c9effcb89dc88691c64992d70bb89dc00daa1a", size = 89445 } |
|
1228 |
+wheels = [ |
|
1229 |
+ { url = "https://files.pythonhosted.org/packages/b7/7a/4f0063dbb0b6c971568291a8bc19a4ca70d3c185db2d956230dd67429dfc/opentelemetry_semantic_conventions-0.48b0-py3-none-any.whl", hash = "sha256:a0de9f45c413a8669788a38569c7e0a11ce6ce97861a628cca785deecdc32a1f", size = 149685 }, |
|
1230 |
+] |
|
1231 |
+ |
|
1232 |
+[[package]] |
|
1233 |
+name = "opentelemetry-util-http" |
|
1234 |
+version = "0.48b0" |
|
1235 |
+source = { registry = "https://pypi.org/simple" } |
|
1236 |
+sdist = { url = "https://files.pythonhosted.org/packages/d6/d7/185c494754340e0a3928fd39fde2616ee78f2c9d66253affaad62d5b7935/opentelemetry_util_http-0.48b0.tar.gz", hash = "sha256:60312015153580cc20f322e5cdc3d3ecad80a71743235bdb77716e742814623c", size = 7863 } |
|
1237 |
+wheels = [ |
|
1238 |
+ { url = "https://files.pythonhosted.org/packages/ad/2e/36097c0a4d0115b8c7e377c90bab7783ac183bc5cb4071308f8959454311/opentelemetry_util_http-0.48b0-py3-none-any.whl", hash = "sha256:76f598af93aab50328d2a69c786beaedc8b6a7770f7a818cc307eb353debfffb", size = 6946 }, |
|
1239 |
+] |
|
1240 |
+ |
|
1241 |
+[[package]] |
|
856 | 1242 |
name = "orjson" |
857 | 1243 |
version = "3.10.7" |
858 | 1244 |
source = { registry = "https://pypi.org/simple" } |
... | ... | @@ -992,16 +1378,16 @@ |
992 | 1378 |
|
993 | 1379 |
[[package]] |
994 | 1380 |
name = "protobuf" |
995 |
-version = "5.28.2" |
|
1381 |
+version = "4.25.5" |
|
996 | 1382 |
source = { registry = "https://pypi.org/simple" } |
997 |
-sdist = { url = "https://files.pythonhosted.org/packages/b1/a4/4579a61de526e19005ceeb93e478b61d77aa38c8a85ad958ff16a9906549/protobuf-5.28.2.tar.gz", hash = "sha256:59379674ff119717404f7454647913787034f03fe7049cbef1d74a97bb4593f0", size = 422494 } |
|
1383 |
+sdist = { url = "https://files.pythonhosted.org/packages/67/dd/48d5fdb68ec74d70fabcc252e434492e56f70944d9f17b6a15e3746d2295/protobuf-4.25.5.tar.gz", hash = "sha256:7f8249476b4a9473645db7f8ab42b02fe1488cbe5fb72fddd445e0665afd8584", size = 380315 } |
|
998 | 1384 |
wheels = [ |
999 |
- { url = "https://files.pythonhosted.org/packages/e9/30/231764750e0987755b7b8d66771f161e5f002e165d27b72154c776dbabf7/protobuf-5.28.2-cp310-abi3-win32.whl", hash = "sha256:eeea10f3dc0ac7e6b4933d32db20662902b4ab81bf28df12218aa389e9c2102d", size = 419662 }, |
|
1000 |
- { url = "https://files.pythonhosted.org/packages/7d/46/3fdf7462160135aee6a530f1ec66665b5b4132fa2e1002ab971bc6ec2589/protobuf-5.28.2-cp310-abi3-win_amd64.whl", hash = "sha256:2c69461a7fcc8e24be697624c09a839976d82ae75062b11a0972e41fd2cd9132", size = 431479 }, |
|
1001 |
- { url = "https://files.pythonhosted.org/packages/37/45/d2a760580f8f2ed2825ba44cb370e0a4011ddef85e728f46ea3dd565a8a5/protobuf-5.28.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a8b9403fc70764b08d2f593ce44f1d2920c5077bf7d311fefec999f8c40f78b7", size = 414736 }, |
|
1002 |
- { url = "https://files.pythonhosted.org/packages/e6/23/ed718dc18e6a561445ece1e7a17d2dda0c634ad9cf663102b47f10005d8f/protobuf-5.28.2-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:35cfcb15f213449af7ff6198d6eb5f739c37d7e4f1c09b5d0641babf2cc0c68f", size = 316518 }, |
|
1003 |
- { url = "https://files.pythonhosted.org/packages/23/08/a1ce0415a115c2b703bfa798f06f0e43ca91dbe29d6180bf86a9287b15e2/protobuf-5.28.2-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:5e8a95246d581eef20471b5d5ba010d55f66740942b95ba9b872d918c459452f", size = 316605 }, |
|
1004 |
- { url = "https://files.pythonhosted.org/packages/9b/55/f24e3b801d2e108c48aa2b1b59bb791b5cffba89465cbbf66fc98de89270/protobuf-5.28.2-py3-none-any.whl", hash = "sha256:52235802093bd8a2811abbe8bf0ab9c5f54cca0a751fdd3f6ac2a21438bffece", size = 169566 }, |
|
1385 |
+ { url = "https://files.pythonhosted.org/packages/00/35/1b3c5a5e6107859c4ca902f4fbb762e48599b78129a05d20684fef4a4d04/protobuf-4.25.5-cp310-abi3-win32.whl", hash = "sha256:5e61fd921603f58d2f5acb2806a929b4675f8874ff5f330b7d6f7e2e784bbcd8", size = 392457 }, |
|
1386 |
+ { url = "https://files.pythonhosted.org/packages/a7/ad/bf3f358e90b7e70bf7fb520702cb15307ef268262292d3bdb16ad8ebc815/protobuf-4.25.5-cp310-abi3-win_amd64.whl", hash = "sha256:4be0571adcbe712b282a330c6e89eae24281344429ae95c6d85e79e84780f5ea", size = 413449 }, |
|
1387 |
+ { url = "https://files.pythonhosted.org/packages/51/49/d110f0a43beb365758a252203c43eaaad169fe7749da918869a8c991f726/protobuf-4.25.5-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:b2fde3d805354df675ea4c7c6338c1aecd254dfc9925e88c6d31a2bcb97eb173", size = 394248 }, |
|
1388 |
+ { url = "https://files.pythonhosted.org/packages/c6/ab/0f384ca0bc6054b1a7b6009000ab75d28a5506e4459378b81280ae7fd358/protobuf-4.25.5-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:919ad92d9b0310070f8356c24b855c98df2b8bd207ebc1c0c6fcc9ab1e007f3d", size = 293717 }, |
|
1389 |
+ { url = "https://files.pythonhosted.org/packages/05/a6/094a2640be576d760baa34c902dcb8199d89bce9ed7dd7a6af74dcbbd62d/protobuf-4.25.5-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:fe14e16c22be926d3abfcb500e60cab068baf10b542b8c858fa27e098123e331", size = 294635 }, |
|
1390 |
+ { url = "https://files.pythonhosted.org/packages/33/90/f198a61df8381fb43ae0fe81b3d2718e8dcc51ae8502c7657ab9381fbc4f/protobuf-4.25.5-py3-none-any.whl", hash = "sha256:0aebecb809cae990f8129ada5ca273d9d670b76d9bfc9b1809f0a9c02b7dbf41", size = 156467 }, |
|
1005 | 1391 |
] |
1006 | 1392 |
|
1007 | 1393 |
[[package]] |
... | ... | @@ -3984,3 +4370,31 @@ |
3984 | 4370 |
wheels = [ |
3985 | 4371 |
{ url = "https://files.pythonhosted.org/packages/f3/ed/aad7e0f5a462d679f7b4d2e0d8502c3096740c883b5bbed5103146480937/webvtt_py-0.5.1-py3-none-any.whl", hash = "sha256:9d517d286cfe7fc7825e9d4e2079647ce32f5678eb58e39ef544ffbb932610b7", size = 19802 }, |
3986 | 4372 |
] |
4373 |
+ |
|
4374 |
+[[package]] |
|
4375 |
+name = "wrapt" |
|
4376 |
+version = "1.16.0" |
|
4377 |
+source = { registry = "https://pypi.org/simple" } |
|
4378 |
+sdist = { url = "https://files.pythonhosted.org/packages/95/4c/063a912e20bcef7124e0df97282a8af3ff3e4b603ce84c481d6d7346be0a/wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d", size = 53972 } |
|
4379 |
+wheels = [ |
|
4380 |
+ { url = "https://files.pythonhosted.org/packages/92/17/224132494c1e23521868cdd57cd1e903f3b6a7ba6996b7b8f077ff8ac7fe/wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b", size = 37614 }, |
|
4381 |
+ { url = "https://files.pythonhosted.org/packages/6a/d7/cfcd73e8f4858079ac59d9db1ec5a1349bc486ae8e9ba55698cc1f4a1dff/wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36", size = 38316 }, |
|
4382 |
+ { url = "https://files.pythonhosted.org/packages/7e/79/5ff0a5c54bda5aec75b36453d06be4f83d5cd4932cc84b7cb2b52cee23e2/wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73", size = 86322 }, |
|
4383 |
+ { url = "https://files.pythonhosted.org/packages/c4/81/e799bf5d419f422d8712108837c1d9bf6ebe3cb2a81ad94413449543a923/wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809", size = 79055 }, |
|
4384 |
+ { url = "https://files.pythonhosted.org/packages/62/62/30ca2405de6a20448ee557ab2cd61ab9c5900be7cbd18a2639db595f0b98/wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b", size = 87291 }, |
|
4385 |
+ { url = "https://files.pythonhosted.org/packages/49/4e/5d2f6d7b57fc9956bf06e944eb00463551f7d52fc73ca35cfc4c2cdb7aed/wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81", size = 90374 }, |
|
4386 |
+ { url = "https://files.pythonhosted.org/packages/a6/9b/c2c21b44ff5b9bf14a83252a8b973fb84923764ff63db3e6dfc3895cf2e0/wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9", size = 83896 }, |
|
4387 |
+ { url = "https://files.pythonhosted.org/packages/14/26/93a9fa02c6f257df54d7570dfe8011995138118d11939a4ecd82cb849613/wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c", size = 91738 }, |
|
4388 |
+ { url = "https://files.pythonhosted.org/packages/a2/5b/4660897233eb2c8c4de3dc7cefed114c61bacb3c28327e64150dc44ee2f6/wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc", size = 35568 }, |
|
4389 |
+ { url = "https://files.pythonhosted.org/packages/5c/cc/8297f9658506b224aa4bd71906447dea6bb0ba629861a758c28f67428b91/wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8", size = 37653 }, |
|
4390 |
+ { url = "https://files.pythonhosted.org/packages/ff/21/abdedb4cdf6ff41ebf01a74087740a709e2edb146490e4d9beea054b0b7a/wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1", size = 23362 }, |
|
4391 |
+] |
|
4392 |
+ |
|
4393 |
+[[package]] |
|
4394 |
+name = "zipp" |
|
4395 |
+version = "3.20.2" |
|
4396 |
+source = { registry = "https://pypi.org/simple" } |
|
4397 |
+sdist = { url = "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29", size = 24199 } |
|
4398 |
+wheels = [ |
|
4399 |
+ { url = "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", size = 9200 }, |
|
4400 |
+] |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?