From 354aeea2a351b8f5beb246a925a82559d7f22bdf Mon Sep 17 00:00:00 2001 From: Tom Kane Date: Wed, 30 Sep 2026 15:26:44 +0000 Subject: [PATCH 1/2] update pvi to 0.14.4 --- pyproject.toml | 7 ++----- uv.lock | 12 ++++++------ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b0cfc98b..da948b3e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,11 +34,8 @@ requires-python = ">=3.11" [project.optional-dependencies] demo = ["tickit~=0.4.3"] -epicsca = [ - "pvi~=0.12.0", - "softioc>=4.7.1", -] -epicspva = ["p4p", "pvi~=0.12.0"] +epicsca = ["pvi~=0.14.4", "softioc>=4.7.1"] +epicspva = ["p4p", "pvi~=0.14.4"] epics = ["fastcs[epicsca]", "fastcs[epicspva]"] tango = ["pytango"] graphql = ["strawberry-graphql", "uvicorn[standard]>=0.12.0"] diff --git a/uv.lock b/uv.lock index 9505cdf1..e1a6aa37 100644 --- a/uv.lock +++ b/uv.lock @@ -321,7 +321,7 @@ name = "cffi" version = "2.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pycparser" }, + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } wheels = [ @@ -1002,8 +1002,8 @@ requires-dist = [ { name = "numpy" }, { name = "numpy", marker = "extra == 'rest'" }, { name = "p4p", marker = "extra == 'epicspva'" }, - { name = "pvi", marker = "extra == 'epicsca'", specifier = "~=0.12.0" }, - { name = "pvi", marker = "extra == 'epicspva'", specifier = "~=0.12.0" }, + { name = "pvi", marker = "extra == 'epicsca'", specifier = "~=0.14.4" }, + { name = "pvi", marker = "extra == 'epicspva'", specifier = "~=0.14.4" }, { name = "pydantic" }, { name = "pygelf" }, { name = "pytango", marker = "extra == 'tango'" }, @@ -2147,7 +2147,7 @@ wheels = [ [[package]] name = "pvi" -version = "0.12.0" +version = "0.14.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jinja2" }, @@ -2157,9 +2157,9 @@ dependencies = [ { name = "ruamel-yaml" }, { name = "typer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/91/3808872d96de8dac33069bf97f94f6ff430841ceaa8398db122ffe9d4244/pvi-0.12.0.tar.gz", hash = "sha256:1fb288dd863f31c276c0e119b57a36788f2b6c2e1324f88f1fac2c8ae1a8bb03", size = 189219, upload-time = "2025-12-22T14:11:02.545Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/af/a5b4fa5210fbd072e70eaf9d5b8ccaf6a7e61b293e444331cf85423d6bde/pvi-0.14.4.tar.gz", hash = "sha256:745e3a084afb6cb0c557518399063e9992bf7b3e925f1f9e6dd97bf34d46aaf4", size = 289308, upload-time = "2026-09-30T13:02:43.76Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/b9/ffdd156df74460300c7e0483662670ed2826b7c09c59ba6a3a1b8c83b05d/pvi-0.12.0-py3-none-any.whl", hash = "sha256:b578a513fbbfe2368623eb6a75d84daf8b3176d4e46d3bc506f0ee3a1dbbfd80", size = 57072, upload-time = "2025-12-22T14:11:01.254Z" }, + { url = "https://files.pythonhosted.org/packages/b2/03/3e38dd5a7a5618f8dfa8cdd08f414bc915d6bae79f495d19bd97d570d199/pvi-0.14.4-py3-none-any.whl", hash = "sha256:0ead53921df2216bc5bee6f31aba483f33a9bd64a49bf59dbb2e324a67e365a1", size = 59818, upload-time = "2026-09-30T13:02:42.626Z" }, ] [[package]] From b0ed84889f5579e73e931763418fd075c6deb21d Mon Sep 17 00:00:00 2001 From: Tom Kane Date: Wed, 30 Sep 2026 15:42:52 +0000 Subject: [PATCH 2/2] swap in resolved tree to fix Include issue from pvi --- src/fastcs/transports/epics/gui.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fastcs/transports/epics/gui.py b/src/fastcs/transports/epics/gui.py index 882a83a0..4b00dd88 100644 --- a/src/fastcs/transports/epics/gui.py +++ b/src/fastcs/transports/epics/gui.py @@ -8,6 +8,7 @@ Grid, Group, ReadWidgetUnion, + ResolvedTree, SignalR, SignalRW, SignalW, @@ -17,7 +18,6 @@ TextRead, TextWrite, ToggleButton, - Tree, WriteWidgetUnion, ) from pydantic import ValidationError @@ -147,8 +147,8 @@ def build_device(self, title: str) -> Device: components = self.extract_api_components(self._controller_api) return Device(label=title, children=components) - def extract_api_components(self, controller_api: ControllerAPI) -> Tree: - components: Tree = [] + def extract_api_components(self, controller_api: ControllerAPI) -> ResolvedTree: + components: ResolvedTree = [] for name, api in controller_api.sub_apis.items(): if name.isdigit():