Skip to content

Releases: LaboratoireMecaniqueLille/crappy

v2.0.7

26 Nov 22:38
5d0ca46
Compare
Choose a tag to compare

Crappy 2.0.7

Changes in this new release:

  • Drop support for Python 3.7 and 3.8 by including features from versions 3.8 and 3.9 (typing.Literal, walrus operator, positional-only arguments, etc.)
  • Ensure Python 3.13 is supported and add it to the list of supported versions
  • Enable nit-picky mode for documentation, and fix the numerous errors that appeared. Allowed to reduce the number of broken links, and in the future will permit to detect these much quicker
  • Various minor type hint fixes
  • Add a crappy.blocks.Pause Block for momentarily putting some Blocks on hold. Also update the internals of crappy.blocks.Block to enable this feature
  • Fix a serious error affecting frequency handling of all the Blocks
  • Introduce a new crappy.camera.RaspberyPiCamera2 Camera for reading images on Raspberry Pi hardware using the picamera2 library

Merged pull requests

Full Changelog: v2.0.6...v2.0.7

The tarball and the wheel are available on PyPI

v2.0.6

15 Oct 21:56
4b8e08c
Compare
Choose a tag to compare

Crappy 2.0.6

Changes in this new release:

  • Fix bug in CameraConfig class where an error image would unexpectedly appear if no image is acquired for a few seconds
  • Update test_python_package.yml GitHub Action to prevent crash on latest macOS version. Also improve the overall workflow
  • Fix color image recording in the ImageSaver class, buggy with the sitk and pil backends
  • Fix incompatibility with newly released NumPy 2.0.0, because of new return type policy
  • Several minor documentation updates

Merged pull requests

Full Changelog: v2.0.5...v2.0.6

The tarball and the wheel are available on PyPI

v2.0.5

29 Feb 16:07
e069fd4
Compare
Choose a tag to compare

Crappy 2.0.5

Main changes in this new release:

  • Fix missing resources class in Crappy (bug added in ef8640d, present in versions 2.0.3 and 2.0.4)
  • Fix duplicate image formats listed in CameraGstreamer and CameraOpencv when used with v4l2
  • Fix wrong image shape and data type detection in camera configuration window when no image can be acquired from the camera
  • Add a padding of zeros to the image index in the name of the images recorded by the Camera Block
  • Add the possibility for users to provide their own fields as numpy arrays for image correlation
  • The Camera Block now sends a message containing the timestamp, index, and metadata of all the recorded images in case no image processing is performed, and at least one output Link is defined
  • Add the Synchronizer Block, for interpolating input labels over the same time base as a reference label. Similar to the existing Multiplexer Block, except the Multiplexer treats all labels equally and doesn't consider one as a reference
  • Various minor documentation updates

Merged pull requests

Full Changelog: v2.0.4...v2.0.5

The tarball and the wheel are available on PyPI

v2.0.4

07 Feb 09:59
f7ceb73
Compare
Choose a tag to compare

Crappy 2.0.4

This new release of Crappy brings various minor improvements and additions :

  • Addition of the Phidget4AStepper Actuator
  • Addition of the PhidgetWheatstoneBridge InOut
  • Addition of the DownSampler Modifier
  • Addition of an automated GitHub workflow checking that Crappy builds and installs correctly on the supported OS and Python versions
  • Documentation update to include the latest additions
  • Addition of an example demonstrating the use of the DownSampler Modifier

Merged pull requests

Full Changelog: v2.0.3...v2.0.4

The tarball and the wheel are available on PyPI

v2.0.3

17 Jan 16:19
b9ffd74
Compare
Choose a tag to compare

Crappy 2.0.3

This new release of Crappy is a bux-fix release, that addresses the following minor problems :

  • Wrong default backend order in the ImageSaver object
  • Bugs in the DAQmx InOut making it impossible to use
  • Cleaned-up the top-level attributes importable with Crappy
  • Numpy had become a dependency of Crappy at build-time, this is no longer the case
  • Suppressed warnings when building Crappy due to incorrect syntax in pyproject.toml

Merged pull requests

Full Changelog: v2.0.2...v2.0.3

The tarball and the wheel are available on PyPI

v2.0.2

05 Dec 12:45
44e78bd
Compare
Choose a tag to compare

