From 4fae6136f1c0087eb91dcbe3d4bef43ef73fc07f Mon Sep 17 00:00:00 2001 From: Benjamin Labrecque Date: Tue, 21 Jul 2026 14:40:47 +0200 Subject: [PATCH] feat: add option to use pixi for agebd package --- .gitignore | 3 +++ packages/agebd/pyproject.toml | 33 +++++++++++++++++++++++++ packages/agebd/src/agebd/service/pvs.py | 1 - packages/agebd/uv.lock | 24 ++++++++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 36b13f1..be00b58 100644 --- a/.gitignore +++ b/.gitignore @@ -174,3 +174,6 @@ cython_debug/ # PyPI configuration file .pypirc +# pixi environments +.pixi/* +!.pixi/config.toml diff --git a/packages/agebd/pyproject.toml b/packages/agebd/pyproject.toml index 0d7fb9f..8398ad7 100644 --- a/packages/agebd/pyproject.toml +++ b/packages/agebd/pyproject.toml @@ -6,6 +6,7 @@ requires-python = "==3.10.*" dependencies = [ "h5py>=3.16.0", + "pyepics>=3.5.10", "typer>=0.23.2", ] @@ -35,3 +36,35 @@ line-length = 100 [tool.ruff.lint] # use isort to sort imports extend-select = ["I"] + +### PIXI ### + +[tool.pixi.workspace] +name = "agebd" +channels = ["conda-forge"] +platforms = ["linux-64"] +version = "0.1.0" + +[tool.pixi.tasks] + +[tool.pixi.dependencies] +python = "3.10.*" +h5py = ">=3.16.0,<4" +typer = "*" +pyepics = ">=3.5.10,<4" + +[tool.pixi.pypi-dependencies] +agebd = { path = ".", editable = true } + +[tool.pixi.feature.dev.dependencies] +pyright = "*" +ruff = "*" +twine = "*" +pytest = ">=9.1.1,<10" + +[tool.pixi.feature.dev.tasks] +test = "pytest" +format = "ruff format" + +[tool.pixi.environments] +dev = ["dev"] diff --git a/packages/agebd/src/agebd/service/pvs.py b/packages/agebd/src/agebd/service/pvs.py index 887b92d..96ddf69 100644 --- a/packages/agebd/src/agebd/service/pvs.py +++ b/packages/agebd/src/agebd/service/pvs.py @@ -16,4 +16,3 @@ class BasePVs: self.abort = pv_factory(f'AGEBD-MASTER:{svc}-ABORT.VAL') self.abortreq = pv_factory(f'AGEBD-MASTER:{svc}-ABORT-REQ.VAL') # fmt: on - diff --git a/packages/agebd/uv.lock b/packages/agebd/uv.lock index 0e9a049..3abe14f 100644 --- a/packages/agebd/uv.lock +++ b/packages/agebd/uv.lock @@ -8,6 +8,7 @@ version = "0.1.0" source = { editable = "." } dependencies = [ { name = "h5py" }, + { name = "pyepics" }, { name = "typer" }, ] @@ -22,6 +23,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "h5py", specifier = ">=3.16.0" }, + { name = "pyepics", specifier = ">=3.5.10" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -394,6 +396,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, ] +[[package]] +name = "pyepics" +version = "3.5.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pyparsing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/57/29e1e9ef11ba2a3419f489946ae1d8190025a1e4f4e1c1686758bb2b6e0a/pyepics-3.5.10.tar.gz", hash = "sha256:f390cf9be40aba757b9528888114bc14d8db01086d0c93914720b1772460375b", size = 6150481, upload-time = "2026-05-20T18:44:36.336Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/36/e517fd83bd97d6bfe4105e0c6b322070c5cc36fb56a8fab2866e319f8804/pyepics-3.5.10-py3-none-any.whl", hash = "sha256:c9fac2c54f2b595268e66fc348cf5ec24e63718e7dbd07d73d1b37d4da6bfee1", size = 5332376, upload-time = "2026-05-20T18:44:34.242Z" }, +] + [[package]] name = "pygments" version = "2.20.0" @@ -403,6 +418,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, ] +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + [[package]] name = "pyright" version = "1.1.411"