Changelog¶
Here you can see the full list of changes between each Concert release.
Version 0.9¶
Released on August 15th 2014.
Improvements¶
- The state machine mechanism is not special anymore but directly inherits from Parameter.
- Added walker mechanism to write sequence data in hierarchical structures such as directories or HDF5 files.
- The long-standing gevent integration with IPython is finished at least for IPython >= 2.0.
- Added @expects decorator to annotate what a function can receive.
- Added async.resolve() to get result of future lists.
- Added accumulate sink and timer coroutines.
- Added Timestamp class for PCO cameras that decodes the BCD timestamp embedded in a frame.
- Added optional wait_on to getter and setter of a ParameterValue.
- We now raise an exception in if a uca frame is not available.
- Experiments have now hooks for preparation and cleanup tasks.
- Added basic control loop classes.
- Add binary signal device class.
API breaks¶
- scan yields futures instead of returning a list
- Moved specific pco cameras to concert.devices.cameras.pco.
- Moved write_images to concert.storage
- Removed base.MultiContext and base.Process
Fixes¶
- #198, #254, #271, #277, #280, #286, #293
- The pint dependency had to be raised to 0.5.2 in order to compute sums of quantities.
Version 0.8¶
Released on April 16th 2014.
Improvements¶
- concert log can now --follow the current operation.
- Soft limits and parameters can be locked both temporarily and permanently.
- Added new @quantity decorator for simple cases.
- The concert` binary can now be started without a session.
- Added cross-correlation tomographic axis finding.
- Added frame consumer to align_rotation_axis.
- Simplify file camera and allow resetting it
- Added ports property to the base IO device.
- Added Photodiode base device class.
- Added Fiber-Lite halogen lightsource.
- Added LEDs connected within the wago.
- Added stream coroutine to cameras.
- Added EdmundOptics photodiode.
- Added PCO.4000 camera.
- Added Wago input/output device.
API breaks¶
- Raise CameraError instead of ValueError
- Change Pco’s freerun to stream
Fixes¶
- Fix FileCamera pixel units in grab
- Import GLib.GError correctly
- Make recording context exception-safe
- Fix quantity problem with recent Pint versions
- #200, #203, #206, #209, #228, #230, #245
Version 0.7¶
Released on February 17th 2014.
Improvements¶
- Added beam finding and centering
- threaded decorator uses daemonic threads
- Added downsize, queue, stall, PickSlice to coroutine filters
- Added reconstruction of the whole volume using UFO Framework
- Documentation was restructured significantly (split to usage/API)
- Added tomography helper functions
- Crio motor support continuous rotation
- PyplotViewer can be configured for faster drawing capabilities using blit
- Added dummy Scales
- Tests cover all devices (at least try to instantiate them)
- Added pixel units, q.pixel (shorthand q.px)
- Changed prompt color to terminal default
- Added Positioner device
- Added Detector device
API Breaks¶
- Finite state machine was reworked significantly
- Motors were cleaned from mixins and hard-limit was incorporated into them
- recording() context was added to cameras
- backprojector coroutine filter was significantly simplified
- average_images arguments changed
- Experiments were completely restructured based on usage of Acquisition
- PyplotViewer plotting signature changed
- Remove leftover beam line specific shutters
- Many getters/setters were replaced by properties, especially in the concert.ext.viewers module
- Appropriate get_ set_ functions were replaced by non-prefixed ones
Fixes¶
- #118, #128, #132, #133, #139, #148, #149, #150, #157, #159, #165, #169, #173, #174, #175, #176, #178, #179, #181, #184, #189, #192
Version 0.6¶
Released on December 10th 2013.
Improvements¶
- Concert now comes with an experimental gevent backend that will eventually replace the thread pool executor based asynchronous infrastructure.
- Each device can now have an explicit State object and @transition applied to function which will change the state depending on the successful outcome of the decorated function.
- 1D data plotting is implemented as PyplotCurveViewer.
- The concert binary now knows the cp command to make a copy of a session. The start command can receive a log level and with the --non-interactive option run a session as a script.
- Devices and parameters can store their current parameter values with stash and restore them later with restore.
- Changed the IPython prompt.
- Added the NewPort 74000 Monochromator.
- Provide a require function that will scream when the required Concert version is not installed.
API breaks¶
- Motor is renamed to LinearMotor for all devices.
- Parameter objects are now declared at class-level instead of at run-time within the class constructor.
- concert.storage.create_folder renamed to concert.storage.create_directory
- concert.ext.viewers.PyplotViewer substituted by 1D and 2D viewers concert.ext.viewers.PyplotCurveViewer and concert.ext.viewers.PyplotImageViewer
- To wait on a Future you have to call .join instead of .wait.
- Coroutine functions and decorators moved to concert.coroutines[.base], asynchronous functions and decorators moved to concert.async.
- Removed is_async
- Configuration moved to concert.config
- Method names of concert.ext.ufo.InjectProcess changed.
Fixes¶
- #168, #166, #152, #147, #158, #150, #157, #95, #138
- Many more concerning the camera implementation.
Version 0.5¶
Released on October 31st 2013.
Improvements¶
- Python 3 is supported and can be tested with tox.
- Most imports are delayed in the concert binary to reduce startup time.
- We do not depend on Logbook anymore but use Python’s logging module.
- Experiments can now be modelled with the concert.experiments module.
- concert.ext.viewers.PyplotViewer can be used to show 2D image data.
- Spyder command plugin is now available. That means if you have Spyder installed you can control Concert from an IDE instead of from IPython.
- Tests were restructured for easier access.
API breaks¶
- concert.connections package moved to concert.networking module
- Renamed concert.helpers.multicast to broadcast to reflect its true purpose.
- Session helpers such as dstate and ddoc have been moved to concert.session.utils.
- Frames grabbed with the libuca devices will return a copy instead of the same buffer.
Fixes:
- #106, #113 and many more which did not deserve an issue number.
Version 0.4¶
Released on October 7th 2013.
Improvements¶
- Tests and rotation axis alignment is faster now.
- Soft limits were added to the parameter (accessible with .lower and .upper)
- Cleaner inet connection implemention.
- Base pumps and scales were added.
- Concert no longer depends on testfixtures for running tests.
- Started work on flexible data processing schemes for light computation based on a coroutine approach.
- Integrated tifffile.py in case libtiff is not available.
- concert mv renames sessions.
- @threaded decorator can be used to run a function in its own thread.
- Scanner parameters can now be set in the constructor.
- Parameters can now be locked independently of the parent device. However, if done so, no one else can lock the device.
- Add code_of function to show the source of a function.
- Introduced coroutine based data processing facility.
API breaks¶
- Renamed to_steps to to_device and do not drop units
- camera.grab returns None if no data is available
- uca.Camera exposes the wrapped GObject camera as an attribute called uca instead of camera.
- minimum, maximum and intervals are now longer implemented as Parameter objects of Scanner but simple attributes.
- asynchronous module content has been moved to helpers
- Removed Scanner class in favor of scan function.
Fixes:
- Integration with all IPython releases works again.
- runtests.py returns 0 on success.
- #19, #55, #71, #78, #79
Version 0.3¶
Released on August 19th 2013.
Note: This release breaks Python 2.6 compatibility!
- Calibration classes moved to concert.devices.calibration
- Remove concert.processes.focus and reorganize concert.optimization package, the focusing can be implemented by Maximizer with a proper feedback.
- Add --repo parameter to the fetch command. With this flag, session files version controlled with Git can be imported.
- Use pint instead of quantities. pint is faster for smaller Numpy arrays, stricter and does not depend on Numpy.
- Things can now run serialized if concert.asynchronous.DISABLE is set to True.
- Restructured tests into separate directories.
- Fix PDF generation of the docs.
- Fix problem with IPython version >= 0.10.
Version 0.2¶
Released on July 14th 2013.
- Move third-party code to concert.ext. For example get_tomo_scan_result must be imported from concert.ext.nexus.
- Adds concert fetch to pull session files from remote locations.
- Code cleanup
Version 0.1.1¶
Bug fix release, released on May 25th 2013
- Fixes Python 3 support.
- Monochromator fix.
Version 0.1¶
First public release.