Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
4f4aca2
Started on async
thopkins32 Jun 3, 2025
cec0d98
Draft of Eiger async
thopkins32 Jun 11, 2025
9e19532
Added proper file writing and simplified implementation
thopkins32 Jun 30, 2025
9d28381
Progress on file writing
thopkins32 Jun 30, 2025
929ea01
Finished first version of EigerWriter (untested)
thopkins32 Jul 1, 2025
9a8f1f3
Finished writing unit tests for eiger async
thopkins32 Jul 1, 2025
89ef73b
Add TODO reminder
thopkins32 Jul 1, 2025
6bbaadb
pre-commit
thopkins32 Jul 2, 2025
eeed7d4
Ruff fixes
thopkins32 Jul 2, 2025
fbfc09f
Added EigerController tests
thopkins32 Jul 2, 2025
f40ae09
EigerWriter inherits from ADWriter; Workaround for NumTriggers not be…
thopkins32 Jul 2, 2025
d6e4bc7
Better acknowledgement of force minimum nimgs_per_file
thopkins32 Jul 2, 2025
342138c
Progress on integration tests with tiled and RE
thopkins32 Jul 2, 2025
08451d8
RunEngine test passes
thopkins32 Jul 10, 2025
a136df1
Merge branch 'main' of https://github.com/NSLS2/cditools into eiger-a…
thopkins32 Jul 10, 2025
d61a0ee
Some pre-commit stuff
thopkins32 Jul 10, 2025
8d485e5
Update signals to reflect actual values
thopkins32 Jul 11, 2025
e70e5d4
Separate PVs for Eiger1, Eiger2; Add EigerDatasetDescription; Add log…
thopkins32 Jul 14, 2025
f67f22f
Add plugins argument
thopkins32 Jul 14, 2025
ee10d29
Added back forcing min images per file
thopkins32 Jul 14, 2025
e4c43d8
Need to debug detector tests
thopkins32 Jul 14, 2025
6b16877
Tests pass with new Eiger organization
thopkins32 Jul 15, 2025
402570b
NDFileIO back to inheriting from NDArrayBaseIO
thopkins32 Jul 15, 2025
7f7e53f
Add nimgs_per_file with correct PV string; Add comment about num_capt…
thopkins32 Jul 15, 2025
218862d
Merged EigerFileIO into EigerDriverIO to access driver PVs in EigerWr…
thopkins32 Jul 16, 2025
c62d9d2
Merge branch 'main' of https://github.com/NSLS2/cditools into eiger-a…
thopkins32 Jul 16, 2025
b51e340
Use array_counter instead of num_images_counter because we can set it…
thopkins32 Jul 16, 2025
665951a
Remove the disable part of close
thopkins32 Jul 16, 2025
f538158
Update sequence_id offset
thopkins32 Jul 16, 2025
50eac1b
Updated tests
thopkins32 Jul 16, 2025
a02c3b7
Merge branch 'eiger-async' of https://github.com/NSLS2/cditools into …
thopkins32 Jul 16, 2025
637b64f
Fix sequence_id offset in tests
thopkins32 Jul 16, 2025
c53b09b
More accurate file writing and resource generation
thopkins32 Jul 17, 2025
dd4f27b
Remove frame_time
thopkins32 Jul 17, 2025
cd10592
Add back frame time; Fix HDF link to data
thopkins32 Jul 18, 2025
a6b8049
Remove leading slash for hdf image entry
thopkins32 Jul 18, 2025
394a567
Update data types to match what is actually written by ADEiger
thopkins32 Jul 18, 2025
26dce6e
Fixed shapes of data
thopkins32 Jul 18, 2025
6809821
Remove extra metadata until tiled can support readback with () shape
thopkins32 Jul 18, 2025
32245d7
Pre-commit errors
thopkins32 Jul 22, 2025
eefc1ac
Fixed small test issue
thopkins32 Jul 22, 2025
6741692
Use pixi for pre-commit
thopkins32 Jul 22, 2025
efdaff6
Change test -> dev for unit tests
thopkins32 Jul 22, 2025
d049696
Updated versions
thopkins32 Sep 2, 2025
9cfe709
Update dependencies and fix tests with new ophyd-async version
thopkins32 Sep 2, 2025
c479a40
Merge branch 'main' of https://github.com/NSLS2/cditools into eiger-a…
thopkins32 Sep 2, 2025
ff4121f
Remove pyright type checking; Fix ruff linting errors
thopkins32 Sep 2, 2025
ac89559
Merge branch 'main' of https://github.com/NSLS2/cditools into eiger-a…
thopkins32 Oct 20, 2025
467c3ef
Remove 'streams' from tiled access
thopkins32 Oct 20, 2025
c566dbb
pre-commit
thopkins32 Oct 20, 2025
0805bd9
Remove all uses of 'streams' in tests
thopkins32 Oct 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,15 @@ jobs:
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@v6
with:
python-version: "3.x"