Crappy 2.0.2

This new release of Crappy brings improvements mostly on three aspects of the module :

  • It moves most of the packaging metadata from setup.py to pyproject.toml (#68). This paves the way for a complete removal of the setup.py file, once all the extension modules are removed from Crappy in version 2.1.0 (#62).
  • It brings a final touch to the documentation (collapse menus, section authors, intersphinx mapping, changesets), already entirely refactored in #79.
  • It comes with substantial improvements on the existing Camera classes, in terms of implemented settings and functionalities. Only the RaspberryPiCamera remains to improve, in #64. The improved cameras are:
    • The XiAPI Camera, with more settings to tune and bug fixes.
    • The CameraGstreamer Camera, with a better support when v4l-utils is not installed and more parameters to tune when v4l-utils is installed.
    • The CameraOpencv Camera, with more parameters to tune when v4l-utils is installed.
  • Also, a few minor bug fixes

Merged pull requests

Full Changelog: v2.0.1...v2.0.2

The tarball and the wheel are available on PyPI

v2.0.1

03 Dec 17:17
416dcac
Compare
Choose a tag to compare

Version 2.0.1

This version is a bug fix release that corrects two minor issues :

  • There was no deprecation message for old-style Modifiers defining the evaluate method
  • A number of links in the documentation were broken

Merged pull requests

Full Changelog: v2.0.0...v2.0.1

The tarball and the wheel are available on PyPI

v2.0.0

28 Nov 23:06
ecd7d70
Compare
Choose a tag to compare

Version 2.0.0

The version 2.0.0 of Crappy is a backwards-incompatible release that contains almost one year's worth of work.
It brings notable changes at almost every level in the module, and constitutes a clean base for future developments of Crappy.
The transition from version 1.5 to version 2.0 is not seamless for users, but still clearly documented. Refer to a Discussion to come for more information about it.
The main changes in the module between versions 1.5 and 2.0 are listed below.

Main changes (in chronological order)

This list is a simplified overview of all the changes that occurred in the module. In particular, it does not list all the changes in the names of the files, classes, methods, or arguments. To get a better overview of all the names that changed, users should instead refer to the online documentation or check for DeprecationErrors when running their old code compatible with Crappy 1.5 in Crappy 2.0.

  • The old Camera Block (and its children) could only perform the acquisition, processing and recording of the images in a sequential way. The display of images was delegated to the Displayer Block. Now, the new Camera Block (and its children) performs the acquisition, display, recording and processing of the images in a parallelized way. This greatly improves the achievable frame rate for all these operations.
  • The Displayer Block was removed, as the display is now handled directly by the Camera Block. Having a separate Block for the display was a source of bugs due to the limitation of the bandwidth between the Blocks.
  • The CameraConfig window now handles the case when no image can be grabbed by the camera, and displays an error image instead of freezing. It can also handle the case when the flow of images stops, still without freezing.
  • A special trigger setting was added to the Camera object for handling the hardware trigger option that some cameras may possess.
  • The open, stop and close methods were added to the definition of the base Actuator object.
  • The Machine Block can now acquire the speed and the position of the driven Actuator regardless of the driving mode, and adjust the target speed at runtime in position mode via an incoming label.
  • The base Block was totally refactored to improve its stability and efficiency, using all the possibilities offered by the multiprocessing module. All the Blocks were updated accordingly.
  • As a consequence of the point above, the methods to use for receiving data from upstream Blocks were totally changed. They now have a different name and a different behavior.
  • A clean logging mechanism was added to Crappy, in place of the previous calls to print. The logs are both displayed in the console, and saved to a log file.
  • The instantiation of the hardware related objects (Actuator, Camera, InOut) is now always performed once the Process driving them has started, for compatibility with the spawn start method of the multiprocessing module.
  • The Link object was updated consistently with the improvements brought to the base Block. The methods of the Link now have a different name and a different behavior, and users are not expected to call them directly anymore.
  • A debug argument was added to all the Blocks, to let users choose the debug level to use between INFO and DEBUG for each Block individually.
  • All the classes relying on the FT232H tool were moved to separate folders, to make them clearly discernible from the other classes.
  • The FT232H tool and the associated USBServer were improved, to increase both the communication speed and the stability.
  • The entire structure of the module was re-thought, with the creation of many sub-folders containing sub-categories of files.
  • The names of all the files and classes were changed to enforce PEP8. The list of the changes is too long to be displayed here, but all the name changes are clearly mentioned in the documentation.
  • A number of unused files in the util/ folder of the project were removed.
  • The impact/ folder of the project was removed.
  • It is now possible for users to subclass the base Generator Path. That was previously not possible.
  • The entire architecture of the project was changed from flat to src. It is considered a good practice for avoiding test and build errors.
  • The verbose argument of all the Blocks was renamed to display_freq, which is a more accurate description of what this argument does.
  • A draft for a test suite for Crappy was added in the tests/ folder of the project. It will be completed and actively used in future releases.
  • The calculation of the histogram in the CameraConfig window is now parallelized, therfore improving the performance of this window.
  • The P, I, and D gains of the PID Block can now be adjusted at runtime by sending new values over given labels.
  • The images recorded by the Camera Block can now be saved as .npy files.
  • The Modifier objects now use the __call__ method for altering the received data, instead of the evaluate method previously. This behavior is more consistent with the possibility to pass bare functions as Modifiers.
  • A few objects were moved to a src/crappy/lamcube/ folder, to clearly indicate that they are only meant to be used at the LaMcube laboratory.
  • Most of the objects in Crappy now accept any type of iterable where they previously requested lists or tuples.
  • The examples/ folder of the project was totally refactored, with more, thoroughly commented, tested examples. Most of the Blocks now have at least one example illustrating their usage, and most of the examples can be run locally without requiring any hardware.
  • The packaging-related files (setup.py, requirements.txt, pyproject.toml, MANIFEST.in) were all refactored to include more complete and up-to-date information, and to comply with the recent standards.
  • The configuration files for building the documentation (.readthedocs.yml, docs/source/conf.py, docs/Makefile) were updated to include more infor...
Read more

v2.0.0-rc.0

05 Nov 21:39
68420c1
Compare
Choose a tag to compare
v2.0.0-rc.0 Pre-release
Pre-release

Version 2.0.0-rc.0

This release is the first candidate version for the upcoming 2.0.0 release, and hopefully the last one !
The remaining steps before the release of version 2.0.0 are :

  • To heavily test it on both Windows and Linux
  • To check that it runs as expected on all the supported Python versions
  • To test it on real use cases on the experimental setups at the LaMcube

Changes

Compared to the last 2.0.0.dev3 release, it contains :

  • A reorganization of the repository to have the extension files in src
  • The addition of two Blocks for stopping Crappy in a clean way without using CTRL+C
  • The addition of a possible no_raise argument to crappy.start()
  • Notable changes on the runtime sequence of the Block, in particular in unexpected situations
  • A refactoring of the examples following the update of the Block
  • The addition of a CODEOWNERS file to the repository
  • Improvements on the Camera Block to make it more user-friendly to subclass
  • Improvements on the Generator Path to make it more user-friendly to subclass
  • A major documentation and README update
  • A number of Camera-related changes, in the configuration window and in the CameraGstreamer object
  • Updates related to the transition towards 2.0.0
  • Other minor example updates and bug fixes

Accepted pull requests

Full Changelog: v2.0.0.dev3...v2.0.0-rc.0

The tarball and the wheel are available on PyPI

v1.5.11

05 Nov 15:50
95ca19e
Compare
Choose a tag to compare

Version 1.5.11

This release is the last one before the version upgrade to 2.0.0 !
It contains warnings signaling the upcoming changes in version 2.0.0.
Adapt your code accordingly when upgrading !

What's Changed

  • added additional layout cmd to properly layout arbitrary aspect ratio plots by @magnus-haw in #38
  • remove clear button and replace with 'c' keypress by @magnus-haw in #39
  • fix bug in example code in the documentation by @WeisLeDocto in #42
  • include documentation fix in branch v1.5.11 by @WeisLeDocto in #44
  • minor fixes in the distributed examples by @WeisLeDocto in #67
  • fix missing dependency for building online documentation by @WeisLeDocto in #67
  • add warnings signaling the upcoming changes in version 2.0.0 by @WeisLeDocto in #67

New Contributors

Full Changelog: v1.5.10...v1.5.11

The tarball and the wheel are available on PyPI