dkist-processing-visp 3.3.0__py3-none-any.whl → 5.1.1__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.
Files changed (71) hide show
  1. dkist_processing_visp/__init__.py +1 -0
  2. dkist_processing_visp/config.py +1 -0
  3. dkist_processing_visp/models/constants.py +52 -21
  4. dkist_processing_visp/models/fits_access.py +20 -0
  5. dkist_processing_visp/models/metric_code.py +10 -0
  6. dkist_processing_visp/models/parameters.py +129 -19
  7. dkist_processing_visp/models/tags.py +1 -0
  8. dkist_processing_visp/models/task_name.py +1 -0
  9. dkist_processing_visp/parsers/map_repeats.py +1 -0
  10. dkist_processing_visp/parsers/modulator_states.py +1 -0
  11. dkist_processing_visp/parsers/polarimeter_mode.py +3 -1
  12. dkist_processing_visp/parsers/raster_step.py +4 -1
  13. dkist_processing_visp/parsers/spectrograph_configuration.py +75 -0
  14. dkist_processing_visp/parsers/time.py +15 -7
  15. dkist_processing_visp/parsers/visp_l0_fits_access.py +19 -8
  16. dkist_processing_visp/parsers/visp_l1_fits_access.py +1 -0
  17. dkist_processing_visp/tasks/__init__.py +1 -0
  18. dkist_processing_visp/tasks/assemble_movie.py +1 -0
  19. dkist_processing_visp/tasks/background_light.py +2 -1
  20. dkist_processing_visp/tasks/dark.py +5 -4
  21. dkist_processing_visp/tasks/geometric.py +132 -20
  22. dkist_processing_visp/tasks/instrument_polarization.py +13 -12
  23. dkist_processing_visp/tasks/l1_output_data.py +203 -0
  24. dkist_processing_visp/tasks/lamp.py +53 -93
  25. dkist_processing_visp/tasks/make_movie_frames.py +8 -6
  26. dkist_processing_visp/tasks/mixin/beam_access.py +1 -0
  27. dkist_processing_visp/tasks/mixin/corrections.py +54 -4
  28. dkist_processing_visp/tasks/mixin/downsample.py +1 -0
  29. dkist_processing_visp/tasks/parse.py +34 -4
  30. dkist_processing_visp/tasks/quality_metrics.py +5 -4
  31. dkist_processing_visp/tasks/science.py +126 -46
  32. dkist_processing_visp/tasks/solar.py +896 -456
  33. dkist_processing_visp/tasks/visp_base.py +2 -0
  34. dkist_processing_visp/tasks/write_l1.py +25 -5
  35. dkist_processing_visp/tests/conftest.py +99 -35
  36. dkist_processing_visp/tests/header_models.py +92 -20
  37. dkist_processing_visp/tests/local_trial_workflows/l0_cals_only.py +4 -23
  38. dkist_processing_visp/tests/local_trial_workflows/l0_polcals_as_science.py +421 -0
  39. dkist_processing_visp/tests/local_trial_workflows/l0_solar_gain_as_science.py +10 -29
  40. dkist_processing_visp/tests/local_trial_workflows/l0_to_l1.py +1 -21
  41. dkist_processing_visp/tests/local_trial_workflows/local_trial_helpers.py +98 -14
  42. dkist_processing_visp/tests/test_assemble_movie.py +2 -3
  43. dkist_processing_visp/tests/test_assemble_quality.py +89 -4
  44. dkist_processing_visp/tests/test_background_light.py +8 -5
  45. dkist_processing_visp/tests/test_dark.py +4 -3
  46. dkist_processing_visp/tests/test_fits_access.py +43 -0
  47. dkist_processing_visp/tests/test_geometric.py +45 -4
  48. dkist_processing_visp/tests/test_instrument_polarization.py +4 -3
  49. dkist_processing_visp/tests/test_lamp.py +22 -26
  50. dkist_processing_visp/tests/test_make_movie_frames.py +4 -4
  51. dkist_processing_visp/tests/test_map_repeats.py +3 -1
  52. dkist_processing_visp/tests/test_parameters.py +122 -21
  53. dkist_processing_visp/tests/test_parse.py +98 -14
  54. dkist_processing_visp/tests/test_quality.py +2 -3
  55. dkist_processing_visp/tests/test_science.py +113 -15
  56. dkist_processing_visp/tests/test_solar.py +318 -99
  57. dkist_processing_visp/tests/test_visp_constants.py +36 -8
  58. dkist_processing_visp/tests/test_workflows.py +1 -0
  59. dkist_processing_visp/tests/test_write_l1.py +17 -3
  60. dkist_processing_visp/workflows/__init__.py +1 -0
  61. dkist_processing_visp/workflows/l0_processing.py +8 -2
  62. dkist_processing_visp/workflows/trial_workflows.py +8 -2
  63. dkist_processing_visp-5.1.1.dist-info/METADATA +552 -0
  64. dkist_processing_visp-5.1.1.dist-info/RECORD +94 -0
  65. docs/conf.py +5 -1
  66. docs/gain_correction.rst +50 -42
  67. dkist_processing_visp/tasks/mixin/line_zones.py +0 -115
  68. dkist_processing_visp-3.3.0.dist-info/METADATA +0 -459
  69. dkist_processing_visp-3.3.0.dist-info/RECORD +0 -90
  70. {dkist_processing_visp-3.3.0.dist-info → dkist_processing_visp-5.1.1.dist-info}/WHEEL +0 -0
  71. {dkist_processing_visp-3.3.0.dist-info → dkist_processing_visp-5.1.1.dist-info}/top_level.txt +0 -0