- name: Install package
run: python -m pip install .[dev]
- name: Setup Pixi
uses: prefix-dev/setup-pixi@v0.8.8
with:
environments: dev
frozen: true
locked: false
cache: false
activate-environment: true

- name: Run pre-commit
run: pre-commit run --all-files
Expand All @@ -59,7 +62,7 @@ jobs:
allow-prereleases: true

- name: Install package
run: python -m pip install .[test]
run: python -m pip install .[dev]

- name: Test package
run: >-
Expand Down
33 changes: 8 additions & 25 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,6 @@ repos:
- id: requirements-txt-fixer
- id: trailing-whitespace

- repo: https://github.com/pre-commit/pygrep-hooks
rev: "v1.10.0"
hooks:
- id: rst-backticks
- id: rst-directive-colons
- id: rst-inline-touching-normal

- repo: https://github.com/rbubley/mirrors-prettier
rev: "v3.5.3"
hooks:
Expand All @@ -48,24 +41,14 @@ repos:
args: ["--fix", "--show-fixes"]
- id: ruff-format

- repo: local
hooks:
- id: pyright
name: pyright
entry: pyright
language: system
types: [python]
files: src|tests

- repo: https://github.com/codespell-project/codespell
rev: "v2.4.1"
hooks:
- id: codespell

- repo: https://github.com/shellcheck-py/shellcheck-py
rev: "v0.10.0.1"
hooks:
- id: shellcheck
# - repo: local
# hooks:
# - id: pyright
# name: pyright
# entry: pyright
# language: system
# types: [python]
# files: src|tests

- repo: local
hooks:
Expand Down
2,918 changes: 2,494 additions & 424 deletions pixi.lock

Large diffs are not rendered by default.

33 changes: 10 additions & 23 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,32 @@ classifiers = [
dynamic = ["version"]
dependencies = [
"ophyd",
"ophyd-async >=0.10.0a4",
"h5py",
]

[project.optional-dependencies]
test = [
"entrypoints",
"pytest >=6",
"pytest-cov >=3",
"pytest-asyncio >=0.18",
"caproto[standard] >=0.4.2rc1,!=1.2.0",
"tiled[minimal-client]",
"tiled[minimal-server]",
"ophyd >=v1.10.6",
]
dev = [
"caproto[standard] >=0.4.2rc1,!=1.2.0",
"pytest >=6",
"pytest-cov >=3",
"pytest-asyncio >=0.18",
"pandas",
"pre-commit",
"ipython",
"ruff",
"aioca",
"tiled[minimal-client,server]",
"pyright",
"ophyd >=v1.10.6",
"twine",
Expand Down Expand Up @@ -77,13 +85,11 @@ black-hole-ioc = "cditools.simulated.black_hole:main"
[tool.setuptools_scm]
write_to = "src/cditools/_version.py"


[tool.uv]
dev-dependencies = [
"cditools[dev]",
]


[tool.pytest.ini_options]
minversion = "6.0"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
Expand All @@ -96,7 +102,6 @@ testpaths = [
"tests",
]


[tool.coverage]
run.source = ["cditools"]
report.exclude_also = [
Expand All @@ -106,8 +111,8 @@ report.exclude_also = [

[tool.pyright]
include = ["src", "tests"]
pythonVersion = "3.9"
typeCheckingMode = "basic"
pythonVersion = "3.12"
typeCheckingMode = "strict"
reportMissingImports = true
# Required for untyped packages
reportMissingTypeStubs = false
Expand Down Expand Up @@ -154,21 +159,6 @@ isort.required-imports = ["from __future__ import annotations"]
"tests/**" = ["T20", "ARG001"]
"noxfile.py" = ["T20"]


[tool.pylint]
py-version = "3.9"
ignore-paths = [".*/_version.py"]
reports.output-format = "colorized"
similarities.ignore-imports = "yes"
messages_control.disable = [
"design",
"fixme",
"line-too-long",
"missing-module-docstring",
"missing-function-docstring",
"wrong-import-position",
]

[tool.pixi.project]
channels = ["conda-forge"]
platforms = ["linux-64"]
Expand All @@ -181,6 +171,3 @@ default = { solve-group = "default" }
dev = { features = ["dev"], solve-group = "default" }
docs = { features = ["docs"], solve-group = "default" }
test = { features = ["test"], solve-group = "default" }

[tool.codespell]
skip = '*.lock'
Loading