jaeger 1.7.0
This is marked as a minor version although it should not have any visible changes, but the codebase has significantly changed and there's potential for regression issues that are better tracked as a clearly different version.
⚙️ Engineering
-
#202 This started as a quick rewrite of some parts to use
polars
and ended as a mid-to-large refactor of significant parts of the code, especially theConfiguration
andAssignment
classes.The main highlights are:
- Dropped support for Python 3.9 and extended support up to 3.12. For Python
>=3.11
the1.4.0b1
version ofkaiju
is used. - The code does not use
pandas
anymore, andpolars
data frames are used everywhere.jaeger
still handlespandas
dataframes when they are returned by other libraries (mostly from theFVCTransform
code incoordio
). - The
Configuration
andAssignment
classes have been completely rewritten. Coordinate transformations code is now mostly injaeger.target.coordinates
. The new code should be significantly cleaner and easier to maintain. AssignmentData*
has been renamed toAssignment*
.- Some modest efficiency improvements to the coordinate transformations in
Assignment
. Before some conversions from ICRS to wok and vice-versa were done on a per-target bases. Now they are doing for all the targets at once, but the bottleneck is still the conversion between wok and positioner (and vice-versa) which has to be done as a loop for each target. - Simplified the singleton patter for
FPS
. - Significantly extended the test suite. Now
Design
/Configuration
/Assignment
andFVC
are reasonably covered. - Added a test database for CI testing.
- Added a
configuration_to_dataframe
function that generates aconfSummary
-like dataframe that could be saved tosdsscore
as Parquet (currently not doing that). - Added
ra/dec/alt/az_observed
toconfSummary
. - Moved all codebase from
python/
tosrc/
.
- Dropped support for Python 3.9 and extended support up to 3.12. For Python