vrex-flow-engine 0.3.4__tar.gz → 0.3.5__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 (48) hide show
  1. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/PKG-INFO +1 -1
  2. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/media.py +4 -2
  3. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/pyproject.toml +1 -1
  4. vrex_flow_engine-0.3.5/tests/test_media_ids.py +21 -0
  5. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/vrex_flow_engine.egg-info/PKG-INFO +1 -1
  6. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/vrex_flow_engine.egg-info/SOURCES.txt +1 -0
  7. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/PYPI_README.md +0 -0
  8. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/README.md +0 -0
  9. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/__init__.py +0 -0
  10. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/bridge/__init__.py +0 -0
  11. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/bridge/flow_client.py +0 -0
  12. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/bridge/flow_rpc.py +0 -0
  13. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/bridge/flow_sdk.py +0 -0
  14. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/bridge/ws_server.py +0 -0
  15. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/catalog.py +0 -0
  16. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/cli/__init__.py +0 -0
  17. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/cli/app.py +0 -0
  18. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/cli/config.py +0 -0
  19. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/cli/dashboard.py +0 -0
  20. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/cli/health.py +0 -0
  21. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/cli/processes.py +0 -0
  22. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/cli/supervisor.py +0 -0
  23. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/config.py +0 -0
  24. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/ingest.py +0 -0
  25. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/job_store.py +0 -0
  26. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/jobs.py +0 -0
  27. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/main.py +0 -0
  28. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/media_store.py +0 -0
  29. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/openai/__init__.py +0 -0
  30. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/openai/_util.py +0 -0
  31. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/openai/images.py +0 -0
  32. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/openai/models.py +0 -0
  33. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/openai/uploads.py +0 -0
  34. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/openai/videos.py +0 -0
  35. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/pool.py +0 -0
  36. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/posthog_client.py +0 -0
  37. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/session.py +0 -0
  38. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/video_context.py +0 -0
  39. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/flow_engine/video_context_store.py +0 -0
  40. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/setup.cfg +0 -0
  41. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/tests/test_catalog_resolution.py +0 -0
  42. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/tests/test_flow_rpc.py +0 -0
  43. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/tests/test_rpc_method_map.py +0 -0
  44. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/tests/test_video_mode_selection.py +0 -0
  45. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/vrex_flow_engine.egg-info/dependency_links.txt +0 -0
  46. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/vrex_flow_engine.egg-info/entry_points.txt +0 -0
  47. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/vrex_flow_engine.egg-info/requires.txt +0 -0
  48. {vrex_flow_engine-0.3.4 → vrex_flow_engine-0.3.5}/vrex_flow_engine.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vrex-flow-engine
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: Launcher + supervisor and OpenAI-compatible image/video generation service (Vrex Flow Engine).
5
5
  Author: Vrex
6
6
  License: Proprietary
@@ -30,8 +30,10 @@ logger = logging.getLogger(__name__)
30
30
  MEDIA_CACHE_DIR = STORAGE_DIR / "media"
31
31
  MEDIA_CACHE_DIR.mkdir(parents=True, exist_ok=True)
32
32
 
33
- # Media id is a hex-with-dashes UUID in the GCS path.
34
- _MEDIA_ID_RE = re.compile(r"^[0-9a-fA-F-]{1,64}$")
33
+ # Media id is a hex-with-dashes UUID in the GCS path. A derived media — the
34
+ # 1080p upsample of a clip — is named by its source's id with a word
35
+ # appended (``<uuid>_upsampled``), and is fetched and cached under that name.
36
+ _MEDIA_ID_RE = re.compile(r"^[0-9a-fA-F-]{1,64}(?:_[a-z]{1,16})?$")
35
37
 
36
38
  # Flow serves user-generated media from its `flow-content.google` CDN (signed
37
39
  # with short-TTL query params); the response includes the signed URL at
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vrex-flow-engine"
3
- version = "0.3.4"
3
+ version = "0.3.5"
4
4
  description = "Launcher + supervisor and OpenAI-compatible image/video generation service (Vrex Flow Engine)."
5
5
  # Neutral public description (the in-repo README.md carries the full internal docs).
6
6
  readme = "PYPI_README.md"
@@ -0,0 +1,21 @@
1
+ """Media ids: a UUID, or a UUID with a derivation suffix."""
2
+
3
+ from flow_engine.media import is_valid_media_id
4
+
5
+
6
+ def test_a_uuid_is_a_media_id():
7
+ assert is_valid_media_id("f8128c97-bde9-404b-a92e-df6aa2fe2b20")
8
+
9
+
10
+ def test_an_upsample_is_named_by_its_source_with_a_suffix():
11
+ """The upsample job's media id is the source id with ``_upsampled``
12
+ appended; the media route refused it as invalid, so every finished
13
+ upsample answered 404."""
14
+ assert is_valid_media_id("f8128c97-bde9-404b-a92e-df6aa2fe2b20_upsampled")
15
+
16
+
17
+ def test_anything_else_is_not():
18
+ assert not is_valid_media_id("../etc/passwd")
19
+ assert not is_valid_media_id("f8128c97_UPSAMPLED")
20
+ assert not is_valid_media_id("f8128c97_upsampled_twice")
21
+ assert not is_valid_media_id("")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vrex-flow-engine
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: Launcher + supervisor and OpenAI-compatible image/video generation service (Vrex Flow Engine).
5
5
  Author: Vrex
6
6
  License: Proprietary
@@ -35,6 +35,7 @@ flow_engine/openai/uploads.py
35
35
  flow_engine/openai/videos.py
36
36
  tests/test_catalog_resolution.py
37
37
  tests/test_flow_rpc.py
38
+ tests/test_media_ids.py
38
39
  tests/test_rpc_method_map.py
39
40
  tests/test_video_mode_selection.py
40
41
  vrex_flow_engine.egg-info/PKG-INFO