What’s new in PyCPL 0.9

PyCPL 0.9 is an early release, which is made available to the public in order to obtain feedback from a wider audience.

Added

  • Docstrings and comments added to ‘cpl.core.table_bindings’ and ‘cpl.core.matrix_bindings’ (!156)

  • Module level docstrings were added to the submodules cpl.core, cpl.dfs, cpl.drs, and cpl.ui, summarizing the provided functionality. (!139)

  • equals function to cpl.core.Image, used to compare equivalence of the image to another image.

  • cpl.drs.geometric_transforms pydocs and unit tests (!111)

  • cpl.drs.detector pydocs and unit tests (!109)

  • DESCRIPTION constant accessible via cpl.DESCRIPTION. This is a string detailing the libraries linked to CPL (including CPL itself) and their version numbers. (!131)

  • large number of cpl.core.Table method pydocs added (!137)

  • large number of cpl.core.Matrix method pydocs added (!137)

  • cpl.core.Image.labelise_create added (!108)

  • cpl.core.Image can now be deep copied (!108)

  • cpl.drs.Apertures is now fully documented with unit tests. (!108)

  • cpl.drs.wlcalib documented with some unit tests (!107)

  • cpl.core.Image.fft now bound (!140)

Changed

  • parameter zone_def for all cpl.drs.detector functions is now a tuple of 4 values (data types dependent on function). The parameter is also now made optional. (!109)

  • cpl.core.ImageList.load now loads data as CPL_TYPE_DOUBLE by default while Image.load() loads data as it is in the file. (!127)

  • cpl.core.Image constructor simplified and better documented. Zero initialised images now constructed with cpl.core.Image.zeros (!134)

  • cpl.core.Image.fill_abs_arg has been renamed to cpl.core.Image.split_abs_arg and cpl.core.Image.fill_abs_arg has been renamed to cpl.core.Image.fill_real_imag to be more indicative of the function’s purpse. (!134)

  • cpl.core.Image.as_type added as an alternative interface to cpl.core.Image.cast. (!134)

  • cpl.core.Image.fill_gaussian now uses 0 indexed values for xcen and ycen to be more consistent with the rest of the methods (!134)

  • cpl.core.dump_window removed, now cpl.core.dump supports optional window arg to provide the same functionality. (!134)

  • cpl.core.get_median_dev now returns a tuple of two values instead of just one, as it also returns the mean absolution median devation (!134)

  • FITS keyword names are now rendered as code in the documentation of cpl.dfs. (!139)

  • cpl.core.Matrix.solve_lu returns a new matrix based on the solution applied to rhs instead of modifying rhs (!136)

  • cpl.core.Matrix.sort_rows and cpl.core.Matrix.sort_columns now take a boolean arg instead of an integer mode to decide to sort by absolute or value (!136)

  • cpl.core.Matrix has new init structure using optional arguments. Initialising an empty matrix now done via cpl.core.Matrix.zeros (!136)

  • cpl.core.Matrix.threshold_small, cpl.core.Matrix.is_zero, cpl.core.Matrix.is_diagonal and cpl.core.Matrix.is_identity now have None as the default value for threshold instead of -1.0, but has the same effect. (!136)

  • cpl.core.Matrix.copy renamed to cpl.core.Matrix.copy_values_from (!136)

Fixed

  • Critical warnings from Sphinx about unexpected section titles in the documentation of overloaded functions were fixed by manually formatting these sections. (!139)

  • clang compiler warnings should no longer be present, making clang fully supported

  • Symbols and constants from the CPL C API appearing in the documentation of cpl.dfs were replaced by their PyCPL counterparts. (!139)

  • C++ types in the docs have been corrected to their corresponding python types

  • CPL path set by environment variables CPL_ROOT now takes priority over system directories to be linked during installation

  • Unit test for eval test adjusted for m1 macs due to reduced double precision

  • cpl.core.Image equality works for images of all data types now

  • cpl.core.Matrix.is_zero, cpl.core.Matrix.is_diagonal and cpl.core.Matrix.is_identity now return booleans (!136)

  • cpl.core.Matrix.is_diagonal and cpl.core.Matrix.is_identity throws cpl.core.IllegalInputError rather than simply returning False when called on a square matrix (!136)

  • cpl.core.Table.is_selected returns bool as intentded (!137)

  • cpl.core.Image equality works for images of all data types now (!127)

  • cpl.core.Image.load now allows specifying the image target and target window type when loading a file as it should have. (!127)

  • cpl.drs.wlcalib.SlitModel could not previously be initialised. This has now been fixed. (!142)

  • cpl.drs.wlcalib.SlitModel.fit_best_1d was a typo. Corrected to cpl.drs.wlcalib.SlitModel.find_best_1d (!142)

  • cpl.drs.wlcalib.SlitModel.find_best_1d returned NamedTuple previously used the wrong field names. This has now been corrected. (!142)

  • cpl.drs.fit.lvmq no longer throws bad_function_call when PyCPL is compiled with >=gcc11 on MacOS (!141)

  • cpl.drs.geometric_transforms.img_offset_combine warning when compiling with clang now fixed. (!145)

  • cpl.core.Table.load_window’s ordering of arguments was previously incorrect. Now fixed. (!145)

  • cpl.drs.detector.get_noise_ring now returns correct values on gcc (!145)

  • cpl.drs.geometric_transforms.img_offset_combine warning when compiling with clang now fixed.

  • cpl.core.Matrix.solve_lu copies rhs and returns the modification rather than modifies rhs inplace (!136)