Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Dates are specified in the format DD-MM-YYYY
.
0.5.1 - 06-03-2025#
Changed#
Dropped upper bound limit for
numpy
dependency
0.5.0 - 03-03-2025#
Changed#
Rearranged the structure of virtual-related classes
Everything related to creating connections with the virtual bus have been brought to the
sunflare.virtual
module
Set the default log level to
INFO
(wasDEBUG
before)Reworked
sunflare.config
to accomodate for new plugin system
Added#
Added a
Model
base class for quicker development.
Removed#
configure
protocol is not part of theModelProtocol
anymore; see this PR
0.4.2 - 24-02-2025#
Changed#
Changed
ModelProtocol.configure
signaturePrevious signature was not consistent with the command issued by the
RunEngine
0.4.1 - 23-02-2025#
Added#
Added support for
Mapping
types (i.e.dict
) inModelInfo
methods (read/describe_configuration
)Added optional parameters for
read/describe_configuration
read_configuration
:timestamp
(i.e. usetime.time()
for a timestamp of the last reading time)describe_configuration
:source
, to specify the source of the configuration parameter
0.4.0 - 22-02-2025#
Added#
Implemented support for ZMQ messaging via
pyzmq
Added initial support for
msgspec
Added mixin classes for creating publisher/subscribers
Added mixin classes for
Signal
-enabled controllersAdded more documentation for the virtual module
Reorganized code in different modules to avoid circular imports
Split controller in different protocols
Added
ModelInfoProtocol
to deploy models from packages that don’t have a strict dependency with SunflareAdded more tests, both for existing and new code
0.3.5 - 11-02-2025#
Added#
Added protocol equivalent for
ModelInfo
Currently untested
This can be used in combination with
ModelProtocol
to define a Model interface from an external package without direct dependency to thesunflare
package.
Added documentation for
Controller
Added tests for
RunEngine
wrapper
Changed#
Minor docstring and renaming fixes
engine
andfrontend
fields ofRedSunSessionInfo
are not optional anymore
Fixed#
RunEngine.__call__
fails in Python 3.9 unless explictly setting the event loop in the executor
0.3.4 - 05-02-2025#
Fixed#
Fixed bug in
RedSunSessionInfo.store_yaml
which was not correctly parsingEnum
andtuple
types
0.3.3 - 04-02-2025#
Changed#
Minor renaming
RedSun -> Redsun
SunFlare -> Sunflare
Added#
Added documentation
Notions of O.O.P.
Minimal model doc
Added test for VirtualBus connection mechanism
Added
WidgetInfo
classProvides information for widgets
Redsun uses it to correctly allocate dock widgets in the main view
Currently adapted to be used with
PyQt
andPySide
For web-based frameworks may require adjustments somehow
Added
RedSunSessionInfo.store_yaml
to save the configuration file elsewhereWe could think of supporting dynamic plugin loading; this would mean changing the content of
RedSunSessionInfo
on the fly.
0.3.2 - 29-01-2025#
Added#
session
field inRedSunSessionInfo
used as main window title and as bluesky metadata
added
**kwargs
toconfigure
methodneed investigation on how to actually use it
added optional
shutdown
method inModelProtocol
it still must be implemented although not mandatory
Removed#
removed built-in protocols
Detector
andMotor
each plugin should take care of deciding what they are
Changed#
fixed metaclass error in
BaseQtWidget
0.3.1 - 27-01-2025#
Added#
Added parts of
Configurable
protocol inModelInfo
for easier handling
0.3.0 - 27-01-2025#
Changed#
Refactor: simplify
virtual
module and removeEngineHandler
Use
typing_extensions.Protocol
in case ofPython < 3.11
Added#
Added a wrapper of
RunEngine
which leaves the main thread unblocked
0.2.2 - 02-01-2025#
Changed#
Correct engine handler API.
Update CI action versions.
0.2.1 - 02-01-2025#
Changed#
Engine handler now stores plans as dictionary of dictionaries.
The key of the main dictionary is the controller name which holds the plans;
The values are dictionaries:
Keys are the plan names;
Values are plans built with
functools.partial
0.2.0 - 31-12-2024#
Added#
Change configuration classes to use attrs in https://github.com/redsun-acquisition/sunflare/pull/8
Model API rework in https://github.com/redsun-acquisition/sunflare/pull/9
0.1.1 - 26-12-2024#
Same changes as [v0.1.1a1]
Some typo adjustments
0.1.1a1 - 25-12-2024#
(Only available on TestPyPI)
Added#
Rework handler by @jacopoabramo in #6
Reworked a lot of logic
Models are now subclassed in Models for easier type hinting management
Using RedSunInstanceInfo in handler
RedSunInstance info now holds logic to load and check yaml file as static method
0.1.0 - 23-12-2024#
Added#
First release on PyPI;
Reached above 90% coverage;
0.1.0a1 - 22-12-2024#
(Only available on TestPyPI)
Added#
Alpha release;
Basic project infrastructure;