@@ -1,459 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: dkist-processing-visp
3
- Version: 3.3.0
4
- Summary: Science processing code for the ViSP instrument on DKIST
5
- Author-email: NSO / AURA <dkistdc@nso.edu>
6
- License: BSD-3-Clause
7
- Project-URL: Homepage, https://nso.edu/dkist/data-center/
8
- Project-URL: Repository, https://bitbucket.org/dkistdc/dkist-processing-visp
9
- Project-URL: Documentation, https://docs.dkist.nso.edu/projects/visp
10
- Project-URL: Help, https://nso.atlassian.net/servicedesk/customer/portal/5
11
- Classifier: Programming Language :: Python
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.11
14
- Requires-Python: >=3.11
15
- Description-Content-Type: text/x-rst
16
- Requires-Dist: dkist-processing-common==11.0.1
17
- Requires-Dist: dkist-processing-math==2.2.0
18
- Requires-Dist: dkist-processing-pac==3.1.1
19
- Requires-Dist: dkist-header-validator==5.2.1
20
- Requires-Dist: dkist-fits-specifications==4.17.0
21
- Requires-Dist: dkist-service-configuration==2.2
22
- Requires-Dist: dkist-spectral-lines==3.0.0
23
- Requires-Dist: astropy==7.0.2
24
- Requires-Dist: numpy==2.2.5
25
- Requires-Dist: sunpy==6.1.1
26
- Requires-Dist: scipy==1.15.3
27
- Requires-Dist: scikit-image==0.25.2
28
- Requires-Dist: scikit-learn==1.6.1
29
- Requires-Dist: peakutils==1.3.5
30
- Requires-Dist: Pillow==10.4.0
31
- Requires-Dist: moviepy==2.1.2
32
- Provides-Extra: test
33
- Requires-Dist: pytest; extra == "test"
34
- Requires-Dist: pytest-cov; extra == "test"
35
- Requires-Dist: pytest-xdist; extra == "test"
36
- Requires-Dist: pytest-mock; extra == "test"
37
- Requires-Dist: hypothesis; extra == "test"
38
- Requires-Dist: towncrier; extra == "test"
39
- Requires-Dist: dkist-data-simulator>=5.2.6; extra == "test"
40
- Requires-Dist: pydantic; extra == "test"
41
- Requires-Dist: dkist-processing-visp[inventory]; extra == "test"
42
- Requires-Dist: dkist-processing-visp[asdf]; extra == "test"
43
- Requires-Dist: dkist-processing-visp[quality]; extra == "test"
44
- Provides-Extra: inventory
45
- Requires-Dist: dkist-processing-common[inventory]; extra == "inventory"
46
- Requires-Dist: dkist-inventory==1.9.0; extra == "inventory"
47
- Provides-Extra: asdf
48
- Requires-Dist: dkist-processing-common[asdf]; extra == "asdf"
49
- Requires-Dist: dkist-inventory[asdf]==1.9.0; extra == "asdf"
50
- Provides-Extra: quality
51
- Requires-Dist: dkist-quality==1.3.0; extra == "quality"
52
- Provides-Extra: grogu
53
- Requires-Dist: dkist; extra == "grogu"
54
- Requires-Dist: pyparsing; extra == "grogu"
55
- Requires-Dist: dkist-inventory>=1.9.0; extra == "grogu"
56
- Requires-Dist: dkist-processing-visp[test]; extra == "grogu"
57
- Provides-Extra: docs
58
- Requires-Dist: sphinx; extra == "docs"
59
- Requires-Dist: sphinx-astropy; extra == "docs"
60
- Requires-Dist: sphinx-changelog; extra == "docs"
61
- Requires-Dist: sphinx-autoapi==3.3.3; extra == "docs"
62
- Requires-Dist: pytest; extra == "docs"
63
- Requires-Dist: towncrier; extra == "docs"
64
- Requires-Dist: dkist-sphinx-theme; extra == "docs"
65
- Requires-Dist: packaging; extra == "docs"
66
- Provides-Extra: frozen
67
- Requires-Dist: ConfigUpdater==3.2; extra == "frozen"
68
- Requires-Dist: Deprecated==1.2.18; extra == "frozen"
69
- Requires-Dist: Flask==2.2.5; extra == "frozen"
70
- Requires-Dist: Flask-AppBuilder==4.5.3; extra == "frozen"
71
- Requires-Dist: Flask-Babel==2.0.0; extra == "frozen"
72
- Requires-Dist: Flask-Caching==2.3.1; extra == "frozen"
73
- Requires-Dist: Flask-JWT-Extended==4.7.1; extra == "frozen"
74
- Requires-Dist: Flask-Limiter==3.12; extra == "frozen"
75
- Requires-Dist: Flask-Login==0.6.3; extra == "frozen"
76
- Requires-Dist: Flask-SQLAlchemy==2.5.1; extra == "frozen"
77
- Requires-Dist: Flask-Session==0.5.0; extra == "frozen"
78
- Requires-Dist: Flask-WTF==1.2.2; extra == "frozen"
79
- Requires-Dist: Jinja2==3.1.6; extra == "frozen"
80
- Requires-Dist: Mako==1.3.10; extra == "frozen"
81
- Requires-Dist: MarkupSafe==3.0.2; extra == "frozen"
82
- Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
83
- Requires-Dist: PyJWT==2.10.1; extra == "frozen"
84
- Requires-Dist: PyYAML==6.0.2; extra == "frozen"
85
- Requires-Dist: Pygments==2.19.2; extra == "frozen"
86
- Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
87
- Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
88
- Requires-Dist: SQLAlchemy-Utils==0.41.2; extra == "frozen"
89
- Requires-Dist: WTForms==3.2.1; extra == "frozen"
90
- Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
91
- Requires-Dist: aioftp==0.26.2; extra == "frozen"
92
- Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
93
- Requires-Dist: aiohttp==3.12.14; extra == "frozen"
94
- Requires-Dist: aiosignal==1.4.0; extra == "frozen"
95
- Requires-Dist: alembic==1.16.4; extra == "frozen"
96
- Requires-Dist: amqp==5.3.1; extra == "frozen"
97
- Requires-Dist: annotated-types==0.7.0; extra == "frozen"
98
- Requires-Dist: anyio==4.9.0; extra == "frozen"
99
- Requires-Dist: apache-airflow==2.10.5; extra == "frozen"
100
- Requires-Dist: apache-airflow-providers-celery==3.12.1; extra == "frozen"
101
- Requires-Dist: apache-airflow-providers-common-compat==1.7.2; extra == "frozen"
102
- Requires-Dist: apache-airflow-providers-common-io==1.6.1; extra == "frozen"
103
- Requires-Dist: apache-airflow-providers-common-sql==1.27.3; extra == "frozen"
104
- Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
105
- Requires-Dist: apache-airflow-providers-ftp==3.13.1; extra == "frozen"
106
- Requires-Dist: apache-airflow-providers-http==5.3.2; extra == "frozen"
107
- Requires-Dist: apache-airflow-providers-imap==3.9.1; extra == "frozen"
108
- Requires-Dist: apache-airflow-providers-postgres==6.2.1; extra == "frozen"
109
- Requires-Dist: apache-airflow-providers-smtp==2.1.1; extra == "frozen"
110
- Requires-Dist: apache-airflow-providers-sqlite==4.1.1; extra == "frozen"
111
- Requires-Dist: apispec==6.8.2; extra == "frozen"
112
- Requires-Dist: argcomplete==3.6.2; extra == "frozen"
113
- Requires-Dist: asdf==3.5.0; extra == "frozen"
114
- Requires-Dist: asdf_standard==1.3.0; extra == "frozen"
115
- Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
116
- Requires-Dist: asgiref==3.9.1; extra == "frozen"
117
- Requires-Dist: asteval==1.0.6; extra == "frozen"
118
- Requires-Dist: astropy==7.0.2; extra == "frozen"
119
- Requires-Dist: astropy-iers-data==0.2025.7.7.0.39.39; extra == "frozen"
120
- Requires-Dist: asyncpg==0.30.0; extra == "frozen"
121
- Requires-Dist: attrs==25.3.0; extra == "frozen"
122
- Requires-Dist: babel==2.17.0; extra == "frozen"
123
- Requires-Dist: billiard==4.2.1; extra == "frozen"
124
- Requires-Dist: blinker==1.9.0; extra == "frozen"
125
- Requires-Dist: boto3==1.39.4; extra == "frozen"
126
- Requires-Dist: botocore==1.39.4; extra == "frozen"
127
- Requires-Dist: cachelib==0.13.0; extra == "frozen"
128
- Requires-Dist: celery==5.5.3; extra == "frozen"
129
- Requires-Dist: certifi==2025.7.9; extra == "frozen"
130
- Requires-Dist: cffi==1.17.1; extra == "frozen"
131
- Requires-Dist: charset-normalizer==3.4.2; extra == "frozen"
132
- Requires-Dist: click==8.2.1; extra == "frozen"
133
- Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
134
- Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
135
- Requires-Dist: click-repl==0.3.0; extra == "frozen"
136
- Requires-Dist: clickclick==20.10.2; extra == "frozen"
137
- Requires-Dist: colorama==0.4.6; extra == "frozen"
138
- Requires-Dist: colorlog==6.9.0; extra == "frozen"
139
- Requires-Dist: connexion==2.14.2; extra == "frozen"
140
- Requires-Dist: contourpy==1.3.2; extra == "frozen"
141
- Requires-Dist: cron-descriptor==1.4.5; extra == "frozen"
142
- Requires-Dist: croniter==6.0.0; extra == "frozen"
143
- Requires-Dist: cryptography==45.0.5; extra == "frozen"
144
- Requires-Dist: cycler==0.12.1; extra == "frozen"
145
- Requires-Dist: dacite==1.9.2; extra == "frozen"
146
- Requires-Dist: decorator==5.2.1; extra == "frozen"
147
- Requires-Dist: dill==0.4.0; extra == "frozen"
148
- Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
149
- Requires-Dist: dkist-processing-common==11.0.1; extra == "frozen"
150
- Requires-Dist: dkist-processing-core==5.1.1; extra == "frozen"
151
- Requires-Dist: dkist-processing-math==2.2.0; extra == "frozen"
152
- Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
153
- Requires-Dist: dkist-processing-visp==3.3.0; extra == "frozen"
154
- Requires-Dist: dkist-service-configuration==2.2; extra == "frozen"
155
- Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
156
- Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
157
- Requires-Dist: dnspython==2.7.0; extra == "frozen"
158
- Requires-Dist: ecs-logging==2.2.0; extra == "frozen"
159
- Requires-Dist: elastic-apm==6.23.0; extra == "frozen"
160
- Requires-Dist: email_validator==2.2.0; extra == "frozen"
161
- Requires-Dist: fastjsonschema==2.21.1; extra == "frozen"
162
- Requires-Dist: flower==2.0.1; extra == "frozen"
163
- Requires-Dist: fonttools==4.58.5; extra == "frozen"
164
- Requires-Dist: frozenlist==1.7.0; extra == "frozen"
165
- Requires-Dist: fsspec==2025.5.1; extra == "frozen"
166
- Requires-Dist: globus-sdk==3.60.0; extra == "frozen"
167
- Requires-Dist: google-re2==1.1.20240702; extra == "frozen"
168
- Requires-Dist: googleapis-common-protos==1.70.0; extra == "frozen"
169
- Requires-Dist: gqlclient==1.2.3; extra == "frozen"
170
- Requires-Dist: grpcio==1.73.1; extra == "frozen"
171
- Requires-Dist: gunicorn==23.0.0; extra == "frozen"
172
- Requires-Dist: h11==0.16.0; extra == "frozen"
173
- Requires-Dist: httpcore==1.0.9; extra == "frozen"
174
- Requires-Dist: httpx==0.28.1; extra == "frozen"
175
- Requires-Dist: humanize==4.12.3; extra == "frozen"
176
- Requires-Dist: idna==3.10; extra == "frozen"
177
- Requires-Dist: imageio==2.37.0; extra == "frozen"
178
- Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
179
- Requires-Dist: importlib_metadata==8.7.0; extra == "frozen"
180
- Requires-Dist: inflection==0.5.1; extra == "frozen"
181
- Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
182
- Requires-Dist: jmespath==1.0.1; extra == "frozen"
183
- Requires-Dist: joblib==1.5.1; extra == "frozen"
184
- Requires-Dist: jsonschema==4.24.0; extra == "frozen"
185
- Requires-Dist: jsonschema-specifications==2025.4.1; extra == "frozen"
186
- Requires-Dist: jupyter_core==5.8.1; extra == "frozen"
187
- Requires-Dist: kiwisolver==1.4.8; extra == "frozen"
188
- Requires-Dist: kombu==5.5.4; extra == "frozen"
189
- Requires-Dist: lazy-object-proxy==1.11.0; extra == "frozen"
190
- Requires-Dist: lazy_loader==0.4; extra == "frozen"
191
- Requires-Dist: limits==5.4.0; extra == "frozen"
192
- Requires-Dist: linkify-it-py==2.0.3; extra == "frozen"
193
- Requires-Dist: lmfit==1.3.3; extra == "frozen"
194
- Requires-Dist: lockfile==0.12.2; extra == "frozen"
195
- Requires-Dist: loguru==0.7.3; extra == "frozen"
196
- Requires-Dist: markdown-it-py==3.0.0; extra == "frozen"
197
- Requires-Dist: marshmallow==3.26.1; extra == "frozen"
198
- Requires-Dist: marshmallow-oneofschema==3.2.0; extra == "frozen"
199
- Requires-Dist: marshmallow-sqlalchemy==0.28.2; extra == "frozen"
200
- Requires-Dist: matplotlib==3.10.3; extra == "frozen"
201
- Requires-Dist: mdit-py-plugins==0.4.2; extra == "frozen"
202
- Requires-Dist: mdurl==0.1.2; extra == "frozen"
203
- Requires-Dist: methodtools==0.4.7; extra == "frozen"
204
- Requires-Dist: more-itertools==10.7.0; extra == "frozen"
205
- Requires-Dist: moviepy==2.1.2; extra == "frozen"
206
- Requires-Dist: multidict==6.6.3; extra == "frozen"
207
- Requires-Dist: nbformat==5.10.4; extra == "frozen"
208
- Requires-Dist: networkx==3.5; extra == "frozen"
209
- Requires-Dist: numpy==2.2.5; extra == "frozen"
210
- Requires-Dist: object-clerk==0.1.2; extra == "frozen"
211
- Requires-Dist: opentelemetry-api==1.34.1; extra == "frozen"
212
- Requires-Dist: opentelemetry-exporter-otlp==1.34.1; extra == "frozen"
213
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.34.1; extra == "frozen"
214
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.34.1; extra == "frozen"
215
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.34.1; extra == "frozen"
216
- Requires-Dist: opentelemetry-proto==1.34.1; extra == "frozen"
217
- Requires-Dist: opentelemetry-sdk==1.34.1; extra == "frozen"
218
- Requires-Dist: opentelemetry-semantic-conventions==0.55b1; extra == "frozen"
219
- Requires-Dist: ordered-set==4.1.0; extra == "frozen"
220
- Requires-Dist: packaging==25.0; extra == "frozen"
221
- Requires-Dist: pandas==2.3.1; extra == "frozen"
222
- Requires-Dist: parfive==2.2.0; extra == "frozen"
223
- Requires-Dist: pathspec==0.12.1; extra == "frozen"
224
- Requires-Dist: pendulum==3.1.0; extra == "frozen"
225
- Requires-Dist: pika==1.3.2; extra == "frozen"
226
- Requires-Dist: pillow==10.4.0; extra == "frozen"
227
- Requires-Dist: pip==25.1.1; extra == "frozen"
228
- Requires-Dist: platformdirs==4.3.8; extra == "frozen"
229
- Requires-Dist: pluggy==1.6.0; extra == "frozen"
230
- Requires-Dist: pooch==1.8.2; extra == "frozen"
231
- Requires-Dist: prison==0.2.1; extra == "frozen"
232
- Requires-Dist: proglog==0.1.12; extra == "frozen"
233
- Requires-Dist: prometheus_client==0.22.1; extra == "frozen"
234
- Requires-Dist: prompt_toolkit==3.0.51; extra == "frozen"
235
- Requires-Dist: propcache==0.3.2; extra == "frozen"
236
- Requires-Dist: protobuf==5.29.5; extra == "frozen"
237
- Requires-Dist: psutil==7.0.0; extra == "frozen"
238
- Requires-Dist: psycopg2-binary==2.9.10; extra == "frozen"
239
- Requires-Dist: py==1.11.0; extra == "frozen"
240
- Requires-Dist: pycparser==2.22; extra == "frozen"
241
- Requires-Dist: pydantic==2.11.7; extra == "frozen"
242
- Requires-Dist: pydantic-settings==2.10.1; extra == "frozen"
243
- Requires-Dist: pydantic_core==2.33.2; extra == "frozen"
244
- Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
245
- Requires-Dist: pyparsing==3.2.3; extra == "frozen"
246
- Requires-Dist: python-daemon==3.1.2; extra == "frozen"
247
- Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
248
- Requires-Dist: python-dotenv==1.1.1; extra == "frozen"
249
- Requires-Dist: python-nvd3==0.16.0; extra == "frozen"
250
- Requires-Dist: python-slugify==8.0.4; extra == "frozen"
251
- Requires-Dist: pytz==2025.2; extra == "frozen"
252
- Requires-Dist: redis==4.6.0; extra == "frozen"
253
- Requires-Dist: referencing==0.36.2; extra == "frozen"
254
- Requires-Dist: requests==2.32.4; extra == "frozen"
255
- Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
256
- Requires-Dist: retry==0.9.2; extra == "frozen"
257
- Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
258
- Requires-Dist: rich==13.9.4; extra == "frozen"
259
- Requires-Dist: rich-argparse==1.7.1; extra == "frozen"
260
- Requires-Dist: rpds-py==0.26.0; extra == "frozen"
261
- Requires-Dist: s3transfer==0.13.0; extra == "frozen"
262
- Requires-Dist: scikit-image==0.25.2; extra == "frozen"
263
- Requires-Dist: scikit-learn==1.6.1; extra == "frozen"
264
- Requires-Dist: scipy==1.15.3; extra == "frozen"
265
- Requires-Dist: semantic-version==2.10.0; extra == "frozen"
266
- Requires-Dist: setproctitle==1.3.6; extra == "frozen"
267
- Requires-Dist: setuptools==65.5.0; extra == "frozen"
268
- Requires-Dist: six==1.17.0; extra == "frozen"
269
- Requires-Dist: sniffio==1.3.1; extra == "frozen"
270
- Requires-Dist: solar-wavelength-calibration==1.0; extra == "frozen"
271
- Requires-Dist: sqids==0.5.1; extra == "frozen"
272
- Requires-Dist: sqlparse==0.5.3; extra == "frozen"
273
- Requires-Dist: sunpy==6.1.1; extra == "frozen"
274
- Requires-Dist: tabulate==0.9.0; extra == "frozen"
275
- Requires-Dist: talus==1.1.0; extra == "frozen"
276
- Requires-Dist: tenacity==9.1.2; extra == "frozen"
277
- Requires-Dist: termcolor==3.1.0; extra == "frozen"
278
- Requires-Dist: text-unidecode==1.3; extra == "frozen"
279
- Requires-Dist: threadpoolctl==3.6.0; extra == "frozen"
280
- Requires-Dist: tifffile==2025.6.11; extra == "frozen"
281
- Requires-Dist: tornado==6.5.1; extra == "frozen"
282
- Requires-Dist: tqdm==4.67.1; extra == "frozen"
283
- Requires-Dist: traitlets==5.14.3; extra == "frozen"
284
- Requires-Dist: typing-inspection==0.4.1; extra == "frozen"
285
- Requires-Dist: typing_extensions==4.14.1; extra == "frozen"
286
- Requires-Dist: tzdata==2025.2; extra == "frozen"
287
- Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
288
- Requires-Dist: uncertainties==3.2.3; extra == "frozen"
289
- Requires-Dist: universal_pathlib==0.2.6; extra == "frozen"
290
- Requires-Dist: urllib3==2.5.0; extra == "frozen"
291
- Requires-Dist: vine==5.1.0; extra == "frozen"
292
- Requires-Dist: voluptuous==0.15.2; extra == "frozen"
293
- Requires-Dist: wcwidth==0.2.13; extra == "frozen"
294
- Requires-Dist: wirerope==1.0.0; extra == "frozen"
295
- Requires-Dist: wrapt==1.17.2; extra == "frozen"
296
- Requires-Dist: yamale==6.0.0; extra == "frozen"
297
- Requires-Dist: yarl==1.20.1; extra == "frozen"
298
- Requires-Dist: zipp==3.23.0; extra == "frozen"
299
-
300
- dkist-processing-visp
301
- =====================
302
-
303
- |codecov|
304
-
305
- Overview
306
- --------
307
- The dkist-processing-visp library contains the implementation of the visp pipelines as a collection of the
308
- `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ framework and
309
- `dkist-processing-common <https://pypi.org/project/dkist-processing-common/>`_ Tasks.
310
-
311
- The recommended project structure is to separate tasks and workflows into separate packages. Having the workflows
312
- in their own package facilitates using the build_utils to test the integrity of those workflows in the unit test.
313
-
314
- Environment Variables
315
- ---------------------
316
- Only those specified by `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and `dkist-processing-common <https://pypi.org/project/dkist-processing-common/>`_.
317
-
318
- Development
319
- -----------
320
- .. code-block:: bash
321
-
322
- git clone git@bitbucket.org:dkistdc/dkist-processing-visp.git
323
- cd dkist-processing-visp
324
- pre-commit install
325
- pip install -e .[test]
326
- pytest -v --cov dkist_processing_visp
327
-
328
- Build
329
- --------
330
- Artifacts are built through Bitbucket Pipelines.
331
-
332
- The pipeline can be used in other repos with a modification of the package and artifact locations
333
- to use the names relevant to the target repo.
334
-
335
- e.g. dkist-processing-test -> dkist-processing-vbi and dkist_processing_test -> dkist_processing_vbi
336
-
337
- Deployment
338
- ----------
339
- Deployment is done with `turtlebot <https://bitbucket.org/dkistdc/turtlebot/src/main/>`_ and follows
340
- the process detailed in `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_
341
-
342
- Additionally, when a new release is ready to be built the following steps need to be taken:
343
-
344
- 1. Freezing Dependencies
345
- #########################
346
-
347
- A new "frozen" extra is generated by the `dkist-dev-tools <https://bitbucket.org/dkistdc/dkist-dev-tools/src/main/>`_
348
- package. If you don't have `dkist-dev-tools` installed please follow the directions from that repo.
349
-
350
- To freeze dependencies run
351
-
352
- .. code-block:: bash
353
-
354
- ddt freeze vX.Y.Z[rcK]
355
-
356
- Where "vX.Y.Z[rcK]" is the version about to be released.
357
-
358
- 2. Changelog
359
- ############
360
-
361
- When you make **any** change to this repository it **MUST** be accompanied by a changelog file.
362
- The changelog for this repository uses the `towncrier <https://github.com/twisted/towncrier>`__ package.
363
- Entries in the changelog for the next release are added as individual files (one per change) to the ``changelog/`` directory.
364
-
365
- Writing a Changelog Entry
366
- ^^^^^^^^^^^^^^^^^^^^^^^^^
367
-
368
- A changelog entry accompanying a change should be added to the ``changelog/`` directory.
369
- The name of a file in this directory follows a specific template::
370
-
371
- <PULL REQUEST NUMBER>.<TYPE>[.<COUNTER>].rst
372
-
373
- The fields have the following meanings:
374
-
375
- * ``<PULL REQUEST NUMBER>``: This is the number of the pull request, so people can jump from the changelog entry to the diff on BitBucket.
376
- * ``<TYPE>``: This is the type of the change and must be one of the values described below.
377
- * ``<COUNTER>``: This is an optional field, if you make more than one change of the same type you can append a counter to the subsequent changes, i.e. ``100.bugfix.rst`` and ``100.bugfix.1.rst`` for two bugfix changes in the same PR.
378
-
379
- The list of possible types is defined in the towncrier section of ``pyproject.toml``, the types are:
380
-
381
- * ``feature``: This change is a new code feature.
382
- * ``bugfix``: This is a change which fixes a bug.
383
- * ``doc``: A documentation change.
384
- * ``removal``: A deprecation or removal of public API.
385
- * ``misc``: Any small change which doesn't fit anywhere else, such as a change to the package infrastructure.
386
-
387
-
388
- Rendering the Changelog at Release Time
389
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
390
-
391
- When you are about to tag a release first you must run ``towncrier`` to render the changelog.
392
- The steps for this are as follows:
393
-
394
- * Run `towncrier build --version vx.y.z` using the version number you want to tag.
395
- * Agree to have towncrier remove the fragments.
396
- * Add and commit your changes.
397
- * Tag the release.
398
-
399
- **NOTE:** If you forget to add a Changelog entry to a tagged release (either manually or automatically with ``towncrier``)
400
- then the Bitbucket pipeline will fail. To be able to use the same tag you must delete it locally and on the remote branch:
401
-
402
- .. code-block:: bash
403
-
404
- # First, actually update the CHANGELOG and commit the update
405
- git commit
406
-
407
- # Delete tags
408
- git tag -d vWHATEVER.THE.VERSION
409
- git push --delete origin vWHATEVER.THE.VERSION
410
-
411
- # Re-tag with the same version
412
- git tag vWHATEVER.THE.VERSION
413
- git push --tags origin main
414
-
415
- Science Changelog
416
- ^^^^^^^^^^^^^^^^^
417
-
418
- Whenever a release involves changes to the scientific quality of L1 data, additional changelog fragment(s) should be
419
- created. These fragments are intended to be as verbose as is needed to accurately capture the scope of the change(s),
420
- so feel free to use all the fancy RST you want. Science fragments are placed in the same ``changelog/`` directory
421
- as other fragments, but are always called::
422
-
423
- <PR NUMBER | +>.science[.<COUNTER>].rst
424
-
425
- In the case that a single pull request encapsulates the entirety of the scientific change then the first field should
426
- be that PR number (same as the normal CHANGELOG). If, however, there is not a simple mapping from a single PR to a scientific
427
- change then use the character "+" instead; this will create a changelog entry with no associated PR. For example:
428
-
429
- .. code-block:: bash
430
-
431
- $ ls changelog/
432
- 99.bugfix.rst # This is a normal changelog fragment associated with a bugfix in PR 99
433
- 99.science.rst # Apparently that bugfix also changed the scientific results, so that PR also gets a science fragment
434
- +.science.rst # This fragment is not associated with a PR
435
-
436
-
437
- When it comes time to build the SCIENCE_CHANGELOG, use the ``science_towncrier.sh`` script in this repo to do so.
438
- This script accepts all the same arguments as the default `towncrier`. For example:
439
-
440
- .. code-block:: bash
441
-
442
- ./science_towncrier.sh build --version vx.y.z
443
-
444
- This will update the SCIENCE_CHANGELOG and remove any science fragments from the changelog directory.
445
-
446
- 3. Tag and Push
447
- ###############
448
-
449
- Once all commits are in place add a git tag that will define the released version, then push the tags up to Bitbucket:
450
-
451
- .. code-block:: bash
452
-
453
- git tag vX.Y.Z[rcK]
454
- git push --tags origin BRANCH
455
-
456
- In the case of an rc, BRANCH will likely be your development branch. For full releases BRANCH should be "main".
457
-
458
- .. |codecov| image:: https://codecov.io/bb/dkistdc/dkist-processing-visp/graph/badge.svg?token=SREPBJDS31
459
- :target: https://codecov.io/bb/dkistdc/dkist-processing-visp
@@ -1,90 +0,0 @@
1
- changelog/.gitempty,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- dkist_processing_visp/__init__.py,sha256=fAB6NDfsUfegrxJPQ_yKMR9dDDqfkyRoOGdHMqKcqOI,350
3
- dkist_processing_visp/config.py,sha256=wYyvQ3vPMg5ltU7KlcikK2_NAR9twve4W-Jm8YxNv6A,477
4
- dkist_processing_visp/fonts/Lato-Regular.ttf,sha256=1jbkaDIx-THtoiLViOlE0IK_0726AvkovuRhwPGFslE,656568
5
- dkist_processing_visp/models/__init__.py,sha256=z2nFVvvIzirxklQ9i5-F1nR-WOgcDttYtog_jx4yN5I,12
6
- dkist_processing_visp/models/constants.py,sha256=3tCMCdSha4JH0kvH9K7Ve_4ZPWuwVwnbhTAQBPc8sQI,5539
7
- dkist_processing_visp/models/parameters.py,sha256=7JDejt7jxW74Q9x-xngUBPyMYVqIkvA9BWxl1BT5e_w,9830
8
- dkist_processing_visp/models/tags.py,sha256=hs8IVOGEqbCXWAhwZ7Ztqmk0lkodT6gnnZtszgw3yvI,3054
9
- dkist_processing_visp/models/task_name.py,sha256=0xsFYkWI1_M8emcXV6peqK8oQ0ggC8VA1mQjmNZy84A,186
10
- dkist_processing_visp/parsers/__init__.py,sha256=z2nFVvvIzirxklQ9i5-F1nR-WOgcDttYtog_jx4yN5I,12
11
- dkist_processing_visp/parsers/map_repeats.py,sha256=KAGQeFOe4a4Zimq601gEhvSTlRMcngWlSgwN0vj_TlQ,5467
12
- dkist_processing_visp/parsers/modulator_states.py,sha256=R0Cy3KikURfdndU6opqY7dfHt3WV3a6XMNQqcWMttSA,3005
13
- dkist_processing_visp/parsers/polarimeter_mode.py,sha256=GRt5uZTiskvepzuqS2J16N8Pz40HW7kw82ZgCgmrRf8,541
14
- dkist_processing_visp/parsers/raster_step.py,sha256=-LP8cc-am-gQ1y_ZFJXVN4SbsOyjYreVEpo2ROVSC0Y,3045
15
- dkist_processing_visp/parsers/time.py,sha256=1YMyf9nQlX5zFu1zjfTyCsWpDwoQYw-RtiSUEkS7uVA,4518
16
- dkist_processing_visp/parsers/visp_l0_fits_access.py,sha256=3c1hvjiJfY7DFz1Gg4c8v6QYnh-22aSgVIvNFtEkA9I,1335
17
- dkist_processing_visp/parsers/visp_l1_fits_access.py,sha256=hOKAYyg60UWlzBJT6-xu83rmTATiuxqVru7zp74Cg88,859
18
- dkist_processing_visp/tasks/__init__.py,sha256=I3KqYsTPncD7SQsLZR5NGIcRNa0ByIMmZCaRagxTt1Y,712
19
- dkist_processing_visp/tasks/assemble_movie.py,sha256=R9-xxqJunNXDHoT-Ue5F0g5a1DBoX9SVmavqc6vAtkY,3329
20
- dkist_processing_visp/tasks/background_light.py,sha256=BHNMGmYmtvTFMZ4d1dEPrPhIWm91w-e60q86IOq0amQ,16205
21
- dkist_processing_visp/tasks/dark.py,sha256=79ztYVa61mmn-sPfSbMeYyK4wdmiOHXNs_WuQlWQ3E4,4344
22
- dkist_processing_visp/tasks/geometric.py,sha256=IXF2TDl4UrlyYYK5KOYOjwAJIDl95c7QWfkPp58EicY,44689
23
- dkist_processing_visp/tasks/instrument_polarization.py,sha256=4LYcHWXEvrTNpJWLff8dAlcSUoxgshlBHzzEveEPpIY,25905
24
- dkist_processing_visp/tasks/l1_output_data.py,sha256=HQT-q3uG9IT_6b0sN4AKn7xBcEuXMay4N9O-uLZ9ZGU,458
25
- dkist_processing_visp/tasks/lamp.py,sha256=2pGWVhi9hMClHltPaqcqGc3PSfCOEdt2c6kyjJ-Qg1c,6070
26
- dkist_processing_visp/tasks/make_movie_frames.py,sha256=asDWEsSJ8o_D_S527rmpcHkrzH7UIwB3o8hllglfJWw,7426
27
- dkist_processing_visp/tasks/parse.py,sha256=GLjBO9KS_njmdmPdJF6KGC9EcLkiFXKoRFCmSLmmkuo,6499
28
- dkist_processing_visp/tasks/quality_metrics.py,sha256=4rKvwfochMXR9t8Qmidgmd9T4e910ELlZn8yglLyKig,8133
29
- dkist_processing_visp/tasks/science.py,sha256=J2sCBfgabOnllWYXtJTXcCjLpp1aJ_--M-HBfBTsIO4,30844
30
- dkist_processing_visp/tasks/solar.py,sha256=JbepDTMz2mrEogIsvtzfBvEzF97GFhFhxl5uMTTN2Lg,27689
31
- dkist_processing_visp/tasks/visp_base.py,sha256=5wFJlwrvSsarGU5H0q39rDHq9cL-I7BYXjS4mYRVJKE,1369
32
- dkist_processing_visp/tasks/write_l1.py,sha256=vI4g7Y_yG6-RQq_skpC3lvpY_6mlxChEP06fm7T7twg,7670
33
- dkist_processing_visp/tasks/mixin/__init__.py,sha256=z2nFVvvIzirxklQ9i5-F1nR-WOgcDttYtog_jx4yN5I,12
34
- dkist_processing_visp/tasks/mixin/beam_access.py,sha256=JipTbMKR0VVKCxddUfxQIkYtsGHTCFvkMPkAqCazGG4,869
35
- dkist_processing_visp/tasks/mixin/corrections.py,sha256=2cZL7b0mcfSa5TbYJVH-auNF4P2marNymlM1RUZnO_k,5665
36
- dkist_processing_visp/tasks/mixin/downsample.py,sha256=tO0yyE6gC9WV_lvfwoeKCok-5dgxOg56PozjzSEQUwY,1343
37
- dkist_processing_visp/tasks/mixin/line_zones.py,sha256=3hT0PRgeVP_Sn2kUMwf0r1SHerTCZGNj88XEWO7HrBE,4064
38
- dkist_processing_visp/tests/README.rst,sha256=rnedwwg25c0lB9Me7cT7QNZA17FYlqCu9ZnjQxR5hi0,12502
39
- dkist_processing_visp/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- dkist_processing_visp/tests/conftest.py,sha256=vnA2W9FgpN4lK0qVEvmwHlfDfSLXbTkPqpBpLuhirg8,16507
41
- dkist_processing_visp/tests/header_models.py,sha256=n3ch5Ef7S0v5DoR6neMCGH909Zu7PoeslebdWmZaxMY,18948
42
- dkist_processing_visp/tests/test_assemble_movie.py,sha256=ea6cZYIbntVBjOQJIUt4zg1N4OOHpVvz_AAYD6Xs0OE,2293
43
- dkist_processing_visp/tests/test_assemble_quality.py,sha256=Hm0nAW90Kbb-6OLkUsW6Hpv_YAZwKOiG114Ui2PqRUw,1229
44
- dkist_processing_visp/tests/test_background_light.py,sha256=qvt2bW0YKMHmaG_Oi6Yjvg4Hi2r5wpob1s5mdAogLF4,17526
45
- dkist_processing_visp/tests/test_dark.py,sha256=FmOHtvMq77m1yd_3jPFmvLVco5zkV99uPokuDW-tdDg,5592
46
- dkist_processing_visp/tests/test_downsample.py,sha256=iSmb4PwpZtnVU06tmlko1wwepWueQ3KJ459XYgNIpws,2211
47
- dkist_processing_visp/tests/test_geometric.py,sha256=mwKfDAT4m_G5eoIS8g-UTrn8L5eRYBwyq5IHtPLdX7U,12576
48
- dkist_processing_visp/tests/test_instrument_polarization.py,sha256=IWgqScKMmTUhVNmBykKyXNSe687xv1Mh-kNTkEre9Lc,11895
49
- dkist_processing_visp/tests/test_lamp.py,sha256=kmlFhjp_gMa2ypANhy0IYRdnfFi0R_17pePpat6zXG0,5252
50
- dkist_processing_visp/tests/test_make_movie_frames.py,sha256=eOupoM-rp1BnCaUr_L0BOO7wXxQc1hM_0q-tjEIUy8c,2595
51
- dkist_processing_visp/tests/test_map_repeats.py,sha256=i_niVHsKAFrqk_weisKcU7JAkcfI3muOWFDHQiPyB9A,7511
52
- dkist_processing_visp/tests/test_parameters.py,sha256=uoEjSyGo76dnnZNYVLi5bLDNUBkJuUJ_KvVYSsJ1TTM,4385
53
- dkist_processing_visp/tests/test_parse.py,sha256=YxkUfVVQ2sqavLRTx8sNQgyC8IKHIqVUsWmrzZJ8G4E,20382
54
- dkist_processing_visp/tests/test_quality.py,sha256=xDYhbCs9fqSc5lrKPQAaustj0GPkpwYtco-kFIWFwn8,6951
55
- dkist_processing_visp/tests/test_science.py,sha256=QRCaumnuvenCfXBLd0u3oW_liDkHByn0q4QRzSjVIig,20211
56
- dkist_processing_visp/tests/test_solar.py,sha256=6U4tQeA0IMNrTvpwRK4Bg_ihx4n5tW5Ka1uFPa4wkiQ,9510
57
- dkist_processing_visp/tests/test_trial_create_quality_report.py,sha256=t3de9LMJOqrRaFXAvKV_5sotAfzDR8fZVIrFNRB2I_A,2779
58
- dkist_processing_visp/tests/test_visp_constants.py,sha256=Iy7qj8jP1q7eXKdNEW4JRUuIaOKsCelsqgVbTWtzLQk,1986
59
- dkist_processing_visp/tests/test_workflows.py,sha256=AiPmG3rhTvhBwCvzn-xWgatQSt5M6-zSdJC6owWofrc,286
60
- dkist_processing_visp/tests/test_write_l1.py,sha256=aAWpy4Eki3XvPFlY7S0zTYVEPot0r8qMP8FdVLW1yjM,6154
61
- dkist_processing_visp/tests/local_trial_workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- dkist_processing_visp/tests/local_trial_workflows/l0_cals_only.py,sha256=tU2owm88pbbNes9W3r_c9-PpSHjmi7Cj4JsxPbfYKPc,11440
63
- dkist_processing_visp/tests/local_trial_workflows/l0_solar_gain_as_science.py,sha256=o64dnyMIFB5M-WuoRU0RUujjI_N9icpPJmh5TRp_wyo,16608
64
- dkist_processing_visp/tests/local_trial_workflows/l0_to_l1.py,sha256=YK5VZs4w1JLRb-zf6Krt9VSjsJ0L2-01Fi_0NpXOyE8,15992
65
- dkist_processing_visp/tests/local_trial_workflows/local_trial_helpers.py,sha256=Oq3AZYY4o3NKnWGFZthe25F09wQBJghE5P_FLs2g4UY,24472
66
- dkist_processing_visp/workflows/__init__.py,sha256=-m_gkn5_hCSwvwaDjlbmE75G-tUnBo4y2wkDSnHDsWk,102
67
- dkist_processing_visp/workflows/l0_processing.py,sha256=RefewvTBWm3N_8DOt2SvoMbwY-gJIjeg1vMQoic9ubk,3261
68
- dkist_processing_visp/workflows/single_task_workflows.py,sha256=LK4dsshM0-lwy79WaMoTplyCxUyINnP9RU74MG_dhyc,33
69
- dkist_processing_visp/workflows/trial_workflows.py,sha256=rEBYOc7UnNhUtQXo0AFkO-PKHamLUEz5zWzaApBwxAs,3730
70
- docs/Makefile,sha256=qnlVz6PuBqE39NfHWuUnHhNEA-EFgT2-WJNNNy9ttfk,4598
71
- docs/background_light.rst,sha256=FWj8KH7H51BtoqPCJ1A_VIWJkjaXD8-dwM9RdY1rkIc,5147
72
- docs/changelog.rst,sha256=ZpZPJIyl4nI0Eicku6uSrLdiinNOF2GcZwrvTEsb-Zs,346
73
- docs/conf.py,sha256=b1GjKdimrcugueR5gZmZO6zyphPOSV6CedDRIhO6ILY,2028
74
- docs/gain_correction.rst,sha256=9wODkWWpxJXOcoxyl-tUr3FC7sL8MqNIEGLthqXFbPw,6481
75
- docs/geometric.rst,sha256=VsAWefgJ1j64Uo1TQ-ltAQ6INgsdS7-_FSvOtm0i17s,7301
76
- docs/index.rst,sha256=pl8VhwISd-kb1IQi2h7gOySfOhQQl2C71pjTatShGNI,319
77
- docs/l0_to_l1_visp.rst,sha256=wE1TT7DD93r3kByaFAaT2HO907pjV4YrJ_fzvJFTchw,623
78
- docs/l0_to_l1_visp_full-trial.rst,sha256=Y6YLkRA5b0tgui5l_WdthCx2wrXjLD8U97XKZHXVVBk,558
79
- docs/landing_page.rst,sha256=tdxWtmGjO7OUPYvRjgBAI461nubEE61HrtBwPdBeawI,1052
80
- docs/make.bat,sha256=mBAhtURwhQ7yc95pqwJzlhqBSvRknr1aqZ5s8NKvdKs,4513
81
- docs/polarization_calibration.rst,sha256=fYdB_FYB7NjvknuQIa3EGc4ZWjeUaBkkeRb8Y1bGihk,5068
82
- docs/requirements.txt,sha256=Kbl_X4c7RQZw035YTeNB63We6I7pvXFU4T0Uflp2yDY,29
83
- docs/requirements_table.rst,sha256=_HIbwFpDooM5n0JjiDAbFozGfJuX13smtcoujLFN4Gk,292
84
- docs/science_calibration.rst,sha256=VN_g7xSjN-nbXhlBaFnPCbNcsc_Qu0207jEUfRAjnBE,2939
85
- docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
86
- licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
87
- dkist_processing_visp-3.3.0.dist-info/METADATA,sha256=7k2dIsELP_tIGYKhPuFN6LSD1fi8GFAJzK0IJlCjz68,22062
88
- dkist_processing_visp-3.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
89
- dkist_processing_visp-3.3.0.dist-info/top_level.txt,sha256=9GHSn-ZMGQxaRNGrPP3HNc5ZkE7ftzluO74Jz5vUSTE,46
90
- dkist_processing_visp-3.3.0.dist-info/RECORD,,