From 6c024e0609a4015367fcfe4c1fe84155898834c3 Mon Sep 17 00:00:00 2001 From: Zach Burnett Date: Tue, 3 Oct 2023 15:00:22 -0400 Subject: [PATCH 1/6] update metadata for `1.12.3` (#7992) --- CHANGES.rst | 7 ++++++- CITATION.cff | 4 ++-- README.md | 1 + setup.cfg | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 677f2ad8c3..296e5f2851 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,4 +1,9 @@ -1.12.3 (unreleased) +1.12.4 (unreleased) +=================== + +- + +1.12.3 (2023-10-03) =================== documentation diff --git a/CITATION.cff b/CITATION.cff index b4db81120f..e9303b469c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -75,7 +75,7 @@ authors: given-names: "Maria" orcid: "https://orcid.org/0000-0003-2314-3453" title: "JWST Calibration Pipeline" -version: 1.12.2 +version: 1.12.3 doi: 10.5281/zenodo.7038885 -date-released: 2023-10-02 +date-released: 2023-10-03 url: "https://github.com/spacetelescope/jwst" diff --git a/README.md b/README.md index d914f22c4f..ee32faec6c 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ the specified context and less than the context for the next release. | jwst tag | DMS build | SDP_VER | CRDS_CONTEXT | Released | Ops Install | Notes | |---------------------|-----------|----------|--------------|------------|-------------|-----------------------------------------------| +| 1.12.3 | B10.0rc4 | 2023.3.x | 1135 | 2023-10-03 | | Fourth release candidate for B10.0 | | 1.12.2 | B10.0rc3 | 2023.3.x | 1135 | 2023-10-02 | | Third release candidate for B10.0 | | 1.12.1 | B10.0rc2 | 2023.3.x | 1132 | 2023-09-26 | | Second release candidate for B10.0 | | 1.12.0 | B10.0rc1 | 2023.3.x | 1130 | 2023-09-18 | | First release candidate for B10.0 | diff --git a/setup.cfg b/setup.cfg index 6f5241088c..13d40ba068 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,7 +32,7 @@ install_requires = astropy>=5.3 BayesicFitting>=3.0.1 crds>=11.16.19 - drizzle>=1.14.2 + drizzle>=1.14.3 gwcs>=0.19.0 numpy>=1.22 opencv-python-headless>=4.6.0.66 From 0234f54739716f485ec57869ff3ced3376388110 Mon Sep 17 00:00:00 2001 From: Brett Graham Date: Sat, 7 Oct 2023 07:44:47 -0400 Subject: [PATCH 2/6] keep cube build input models open to allow reading wcs (#7998) Co-authored-by: Howard Bushouse --- CHANGES.rst | 6 +- jwst/cube_build/cube_build_step.py | 3 + jwst/cube_build/data_types.py | 50 +++++++++------ jwst/cube_build/file_table.py | 4 -- jwst/cube_build/tests/test_cube_build_step.py | 62 +++++++++++++++++-- 5 files changed, 96 insertions(+), 29 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 296e5f2851..acfee15c11 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,7 +1,11 @@ 1.12.4 (unreleased) =================== -- +cube_build +---------- + +- Keep data models opened by cube build open until the step completes. [#7998] + 1.12.3 (2023-10-03) =================== diff --git a/jwst/cube_build/cube_build_step.py b/jwst/cube_build/cube_build_step.py index c751a13ad0..15a9dde45d 100755 --- a/jwst/cube_build/cube_build_step.py +++ b/jwst/cube_build/cube_build_step.py @@ -241,6 +241,7 @@ def process(self, input): # Check for a valid reference file if par_filename == 'N/A': self.log.warning('No default cube parameters reference file found') + input_table.close() return # ________________________________________________________________________________ # shove the input parameters in to pars to pull out in general cube_build.py @@ -299,6 +300,7 @@ def process(self, input): if instrument == 'MIRI' and self.coord_system == 'internal_cal': self.log.warning('The output coordinate system of internal_cal is not valid for MIRI') self.log.warning('use output_coord = ifualign instead') + input_table.close() return filenames = master_table.FileMap['filename'] @@ -402,6 +404,7 @@ def process(self, input): if status_cube == 1: self.skip = True + input_table.close() return cube_container # ****************************************************************************** diff --git a/jwst/cube_build/data_types.py b/jwst/cube_build/data_types.py index e519cebe92..d7217087a4 100644 --- a/jwst/cube_build/data_types.py +++ b/jwst/cube_build/data_types.py @@ -69,30 +69,34 @@ def __init__(self, input, single, output_file, output_dir): self.input_models = [] self.output_name = None - + # open the input with datamodels # if input is filename or model when it is opened it is a model # if input if an association name or ModelContainer then it is opened as a container - with datamodels.open(input) as input_models: - - if isinstance(input_models, datamodels.IFUImageModel): - # It's a single image that's been passed in as a model - # input is a model - filename = input_models.meta.filename - self.input_models.append(input_models) - self.output_name = self.build_product_name(filename) - - elif isinstance(input_models, ModelContainer): - self.output_name = 'Temp' - self.input_models = input_models - if not single: # find the name of the output file from the association - self.output_name = input_models.meta.asn_table.products[0].name - else: - raise TypeError("Failed to process file type {}".format(type(input_models))) - # if the user has set the output name - strip out *.fits - # later suffixes will be added to this name to designate the - # channel, subchannel or grating,filter the data is covers. + input_models = datamodels.open(input) + # if input is a filename, we will need to close the opened file + self._opened = [input_models] + + if isinstance(input_models, datamodels.IFUImageModel): + # It's a single image that's been passed in as a model + # input is a model + filename = input_models.meta.filename + self.input_models.append(input_models) + self.output_name = self.build_product_name(filename) + + elif isinstance(input_models, ModelContainer): + self.output_name = 'Temp' + self.input_models = input_models + if not single: # find the name of the output file from the association + self.output_name = input_models.meta.asn_table.products[0].name + else: + # close files opened above + self.close() + raise TypeError("Failed to process file type {}".format(type(input_models))) + # If the user has set the output name, strip off *.fits. + # Suffixes will be added to this name later, to designate the + # channel+subchannel (MIRI MRS) or grating+filter (NRS IFU) the output cube covers. if output_file is not None: @@ -102,6 +106,12 @@ def __init__(self, input, single, output_file, output_dir): if output_dir is not None: self.output_name = output_dir + '/' + self.output_name + def close(self): + """ + Close any files opened by this instance + """ + [f.close() for f in self._opened] + # _______________________________________________________________________________ def build_product_name(self, filename): """ Determine the base of output name if an input data is a fits filename. diff --git a/jwst/cube_build/file_table.py b/jwst/cube_build/file_table.py index 69902b46ea..73863a83d5 100644 --- a/jwst/cube_build/file_table.py +++ b/jwst/cube_build/file_table.py @@ -113,7 +113,6 @@ def set_file_table(self, # ________________________________________________________________________________ # Loop over input list of files and assign fill in the MasterTable with filename # for the correct (channel-subchannel) or (grating-subchannel) - for model in input_models: instrument = model.meta.instrument.name.upper() assign_wcs = model.meta.cal_step.assign_wcs @@ -143,9 +142,6 @@ def set_file_table(self, log.info('Instrument not valid for cube') pass - model.close() - del model - return instrument diff --git a/jwst/cube_build/tests/test_cube_build_step.py b/jwst/cube_build/tests/test_cube_build_step.py index 215772207a..3d318fae4a 100644 --- a/jwst/cube_build/tests/test_cube_build_step.py +++ b/jwst/cube_build/tests/test_cube_build_step.py @@ -6,8 +6,10 @@ import pytest from astropy.io import fits +from gwcs import WCS from stdatamodels.jwst.datamodels import IFUImageModel +from jwst import assign_wcs from jwst.cube_build import CubeBuildStep from jwst.cube_build.file_table import ErrorNoAssignWCS from jwst.cube_build.cube_build import ErrorNoChannels @@ -100,8 +102,15 @@ def miri_image(): return image -def test_call_cube_build(_jail, miri_cube_pars, miri_image): +@pytest.mark.parametrize("as_filename", [True, False]) +def test_call_cube_build(_jail, miri_cube_pars, miri_image, tmp_path, as_filename): """ test defaults of step are set up and user input are defined correctly """ + if as_filename: + fn = tmp_path / 'miri.fits' + miri_image.save(fn) + step_input = fn + else: + step_input = miri_image # we do not want to run the CubeBuild through to completion because # the image needs to be a full image and this take too much time @@ -112,7 +121,7 @@ def test_call_cube_build(_jail, miri_cube_pars, miri_image): step = CubeBuildStep() step.override_cubepar = miri_cube_pars step.channel = '3' - step.run(miri_image) + step.run(step_input) # Test some defaults to step are setup correctly and # is user specifies channel is set up correctly @@ -121,7 +130,7 @@ def test_call_cube_build(_jail, miri_cube_pars, miri_image): step.channel = '1' try: - step.run(miri_image) + step.run(step_input) except ErrorNoAssignWCS: pass @@ -132,8 +141,53 @@ def test_call_cube_build(_jail, miri_cube_pars, miri_image): # Set Assign WCS has been run but the user input to channels is wrong miri_image.meta.cal_step.assign_wcs = 'COMPLETE' + # save file with modifications + if as_filename: + miri_image.save(step_input) with pytest.raises(ErrorNoChannels): step = CubeBuildStep() step.override_cubepar = miri_cube_pars step.channel = '3' - step.run(miri_image) + step.run(step_input) + + +@pytest.fixture(scope='function') +def nirspec_data(): + image = IFUImageModel((2048, 2048)) + image.data = np.random.random((2048, 2048)) + image.meta.instrument.name = 'NIRSPEC' + image.meta.instrument.detector = 'NRS1' + image.meta.exposure.type = 'NRS_IFU' + image.meta.filename = 'test_nirspec.fits' + image.meta.observation.date = '2023-10-06' + image.meta.observation.time = '00:00:00.000' + # below values taken from regtest using file + # jw01249005001_03101_00004_nrs1_cal.fits + image.meta.instrument.filter = 'F290LP' + image.meta.instrument.grating = 'G395H' + image.meta.wcsinfo.v2_ref = 299.83548 + image.meta.wcsinfo.v3_ref = -498.256805 + image.meta.wcsinfo.ra_ref = 358.0647567841019 + image.meta.wcsinfo.dec_ref = -2.167207258876695 + image.meta.cal_step.assign_wcs = 'COMPLETE' + step = assign_wcs.assign_wcs_step.AssignWcsStep() + refs = {} + for reftype in assign_wcs.assign_wcs_step.AssignWcsStep.reference_file_types: + refs[reftype] = step.get_reference_file(image, reftype) + pipe = assign_wcs.nirspec.create_pipeline(image, refs, slit_y_range=[-.5, .5]) + image.meta.wcs = WCS(pipe) + return image + + +@pytest.mark.parametrize("as_filename", [True, False]) +def test_call_cube_build_nirspec(_jail, nirspec_data, tmp_path, as_filename): + if as_filename: + fn = tmp_path / 'test_nirspec.fits' + nirspec_data.save(fn) + step_input = fn + else: + step_input = nirspec_data + step = CubeBuildStep() + step.channel = '1' + step.coord_system = 'internal_cal' + step.run(step_input) From 3aecec7e6e33c819e5674ba33cf42c8e68cfb61f Mon Sep 17 00:00:00 2001 From: Nadia Dencheva Date: Tue, 10 Oct 2023 12:44:11 -0400 Subject: [PATCH 3/6] Fix a few Numpy 2.0 deprecation warnings (#7999) --- CHANGES.rst | 13 +++++++++---- jwst/cube_build/ifu_cube.py | 6 +++--- jwst/cube_build/tests/test_wcs.py | 12 ++++++------ jwst/photom/photom.py | 4 ++-- jwst/photom/tests/test_photom.py | 12 ++++++------ jwst/wfs_combine/tests/test_wfs_combine.py | 3 ++- 6 files changed, 28 insertions(+), 22 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index acfee15c11..26a97f3562 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,7 +4,12 @@ cube_build ---------- -- Keep data models opened by cube build open until the step completes. [#7998] +- Keep data models opened by cube build open until the step completes. [#7998] + +general +------- + +- Fix numpy 2.0 deprecation warnings in cube_build, photom and wfs_combine. [#7999] 1.12.3 (2023-10-03) @@ -50,7 +55,7 @@ extract_1d flat_field ---------- -- Update the ``combine_fast_slow`` function for NIRSpec spectroscopic flats +- Update the ``combine_fast_slow`` function for NIRSpec spectroscopic flats to use 1D error values provided by F-flat reference files. [#7978] - For NIRSpec modes, set all DO_NOT_USE pixels to NaN after flat @@ -74,7 +79,7 @@ straylight extract_1d ---------- -- For MIRS MRS IFU data allow the user to set the src_type and allow +- For MIRS MRS IFU data allow the user to set the src_type and allow the user to scale the extraction radius between 0.5 to 3.0 FWHM. [#7883] - Bug fix for #7883. The input model type is checked to see if the input is @@ -254,7 +259,7 @@ pathloss - Fix interpolation error for point source corrections. [#7799] - Update the MIRI LRS fixed-slit correction to default to the center of the slit - when the computed target location is outside the slit. Add the parameter + when the computed target location is outside the slit. Add the parameter "user_slit_loc" to allow specifying the source location to use. [#7806] photom diff --git a/jwst/cube_build/ifu_cube.py b/jwst/cube_build/ifu_cube.py index a9b7297c62..3a5abdbd4b 100644 --- a/jwst/cube_build/ifu_cube.py +++ b/jwst/cube_build/ifu_cube.py @@ -294,13 +294,13 @@ def set_geometry(self, corner_a, corner_b, lambda_min, lambda_max): xilimit = max(np.abs(xi_min), np.abs(xi_max)) etalimit = max(np.abs(eta_min), np.abs(eta_max)) - na = math.ceil(xilimit / self.cdelt1) + 1 - nb = math.ceil(etalimit / self.cdelt2) + 1 + na = math.ceil((xilimit / self.cdelt1).item()) + 1 + nb = math.ceil((etalimit / self.cdelt2).item()) + 1 # if the user set the nspax_x or nspax_y then redefine na, nb # it is assumed that both values are ODD numbers # We want the central pixel to be the tangent point with na/nb pixels on either - # side of central pixel. + # side of central pixel. if self.nspax_x is not None: na = int(self.nspax_x/2) if self.nspax_y is not None: diff --git a/jwst/cube_build/tests/test_wcs.py b/jwst/cube_build/tests/test_wcs.py index ecabb8be28..b319444245 100644 --- a/jwst/cube_build/tests/test_wcs.py +++ b/jwst/cube_build/tests/test_wcs.py @@ -84,8 +84,8 @@ def test_coord_trans1(): # and an eta close to diff_dec xi, eta = coord.radec2std(crval1, crval2, ra, dec) - assert math.isclose(xi, 0.0, abs_tol=0.001) - assert math.isclose(eta, diff_ra, abs_tol=0.001) + assert math.isclose(xi.item(), 0.0, abs_tol=0.001) + assert math.isclose(eta.item(), diff_ra, abs_tol=0.001) def test_coord_trans2(): @@ -101,8 +101,8 @@ def test_coord_trans2(): # and an eta close to diff_dec xi, eta = coord.radec2std(crval1, crval2, ra, dec) - assert math.isclose(xi, -3.535, abs_tol=0.001) - assert math.isclose(eta, diff_ra, abs_tol=0.001) + assert math.isclose(xi.item(), -3.535, abs_tol=0.001) + assert math.isclose(eta.item(), diff_ra, abs_tol=0.001) def test_coord_trans3(): @@ -120,8 +120,8 @@ def test_coord_trans3(): xi, eta = coord.radec2std(crval1, crval2, ra, dec) ra_test, dec_test = coord.std2radec(crval1, crval2, xi, eta) - assert math.isclose(ra, ra_test, abs_tol=0.00001) - assert math.isclose(dec, dec_test, abs_tol=0.00001) + assert math.isclose(ra, ra_test.item(), abs_tol=0.00001) + assert math.isclose(dec, dec_test.item(), abs_tol=0.00001) def test_wrap_ra(): diff --git a/jwst/photom/photom.py b/jwst/photom/photom.py index f741a85f43..a2c61244d9 100644 --- a/jwst/photom/photom.py +++ b/jwst/photom/photom.py @@ -511,7 +511,7 @@ def calc_miri(self, ftab): # Old style ref file; skip the correction log.info("Skipping MRS MIRI time correction. Extensions not found in the reference file.") self.mrs_time_correction = False - + #if np.any(ftab.timecoeff_ch1['binwave']) and self.mrs_time_correction: if self.mrs_time_correction: log.info("Applying MRS IFU time dependent correction.") @@ -1151,7 +1151,7 @@ def save_area_nirspec(self, pix_area): slit.meta.photometry.pixelarea_arcsecsq = 1. slit.meta.photometry.pixelarea_steradians = 1. else: - slit.meta.photometry.pixelarea_arcsecsq = float(pixarea[match]) + slit.meta.photometry.pixelarea_arcsecsq = float(pixarea[match].item()) slit.meta.photometry.pixelarea_steradians = \ slit.meta.photometry.pixelarea_arcsecsq * A2_TO_SR if n_failures > 0: diff --git a/jwst/photom/tests/test_photom.py b/jwst/photom/tests/test_photom.py index eba9cc12c2..a4a8a46b49 100644 --- a/jwst/photom/tests/test_photom.py +++ b/jwst/photom/tests/test_photom.py @@ -1130,7 +1130,7 @@ def test_nirspec_fs(): result.append(ds.input.slits[k].meta.bunit_data == 'MJy/sr') result.append(ds.input.slits[k].meta.bunit_err == 'MJy/sr') - assert np.alltrue(result) + assert np.all(result) ftab.close() @@ -1191,7 +1191,7 @@ def test_nirspec_bright(): result.append(ds.input.meta.bunit_data == 'MJy') result.append(ds.input.meta.bunit_err == 'MJy') - assert np.alltrue(result) + assert np.all(result) def test_nirspec_msa(): @@ -1231,7 +1231,7 @@ def test_nirspec_msa(): ratio = output[iy, ix] / input[iy, ix] result.append(np.allclose(ratio, compare, rtol=1.e-7)) - assert np.alltrue(result) + assert np.all(result) """ Skip this test because it would require a realistic wcs. @@ -1276,7 +1276,7 @@ def test_niriss_wfss(): ratio = output[iy, ix] / input[iy, ix] result.append(np.allclose(ratio, compare, rtol=1.e-7)) - assert np.alltrue(result) + assert np.all(result) def test_niriss_soss(): @@ -1364,7 +1364,7 @@ def test_miri_mrs(): compare = value ratio = output[iy, ix] / input[iy, ix] result.append(math.isclose(ratio, compare, rel_tol=1.e-7)) - assert np.alltrue(result) + assert np.all(result) def test_miri_lrs(): @@ -1623,7 +1623,7 @@ def test_apply_photom_2(srctype): ratio = output[iy, ix] / input[iy, ix] result.append(np.allclose(ratio, compare, rtol=1.e-7)) - assert np.alltrue(result) + assert np.all(result) def test_find_row(): diff --git a/jwst/wfs_combine/tests/test_wfs_combine.py b/jwst/wfs_combine/tests/test_wfs_combine.py index f43ccaedbc..6ff1c9f1cd 100644 --- a/jwst/wfs_combine/tests/test_wfs_combine.py +++ b/jwst/wfs_combine/tests/test_wfs_combine.py @@ -73,7 +73,8 @@ def wfs_association(tmp_path_factory): im1.save(path1) im2.save(path2) - asn = asn_from_list([path1, path2], + #asn = asn_from_list([path1, path2], + asn = asn_from_list(["image1_cal.fits", "image2_cal.fits"], product_name='jw00024-a3001_t001_nircam_nrca4_{suffix}') asn.data["program"] = "00024" asn.data["asn_type"] = "wfs-image2" From 749f224c39e8f4692e812d4431200e6edc288ca7 Mon Sep 17 00:00:00 2001 From: Howard Bushouse Date: Wed, 11 Oct 2023 12:30:42 -0400 Subject: [PATCH 4/6] Update README for B10.0 version info (#8002) --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ee32faec6c..3cf94fffd6 100644 --- a/README.md +++ b/README.md @@ -210,11 +210,11 @@ the specified context and less than the context for the next release. | jwst tag | DMS build | SDP_VER | CRDS_CONTEXT | Released | Ops Install | Notes | |---------------------|-----------|----------|--------------|------------|-------------|-----------------------------------------------| -| 1.12.3 | B10.0rc4 | 2023.3.x | 1135 | 2023-10-03 | | Fourth release candidate for B10.0 | -| 1.12.2 | B10.0rc3 | 2023.3.x | 1135 | 2023-10-02 | | Third release candidate for B10.0 | -| 1.12.1 | B10.0rc2 | 2023.3.x | 1132 | 2023-09-26 | | Second release candidate for B10.0 | -| 1.12.0 | B10.0rc1 | 2023.3.x | 1130 | 2023-09-18 | | First release candidate for B10.0 | -| 1.11.4 | B9.3.1 | 2023.2.1 | 1107 | 2023-08-14 | | Final release for B9.3.1 patch | +| 1.12.3 | B10.0 | 2023.3.0 | 1135 | 2023-10-03 | 2023-12-05 | Final release candidate for B10.0 | +| 1.12.2 | B10.0rc3 | | 1135 | 2023-10-02 | (tentative) | Third release candidate for B10.0 | +| 1.12.1 | B10.0rc2 | | 1132 | 2023-09-26 | | Second release candidate for B10.0 | +| 1.12.0 | B10.0rc1 | | 1130 | 2023-09-18 | | First release candidate for B10.0 | +| 1.11.4 | B9.3.1 | 2023.2.1 | 1107 | 2023-08-14 | 2023-08-24 | Final release for B9.3.1 patch | | 1.11.3 | B9.3 | 2023.2.0 | 1097 | 2023-07-17 | | Final release candidate for B9.3 | | 1.11.2 | B9.3rc3 | | 1097 | 2023-07-12 | | Third release candidate for B9.3 | | 1.11.1 | B9.3rc2 | | 1094 | 2023-06-29 | | Second release candidate for B9.3 | From 5c5b968e3c192b051c431ee8d42702e1c22a80ed Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Wed, 11 Oct 2023 16:32:21 -0400 Subject: [PATCH 5/6] pin ASDF below version 3.0 --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 13d40ba068..4b7671ca14 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,7 +27,7 @@ python_requires = >=3.9 setup_requires = setuptools_scm install_requires = - asdf>=2.15.1 + asdf>=2.15.1,<3 asdf-transform-schemas>=0.3.0 astropy>=5.3 BayesicFitting>=3.0.1 From 69d99a1b442adcd30a79f617a52171a2f299fa81 Mon Sep 17 00:00:00 2001 From: Zach Burnett Date: Thu, 12 Oct 2023 16:14:12 -0400 Subject: [PATCH 6/6] metadata for patch release (#8006) --- CHANGES.rst | 3 ++- CITATION.cff | 4 ++-- README.md | 1 + setup.cfg | 10 +++++----- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 26a97f3562..e1473d51a3 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,4 +1,4 @@ -1.12.4 (unreleased) +1.12.4 (2023-10-12) =================== cube_build @@ -11,6 +11,7 @@ general - Fix numpy 2.0 deprecation warnings in cube_build, photom and wfs_combine. [#7999] +- pinned dependencies for several in-development packages below their next versions to maintain compatibility 1.12.3 (2023-10-03) =================== diff --git a/CITATION.cff b/CITATION.cff index e9303b469c..aa142ca6f5 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -75,7 +75,7 @@ authors: given-names: "Maria" orcid: "https://orcid.org/0000-0003-2314-3453" title: "JWST Calibration Pipeline" -version: 1.12.3 +version: 1.12.4 doi: 10.5281/zenodo.7038885 -date-released: 2023-10-03 +date-released: 2023-10-12 url: "https://github.com/spacetelescope/jwst" diff --git a/README.md b/README.md index 3cf94fffd6..c4910c9d38 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ the specified context and less than the context for the next release. | jwst tag | DMS build | SDP_VER | CRDS_CONTEXT | Released | Ops Install | Notes | |---------------------|-----------|----------|--------------|------------|-------------|-----------------------------------------------| +| 1.12.4 | | 2023.3.0 | 1135 | 2023-10-12 | | Pinning dependencies for external users | | 1.12.3 | B10.0 | 2023.3.0 | 1135 | 2023-10-03 | 2023-12-05 | Final release candidate for B10.0 | | 1.12.2 | B10.0rc3 | | 1135 | 2023-10-02 | (tentative) | Third release candidate for B10.0 | | 1.12.1 | B10.0rc2 | | 1132 | 2023-09-26 | | Second release candidate for B10.0 | diff --git a/setup.cfg b/setup.cfg index 4b7671ca14..61f96913b7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,8 +32,8 @@ install_requires = astropy>=5.3 BayesicFitting>=3.0.1 crds>=11.16.19 - drizzle>=1.14.3 - gwcs>=0.19.0 + drizzle>=1.14.3,<1.15.0 + gwcs>=0.19.0,<0.20.0 numpy>=1.22 opencv-python-headless>=4.6.0.66 photutils>=1.4.0 @@ -45,7 +45,7 @@ install_requires = spherical-geometry>=1.2.22 stcal>=1.4.4,<1.5.0 stdatamodels>=1.8.3,<1.9.0 - stpipe>=0.5.0 + stpipe>=0.5.0,<0.6.0 stsci.image>=2.3.5 stsci.imagestats>=1.6.3 tweakwcs>=0.8.3 @@ -135,8 +135,8 @@ build-dir = docs all_files = 1 [upload_docs] -upload-dir = docs/_build/html -show-response = 1 +upload_dir = docs/_build/html +show_response = 1 [tool:pytest] minversion = 6.0