Skip to content

Conversation

@GDYendell
Copy link
Contributor

@GDYendell GDYendell commented Nov 21, 2025

  • Add some tests for missing coverage

Fixes #253

Summary

Organise modules into directories with a small number of modules at the root, such as control_system, launch and tracer

  • attributes
  • controllers
  • datatypes
  • methods
  • transport -> transports

Split most files with multiple classes into separate files

Update imports, patches and docs ignores

Rename some typevars

  • T -> DType_T so that drivers can use T for general generic type hints without clashes

Rename Numerical -> Numeric

Import public APIs in __init__.pys to simplify import paths

Breaking Changes

  • Rename from fastcs.datatypes import T -> from fastcs.datatypes import DType_T
  • Imports
    • from fastcs.attribute_io -> from fastcs.attributes
    • from fastcs.attribute_io_ref -> from fastcs.attributes
    • from fastcs.controller -> from fastcs.controllers
    • from fastcs.cs_methods -> from fastcs.methods
    • from fastcs.transport -> from fastcs.transports
    • from fastcs.wrappers -> from fastcs.methods
    • from fastcs.attributes import ONCE -> from fastcs.util import ONCE
    • fastcs.transport.epics.options import EpicsGUIOptions, EpicsIOCOptions -> from fastcs.transports.epics import EpicsGUIOptions, EpicsIOCOptions
    • from fastcs.transport.epics.ca.transport import EpicsCATransport -> from fastcs.transports.epics.ca import EpicsCATransport

@GDYendell GDYendell requested a review from shihab-dls November 21, 2025 17:18
@GDYendell
Copy link
Contributor Author

GDYendell commented Nov 21, 2025

@shihab-dls the diff is huge, but there are hardly any actual code changes. Could you just have a scan through and see if you think where I have moved things around make sense, and that the imports are nicer?

@codecov
Copy link

codecov bot commented Nov 21, 2025

Codecov Report

❌ Patch coverage is 97.56469% with 16 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.37%. Comparing base (9d894ef) to head (75782d3).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/fastcs/controllers/controller_vector.py 87.87% 4 Missing ⚠️
src/fastcs/attributes/attr_r.py 94.44% 3 Missing ⚠️
src/fastcs/transports/epics/gui.py 57.14% 3 Missing ⚠️
src/fastcs/attributes/attr_w.py 95.00% 2 Missing ⚠️
src/fastcs/datatypes/datatype.py 92.30% 2 Missing ⚠️
src/fastcs/datatypes/table.py 94.73% 1 Missing ⚠️
src/fastcs/methods/scan.py 97.61% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #275      +/-   ##
==========================================
+ Coverage   89.38%   90.37%   +0.98%     
==========================================
  Files          46       68      +22     
  Lines        2280     2368      +88     
==========================================
+ Hits         2038     2140     +102     
+ Misses        242      228      -14     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

shihab-dls
shihab-dls previously approved these changes Nov 24, 2025
Copy link
Contributor

@shihab-dls shihab-dls left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Super nice! No notes, approving

@GDYendell GDYendell merged commit 0f75fa1 into main Nov 24, 2025
11 checks passed
@GDYendell GDYendell deleted the module-structure branch November 24, 2025 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve module structure

3 participants