1616from numpy .polynomial import polynomial
1717from scipy .constants import speed_of_light
1818
19+ import sarpy ._extensions
1920from sarpy .compliance import bytes_to_string
2021from sarpy .io .complex .base import SICDTypeReader
2122from sarpy .io .complex .sicd_elements .blocks import Poly1DType , Poly2DType , RowColType
4041from sarpy .io .general .utils import get_seconds , parse_timestring , is_file_like , is_hdf5 , h5py
4142from sarpy .io .complex .utils import fit_time_coa_polynomial , fit_position_xvalidation
4243
43- try :
44- from sarpy .io .complex import csk_addin
45- except ImportError :
46- csk_addin = None
47-
4844logger = logging .getLogger (__name__ )
4945
5046_unhandled_id_text = 'Unhandled mission id `{}`'
@@ -62,6 +58,22 @@ def _extract_attrs(h5_element, out=None):
6258 return out
6359
6460
61+ def load_addin ():
62+ """Check for a CSK addin module"""
63+ try :
64+ from sarpy .io .complex import csk_addin
65+ return csk_addin
66+ except ImportError :
67+ pass
68+
69+ eps = sarpy ._extensions .entry_points (group = 'sarpy.io.complex.csk' )
70+ if not eps :
71+ return None
72+ if len (eps ) > 1 :
73+ raise RuntimeError ("More than one CSK addin found" )
74+ return list (eps )[0 ].load ()
75+
76+
6577###########
6678# parser and interpreter for hdf5 attributes
6779
@@ -562,6 +574,7 @@ def update_rma_and_grid(sicd: SICDType, band_name: str) -> None:
562574 sicd .Grid .TimeCOAPoly = fit_time_coa_polynomial (
563575 sicd .RMA .INCA , sicd .ImageData , sicd .Grid , dop_rate_poly_rg_shifted , poly_order = 2 )
564576
577+ csk_addin = load_addin ()
565578 if csk_addin is not None :
566579 csk_addin .check_sicd (sicd , self .mission_id , h5_dict )
567580
0 commit comments