vsremote 0.2.0__tar.gz → 0.2.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.
- {vsremote-0.2.0 → vsremote-0.2.2}/PKG-INFO +2 -2
- {vsremote-0.2.0 → vsremote-0.2.2}/pyproject.toml +1 -1
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/cli.py +1 -1
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/protocol/__init__.py +1 -3
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/protocol/keys.py +1 -22
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/server/daemon.py +12 -8
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/server/runner.py +11 -10
- {vsremote-0.2.0 → vsremote-0.2.2}/tests/test_client_server.py +4 -3
- {vsremote-0.2.0 → vsremote-0.2.2}/uv.lock +65 -60
- {vsremote-0.2.0 → vsremote-0.2.2}/.github/workflows/cd-build.yml +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/.github/workflows/cd.yml +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/.github/workflows/ci-lint.yml +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/.github/workflows/ci-test.yml +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/.gitignore +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/LICENSE +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/README.md +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/hatch_build.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/__init__.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/__main__.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/_strides.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/api/__init__.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/api/info.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/api/output.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/client/__init__.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/client/client.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/client/transport.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/exceptions.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/protocol/codec.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/protocol/constants.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/protocol/messages.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/py.typed +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/server/__init__.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/server/policy.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/server/redirect.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/src/vsremote/utils.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/stubs/vapoursynth/__init__.pyi +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/tests/conftest.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/tests/test_api.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/tests/test_cli_commands.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/tests/test_codec.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/tests/test_exceptions.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/tests/test_protocol.py +0 -0
- {vsremote-0.2.0 → vsremote-0.2.2}/tests/test_serve.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: vsremote
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Remote execution and frame proxy for VapourSynth
|
|
5
5
|
Author-email: Vardë <ichunjo.le.terrible@gmail.com>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -20,7 +20,7 @@ Requires-Dist: msgspec>=0.21.1
|
|
|
20
20
|
Requires-Dist: pyzmq>=27.1.0
|
|
21
21
|
Requires-Dist: rich>=15.0.0
|
|
22
22
|
Requires-Dist: vapoursynth>=79
|
|
23
|
-
Requires-Dist: vsjetengine>=1.
|
|
23
|
+
Requires-Dist: vsjetengine>=1.7.0
|
|
24
24
|
Requires-Dist: zstandard>=0.25.0
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
|
|
@@ -119,7 +119,7 @@ def serve(
|
|
|
119
119
|
pub, sec = zmq.curve_keypair()
|
|
120
120
|
curve_public_key = pub.decode("ascii")
|
|
121
121
|
curve_secret_key = sec.decode("ascii")
|
|
122
|
-
logger.info("CurveZMQ encryption enabled.
|
|
122
|
+
logger.info("CurveZMQ encryption enabled. Server public key: %s", curve_public_key)
|
|
123
123
|
|
|
124
124
|
runner = (
|
|
125
125
|
ScriptRunner.from_script(script_path, environment=environment)
|
|
@@ -11,7 +11,7 @@ from .constants import (
|
|
|
11
11
|
StatusCode,
|
|
12
12
|
StatusCodeError,
|
|
13
13
|
)
|
|
14
|
-
from .keys import validate_curve_allowed_keys, validate_curve_key
|
|
14
|
+
from .keys import validate_curve_allowed_keys, validate_curve_key
|
|
15
15
|
from .messages import (
|
|
16
16
|
CancelRequest,
|
|
17
17
|
ClipInfo,
|
|
@@ -67,6 +67,4 @@ __all__ = [
|
|
|
67
67
|
"unpack_payload",
|
|
68
68
|
"validate_curve_allowed_keys",
|
|
69
69
|
"validate_curve_key",
|
|
70
|
-
"z85_decode",
|
|
71
|
-
"z85_encode",
|
|
72
70
|
]
|
|
@@ -2,21 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from collections.abc import Sequence
|
|
4
4
|
|
|
5
|
-
import zmq
|
|
6
5
|
import zmq.utils.z85
|
|
7
6
|
|
|
8
7
|
|
|
9
|
-
def z85_encode(key: bytes) -> bytes:
|
|
10
|
-
"""Encode a 32-byte binary key into 40-byte Z85 ascii bytes."""
|
|
11
|
-
return zmq.utils.z85.encode(key) # type: ignore[no-untyped-call]
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def z85_decode(key: str | bytes) -> bytes:
|
|
15
|
-
"""Decode a 40-byte or 40-char Z85 key into 32-byte raw binary bytes."""
|
|
16
|
-
raw = key.encode("ascii") if isinstance(key, str) else key
|
|
17
|
-
return zmq.utils.z85.decode(raw) # type: ignore[no-untyped-call]
|
|
18
|
-
|
|
19
|
-
|
|
20
8
|
def validate_curve_key(curve_key: str | bytes | None, name: str = "curve_key") -> bytes | None:
|
|
21
9
|
"""
|
|
22
10
|
Validate and normalize a CurveZMQ public or secret key.
|
|
@@ -52,15 +40,6 @@ def validate_curve_allowed_keys(curve_allowed_keys: Sequence[str | bytes] | None
|
|
|
52
40
|
raise ValueError(
|
|
53
41
|
f"Invalid Curve key length ({len(item)} bytes). Expected 40 Z85 characters or 32 or 40 bytes."
|
|
54
42
|
)
|
|
55
|
-
|
|
56
|
-
raw = item.encode("ascii") if isinstance(item, str) else item
|
|
57
|
-
if len(raw) == 40:
|
|
58
|
-
try:
|
|
59
|
-
decoded = z85_decode(raw)
|
|
60
|
-
except Exception as exc:
|
|
61
|
-
raise ValueError(f"Invalid Z85 Curve key: {item!r}") from exc
|
|
62
|
-
keys.add(decoded)
|
|
63
|
-
else:
|
|
64
|
-
keys.add(raw)
|
|
43
|
+
keys.add(zmq.utils.z85.decode(item))
|
|
65
44
|
|
|
66
45
|
return keys
|
|
@@ -16,6 +16,7 @@ from typing import Any, overload
|
|
|
16
16
|
import vapoursynth as vs
|
|
17
17
|
import zmq
|
|
18
18
|
import zmq.asyncio
|
|
19
|
+
import zmq.utils.z85
|
|
19
20
|
from vsengine.vpy import ExecutionError
|
|
20
21
|
|
|
21
22
|
from ..exceptions import TransportClosedError
|
|
@@ -42,7 +43,6 @@ from ..protocol import (
|
|
|
42
43
|
unpack_payload,
|
|
43
44
|
validate_curve_allowed_keys,
|
|
44
45
|
validate_curve_key,
|
|
45
|
-
z85_encode,
|
|
46
46
|
)
|
|
47
47
|
from ..utils import ensure_vsengine_loop
|
|
48
48
|
from .redirect import LogForwarder, StreamRedirector
|
|
@@ -299,7 +299,7 @@ class ServerDaemon:
|
|
|
299
299
|
logger.debug(
|
|
300
300
|
"ZAP: Authorized CURVE client %s (key: %s)",
|
|
301
301
|
addr_str,
|
|
302
|
-
|
|
302
|
+
zmq.utils.z85.encode(client_key).decode("ascii"),
|
|
303
303
|
)
|
|
304
304
|
await self._zap_socket.send_multipart(
|
|
305
305
|
[version, req_id, _ZAP_STATUS_OK, _ZAP_MSG_OK, _ZAP_USER_AUTH, _ZAP_EMPTY]
|
|
@@ -309,7 +309,7 @@ class ServerDaemon:
|
|
|
309
309
|
"ZAP: Unauthorized %s client connection from %s (key %s not in allowed keys)",
|
|
310
310
|
mechanism.decode("ascii", errors="replace"),
|
|
311
311
|
addr_str,
|
|
312
|
-
|
|
312
|
+
zmq.utils.z85.encode(client_key).decode("ascii", errors="replace"),
|
|
313
313
|
)
|
|
314
314
|
await self._zap_socket.send_multipart(
|
|
315
315
|
[version, req_id, _ZAP_STATUS_ERR, _ZAP_MSG_UNAUTHORIZED, _ZAP_EMPTY, _ZAP_EMPTY]
|
|
@@ -531,17 +531,21 @@ class ServerDaemon:
|
|
|
531
531
|
except Exception as e:
|
|
532
532
|
return await self._send_error(req, StatusCode.INVALID_PAYLOAD, f"Invalid {payload_type.__name__}: {e}")
|
|
533
533
|
|
|
534
|
+
loop = asyncio.get_running_loop()
|
|
535
|
+
|
|
534
536
|
try:
|
|
535
|
-
outputs = await
|
|
537
|
+
outputs = await loop.run_in_executor(self._executor, action, payload)
|
|
536
538
|
await self._send_reply(req, StatusCode.OK, pack_payload(outputs))
|
|
537
539
|
except ExecutionError as e:
|
|
538
540
|
logger.debug("%s: %s", error_context, e)
|
|
539
|
-
|
|
540
|
-
await
|
|
541
|
+
payload = _build_error_payload(e)
|
|
542
|
+
await loop.run_in_executor(self._executor, self.runner.teardown_environment)
|
|
543
|
+
await self._send_error(req, StatusCode.ERROR, payload)
|
|
541
544
|
except Exception as e:
|
|
542
545
|
logger.exception(error_context)
|
|
543
|
-
|
|
544
|
-
await
|
|
546
|
+
payload = _build_error_payload(e)
|
|
547
|
+
await loop.run_in_executor(self._executor, self.runner.teardown_environment)
|
|
548
|
+
await self._send_error(req, StatusCode.ERROR, payload)
|
|
545
549
|
|
|
546
550
|
async def _send_reply(
|
|
547
551
|
self,
|
|
@@ -186,19 +186,20 @@ class ScriptRunner:
|
|
|
186
186
|
return list(self._output_items)
|
|
187
187
|
|
|
188
188
|
def teardown_environment(self) -> None:
|
|
189
|
-
self.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
189
|
+
with self._rlock:
|
|
190
|
+
self._clips.clear()
|
|
191
|
+
self._clip_infos.clear()
|
|
192
|
+
self._output_items.clear()
|
|
193
|
+
self._startup_events.clear()
|
|
193
194
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
195
|
+
if self._script:
|
|
196
|
+
self._script.dispose()
|
|
197
|
+
self._script = None
|
|
197
198
|
|
|
198
|
-
|
|
199
|
-
|
|
199
|
+
if isinstance(self._environment, ManagedEnvironment):
|
|
200
|
+
self._environment.dispose()
|
|
200
201
|
|
|
201
|
-
|
|
202
|
+
self._environment = None
|
|
202
203
|
gc_collect()
|
|
203
204
|
|
|
204
205
|
def close(self) -> None:
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import io
|
|
5
5
|
import logging
|
|
6
|
+
import struct
|
|
6
7
|
import sys
|
|
7
8
|
import time
|
|
8
9
|
from collections.abc import Callable
|
|
@@ -74,7 +75,7 @@ def test_list_outputs(running_server: tuple[str, int]) -> None:
|
|
|
74
75
|
assert outputs[1].info.num_frames == 10
|
|
75
76
|
|
|
76
77
|
|
|
77
|
-
@pytest.mark.asyncio
|
|
78
|
+
@pytest.mark.asyncio(loop_factories=["stdlib"])
|
|
78
79
|
@pytest.mark.vpy("initial-core")
|
|
79
80
|
async def test_async_client_operations(running_server: tuple[str, int]) -> None:
|
|
80
81
|
host, port = running_server
|
|
@@ -311,7 +312,7 @@ def test_client_transport_context_manager(running_server: tuple[str, int]) -> No
|
|
|
311
312
|
assert len(outputs) == 2
|
|
312
313
|
|
|
313
314
|
|
|
314
|
-
@pytest.mark.asyncio
|
|
315
|
+
@pytest.mark.asyncio(loop_factories=["stdlib"])
|
|
315
316
|
@pytest.mark.vpy("initial-core")
|
|
316
317
|
async def test_client_transport_async_context_manager(running_server: tuple[str, int]) -> None:
|
|
317
318
|
"""Verify ClientTransport works as an asynchronous context manager."""
|
|
@@ -1040,7 +1041,7 @@ def test_curvezmq_invalid_key_length_raises() -> None:
|
|
|
1040
1041
|
ServerDaemon(ScriptRunner(), curve_secret_key=sec, curve_public_key="short")
|
|
1041
1042
|
|
|
1042
1043
|
# Corrupted Z85 string (40 chars with invalid Z85 characters)
|
|
1043
|
-
with pytest.raises(
|
|
1044
|
+
with pytest.raises(struct.error, match="'I' format requires 0 <= number <= 4294967295"):
|
|
1044
1045
|
ServerDaemon(ScriptRunner(), curve_secret_key=sec, curve_allowed_keys=["%" * 40])
|
|
1045
1046
|
|
|
1046
1047
|
# Missing dependent curve parameters on server
|
|
@@ -659,45 +659,50 @@ wheels = [
|
|
|
659
659
|
|
|
660
660
|
[[package]]
|
|
661
661
|
name = "pyzmq"
|
|
662
|
-
version = "27.
|
|
662
|
+
version = "27.2.0"
|
|
663
663
|
source = { registry = "https://pypi.org/simple" }
|
|
664
664
|
dependencies = [
|
|
665
665
|
{ name = "cffi", marker = "implementation_name == 'pypy'" },
|
|
666
666
|
]
|
|
667
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
668
|
-
wheels = [
|
|
669
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
670
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
671
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
672
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
673
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
674
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
675
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
676
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
677
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
678
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
679
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
680
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
681
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
682
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
683
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
684
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
685
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
686
|
-
{ url = "https://files.pythonhosted.org/packages/d5/
|
|
687
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
688
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
689
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
690
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
691
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
692
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
693
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
694
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
695
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
696
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
697
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
698
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
699
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
700
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
667
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e7/8d/5b3d5631c2f4b4b8862f64cd0c9eb777b5710eeb5125b4be8dd0a200a4c0/pyzmq-27.2.0.tar.gz", hash = "sha256:54d4259d1bfae24ecdb5ca79f7acc2eac6c286a02d6a0ae617797cb45f0726d3", size = 292316, upload-time = "2026-08-20T19:08:21.19Z" }
|
|
668
|
+
wheels = [
|
|
669
|
+
{ url = "https://files.pythonhosted.org/packages/57/8a/153532fa53db30e116118164f3af269a1f3966b3e2ba32c89b12fe864bd8/pyzmq-27.2.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:591c8de5851c5ea372194469fe97587b97c3b641e9a70f31bb3474acbfde0241", size = 1431074, upload-time = "2026-08-20T19:06:40.601Z" },
|
|
670
|
+
{ url = "https://files.pythonhosted.org/packages/c8/ef/c08b91248bb90a9efa81fa00ba81b69c157c74d0c5efbb2c319d91babb62/pyzmq-27.2.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:00e73942ef12cecbc7951c4a9104bb8ffaed742abb13af2da6833d90dd368cef", size = 973915, upload-time = "2026-08-20T19:06:42.037Z" },
|
|
671
|
+
{ url = "https://files.pythonhosted.org/packages/b4/78/a3a3a86c2b00fadb92ece1ca4f8f028d62b2ce9ac3526097239ab2d6fba9/pyzmq-27.2.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f8079d0521fe94bbb401fe9407578b28f3701627c8be2c9f7e0c5b77dcb0109", size = 697722, upload-time = "2026-08-20T19:06:43.325Z" },
|
|
672
|
+
{ url = "https://files.pythonhosted.org/packages/62/2c/d5828306f795e8d34676d266823b74e2101e0ad3760d12083de3e02abbb2/pyzmq-27.2.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dea74fd65f1fc5f7fe167916a473ebe6ed6174e5e5d9de11ea6583661be6cf43", size = 872258, upload-time = "2026-08-20T19:06:44.627Z" },
|
|
673
|
+
{ url = "https://files.pythonhosted.org/packages/09/52/51253b78fd8739293e283407eeecb14215c02c71b6519af21f6eed8e69cd/pyzmq-27.2.0-cp312-abi3-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dcc99ca132b667a4ed750afd42db4ea73288f18425a9b2e3c0af095665c491f5", size = 739591, upload-time = "2026-08-20T19:06:46.214Z" },
|
|
674
|
+
{ url = "https://files.pythonhosted.org/packages/e6/3e/142c85b67a4c9678629b0cf6d5125b29663d75be69bfaa57a3cac344d780/pyzmq-27.2.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b8d5f66e4a8246cf77f7b8f7902af64f00553368fa0373c89d99b78f0ad79394", size = 1689031, upload-time = "2026-08-20T19:06:47.612Z" },
|
|
675
|
+
{ url = "https://files.pythonhosted.org/packages/0e/ee/0776fb0f98ed1eb74d77240087fef0ab045b6ad15cb09555c6c5134c98ad/pyzmq-27.2.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:d1526b42a2e725b84ed226f37becedc250c6347594e5ed304e4e9aff68c9aec3", size = 2059547, upload-time = "2026-08-20T19:06:49.064Z" },
|
|
676
|
+
{ url = "https://files.pythonhosted.org/packages/aa/0e/ec77f691a4aebe29ab6329f996fb0e0270c876a3016086e3ca6ef733bcae/pyzmq-27.2.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f707bcf2c1d007d14d70531d4dd7b41060881c73efa845580bf6faaf9ea24d42", size = 1910457, upload-time = "2026-08-20T19:06:50.783Z" },
|
|
677
|
+
{ url = "https://files.pythonhosted.org/packages/30/97/1f5530ff4fc271b4597048371d5af972c2baab51be132ba15874e0327a6a/pyzmq-27.2.0-cp312-abi3-win32.whl", hash = "sha256:fdaaa4ea3242f6ad298eb5177eb042aea5c73c30e76d20caee7b15af20d24ec2", size = 563450, upload-time = "2026-08-20T19:06:52.307Z" },
|
|
678
|
+
{ url = "https://files.pythonhosted.org/packages/02/8b/b83f7780dad22e0878e4c7bd9158ebd24ed12bc3d5e3a471cd0576f77ded/pyzmq-27.2.0-cp312-abi3-win_amd64.whl", hash = "sha256:2c218c6ab8bc447ba62054b581fd30209689d199c6ecb253f79615ca74a38e12", size = 628633, upload-time = "2026-08-20T19:06:53.809Z" },
|
|
679
|
+
{ url = "https://files.pythonhosted.org/packages/52/aa/3918b5ac7f9987bd9c421b065074fd7409ded88f856f2c704a24341877ec/pyzmq-27.2.0-cp312-abi3-win_arm64.whl", hash = "sha256:348d6fd3e4b81ae4580622ea8c2ea60224e84b2ac1b3be4482e6edc7de06e7a3", size = 556006, upload-time = "2026-08-20T19:06:55.242Z" },
|
|
680
|
+
{ url = "https://files.pythonhosted.org/packages/83/5e/d0541596b48c5a19f85dcbea83d6673d8e91681cdf853eb194c31fc9766e/pyzmq-27.2.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:c551b9e2f86dc625fcb1a032c0d68042678caf96a8dd7c28796766b673bd5b52", size = 1127193, upload-time = "2026-08-20T19:06:56.545Z" },
|
|
681
|
+
{ url = "https://files.pythonhosted.org/packages/50/9f/8c7411bb283982d46e6d56dca6a095678c87eb0398daead12776d9881ac2/pyzmq-27.2.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:288cc790da0e3064a14a38ddc56ba169dada8c8af4cb86518db2bcbd380eedbb", size = 1166833, upload-time = "2026-08-20T19:06:58.011Z" },
|
|
682
|
+
{ url = "https://files.pythonhosted.org/packages/f9/84/a849161ff88b2de9b991cc8ab332218824741122fdc4fdf222a5b822ac8c/pyzmq-27.2.0-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:3d45189c0c3c99f817b7fefff0d32eeef684cf33e1e3c0fc4281515357c54702", size = 1134452, upload-time = "2026-08-20T19:06:59.898Z" },
|
|
683
|
+
{ url = "https://files.pythonhosted.org/packages/3c/34/ff4aaff0cfba2a4d7ad1a16ffedc52c6deb89fcf673d455085446b23f215/pyzmq-27.2.0-cp314-cp314-android_24_x86_64.whl", hash = "sha256:d61910b52be5b2cd8b248dbcbe3a1b0275556a7d99fb613fc43323b546e273b8", size = 1167520, upload-time = "2026-08-20T19:07:01.283Z" },
|
|
684
|
+
{ url = "https://files.pythonhosted.org/packages/b6/07/42111e9dc1041d78b4443d6eb1b82b027f1a58178dc8a38385effbc72ad5/pyzmq-27.2.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3ab6eb88590e510ab16715c32dbba12000da9bee989fdadd9ee19a234c492eb7", size = 1466289, upload-time = "2026-08-20T19:07:02.738Z" },
|
|
685
|
+
{ url = "https://files.pythonhosted.org/packages/4b/b4/def7a478458da78665840564161772e7e938600c32a89f28e8b221b54d2d/pyzmq-27.2.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1ecbdd131b9669f62d3a45afee5527c7ae9f141e4301267f21714c90bd21725f", size = 975868, upload-time = "2026-08-20T19:07:04.155Z" },
|
|
686
|
+
{ url = "https://files.pythonhosted.org/packages/38/d5/e3e85f7fea37153097aaff49db9e33093909cc2a7b22c1ac4ebe546600fc/pyzmq-27.2.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3146385b94a760236c5eceff468a66a296a716ca98a2e0f9217b1518118466b1", size = 706054, upload-time = "2026-08-20T19:07:05.623Z" },
|
|
687
|
+
{ url = "https://files.pythonhosted.org/packages/1c/ef/3b7d9449b223183222bf517245e1e53d5f1ab8c10be8b45f6a301b2f994a/pyzmq-27.2.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9846e881620dd62566ca76a53e384c3f37490faf4b9240aebc7498810dfca853", size = 878984, upload-time = "2026-08-20T19:07:07.153Z" },
|
|
688
|
+
{ url = "https://files.pythonhosted.org/packages/be/a5/8b49dbd494f6dcfda69dc4cade322a4b02706ef4e3d30cc366d4e369899f/pyzmq-27.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d9527e3dbaef1edaeeb2446fa7379446814a43ade8adc7c4a5ebe69437815ddd", size = 1697489, upload-time = "2026-08-20T19:07:08.945Z" },
|
|
689
|
+
{ url = "https://files.pythonhosted.org/packages/da/5a/4bb8280901130c26ea25f0cbb4a6d39d94250860c6b3dbd912f1cf48fca7/pyzmq-27.2.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:56b48fa9d478a3af7254f397697a62f5ad3e1bb677e200b2701f0c290d97e5af", size = 2064236, upload-time = "2026-08-20T19:07:10.384Z" },
|
|
690
|
+
{ url = "https://files.pythonhosted.org/packages/de/38/f433af66922554adb2b5f79e897018c8e19a90b9eaeb49c4814f8355ebe4/pyzmq-27.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bf0b6e4ce1bb089751c504c5493d6b0557eabd02dd21b76e9086cf964234b103", size = 1917424, upload-time = "2026-08-20T19:07:11.909Z" },
|
|
691
|
+
{ url = "https://files.pythonhosted.org/packages/36/81/ea1c1ae3f801d96ba2c269e056761ebcfe023476e651d3af2a7817962051/pyzmq-27.2.0-cp314-cp314t-win32.whl", hash = "sha256:fba8afcf265c6e9fbe1594cb045d4765c6c9a7d607653a8196067ef23566b843", size = 591103, upload-time = "2026-08-20T19:07:13.451Z" },
|
|
692
|
+
{ url = "https://files.pythonhosted.org/packages/8a/04/149a627707e780fa9f2c1ede3590c14fa6b18b5576d15744342622299a50/pyzmq-27.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d1bc1d380a91d954ed5fc9f12915dba014eed0978d2de05ee7ca688bdaac144a", size = 670215, upload-time = "2026-08-20T19:07:15.069Z" },
|
|
693
|
+
{ url = "https://files.pythonhosted.org/packages/30/ba/f9c3c1536c41ef3dbf765ea04218990e2056e558f98184ecd883767fc501/pyzmq-27.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:c7cfb75caa83f5153c687e9d2107f64b5ef0ef0d6edd260d3ff920baaaa69101", size = 582252, upload-time = "2026-08-20T19:07:16.582Z" },
|
|
694
|
+
{ url = "https://files.pythonhosted.org/packages/fa/00/78fe097a304a408275747ce43f20428789130b059c5649956277c20f30cf/pyzmq-27.2.0-cp315-cp315-android_24_arm64_v8a.whl", hash = "sha256:c5129a8fe43ecc49b99eb75616603d483a3c2fcaef504988fafe8ea392aea98b", size = 1134295, upload-time = "2026-08-20T19:07:17.94Z" },
|
|
695
|
+
{ url = "https://files.pythonhosted.org/packages/f2/83/1c36270658d2ee56e23a3f9ef5fbcb94cbd2f9fe966a6641f2f38e697162/pyzmq-27.2.0-cp315-cp315-android_24_x86_64.whl", hash = "sha256:baa2ce3485145653194d6c8c5beedd1e9f0bf46a0919c9fa2fe2204fc35b74d9", size = 1167492, upload-time = "2026-08-20T19:07:19.476Z" },
|
|
696
|
+
{ url = "https://files.pythonhosted.org/packages/58/b2/f0ae223438d7faa991f6feefdc823815f11cc604f898738376b59fd96515/pyzmq-27.2.0-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:e1ed46048d1920cabc96d952a0d5cfe4127ad8db572c335aae4e3c57b9278d7f", size = 1465992, upload-time = "2026-08-20T19:07:20.941Z" },
|
|
697
|
+
{ url = "https://files.pythonhosted.org/packages/59/46/fb56f3f37a6a0937b0e1d2885e808b5eedc171320bac85573cfae78fa9bc/pyzmq-27.2.0-cp315-cp315t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:e0fa0bc6b1a184aee59b32efcd1b7f0e6d5b8f9387799e4c16a4cb66a86747d6", size = 976118, upload-time = "2026-08-20T19:07:22.577Z" },
|
|
698
|
+
{ url = "https://files.pythonhosted.org/packages/21/82/a2c9bfd7c4d34eea1278493cd041bc000d41acb4463c89ceaad29dc813b6/pyzmq-27.2.0-cp315-cp315t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4bd6743e8bf854c3bfce892dd6578a514aabf128e37a4b2eafcf01856f7e44", size = 705968, upload-time = "2026-08-20T19:07:24.019Z" },
|
|
699
|
+
{ url = "https://files.pythonhosted.org/packages/d6/12/b906b269116b6591dc15c0acc5d04c043957c8a531d336999731f4b1d899/pyzmq-27.2.0-cp315-cp315t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95369ed6626afcfe2ac89832fb1b917c077fbeb905fbbe5d918349ce0222b89b", size = 879011, upload-time = "2026-08-20T19:07:25.428Z" },
|
|
700
|
+
{ url = "https://files.pythonhosted.org/packages/12/13/f96359534bfb77651c15f1fbfc4bfdd7ec3489d23f434706d39598dd0dcd/pyzmq-27.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:40124779c3a56ad5d91902df1ff89159cb414b6c1a0ee697abcc66cf5e6db62d", size = 1697496, upload-time = "2026-08-20T19:07:26.821Z" },
|
|
701
|
+
{ url = "https://files.pythonhosted.org/packages/21/b4/2c007ae5f2fe5eca86cbfbc874ed86b5135f2f7812615dfd78606d3c93f6/pyzmq-27.2.0-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:ec8a318dfc27c7d946651b3d9e8025d5734f30c168a822195601827207bac09b", size = 2064347, upload-time = "2026-08-20T19:07:28.315Z" },
|
|
702
|
+
{ url = "https://files.pythonhosted.org/packages/9b/88/767af3a6630c15215f3a66700ec79598a375edd1fdc9d75a3ad522178c01/pyzmq-27.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:88c0fac061bac269076edeb3a209acefc96cd6167c239daf1c2b404ac48d7012", size = 1917360, upload-time = "2026-08-20T19:07:29.693Z" },
|
|
703
|
+
{ url = "https://files.pythonhosted.org/packages/35/c1/80dd2d20d6e57bc68e1dce1e84bf3e76c9577c1bf728199985c8b4ea0fd1/pyzmq-27.2.0-cp315-cp315t-win32.whl", hash = "sha256:ac126d48cf18aa955daabef43bf0009ff76ad4deee437d09ecf15388214b5beb", size = 591073, upload-time = "2026-08-20T19:07:31.341Z" },
|
|
704
|
+
{ url = "https://files.pythonhosted.org/packages/f8/b5/33b781666f3f52ae834bc9c8e38f4f0483a826c5a91cccc993292007bf10/pyzmq-27.2.0-cp315-cp315t-win_amd64.whl", hash = "sha256:edce90a1e588ec63adbf612cc0ad582de4169cd216c7ae53c15f42a2ee902f35", size = 670701, upload-time = "2026-08-20T19:07:32.895Z" },
|
|
705
|
+
{ url = "https://files.pythonhosted.org/packages/6e/97/bc4f0edefb992df4fdebcf9f0cc40f631cd4ed277e1ed59ef2cd99a5c8c5/pyzmq-27.2.0-cp315-cp315t-win_arm64.whl", hash = "sha256:a843094b4d3d633bc3623e47a2ff50742d6af02bc1f7606aa2e67e971e21878d", size = 581985, upload-time = "2026-08-20T19:07:34.19Z" },
|
|
701
706
|
]
|
|
702
707
|
|
|
703
708
|
[[package]]
|
|
@@ -728,27 +733,27 @@ wheels = [
|
|
|
728
733
|
|
|
729
734
|
[[package]]
|
|
730
735
|
name = "ruff"
|
|
731
|
-
version = "0.16.
|
|
732
|
-
source = { registry = "https://pypi.org/simple" }
|
|
733
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
734
|
-
wheels = [
|
|
735
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
736
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
737
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
738
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
739
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
740
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
741
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
742
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
743
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
744
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
745
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
746
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
747
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
748
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
749
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
750
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
751
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
736
|
+
version = "0.16.4"
|
|
737
|
+
source = { registry = "https://pypi.org/simple" }
|
|
738
|
+
sdist = { url = "https://files.pythonhosted.org/packages/00/8f/d8074b1f25e003164087a8bfe79a0f1a3945135764dbb6aaab04103dcaf9/ruff-0.16.4.tar.gz", hash = "sha256:13171aa9d9af2240ee3504e639de73122c67e74036de5ba2e1d01422cd17e3dc", size = 4899731, upload-time = "2026-08-20T17:43:59.196Z" }
|
|
739
|
+
wheels = [
|
|
740
|
+
{ url = "https://files.pythonhosted.org/packages/ff/80/779895ef584e089d22f2c6df0d0e99a65ec2df0805f1fffd439415b8c1f0/ruff-0.16.4-py3-none-linux_armv6l.whl", hash = "sha256:df4075f71ddac40b9934af60c3ec8a53047dd5a5fdc43224e6e4e8e9a27cb6f7", size = 10006909, upload-time = "2026-08-20T17:43:16.888Z" },
|
|
741
|
+
{ url = "https://files.pythonhosted.org/packages/a9/e6/f553199b5e8927a05cb5c422d921fd0656b29ab976e91c44802107c6b0da/ruff-0.16.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0c95538517af68004306b0fb3214ff2f2af67a65092aee77cd9eb86db6656604", size = 10240201, upload-time = "2026-08-20T17:43:19.337Z" },
|
|
742
|
+
{ url = "https://files.pythonhosted.org/packages/1c/70/4a6dc4bb34da4dee35e30f09bbd1bfbdd26f33b62fb9b8df31f08a199cd2/ruff-0.16.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:963f83df8e69e575b64d67dd447ebbc917db41a14bf38d4593a4183e7aaa8255", size = 9835122, upload-time = "2026-08-20T17:43:21.708Z" },
|
|
743
|
+
{ url = "https://files.pythonhosted.org/packages/24/12/c6e22d686372c15bcb7af99831f1a1be96df696491babf4f24e4f942c527/ruff-0.16.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32a5057c7ff3f6e6480a48fccfb3a412a690f48a3d03ac5cf08177d6c2da3ade", size = 9977162, upload-time = "2026-08-20T17:43:24.236Z" },
|
|
744
|
+
{ url = "https://files.pythonhosted.org/packages/46/49/72b10ec912f5ab5854992eaf7aa7cd36729b6937d9dc4e0fb41b3bf428ec/ruff-0.16.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3dce8d9b0c57c265b91885a66a567d8ea1372e8eb4e250fa8e5e3f579e99cff", size = 9829789, upload-time = "2026-08-20T17:43:26.966Z" },
|
|
745
|
+
{ url = "https://files.pythonhosted.org/packages/fa/80/0f30e32e7f6ee26edc39075502db9d368d788a44a79b55f763eb4ab03796/ruff-0.16.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7dc651db49283c69f8e72c834eec4fe5573e4c646856aebece0ce385dceb2a80", size = 10527949, upload-time = "2026-08-20T17:43:29.384Z" },
|
|
746
|
+
{ url = "https://files.pythonhosted.org/packages/52/3d/86e8ad3542169e56cac3859a343afdb9df2ad54d35a59ce1e67baee83421/ruff-0.16.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3817b87dbcabc92f13b05019257c5b89b5b4d51b5fb20f56fb5235ceb723cd07", size = 11333695, upload-time = "2026-08-20T17:43:31.872Z" },
|
|
747
|
+
{ url = "https://files.pythonhosted.org/packages/d0/16/481c29b380c20a0054a8261066665e1b3488e23636c49d0a43e75975b9bb/ruff-0.16.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9fce1499134b2c8c68e5166f95705a5812062bb93aacc5f9873bb1a27084bc7", size = 10727741, upload-time = "2026-08-20T17:43:34.596Z" },
|
|
748
|
+
{ url = "https://files.pythonhosted.org/packages/5e/b6/56bc0b8cf45b54b28b3a5e6381c8945d51b5b18adf659454c32295209a31/ruff-0.16.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2d812e482f5a7e02eee26cd73d2a37ebbdf47d795ea63ba1b89110ae93e9fb3", size = 10286522, upload-time = "2026-08-20T17:43:37.288Z" },
|
|
749
|
+
{ url = "https://files.pythonhosted.org/packages/e8/8b/b345b4fb110f2fbe2bd31eabd271e5e8b3b7e4ee6c0e02f2dc6be78db000/ruff-0.16.4-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:6baaf984aa7976edf93d3b627fe2d1d22ee94bbca05fa6f90fc76d73924e3454", size = 10584182, upload-time = "2026-08-20T17:43:39.984Z" },
|
|
750
|
+
{ url = "https://files.pythonhosted.org/packages/29/e5/827b34041c35f58774a9681a4213994c164fc987800f4dddabcf451da0bf/ruff-0.16.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:bdfcf0b28662eb890372d50f92c283bb94e67e7635ed93c7fd533970acff7b2b", size = 10134195, upload-time = "2026-08-20T17:43:42.351Z" },
|
|
751
|
+
{ url = "https://files.pythonhosted.org/packages/0f/10/d0bffcdd6729b87afc82ba0ef377173356a7dc8e972f5179968cf2fdf98c/ruff-0.16.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b66b02cb9b04f537643cadf5768e5f98dc461890d530cb67113d71c8c76e605d", size = 9825821, upload-time = "2026-08-20T17:43:44.532Z" },
|
|
752
|
+
{ url = "https://files.pythonhosted.org/packages/f5/32/0db2a863b796ca62d83e92a07a3ccf00921b14db02059347576a2fda3d4b/ruff-0.16.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8528bf9a4b291a60bf02ea453511e8ce6215bd2b982ee80405b66b008b6c30a0", size = 10267658, upload-time = "2026-08-20T17:43:46.989Z" },
|
|
753
|
+
{ url = "https://files.pythonhosted.org/packages/b2/a0/fbdeb59e48c6261f523e56c8f12e9c08fbe693786595cc7e3959207a9232/ruff-0.16.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:fbd85d2875fdd67e833213a651f613bbf25303abf6aa822a5121f4531195678d", size = 10697071, upload-time = "2026-08-20T17:43:49.891Z" },
|
|
754
|
+
{ url = "https://files.pythonhosted.org/packages/aa/28/0c6dd865859c6d17bc8ccc34cb72b0e02d6c7eb25e8a1e22b5bea681e2c0/ruff-0.16.4-py3-none-win32.whl", hash = "sha256:312769988007aaeb8e189b443ccdd03c0e6374489e053467be6d96518ebff76e", size = 10021687, upload-time = "2026-08-20T17:43:52.281Z" },
|
|
755
|
+
{ url = "https://files.pythonhosted.org/packages/a3/03/e724450f621698117f9aa6dd241c94d0274ae96781378dc86745ae29f0e7/ruff-0.16.4-py3-none-win_amd64.whl", hash = "sha256:05d9d27a18c4bcbefada602480ec9e01e0bc949d432e0ced5df77edac195919c", size = 10567657, upload-time = "2026-08-20T17:43:54.78Z" },
|
|
756
|
+
{ url = "https://files.pythonhosted.org/packages/0e/fe/da8b9e1347696bb22120b77280ec5ce25d500ca5cb39d5ad6e5c18de19c1/ruff-0.16.4-py3-none-win_arm64.whl", hash = "sha256:a3a61621c9b6f6a89573e938a080e648f1695baa3f58570a3a707bc51ff65a21", size = 10451579, upload-time = "2026-08-20T17:43:57.135Z" },
|
|
752
757
|
]
|
|
753
758
|
|
|
754
759
|
[[package]]
|
|
@@ -848,14 +853,14 @@ wheels = [
|
|
|
848
853
|
|
|
849
854
|
[[package]]
|
|
850
855
|
name = "vsjetengine"
|
|
851
|
-
version = "1.
|
|
856
|
+
version = "1.7.0"
|
|
852
857
|
source = { registry = "https://pypi.org/simple" }
|
|
853
858
|
dependencies = [
|
|
854
859
|
{ name = "vapoursynth" },
|
|
855
860
|
]
|
|
856
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
861
|
+
sdist = { url = "https://files.pythonhosted.org/packages/10/66/ace34ff3b75ff151c414bbae89646790984f3bbfe569519104fb322fee54/vsjetengine-1.7.0.tar.gz", hash = "sha256:386dc930eedee92864d18925459ac80fd68e0ecf9112468ccbe6969fe6504c6f", size = 53645, upload-time = "2026-08-21T16:41:56.852Z" }
|
|
857
862
|
wheels = [
|
|
858
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
863
|
+
{ url = "https://files.pythonhosted.org/packages/f9/dc/d1800624ca15a0072e061f24f25004f1e87a48f3efa8d3d3028daae23b99/vsjetengine-1.7.0-py3-none-any.whl", hash = "sha256:d1d1be18479a44e6d8156a01fbbf3b8f82b2b2a4752f3191752a926603854d0a", size = 41219, upload-time = "2026-08-21T16:41:55.786Z" },
|
|
859
864
|
]
|
|
860
865
|
|
|
861
866
|
[[package]]
|
|
@@ -892,7 +897,7 @@ requires-dist = [
|
|
|
892
897
|
{ name = "pyzmq", specifier = ">=27.1.0" },
|
|
893
898
|
{ name = "rich", specifier = ">=15.0.0" },
|
|
894
899
|
{ name = "vapoursynth", specifier = ">=79" },
|
|
895
|
-
{ name = "vsjetengine", specifier = ">=1.
|
|
900
|
+
{ name = "vsjetengine", specifier = ">=1.7.0" },
|
|
896
901
|
{ name = "zstandard", specifier = ">=0.25.0" },
|
|
897
902
|
]
|
|
898
903
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|