dkist-processing-dlnirsp 0.34.1__py3-none-any.whl → 0.34.3__py3-none-any.whl

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.
@@ -262,10 +262,9 @@ class MakeDlnirspMovie(DlnirspTaskBase):
262
262
  logger.info("Parsing headers")
263
263
  wcs_list = []
264
264
  for f in file_list:
265
- hdul = fits.open(f)
266
- header = self.add_L1_header_values(hdul[0].header)
265
+ raw_header = fits.getheader(f)
266
+ header = self.add_L1_header_values(raw_header)
267
267
  wcs_list.append(WCS(header).dropaxis(2))
268
- del hdul
269
268
 
270
269
  logger.info("Computing reference WCS")
271
270
  reference_wcs, shape_out = find_optimal_celestial_wcs(
@@ -829,18 +828,33 @@ class MakeDlnirspMovie(DlnirspTaskBase):
829
828
  date_beg_list = []
830
829
  data_list = [[], []]
831
830
  for fo in file_paths:
832
- hdul = fits.open(fo)
831
+ # `memmap = True` saves us a bit in terms of peak memory in this function.
832
+ # See below for how we make sure the open file descriptors don't linger
833
+ hdul = fits.open(fo, memmap=True)
833
834
  header = self.add_L1_header_values(hdul[0].header)
834
835
  wcs_list.append(WCS(header).dropaxis(2))
835
836
  date_beg_list.append(header["DATE-BEG"])
836
837
 
837
838
  for i, s in enumerate([self.core_wave_idx, self.cont_wave_idx]):
838
- data = hdul[0].data[s, :, :]
839
+ # By assigning `hdul[0].data` to a variable explicitly we can ensure its FD will be cleaned up
840
+ # once we're done with it.
841
+ full_data = hdul[0].data
842
+ # The `float32` casting has two functions: First, it acts like `.copy()` in that it decouples `data`
843
+ # from the `full_data` variable (i.e., it's not just a view). This lets us clean up the FD used by
844
+ # `full_data` while keeping the much smaller `data` around. Secondly, the original data type is float64
845
+ # and this reduces the absolute size of `data` in memory. This task is just for a visualization, so
846
+ # those extra 32 bits really don't matter.
847
+ data = full_data[s, :, :].astype(np.float32)
839
848
  for vs in self.parameters.movie_vertical_nan_slices:
840
849
  data[vs, :] = np.nan
841
850
  data_list[i].append(data)
842
851
 
843
- del hdul
852
+ # These two lines aren't strictly necessary because these variables will be "cleaned up" when they are
853
+ # reused in the next loop iteration, but keeping them around makes it clear what our intentions are;
854
+ # these are the way to guarantee that the `hdul` opened with `memmap=True` closes both of its open file
855
+ # descriptors.
856
+ hdul.close()
857
+ del full_data
844
858
 
845
859
  return data_list, wcs_list, date_beg_list
846
860
 
@@ -892,7 +906,7 @@ class MakeDlnirspMovie(DlnirspTaskBase):
892
906
 
893
907
  def get_stacked_spectra(self, file_path: Path) -> np.ndarray:
894
908
  """Read a file for a single mosaic step and flatten the 3D cube into a stacked, 2D spectral array."""
895
- data = fits.getdata(file_path)
909
+ data = fits.getdata(file_path, memmap=False)
896
910
  stack = data.reshape(self.num_wave, self.num_spec).T
897
911
  return stack
898
912
 
@@ -1,7 +1,9 @@
1
- import shutil
1
+ import os
2
+ from pathlib import Path
2
3
 
3
4
  import numpy as np
4
5
  import pytest
6
+ from astropy.wcs import WCS
5
7
  from dkist_processing_common._util.scratch import WorkflowFileSystem
6
8
  from dkist_processing_common.codecs.json import json_encoder
7
9
 
@@ -13,13 +15,51 @@ from dkist_processing_dlnirsp.tests.conftest import DlnirspTestingParameters
13
15
  from dkist_processing_dlnirsp.tests.conftest import write_calibrated_frames_to_task
14
16
 
15
17
 
18
+ def check_open_file_descriptors() -> int | None:
19
+ """
20
+ Look for the number of open file descriptors by examining /proc/self/fd.
21
+
22
+ This concept doesn't apply to Windows machines, so we will catch that error gracefully. The result is that Windows
23
+ won't test this condition, but that's OK because it doesn't apply to them anyway.
24
+ """
25
+ try:
26
+ return len(os.listdir("/proc/self/fd"))
27
+ except FileNotFoundError:
28
+ return None
29
+
30
+
31
+ class LeakFindingMovieTask(MakeDlnirspMovie):
32
+ """Same as `MakeDlnirspMovie`, but keeps track of file descriptors before and after each call to potentially leaky functions."""
33
+
34
+ def pre_run(self) -> None:
35
+ super().pre_run()
36
+ self._test_pre_mosaic_num_fd = []
37
+ self._test_post_mosaic_num_fd = []
38
+ self._test_pre_stack_num_fd = []
39
+ self._test_post_stack_num_fd = []
40
+
41
+ def read_mosaic_frames(
42
+ self, mosaic_num: int, stokes: str
43
+ ) -> tuple[list[list[np.ndarray]], list[WCS], list[str]]:
44
+ self._test_pre_mosaic_num_fd.append(check_open_file_descriptors())
45
+ result = super().read_mosaic_frames(mosaic_num, stokes)
46
+ self._test_post_mosaic_num_fd.append(check_open_file_descriptors())
47
+ return result
48
+
49
+ def get_stacked_spectra(self, file_path: Path) -> np.ndarray:
50
+ self._test_pre_stack_num_fd.append(check_open_file_descriptors())
51
+ result = super().get_stacked_spectra(file_path)
52
+ self._test_post_stack_num_fd.append(check_open_file_descriptors())
53
+ return result
54
+
55
+
16
56
  @pytest.fixture
17
57
  def movie_task(recipe_run_id, tmp_path, link_constants_db, assign_input_dataset_doc_to_task):
18
58
  link_constants_db(
19
59
  recipe_run_id=recipe_run_id,
20
60
  constants_obj=DlnirspTestingConstants(),
21
61
  )
22
- with MakeDlnirspMovie(
62
+ with LeakFindingMovieTask(
23
63
  recipe_run_id=recipe_run_id,
24
64
  workflow_name="workflow_name",
25
65
  workflow_version="workflow_version",
@@ -139,3 +179,14 @@ def test_movie_task(
139
179
  movie_file_list = list(task.read(tags=[DlnirspTag.output(), DlnirspTag.movie()]))
140
180
 
141
181
  assert len(movie_file_list) == 1
182
+
183
+ # Check that there are no file descriptor leaks in the functions that could be leaky
184
+ #
185
+ # Using `xdist` can cause some timing issues with these tests.
186
+ # The "true" assert is `after == before`, but tests have shown that sometimes `after` can be lower than `before`,
187
+ # presumably because some fixture cleanup or something happens in a race with the checking of open FD that occurs
188
+ # in `LeakFindingMovieTask`. To deal with this we just test `<=`, which still captures the intent with no downside.
189
+ for before, after in zip(task._test_pre_mosaic_num_fd, task._test_post_mosaic_num_fd):
190
+ assert after <= before
191
+ for before, after in zip(task._test_pre_stack_num_fd, task._test_post_stack_num_fd):
192
+ assert after <= before
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-dlnirsp
3
- Version: 0.34.1
3
+ Version: 0.34.3
4
4
  Summary: Science processing code for the DLNIRSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -13,10 +13,10 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/x-rst
16
- Requires-Dist: dkist-processing-common==12.1.0
16
+ Requires-Dist: dkist-processing-common==12.3.0
17
17
  Requires-Dist: dkist-processing-math==2.2.1
18
18
  Requires-Dist: dkist-processing-pac==3.1.1
19
- Requires-Dist: dkist-header-validator==5.2.1
19
+ Requires-Dist: dkist-header-validator==5.3.0
20
20
  Requires-Dist: dkist-fits-specifications==4.20.0
21
21
  Requires-Dist: dkist-spectral-lines==3.0.0
22
22
  Requires-Dist: dkist-service-configuration==4.2.0
@@ -73,7 +73,7 @@ Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
73
73
  Requires-Dist: PIMS==0.7; extra == "frozen"
74
74
  Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
75
75
  Requires-Dist: PyAVM==0.9.8; extra == "frozen"
76
- Requires-Dist: PyJWT==2.10.1; extra == "frozen"
76
+ Requires-Dist: PyJWT==2.11.0; extra == "frozen"
77
77
  Requires-Dist: PyYAML==6.0.3; extra == "frozen"
78
78
  Requires-Dist: PyYAML-ft==8.0.0; extra == "frozen"
79
79
  Requires-Dist: Pygments==2.19.2; extra == "frozen"
@@ -87,19 +87,19 @@ Requires-Dist: aiohttp==3.13.3; extra == "frozen"
87
87
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
88
88
  Requires-Dist: aiosmtplib==5.1.0; extra == "frozen"
89
89
  Requires-Dist: aiosqlite==0.21.0; extra == "frozen"
90
- Requires-Dist: alembic==1.18.1; extra == "frozen"
90
+ Requires-Dist: alembic==1.18.3; extra == "frozen"
91
91
  Requires-Dist: amqp==5.3.1; extra == "frozen"
92
92
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
93
93
  Requires-Dist: anyio==4.12.1; extra == "frozen"
94
94
  Requires-Dist: apache-airflow==3.1.6; extra == "frozen"
95
95
  Requires-Dist: apache-airflow-core==3.1.6; extra == "frozen"
96
- Requires-Dist: apache-airflow-providers-celery==3.15.1; extra == "frozen"
97
- Requires-Dist: apache-airflow-providers-common-compat==1.12.0; extra == "frozen"
96
+ Requires-Dist: apache-airflow-providers-celery==3.15.2; extra == "frozen"
97
+ Requires-Dist: apache-airflow-providers-common-compat==1.13.0; extra == "frozen"
98
98
  Requires-Dist: apache-airflow-providers-common-io==1.7.1; extra == "frozen"
99
- Requires-Dist: apache-airflow-providers-common-sql==1.30.3; extra == "frozen"
100
- Requires-Dist: apache-airflow-providers-postgres==6.5.2; extra == "frozen"
99
+ Requires-Dist: apache-airflow-providers-common-sql==1.30.4; extra == "frozen"
100
+ Requires-Dist: apache-airflow-providers-postgres==6.5.3; extra == "frozen"
101
101
  Requires-Dist: apache-airflow-providers-smtp==2.4.2; extra == "frozen"
102
- Requires-Dist: apache-airflow-providers-standard==1.10.3; extra == "frozen"
102
+ Requires-Dist: apache-airflow-providers-standard==1.11.0; extra == "frozen"
103
103
  Requires-Dist: apache-airflow-task-sdk==1.1.6; extra == "frozen"
104
104
  Requires-Dist: argcomplete==3.6.3; extra == "frozen"
105
105
  Requires-Dist: asdf==3.5.0; extra == "frozen"
@@ -108,14 +108,14 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
108
108
  Requires-Dist: asgiref==3.11.0; extra == "frozen"
109
109
  Requires-Dist: asteval==1.0.8; extra == "frozen"
110
110
  Requires-Dist: astropy==7.0.2; extra == "frozen"
111
- Requires-Dist: astropy-iers-data==0.2026.1.26.0.43.56; extra == "frozen"
111
+ Requires-Dist: astropy-iers-data==0.2026.2.2.0.48.1; extra == "frozen"
112
112
  Requires-Dist: astropy_healpix==1.1.3; extra == "frozen"
113
113
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
114
114
  Requires-Dist: attrs==25.4.0; extra == "frozen"
115
- Requires-Dist: babel==2.17.0; extra == "frozen"
115
+ Requires-Dist: babel==2.18.0; extra == "frozen"
116
116
  Requires-Dist: billiard==4.2.4; extra == "frozen"
117
- Requires-Dist: boto3==1.42.34; extra == "frozen"
118
- Requires-Dist: botocore==1.42.34; extra == "frozen"
117
+ Requires-Dist: boto3==1.42.39; extra == "frozen"
118
+ Requires-Dist: botocore==1.42.39; extra == "frozen"
119
119
  Requires-Dist: cadwyn==5.4.6; extra == "frozen"
120
120
  Requires-Dist: celery==5.6.2; extra == "frozen"
121
121
  Requires-Dist: certifi==2026.1.4; extra == "frozen"
@@ -130,17 +130,17 @@ Requires-Dist: colorlog==6.10.1; extra == "frozen"
130
130
  Requires-Dist: contourpy==1.3.3; extra == "frozen"
131
131
  Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
132
132
  Requires-Dist: croniter==6.0.0; extra == "frozen"
133
- Requires-Dist: cryptography==46.0.3; extra == "frozen"
133
+ Requires-Dist: cryptography==46.0.4; extra == "frozen"
134
134
  Requires-Dist: cycler==0.12.1; extra == "frozen"
135
135
  Requires-Dist: dacite==1.9.2; extra == "frozen"
136
- Requires-Dist: dask==2026.1.1; extra == "frozen"
136
+ Requires-Dist: dask==2026.1.2; extra == "frozen"
137
137
  Requires-Dist: dask-image==2025.11.0; extra == "frozen"
138
138
  Requires-Dist: decorator==5.2.1; extra == "frozen"
139
139
  Requires-Dist: dill==0.4.1; extra == "frozen"
140
- Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
141
- Requires-Dist: dkist-processing-common==12.1.0; extra == "frozen"
140
+ Requires-Dist: dkist-header-validator==5.3.0; extra == "frozen"
141
+ Requires-Dist: dkist-processing-common==12.3.0; extra == "frozen"
142
142
  Requires-Dist: dkist-processing-core==7.0.1; extra == "frozen"
143
- Requires-Dist: dkist-processing-dlnirsp==0.34.1; extra == "frozen"
143
+ Requires-Dist: dkist-processing-dlnirsp==0.34.3; extra == "frozen"
144
144
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
145
145
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
146
146
  Requires-Dist: dkist-service-configuration==4.2.0; extra == "frozen"
@@ -229,22 +229,22 @@ Requires-Dist: opentelemetry-util-http==0.60b1; extra == "frozen"
229
229
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
230
230
  Requires-Dist: packaging==26.0; extra == "frozen"
231
231
  Requires-Dist: pandas==3.0.0; extra == "frozen"
232
- Requires-Dist: parfive==2.3.0; extra == "frozen"
232
+ Requires-Dist: parfive==2.3.1; extra == "frozen"
233
233
  Requires-Dist: partd==1.4.2; extra == "frozen"
234
- Requires-Dist: pathspec==1.0.3; extra == "frozen"
235
- Requires-Dist: pendulum==3.1.0; extra == "frozen"
234
+ Requires-Dist: pathspec==1.0.4; extra == "frozen"
235
+ Requires-Dist: pendulum==3.2.0; extra == "frozen"
236
236
  Requires-Dist: pika==1.3.2; extra == "frozen"
237
237
  Requires-Dist: pillow==11.3.0; extra == "frozen"
238
- Requires-Dist: pip==25.3; extra == "frozen"
238
+ Requires-Dist: pip==26.0; extra == "frozen"
239
239
  Requires-Dist: platformdirs==4.5.1; extra == "frozen"
240
240
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
241
- Requires-Dist: pooch==1.8.2; extra == "frozen"
241
+ Requires-Dist: pooch==1.9.0; extra == "frozen"
242
242
  Requires-Dist: proglog==0.1.12; extra == "frozen"
243
243
  Requires-Dist: prometheus_client==0.24.1; extra == "frozen"
244
244
  Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
245
245
  Requires-Dist: propcache==0.4.1; extra == "frozen"
246
- Requires-Dist: protobuf==6.33.4; extra == "frozen"
247
- Requires-Dist: psutil==7.2.1; extra == "frozen"
246
+ Requires-Dist: protobuf==6.33.5; extra == "frozen"
247
+ Requires-Dist: psutil==7.2.2; extra == "frozen"
248
248
  Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
249
249
  Requires-Dist: pyarrow==23.0.0; extra == "frozen"
250
250
  Requires-Dist: pycparser==3.0; extra == "frozen"
@@ -264,9 +264,9 @@ Requires-Dist: redis==6.4.0; extra == "frozen"
264
264
  Requires-Dist: referencing==0.37.0; extra == "frozen"
265
265
  Requires-Dist: reproject==0.19.0; extra == "frozen"
266
266
  Requires-Dist: requests==2.32.5; extra == "frozen"
267
- Requires-Dist: rich==14.3.1; extra == "frozen"
267
+ Requires-Dist: rich==14.3.2; extra == "frozen"
268
268
  Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
269
- Requires-Dist: rich-toolkit==0.17.1; extra == "frozen"
269
+ Requires-Dist: rich-toolkit==0.18.1; extra == "frozen"
270
270
  Requires-Dist: rpds-py==0.30.0; extra == "frozen"
271
271
  Requires-Dist: s3transfer==0.16.0; extra == "frozen"
272
272
  Requires-Dist: scikit-image==0.26.0; extra == "frozen"
@@ -289,10 +289,10 @@ Requires-Dist: talus==1.3.4; extra == "frozen"
289
289
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
290
290
  Requires-Dist: termcolor==3.3.0; extra == "frozen"
291
291
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
292
- Requires-Dist: tifffile==2026.1.14; extra == "frozen"
292
+ Requires-Dist: tifffile==2026.1.28; extra == "frozen"
293
293
  Requires-Dist: toolz==1.1.0; extra == "frozen"
294
294
  Requires-Dist: tornado==6.5.4; extra == "frozen"
295
- Requires-Dist: tqdm==4.67.1; extra == "frozen"
295
+ Requires-Dist: tqdm==4.67.2; extra == "frozen"
296
296
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
297
297
  Requires-Dist: typer==0.21.1; extra == "frozen"
298
298
  Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
@@ -309,7 +309,7 @@ Requires-Dist: uvloop==0.22.1; extra == "frozen"
309
309
  Requires-Dist: vine==5.1.0; extra == "frozen"
310
310
  Requires-Dist: voluptuous==0.16.0; extra == "frozen"
311
311
  Requires-Dist: watchfiles==1.1.1; extra == "frozen"
312
- Requires-Dist: wcwidth==0.4.0; extra == "frozen"
312
+ Requires-Dist: wcwidth==0.5.3; extra == "frozen"
313
313
  Requires-Dist: websockets==16.0; extra == "frozen"
314
314
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
315
315
  Requires-Dist: wrapt==1.17.3; extra == "frozen"
@@ -26,7 +26,7 @@ dkist_processing_dlnirsp/tasks/instrument_polarization.py,sha256=G79qXg1080zsd8Z
26
26
  dkist_processing_dlnirsp/tasks/l1_output_data.py,sha256=Psta0476jih-cfmpdnzmquys030sW4f4VX6ksAb-g1o,465
27
27
  dkist_processing_dlnirsp/tasks/lamp.py,sha256=twoMHMnE2jm2OYxkeHFcjqcyQYVtEjSU2_z2mmn3Ybs,5390
28
28
  dkist_processing_dlnirsp/tasks/linearity_correction.py,sha256=z3MpWHp0lZYB2zrfHfH7HlcKoro6TPxwEN8rpqVv08c,22716
29
- dkist_processing_dlnirsp/tasks/movie.py,sha256=IaZCRg2KIETEXDyyOe3FLoY5cd7eJOhMtjkiSYjElEU,44291
29
+ dkist_processing_dlnirsp/tasks/movie.py,sha256=sRR_1GsKlSUiHerHkmNTEBC_tsrj7k8_EuZzgfvZHO0,45614
30
30
  dkist_processing_dlnirsp/tasks/parse.py,sha256=shhepxnN2s3u9EFfMOAIaIN-be5Wtsaw0H6Trh5kOOQ,11359
31
31
  dkist_processing_dlnirsp/tasks/quality_metrics.py,sha256=1ScLAinv3WG-0M7u_26gnogbJ_D84K9CP7eRvEuwb9E,7346
32
32
  dkist_processing_dlnirsp/tasks/science.py,sha256=sNI4AYO10qe3JL62KWXR87MnfX9m85Jo4_PkQ0qd5TQ,35737
@@ -51,7 +51,7 @@ dkist_processing_dlnirsp/tests/test_ifu_drift.py,sha256=K6ushbVQVE6AATjiP3hEgF6o
51
51
  dkist_processing_dlnirsp/tests/test_instrument_polarization_calibration.py,sha256=pPXjfzi3EcaawNqvXsz3OcCF1XITEJeCzQ8-iOjlm7U,23430
52
52
  dkist_processing_dlnirsp/tests/test_lamp.py,sha256=umy4ydYR5M3dqXTQP14qbamOleutyD1jSj3325aitl0,3940
53
53
  dkist_processing_dlnirsp/tests/test_linearity_correction.py,sha256=JkPNtsRad2JQQ2QiJjQar9tJuCi9-ksOdEYHW_-kl58,31793
54
- dkist_processing_dlnirsp/tests/test_movie.py,sha256=j1ocVuy7PZCJrL-MrTczI-mFEsnECyCQ6P8uiK3mokw,4284
54
+ dkist_processing_dlnirsp/tests/test_movie.py,sha256=fDfXi-nGsKSl0oY2OQEtT4tMHozRFIevQ5pqrgyk7bI,6627
55
55
  dkist_processing_dlnirsp/tests/test_parameters.py,sha256=bL30vGwFMwY2vP6-mQ-KPsr7I213PaXP7S1wKVPqq8g,10705
56
56
  dkist_processing_dlnirsp/tests/test_parse.py,sha256=prx8K0vFGkW-YZm0YB13FBobbiMf0u1k8TuCyNF4_qE,38418
57
57
  dkist_processing_dlnirsp/tests/test_quality.py,sha256=OBWva_E6T5RfDuo73LiTdTr7uh2FO04VpBAsSOLfjVQ,6122
@@ -91,8 +91,8 @@ docs/science_calibration.rst,sha256=JUMeS7KyIsL9cUuy-IdV2tQ-wQ2lBx6j8u_51ThJzVg,
91
91
  docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
92
92
  docs/wavelength_calibration.rst,sha256=QGUd5Xmv5f7WQ1EKvw2CcgiMJQULjzdCW1hSQ8h8jj0,4123
93
93
  licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
94
- dkist_processing_dlnirsp-0.34.1.dist-info/METADATA,sha256=vD2B7XcIbZteiQgRO2HGdTyqybyoYQwor14vfUPgFpU,30435
95
- dkist_processing_dlnirsp-0.34.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
96
- dkist_processing_dlnirsp-0.34.1.dist-info/entry_points.txt,sha256=p4-7cpIfxmQGFUDIP5n5noE5KADHN2-JvV03e0gOx9s,140
97
- dkist_processing_dlnirsp-0.34.1.dist-info/top_level.txt,sha256=4WmLV9LQM78KTFnkHmtaOJvVHAPpz0m9ruzDS-B_cUo,49
98
- dkist_processing_dlnirsp-0.34.1.dist-info/RECORD,,
94
+ dkist_processing_dlnirsp-0.34.3.dist-info/METADATA,sha256=VRViQgISghksCNybqEEYFjN85mLICPGiHRleB2S9MAg,30433
95
+ dkist_processing_dlnirsp-0.34.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
96
+ dkist_processing_dlnirsp-0.34.3.dist-info/entry_points.txt,sha256=p4-7cpIfxmQGFUDIP5n5noE5KADHN2-JvV03e0gOx9s,140
97
+ dkist_processing_dlnirsp-0.34.3.dist-info/top_level.txt,sha256=4WmLV9LQM78KTFnkHmtaOJvVHAPpz0m9ruzDS-B_cUo,49
98
+ dkist_processing_dlnirsp-0.34.3.dist-info/RECORD,,