pyreduce-astro 0.7a2__tar.gz → 0.7a3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/CHANGELOG.md +8 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/PKG-INFO +1 -1
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyproject.toml +1 -1
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/__main__.py +90 -5
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/uv.lock +1 -1
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/.gitattributes +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/.gitignore +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/.pre-commit-config.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/.pyup.yml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/.readthedocs.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/AGENTS.md +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/CLAUDE.md +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/LICENSE +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/README.md +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/README_METIS.md +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/codemeta.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/environment.yml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/aj_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/crires_plus_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/custom_instrument_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/harpn_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/harps_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/harps_gridsearch.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/just_one_swath.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/jwst_miri_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/jwst_niriss_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/lick_apf_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/mcdonald_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/metis_ifu_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/metis_lss_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/micado_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/neid_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/nirspec_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/toes_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/uves_callfunc.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/uves_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/examples/xshooter_example.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/hatch_build.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/ipy_startup.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/plots_for_paper/dimensionality.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/plots_for_paper/settings_HARPS.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/plots_for_paper/wavecal_plot.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyproject.toml.sav +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/__init__.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/cli.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/clib/__init__.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/clib/build_extract.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/clib/slit_func_2d_xi_zeta_bd.c +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/clib/slit_func_2d_xi_zeta_bd.h +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/clib/slit_func_bd.c +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/clib/slit_func_bd.h +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/clipnflip.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/combine_frames.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/configuration.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/continuum_normalization.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/cwrappers.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/datasets.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/echelle.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/estimate_background_scatter.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/extract.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/extraction_width.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/__init__.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/aj.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/aj.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/andes.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/andes.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/common.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/common.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/crires_plus.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/crires_plus.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/filters.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/harpn.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/harpn.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/harps.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/harps.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/instrument_info.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/jwst_miri.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/jwst_miri.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/jwst_niriss.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/jwst_niriss.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/lick_apf.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/lick_apf.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/mcdonald.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/mcdonald.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/metis_ifu.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/metis_ifu.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/metis_lss.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/metis_lss.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/micado.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/micado.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/models.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/neid.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/neid.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/nirspec.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/nirspec.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/nte.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/nte.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/uves.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/uves.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/xshooter.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/instruments/xshooter.yaml +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/make_shear.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_crires_plus_det1.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_crires_plus_det2.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_crires_plus_det3.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_ctio_chiron.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_elodie.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_feros3.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_flames_giraffe.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_harps_blue.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_harps_red.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_hds_blue.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_hds_red.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_het_hrs_2x5.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_jwst_miri_lrs_slitless.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_jwst_niriss_gr700xd.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_lick_apf_.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_mcdonald.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_nes.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_nirspec_nirspec.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_sarg.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_sarg_2x2a.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_sarg_2x2b.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_subaru_hds_red.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_blue.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_blue_binned_2_2.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_middle.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_middle_2x2_split.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_middle_binned_2_2.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_red.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_red_2x2.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_red_2x2_split.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_red_binned_2_2.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_xshooter_nir.fits.gz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/pipeline.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/rectify.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/reduce.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_AJ.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_ANDES.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_CRIRES_PLUS.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_HARPN.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_HARPS.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_JWST_MIRI.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_JWST_NIRISS.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_LICK_APF.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_MCDONALD.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_METIS_IFU.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_METIS_LSS.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_MICADO.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_NEID.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_NIRSPEC.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_NTE.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_UVES.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_XSHOOTER.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_pyreduce.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/settings/settings_schema.json +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/tools/__init__.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/tools/combine.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/trace.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/util.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/MICADO_HK_3arcsec_chip5.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/atlas/thar.fits +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/atlas/thar_list.txt +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/atlas/une.fits +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/convert.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/crires_plus_J1228_Open_det1.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/crires_plus_J1228_Open_det2.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/crires_plus_J1228_Open_det3.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/harpn_harpn_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/harps_blue_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/harps_blue_pol_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/harps_red_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/harps_red_pol_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/mcdonald.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/metis_lss_l_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/metis_lss_m_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/nirspec_K2.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_blue_360nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_blue_390nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_blue_437nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_middle_2x2_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_middle_565nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_middle_580nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_middle_600nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_middle_665nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_middle_860nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_red_580nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_red_600nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_red_665nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_red_760nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/uves_red_860nm_2D.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/xshooter_nir.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavelength_calibration.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/argon.line +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/bpm_creator.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/create_wavelength_guess.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/download_files.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/neon.lin +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/neon.line +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/pymultispec.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/thar.npz +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/wavecal_creator.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/wavecal_creator_from_existing.py +0 -0
- {pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/tools/xshooter_nir.json +0 -0
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## [0.7a3] - 2025-12-23
|
|
5
|
+
|
|
6
|
+
### Added
|
|
7
|
+
- `reduce examples` command to list/download examples from GitHub matching installed version
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- CLI startup 12x faster via lazy imports (1.2s -> 0.1s)
|
|
11
|
+
|
|
4
12
|
## [0.7a2] - 2025-12-23
|
|
5
13
|
|
|
6
14
|
### Added
|
|
@@ -11,11 +11,6 @@ Usage:
|
|
|
11
11
|
|
|
12
12
|
import click
|
|
13
13
|
|
|
14
|
-
from . import datasets
|
|
15
|
-
from .configuration import get_configuration_for_instrument
|
|
16
|
-
from .reduce import main as reduce_main
|
|
17
|
-
from .tools.combine import combine as tools_combine
|
|
18
|
-
|
|
19
14
|
ALL_STEPS = (
|
|
20
15
|
"bias",
|
|
21
16
|
"flat",
|
|
@@ -89,6 +84,9 @@ def run(
|
|
|
89
84
|
INSTRUMENT: Name of the instrument (e.g., UVES, HARPS, XSHOOTER)
|
|
90
85
|
TARGET: Target star name or regex pattern
|
|
91
86
|
"""
|
|
87
|
+
from .configuration import get_configuration_for_instrument
|
|
88
|
+
from .reduce import main as reduce_main
|
|
89
|
+
|
|
92
90
|
# Parse steps
|
|
93
91
|
if steps:
|
|
94
92
|
steps = tuple(s.strip() for s in steps.split(","))
|
|
@@ -128,6 +126,8 @@ def combine(files, output, plot):
|
|
|
128
126
|
|
|
129
127
|
FILES: Input .final.fits files to combine
|
|
130
128
|
"""
|
|
129
|
+
from .tools.combine import combine as tools_combine
|
|
130
|
+
|
|
131
131
|
tools_combine(list(files), output, plot=plot)
|
|
132
132
|
|
|
133
133
|
|
|
@@ -138,6 +138,8 @@ def download(instrument):
|
|
|
138
138
|
|
|
139
139
|
INSTRUMENT: Name of the instrument (e.g., UVES, HARPS)
|
|
140
140
|
"""
|
|
141
|
+
from . import datasets
|
|
142
|
+
|
|
141
143
|
instrument = instrument.upper()
|
|
142
144
|
dataset_func = getattr(datasets, instrument, None)
|
|
143
145
|
if dataset_func is None:
|
|
@@ -153,6 +155,86 @@ def download(instrument):
|
|
|
153
155
|
click.echo(f"Dataset downloaded to: {path}")
|
|
154
156
|
|
|
155
157
|
|
|
158
|
+
@cli.command()
|
|
159
|
+
@click.argument("filename", required=False)
|
|
160
|
+
@click.option(
|
|
161
|
+
"--list", "-l", "list_examples", is_flag=True, help="List available examples"
|
|
162
|
+
)
|
|
163
|
+
@click.option("--all", "-a", "download_all", is_flag=True, help="Download all examples")
|
|
164
|
+
@click.option("--output", "-o", default=".", help="Output directory")
|
|
165
|
+
def examples(filename, list_examples, download_all, output):
|
|
166
|
+
"""List or download example scripts from GitHub.
|
|
167
|
+
|
|
168
|
+
Downloads examples matching your installed PyReduce version.
|
|
169
|
+
|
|
170
|
+
\b
|
|
171
|
+
Examples:
|
|
172
|
+
reduce examples # List available examples
|
|
173
|
+
reduce examples uves_example.py # Download to current dir
|
|
174
|
+
reduce examples --all -o ~/scripts # Download all to ~/scripts
|
|
175
|
+
"""
|
|
176
|
+
import json
|
|
177
|
+
import os
|
|
178
|
+
import urllib.request
|
|
179
|
+
from urllib.error import HTTPError
|
|
180
|
+
|
|
181
|
+
from pyreduce import __version__
|
|
182
|
+
|
|
183
|
+
version = __version__.split("+")[0]
|
|
184
|
+
if version == "unknown":
|
|
185
|
+
raise click.ClickException(
|
|
186
|
+
"Cannot determine package version. Install from PyPI or a tagged release."
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
github_api = (
|
|
190
|
+
f"https://api.github.com/repos/ivh/PyReduce/contents/examples?ref=v{version}"
|
|
191
|
+
)
|
|
192
|
+
github_raw = f"https://raw.githubusercontent.com/ivh/PyReduce/v{version}/examples"
|
|
193
|
+
|
|
194
|
+
# Fetch list of examples from GitHub API
|
|
195
|
+
try:
|
|
196
|
+
with urllib.request.urlopen(github_api) as resp:
|
|
197
|
+
contents = json.loads(resp.read().decode())
|
|
198
|
+
except HTTPError as e:
|
|
199
|
+
if e.code == 404:
|
|
200
|
+
raise click.ClickException(
|
|
201
|
+
f"Tag v{version} not found on GitHub. "
|
|
202
|
+
"Try installing a released version."
|
|
203
|
+
) from None
|
|
204
|
+
raise click.ClickException(f"GitHub API error: {e}") from None
|
|
205
|
+
|
|
206
|
+
example_files = sorted(f["name"] for f in contents if f["name"].endswith(".py"))
|
|
207
|
+
|
|
208
|
+
# List mode
|
|
209
|
+
if list_examples or (not filename and not download_all):
|
|
210
|
+
click.echo(f"Available examples for v{version}:")
|
|
211
|
+
for name in example_files:
|
|
212
|
+
click.echo(f" {name}")
|
|
213
|
+
return
|
|
214
|
+
|
|
215
|
+
# Ensure output directory exists
|
|
216
|
+
os.makedirs(output, exist_ok=True)
|
|
217
|
+
|
|
218
|
+
def download_file(name):
|
|
219
|
+
url = f"{github_raw}/{name}"
|
|
220
|
+
dest = os.path.join(output, name)
|
|
221
|
+
try:
|
|
222
|
+
urllib.request.urlretrieve(url, dest)
|
|
223
|
+
click.echo(f"Downloaded: {dest}")
|
|
224
|
+
except HTTPError as e:
|
|
225
|
+
click.echo(f"Failed to download {name}: {e}", err=True)
|
|
226
|
+
|
|
227
|
+
if download_all:
|
|
228
|
+
for name in example_files:
|
|
229
|
+
download_file(name)
|
|
230
|
+
else:
|
|
231
|
+
if filename not in example_files:
|
|
232
|
+
raise click.ClickException(
|
|
233
|
+
f"Unknown example '{filename}'. Use 'reduce examples --list' to see available."
|
|
234
|
+
)
|
|
235
|
+
download_file(filename)
|
|
236
|
+
|
|
237
|
+
|
|
156
238
|
@cli.command("list-steps")
|
|
157
239
|
def list_steps():
|
|
158
240
|
"""List all available reduction steps."""
|
|
@@ -174,6 +256,9 @@ def make_step_command(step_name):
|
|
|
174
256
|
@click.option("--output-dir", "-o", default="reduced", help="Output directory")
|
|
175
257
|
@click.option("--plot", "-p", default=0, help="Plot level")
|
|
176
258
|
def cmd(instrument, target, night, arm, base_dir, input_dir, output_dir, plot):
|
|
259
|
+
from .configuration import get_configuration_for_instrument
|
|
260
|
+
from .reduce import main as reduce_main
|
|
261
|
+
|
|
177
262
|
config = get_configuration_for_instrument(instrument)
|
|
178
263
|
reduce_main(
|
|
179
264
|
instrument=instrument,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_jwst_miri_lrs_slitless.fits.gz
RENAMED
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_jwst_niriss_gr700xd.fits.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_blue_binned_2_2.fits.gz
RENAMED
|
File without changes
|
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_middle_2x2_split.fits.gz
RENAMED
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_middle_binned_2_2.fits.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_red_2x2_split.fits.gz
RENAMED
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/masks/mask_uves_red_binned_2_2.fits.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/crires_plus_J1228_Open_det1.npz
RENAMED
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/crires_plus_J1228_Open_det2.npz
RENAMED
|
File without changes
|
{pyreduce_astro-0.7a2 → pyreduce_astro-0.7a3}/pyreduce/wavecal/crires_plus_J1228_Open_det3.npz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|