Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: DiamondLightSource/fastcs

Tags

0.14.1

Toggle 0.14.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #386 from DiamondLightSource/fix_tests

add wait flag to context put operations in test

0.15.0-beta.5

Toggle 0.15.0-beta.5's commit message
index.bob: separate title logic from per-controller screens

- Per-controller screens always use their own PV prefix as title
- index.bob title uses EpicsGUIOptions.title if set, otherwise falls
  back to the first root controller's PV prefix or 'FastCS Devices'
- Setting title='' suppresses the title widget entirely (via pvi's
  new without_title() path when Device.label is empty)
- Document the ~30-character truncation limit in EpicsGUIOptions.title

0.15.0-beta.4

Toggle 0.15.0-beta.4's commit message
test: Add coverage tests for BaseController group_layout and launch n…

…o-options path

Add two targeted tests to improve code coverage:

1. test_controller_with_group_layout() - Tests that the group_layout parameter
   is properly initialized in BaseController.__init__() when explicitly passed
   and that it defaults to GroupLayout.SUBSCREEN. Covers line 57 in base_controller.py.

2. test_launch_single_arg_no_options() - Tests the launch system's handling of
   controllers that take no configuration options. Exercises the code path where
   registered.cls() is called with only path=[entry.id]. Covers line 236 in launch.py.

These tests address CodeCov patch coverage report gaps.

0.15.0-beta.3

Toggle 0.15.0-beta.3's commit message
test(controllers): drop stale path-mismatch assertion

The path pre-validation in `add_sub_controller` was removed in 63ffd94
to decouple sub-controller path assignment from registration; the
`does not match parent path` ValueError no longer fires.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

0.14.0

Toggle 0.14.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #360 from DiamondLightSource/multiple-controllers

Multiple top-level Controllers per FastCS app (#351)

0.14.0-beta.2

Toggle 0.14.0-beta.2's commit message
feat(launch): restore pre-#360 path flow with launcher-seeded root id

Restores the path-propagation flow to its pre-#360 shape: same
`set_path` / `add_sub_controller(name).set_path(parent.path + [name])`
/ `_build_api(self._path)` machinery, with the single addition that
the launcher seeds each root Controller's path via
`set_path([entry.id])` once before `serve`. The "root of the path"
moved from transport-config (`pv_prefix`, gone after #360) to
controller-config (the YAML `id:`, seeded into `_path`).

Drops `id` from Python entirely. `Controller._id`, `set_id()`, the
`id` property and the `_id` repr branch are removed. `id` is now a
YAML-label-only concept; `path` is the real Controller concept and
the launcher is the only place that translates one to the other.
User `Controller.__init__` is unchanged.

YAML schema flip (consistent with the multi-controller direction of
PR #360): `controllers:` becomes a list of entries, each carrying
`id:` as a sibling of the existing `type:` discriminator. Duplicate
ids are rejected at run time by `_instantiate_controllers` (replaces
the dict mapping-key safety net that no longer exists).

  controllers:
    - id: MAIN
      type: TemperatureController
      ip_settings: { ip: localhost, port: 25565 }
      num_ramp_controllers: 4

The transport-side change made by #360 stays —
`EpicsCATransport.connect` reads `pv_prefix_from_path(api.path)`
instead of a configured `pv_prefix`. Multi-controller cardinality
(also #360 territory) stays.

`FastCS._context_key` and direct-construction call sites read
`controller.path[0]` (with `IndexError` falling back to the class
name); tests, examples and snippets call `set_path([id])` instead
of `set_id(id)`. Migration guide, launch-framework guide,
multiple-transports guide, demo, all docs snippets, and the YAML
fixtures are updated to the list form.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

0.14.0-beta.1

Toggle 0.14.0-beta.1's commit message
Fail fast on punctuation-only controller ids in EPICS GUI emission

The EPICS CA id validator accepts `[A-Za-z0-9_-]+`, so ids like `"___"`
and `"-"` pass validation and reach `_coerce_pascal_name` in the GUI
emission path. That helper delegates to `pvi.device.enforce_pascal_case`,
which strips non-Pascal characters and unconditionally indexes `s[0]` on
the result. When every character is stripped the index raises
`IndexError`, blowing up GUI emission at `connect()` time with an opaque
traceback.

Pre-strip the id with the same regex pvi uses (`NON_PASCAL_CHARS_RE`)
and raise `ValueError` with a message that names the offending id when
the strip yields the empty string. Choosing fail-fast over an `"X"`
fallback keeps the failure traceable: a silent fallback would generate
nonsense GUI names that the user would have to reverse-engineer back to
the bad id.

Fixes #369

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

0.12.0

Toggle 0.12.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Update to copier 5.0.2 and rename FastCS -> fastcs (#335)

0.12.0a2

Toggle 0.12.0a2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
refactor: make ControllerVector generic on Controller_T (#326)

0.12.0a1

Toggle 0.12.0a1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Pass precision to widget for Int and Float (#299)