teareduce 0.6.5__py3-none-any.whl → 0.6.7__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.
@@ -58,6 +58,8 @@ class ReviewCosmicRay(ImageDisplay):
58
58
  data,
59
59
  auxdata,
60
60
  cleandata_lacosmic,
61
+ cleandata_pycosmic,
62
+ cleandata_deepcr,
61
63
  cr_labels,
62
64
  num_features,
63
65
  first_cr_index=1,
@@ -86,6 +88,10 @@ class ReviewCosmicRay(ImageDisplay):
86
88
  The auxiliary image data.
87
89
  cleandata_lacosmic: 2D numpy array or None
88
90
  The cleaned image data from L.A.Cosmic.
91
+ cleandata_pycosmic: 2D numpy array or None
92
+ The cleaned image data from PyCosmic.
93
+ cleandata_deepcr: 2D numpy array or None
94
+ The cleaned image data from deepCR.
89
95
  cr_labels : 2D numpy array
90
96
  Labels of connected cosmic ray pixel groups.
91
97
  num_features : int
@@ -158,6 +164,10 @@ class ReviewCosmicRay(ImageDisplay):
158
164
  The auxiliary image data.
159
165
  cleandata_lacosmic: 2D numpy array or None
160
166
  The cleaned image data from L.A.Cosmic.
167
+ cleandata_pycosmic: 2D numpy array or None
168
+ The cleaned image data from PyCosmic.
169
+ cleandata_deepcr: 2D numpy array or None
170
+ The cleaned image data from deepCR.
161
171
  cr_labels : 2D numpy array
162
172
  Labels of connected cosmic ray pixel groups.
163
173
  num_features : int
@@ -190,19 +200,21 @@ class ReviewCosmicRay(ImageDisplay):
190
200
  self.factor_height = root_height / DEFAULT_TK_WINDOW_SIZE_Y
191
201
  self.auxdata = auxdata
192
202
  if self.auxdata is not None:
193
- # self.root.geometry("1000x700+100+100") # This does not work in Fedora
203
+ # self.root.geometry("1000x760+100+100") # This does not work in Fedora
194
204
  window_width = int(1000 * self.factor_width + 0.5)
195
- window_height = int(700 * self.factor_height + 0.5)
205
+ window_height = int(760 * self.factor_height + 0.5)
196
206
  self.root.minsize(window_width, window_height)
197
207
  else:
198
- # self.root.geometry("900x700+100+100") # This does not work in Fedora
208
+ # self.root.geometry("900x760+100+100") # This does not work in Fedora
199
209
  window_width = int(900 * self.factor_width + 0.5)
200
- window_height = int(700 * self.factor_height + 0.5)
210
+ window_height = int(760 * self.factor_height + 0.5)
201
211
  self.root.minsize(window_width, window_height)
202
212
  self.root.update_idletasks()
203
213
  self.root.geometry("+100+100")
204
214
  self.data = data
205
215
  self.cleandata_lacosmic = cleandata_lacosmic
216
+ self.cleandata_pycosmic = cleandata_pycosmic
217
+ self.cleandata_deepcr = cleandata_deepcr
206
218
  self.data_original = data.copy()
207
219
  self.cr_labels = cr_labels
208
220
  self.num_features = num_features
@@ -238,6 +250,7 @@ class ReviewCosmicRay(ImageDisplay):
238
250
  # Row 1 of buttons
239
251
  self.button_frame1 = tk.Frame(self.root)
240
252
  self.button_frame1.pack(pady=5)
253
+ # --- Npoints and Degree button
241
254
  self.ndeg_label = tkbutton.new(
242
255
  self.button_frame1,
243
256
  text=f"Npoints={self.npoints}, Degree={self.degree}",
@@ -246,6 +259,7 @@ class ReviewCosmicRay(ImageDisplay):
246
259
  alttext="Npoints=?, Degree=?",
247
260
  )
248
261
  self.ndeg_label.pack(side=tk.LEFT, padx=5)
262
+ # --- Maskfill params. button
249
263
  self.maskfill_button = tkbutton.new(
250
264
  self.button_frame1,
251
265
  text="Maskfill params.",
@@ -253,6 +267,7 @@ class ReviewCosmicRay(ImageDisplay):
253
267
  help_text="Set the parameters for the maskfill method.",
254
268
  )
255
269
  self.maskfill_button.pack(side=tk.LEFT, padx=5)
270
+ # --- Remove crosses button
256
271
  self.remove_crosses_button = tkbutton.new(
257
272
  self.button_frame1,
258
273
  text="remove all x's",
@@ -260,14 +275,16 @@ class ReviewCosmicRay(ImageDisplay):
260
275
  help_text="Remove all cross marks from the image.",
261
276
  )
262
277
  self.remove_crosses_button.pack(side=tk.LEFT, padx=5)
278
+ # --- Restore CR button
263
279
  self.restore_cr_button = tkbutton.new(
264
280
  self.button_frame1,
265
- text="restore CR",
281
+ text="[r]estore CR",
266
282
  command=self.restore_cr,
267
283
  help_text="Restore current cosmic ray pixels to their original values.",
268
284
  )
269
285
  self.restore_cr_button.pack(side=tk.LEFT, padx=5)
270
286
  self.restore_cr_button.config(state=tk.DISABLED)
287
+ # --- Next button
271
288
  self.next_button = tkbutton.new(
272
289
  self.button_frame1,
273
290
  text="[c]ontinue",
@@ -275,6 +292,7 @@ class ReviewCosmicRay(ImageDisplay):
275
292
  help_text="Continue to the next cosmic ray.",
276
293
  )
277
294
  self.next_button.pack(side=tk.LEFT, padx=5)
295
+ # --- Exit button
278
296
  self.exit_button = tkbutton.new(
279
297
  self.button_frame1,
280
298
  text="[e]xit review",
@@ -286,6 +304,7 @@ class ReviewCosmicRay(ImageDisplay):
286
304
  # Row 2 of buttons
287
305
  self.button_frame2 = tk.Frame(self.root)
288
306
  self.button_frame2.pack(pady=5)
307
+ # --- X interpolation button
289
308
  self.interp_x_button = tkbutton.new(
290
309
  self.button_frame2,
291
310
  text="[x] interp.",
@@ -293,6 +312,7 @@ class ReviewCosmicRay(ImageDisplay):
293
312
  help_text="Perform X-interpolation for the current cosmic ray.",
294
313
  )
295
314
  self.interp_x_button.pack(side=tk.LEFT, padx=5)
315
+ # --- Y interpolation button
296
316
  self.interp_y_button = tkbutton.new(
297
317
  self.button_frame2,
298
318
  text="[y] interp.",
@@ -300,11 +320,14 @@ class ReviewCosmicRay(ImageDisplay):
300
320
  help_text="Perform Y-interpolation for the current cosmic ray.",
301
321
  )
302
322
  self.interp_y_button.pack(side=tk.LEFT, padx=5)
323
+ # --- Plane interpolation button
303
324
  # it is important to use lambda here to pass the method argument correctly
304
325
  # (avoiding the execution of the function at button creation time, which would happen
305
326
  # if we didn't use lambda; in that case, the function would be called immediately and
306
327
  # its return value (None) would be assigned to the command parameter; furthermore,
307
- # the function is trying to deactivate the buttons before they are created, which
328
+ # the function is trying to deactivate the buttons before they are created,
329
+ # which would lead to an error; in addition, since I have two buttons calling
330
+ # the same function with different arguments, using lambda allows to differentiate them)
308
331
  # would lead to an error; in addition, since I have two buttons calling the same function
309
332
  # with different arguments, using lambda allows to differentiate them)
310
333
  self.interp_s_button = tkbutton.new(
@@ -314,6 +337,7 @@ class ReviewCosmicRay(ImageDisplay):
314
337
  help_text="Perform surface interpolation for the current cosmic ray.",
315
338
  )
316
339
  self.interp_s_button.pack(side=tk.LEFT, padx=5)
340
+ # --- Median interpolation button
317
341
  self.interp_d_button = tkbutton.new(
318
342
  self.button_frame2,
319
343
  text="me[d]ian",
@@ -321,6 +345,7 @@ class ReviewCosmicRay(ImageDisplay):
321
345
  help_text="Perform median interpolation for the current cosmic ray.",
322
346
  )
323
347
  self.interp_d_button.pack(side=tk.LEFT, padx=5)
348
+ # --- Mean interpolation button
324
349
  self.interp_m_button = tkbutton.new(
325
350
  self.button_frame2,
326
351
  text="[m]ean",
@@ -328,9 +353,14 @@ class ReviewCosmicRay(ImageDisplay):
328
353
  help_text="Perform mean interpolation for the current cosmic ray.",
329
354
  )
330
355
  self.interp_m_button.pack(side=tk.LEFT, padx=5)
356
+
357
+ # Row 3 of buttons
358
+ self.button_frame3 = tk.Frame(self.root)
359
+ self.button_frame3.pack(pady=5)
360
+ # --- Interpolation using L.A.Cosmic button
331
361
  self.interp_l_button = tkbutton.new(
332
- self.button_frame2,
333
- text="[l]acosmic",
362
+ self.button_frame3,
363
+ text="[L].A.Cosmic",
334
364
  command=self.use_lacosmic,
335
365
  help_text="Use L.A.Cosmic interpolation for the current cosmic ray.",
336
366
  )
@@ -339,15 +369,37 @@ class ReviewCosmicRay(ImageDisplay):
339
369
  self.interp_l_button.config(state=tk.DISABLED)
340
370
  if self.cleandata_lacosmic is None:
341
371
  self.interp_l_button.config(state=tk.DISABLED)
372
+ # --- Interpolation using PyCosmic button
373
+ self.interp_pycosmic_button = tkbutton.new(
374
+ self.button_frame3,
375
+ text="PyCosmic",
376
+ command=self.use_pycosmic,
377
+ help_text="Use PyCosmic interpolation for the current cosmic ray.",
378
+ )
379
+ self.interp_pycosmic_button.pack(side=tk.LEFT, padx=5)
380
+ if self.cleandata_pycosmic is None:
381
+ self.interp_pycosmic_button.config(state=tk.DISABLED)
382
+ # --- Interpolation using deepCR button
383
+ self.interp_deepcr_button = tkbutton.new(
384
+ self.button_frame3,
385
+ text="deepCR",
386
+ command=self.use_deepcr,
387
+ help_text="Use deepCR interpolation for the current cosmic ray.",
388
+ )
389
+ self.interp_deepcr_button.pack(side=tk.LEFT, padx=5)
390
+ if self.cleandata_deepcr is None:
391
+ self.interp_deepcr_button.config(state=tk.DISABLED)
392
+ # --- Interpolation using maskfill button
342
393
  self.interp_maskfill_button = tkbutton.new(
343
- self.button_frame2,
344
- text="mask[f]ill",
394
+ self.button_frame3,
395
+ text="mas[k]fill",
345
396
  command=self.use_maskfill,
346
397
  help_text="Perform maskfill interpolation for the current cosmic ray.",
347
398
  )
348
399
  self.interp_maskfill_button.pack(side=tk.LEFT, padx=5)
400
+ # --- Interpolation using auxiliary data button
349
401
  self.interp_aux_button = tkbutton.new(
350
- self.button_frame2,
402
+ self.button_frame3,
351
403
  text="[a]ux. data",
352
404
  command=self.use_auxdata,
353
405
  help_text="Use auxiliary data for interpolation of the current cosmic ray.",
@@ -356,42 +408,47 @@ class ReviewCosmicRay(ImageDisplay):
356
408
  if self.auxdata is None:
357
409
  self.interp_aux_button.config(state=tk.DISABLED)
358
410
 
359
- # Row 3 of buttons
360
- self.button_frame3 = tk.Frame(self.root)
361
- self.button_frame3.pack(pady=5)
411
+ # Row 4 of buttons
412
+ self.button_frame4 = tk.Frame(self.root)
413
+ self.button_frame4.pack(pady=5)
414
+ # --- vmin button
362
415
  vmin, vmax = zscale(self.data)
363
416
  self.vmin_button = tkbutton.new(
364
- self.button_frame3,
417
+ self.button_frame4,
365
418
  text=f"vmin: {vmin:.2f}",
366
419
  command=self.set_vmin,
367
420
  help_text="Set the minimum value for the display scale.",
368
421
  alttext="vmin: ??",
369
422
  )
370
423
  self.vmin_button.pack(side=tk.LEFT, padx=5)
424
+ # --- vmax button
371
425
  self.vmax_button = tkbutton.new(
372
- self.button_frame3,
426
+ self.button_frame4,
373
427
  text=f"vmax: {vmax:.2f}",
374
428
  command=self.set_vmax,
375
429
  help_text="Set the maximum value for the display scale.",
376
430
  alttext="vmax: ??",
377
431
  )
378
432
  self.vmax_button.pack(side=tk.LEFT, padx=5)
433
+ # --- minmax button
379
434
  self.set_minmax_button = tkbutton.new(
380
- self.button_frame3,
435
+ self.button_frame4,
381
436
  text="minmax [,]",
382
437
  command=self.set_minmax,
383
438
  help_text="Set the display scale to the minimum and maximum data values.",
384
439
  )
385
440
  self.set_minmax_button.pack(side=tk.LEFT, padx=5)
441
+ # --- zscale button
386
442
  self.set_zscale_button = tkbutton.new(
387
- self.button_frame3,
443
+ self.button_frame4,
388
444
  text="zscale [/]",
389
445
  command=self.set_zscale,
390
446
  help_text="Set the display scale using zscale.",
391
447
  )
392
448
  self.set_zscale_button.pack(side=tk.LEFT, padx=5)
449
+ # --- Help button
393
450
  self.help_button = tkbutton.new(
394
- self.button_frame3,
451
+ self.button_frame4,
395
452
  text="Help",
396
453
  command=tkbutton.show_help,
397
454
  help_text="Show help information for all buttons.",
@@ -673,6 +730,34 @@ class ReviewCosmicRay(ImageDisplay):
673
730
  self.set_buttons_after_cleaning_cr()
674
731
  self.update_display(cleaned=True)
675
732
 
733
+ def use_pycosmic(self):
734
+ """Use PyCosmic cleaned data to clean a cosmic ray."""
735
+ if self.cleandata_pycosmic is None:
736
+ print("PyCosmic cleaned data not available.")
737
+ return
738
+ print(f"PyCosmic interpolation of cosmic ray {self.cr_index}")
739
+ ycr_list, xcr_list = np.where(self.cr_labels == self.cr_index)
740
+ for iy, ix in zip(ycr_list, xcr_list):
741
+ self.data[iy, ix] = self.cleandata_pycosmic[iy, ix]
742
+ self.mask_fixed[iy, ix] = True
743
+ self.num_cr_cleaned += 1
744
+ self.set_buttons_after_cleaning_cr()
745
+ self.update_display(cleaned=True)
746
+
747
+ def use_deepcr(self):
748
+ """Use deepCR cleaned data to clean a cosmic ray."""
749
+ if self.cleandata_deepcr is None:
750
+ print("deepCR cleaned data not available.")
751
+ return
752
+ print(f"deepCR interpolation of cosmic ray {self.cr_index}")
753
+ ycr_list, xcr_list = np.where(self.cr_labels == self.cr_index)
754
+ for iy, ix in zip(ycr_list, xcr_list):
755
+ self.data[iy, ix] = self.cleandata_deepcr[iy, ix]
756
+ self.mask_fixed[iy, ix] = True
757
+ self.num_cr_cleaned += 1
758
+ self.set_buttons_after_cleaning_cr()
759
+ self.update_display(cleaned=True)
760
+
676
761
  def use_maskfill(self):
677
762
  """Use maskfill cleaned data to clean a cosmic ray."""
678
763
  print(f"Maskfill interpolation of cosmic ray {self.cr_index}")
@@ -832,6 +917,8 @@ class ReviewCosmicRay(ImageDisplay):
832
917
  self.interp_d_button.config(state=tk.DISABLED)
833
918
  self.interp_m_button.config(state=tk.DISABLED)
834
919
  self.interp_l_button.config(state=tk.DISABLED)
920
+ self.interp_pycosmic_button.config(state=tk.DISABLED)
921
+ self.interp_deepcr_button.config(state=tk.DISABLED)
835
922
  self.interp_maskfill_button.config(state=tk.DISABLED)
836
923
  self.interp_aux_button.config(state=tk.DISABLED)
837
924
 
@@ -845,6 +932,10 @@ class ReviewCosmicRay(ImageDisplay):
845
932
  if self.cleandata_lacosmic is not None:
846
933
  if self.last_dilation is None or self.last_dilation == 0:
847
934
  self.interp_l_button.config(state=tk.NORMAL)
935
+ if self.cleandata_pycosmic is not None:
936
+ self.interp_pycosmic_button.config(state=tk.NORMAL)
937
+ if self.cleandata_deepcr is not None:
938
+ self.interp_deepcr_button.config(state=tk.NORMAL)
848
939
  self.interp_maskfill_button.config(state=tk.NORMAL)
849
940
  if self.auxdata is not None:
850
941
  self.interp_aux_button.config(state=tk.NORMAL)
teareduce/sdistortion.py CHANGED
@@ -12,7 +12,7 @@ import matplotlib.pyplot as plt
12
12
  import numpy as np
13
13
  from numpy.polynomial import Polynomial
14
14
  from scipy import ndimage
15
- from tqdm.notebook import tqdm
15
+ from tqdm.auto import tqdm
16
16
 
17
17
  from .imshow import imshow
18
18
  from .polfit import polfit_residuals_with_sigma_rejection
teareduce/statsummary.py CHANGED
@@ -10,7 +10,7 @@
10
10
  from astropy.io import fits
11
11
  import numpy as np
12
12
  from pathlib import Path
13
- from tqdm.notebook import tqdm
13
+ from tqdm.auto import tqdm
14
14
 
15
15
  from .robust_std import robust_std
16
16
  from .sliceregion import SliceRegion2D
teareduce/version.py CHANGED
@@ -9,7 +9,7 @@
9
9
  #
10
10
  """Module to define the version of the teareduce package."""
11
11
 
12
- VERSION = '0.6.5'
12
+ VERSION = '0.6.7'
13
13
 
14
14
 
15
15
  def main():
teareduce/wavecal.py CHANGED
@@ -19,7 +19,7 @@ import numpy as np
19
19
  from numpy.polynomial import Polynomial
20
20
  from pathlib import Path
21
21
  from scipy.ndimage import gaussian_filter1d
22
- from tqdm.notebook import tqdm
22
+ from tqdm.auto import tqdm
23
23
 
24
24
  from .ctext import ctext
25
25
  from .imshow import imshow
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: teareduce
3
- Version: 0.6.5
3
+ Version: 0.6.7
4
4
  Summary: Utilities for astronomical data reduction
5
5
  Author-email: Nicolás Cardiel <cardiel@ucm.es>
6
6
  License: GPL-3.0-or-later
@@ -30,6 +30,8 @@ Requires-Dist: scipy
30
30
  Requires-Dist: tqdm
31
31
  Provides-Extra: cleanest
32
32
  Requires-Dist: ccdproc; extra == "cleanest"
33
+ Requires-Dist: cosmic-conn; extra == "cleanest"
34
+ Requires-Dist: deepCR; extra == "cleanest"
33
35
  Requires-Dist: maskfill; extra == "cleanest"
34
36
  Provides-Extra: test
35
37
  Requires-Dist: pytest; extra == "test"
@@ -37,6 +39,8 @@ Dynamic: license-file
37
39
 
38
40
  # teareduce
39
41
 
42
+ [![Teareduce's PyPI version](https://badge.fury.io/py/teareduce.svg?kill_cache=1)](https://badge.fury.io/py/teareduce)
43
+
40
44
  Utilities for astronomical data reduction.
41
45
 
42
46
  This package is not intended to be a general-purpose image reduction code. It
@@ -68,13 +72,6 @@ $ . venv_teareduce/bin/activate
68
72
  (venv_teareduce) $
69
73
  ```
70
74
 
71
- If you are planning to use **tea-cleanest**, you need to install this package
72
- with extra dependencies. In this case employ:
73
-
74
- ```shell
75
- (venv_teareduce) $ pip install 'teareduce[cleanest]'
76
- ```
77
-
78
75
  ### Installing the package
79
76
 
80
77
  The latest stable version is available via de [PyPI repository](https://pypi.org/project/teareduce/):
@@ -92,6 +89,20 @@ The latest development version is available through [GitHub](https://github.com/
92
89
  (venv_teareduce) $ pip install git+https://github.com/nicocardiel/teareduce.git@main#egg=teareduce
93
90
  ```
94
91
 
92
+ If you are planning to use **tea-cleanest**, you need to install this package
93
+ with extra dependencies. In this case employ:
94
+
95
+ ```shell
96
+ (venv_teareduce) $ pip install 'teareduce[cleanest]'
97
+ ```
98
+
99
+ In addition, in order to make use of the **PyCosmic** algorithm with
100
+ `tea-cleanest`, you need to install that package. This can be done using:
101
+
102
+ ```shell
103
+ (venv_teareduce) $ pip install git+https://github.com/nicocardiel/PyCosmic.git@test
104
+ ```
105
+
95
106
  ### Testing the installation
96
107
 
97
108
  ```shell
@@ -102,7 +113,7 @@ The latest development version is available through [GitHub](https://github.com/
102
113
  (venv_teareduce) $ ipython
103
114
  In [1]: import teareduce as tea
104
115
  In [2]: print(tea.__version__)
105
- 0.5.9
116
+ 0.6.6
106
117
  ```
107
118
 
108
119
  Note that in PyPI there is a package called **tea** that provides utilities
@@ -11,34 +11,34 @@ teareduce/numsplines.py,sha256=1PpG-frdc9Qz3VRbC7XyZFWKmhus05ID4REtFnWDmUo,8049
11
11
  teareduce/peaks_spectrum.py,sha256=XLMbJZnyYDVSaa5nCMXk9kSn0fyG_lhVmXWHzTwehiA,9878
12
12
  teareduce/polfit.py,sha256=CGsrRsz_Du2aKxOcgXi36lpAZO04JyqCCUaxhC0C-Mk,14281
13
13
  teareduce/robust_std.py,sha256=dk1G3VgiplZzmSfL7qWniEZ-5c3novHnBpRPCM77u84,1084
14
- teareduce/sdistortion.py,sha256=5ZsZn4vD5Sw2aoqO8-NIOH7H89Zmh7ZDkow6YbAotHU,5916
14
+ teareduce/sdistortion.py,sha256=z7GX7MMkWhexUJn4VqsSOXLNsZTSdoaCzl9ukW1XlaA,5912
15
15
  teareduce/simulateccdexposure.py,sha256=cdbpca6GVuM3d7R1LGzlIZZvjTq_jzrlkk_Cli7aouQ,24636
16
16
  teareduce/sliceregion.py,sha256=Jdf8XvmGaY_vaY1cneTaRtSOYPxpUsJm9cXJDDMa0YM,18626
17
- teareduce/statsummary.py,sha256=VTNAnBV8z6suqiyB2Lhw3YjUUOjlmwUPX3enkOKRF54,5422
18
- teareduce/version.py,sha256=t95kpxH0qjxPDi-sfJdzA-e5ZvvIwL_0-v5Ex5zn22I,419
19
- teareduce/wavecal.py,sha256=2MewWz5Y3ms41c305UtWOM_LaLNdk1mugDXCtzf-fSw,68586
17
+ teareduce/statsummary.py,sha256=vtM0ZtKI1-uw6zZyNwDkBGDS_hOdBcFCtpMzdSrLwIw,5418
18
+ teareduce/version.py,sha256=8psShacK0WzaM79p4Rair67yUDV-GOTkCBpwHQK6J2M,419
19
+ teareduce/wavecal.py,sha256=nu0iYM2475pJr3btODa5T8XKgNVA-kc8Fsio9Oe2biY,68582
20
20
  teareduce/write_array_to_fits.py,sha256=kWDrEH9coJ1yIu56oQJpWtDqJL4c8HGmssE9jle4e94,617
21
21
  teareduce/zscale.py,sha256=SDgmcDD2N5GvDn46JADCgTQJPBF_N_jSKMHoeTz9Nsw,1152
22
22
  teareduce/cleanest/__init__.py,sha256=1rcfu97uqj3R-OZbU9HHLYaTzWkS-poRFBBy8nuH7p4,547
23
- teareduce/cleanest/__main__.py,sha256=KhFJSekko0mz_pVz3gxNnEmqvv4nuRBdhaXB2Nt4aL0,6145
23
+ teareduce/cleanest/__main__.py,sha256=sTMk3vEfGYcF58MjVZaycWk3jRLIS1vYK2qp40EcTNA,5904
24
24
  teareduce/cleanest/askextension.py,sha256=Q6mGLA6ajUcDU4gsVA4P78GsPei0c7iZK1f7SfK9iVo,3014
25
25
  teareduce/cleanest/centerchildparent.py,sha256=wHxOvNrrQ-KBLZAbtQ9bJAxYhGOzqYBF4LgdIQk7UF8,1285
26
- teareduce/cleanest/cosmicraycleanerapp.py,sha256=OpBBhgvvGiC8rO_C26Zwc0gIlQ6phDVjSarQNMEfpTY,61327
27
- teareduce/cleanest/definitions.py,sha256=Ryreer1ztkk4W3muWGI_SSfm3ZAhyAOQJbZLtdfTJsc,4692
26
+ teareduce/cleanest/cosmicraycleanerapp.py,sha256=cI2Ywu93zq3MMSIpbFSP3n4JxAdkr2aogJuNgnCzX5A,80965
27
+ teareduce/cleanest/definitions.py,sha256=pq_ZYEn16nvNMdvkOD71PB0Y4p1tIaNJFYd8hsq59Nc,7782
28
28
  teareduce/cleanest/dilatemask.py,sha256=I5tHAv5VEO6V0Wed8Ar20uLt4F9P-tgjmLL5BAaFvgM,1276
29
29
  teareduce/cleanest/find_closest_true.py,sha256=mWdIvhipzAXDRKfePDrP7f0lP4U48cckpHiKwiB4jHI,1320
30
30
  teareduce/cleanest/gausskernel2d_elliptical.py,sha256=f6AT0ZHmLCd83NAIyyJ8ODlihMeeTkmvNnUSK3vjP9I,1606
31
31
  teareduce/cleanest/imagedisplay.py,sha256=m8wmQ7CSDywABxkra2G4dFD06CVP1KvIYIdnZqoVdrI,5871
32
- teareduce/cleanest/interpolate.py,sha256=5YHG7YccCi3RlOXjMQt_MbAdjl1RMFn24DLpYmCGMwk,7077
32
+ teareduce/cleanest/interpolate.py,sha256=eB9pVkEyJsNorKKV4Dx-j0UldBV6bgWSQBosYkaxNKM,7073
33
33
  teareduce/cleanest/interpolation_a.py,sha256=iyAEbh0Bf74OfAVhZjSvP3cO7pDC8eVDrVnDUd18FZQ,4030
34
34
  teareduce/cleanest/interpolation_x.py,sha256=MZhtlZZuMLvLnOK0EsLkJM3_dpyNHsxQL_BU1vLt9Lw,3767
35
35
  teareduce/cleanest/interpolation_y.py,sha256=ZX1Uv3FOxoLHtuR_yspcSA5B81CK_J0oNJ1ztzp0l5g,3782
36
- teareduce/cleanest/interpolationeditor.py,sha256=mIy-25dylQnqC91tLny4iZWS4d_bJ4sDDs-kNOWM-yE,19933
37
- teareduce/cleanest/lacosmicpad.py,sha256=IXwHAHeh4rQlQjMw2lfKSzjzmoo3HdSt0Qj0nhK_nHU,6921
36
+ teareduce/cleanest/interpolationeditor.py,sha256=W6FCa8YvaPMyRcX6q_WrRzEjs5Hb4t0rzepMir5tFlA,20608
37
+ teareduce/cleanest/lacosmicpad.py,sha256=Ox6XpgZ7O_HmSth-6IiTY09NuskqMu0NfMjZBTbb1h0,7607
38
38
  teareduce/cleanest/mergemasks.py,sha256=TdbfQl5ETxtyFfod0WCD7Czzmgt-WxYOk3hpLqGNOTQ,2620
39
39
  teareduce/cleanest/modalprogressbar.py,sha256=uwd-p92PvOVJnbXd-B8DRcBZ--keKpr4ZN9PLeqm1Ws,6449
40
- teareduce/cleanest/parametereditor.py,sha256=V8twAQzR0vjd68PB92PfdQBmTRDR04xx2mb4SLSV68Y,24530
41
- teareduce/cleanest/reviewcosmicray.py,sha256=8jUaJCHVvZqlQ57A9eCDNIfBCKQ0IqFADq8C1H7T7ko,36518
40
+ teareduce/cleanest/parametereditor.py,sha256=XvJuvwhkeGyqZHESz0rdkAydBqnJQmKP2YwUz1H4bzE,41818
41
+ teareduce/cleanest/reviewcosmicray.py,sha256=4onD7sUwgHaFPhrnNkLK3ivNA68Qc_DS3RC6G0n1xW4,40561
42
42
  teareduce/cleanest/trackedbutton.py,sha256=r6Mzhb24c3HaJdvGGGFLn7cF9n4TgsKYc_yfcYIyB4g,2348
43
43
  teareduce/cookbook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
44
  teareduce/cookbook/get_cookbook_file.py,sha256=vde-iNii2lm1QII8GmLRsFsKNxkdsd7njCBE-8Z7io0,1088
@@ -46,9 +46,9 @@ teareduce/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
46
  teareduce/tests/test_cleanest.py,sha256=6dRqkw1RQMKsFrC8cEweMvTD6wXhiDv3P4PS57-HEqI,5598
47
47
  teareduce/tests/test_sliceregion.py,sha256=S7Zoh2eEBFIEbfsXgWBEMCf7pottjw2oLhqlZJQkAwg,3785
48
48
  teareduce/tests/test_version.py,sha256=mKLnbXyvVNc1pATq5PxR8qeoFMPAFL_GilFV6IHLOi0,172
49
- teareduce-0.6.5.dist-info/licenses/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
50
- teareduce-0.6.5.dist-info/METADATA,sha256=ahuvTvNsYtGR62GHSUELCFcmdgydV_zc9PbiSLzRiWc,3628
51
- teareduce-0.6.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
52
- teareduce-0.6.5.dist-info/entry_points.txt,sha256=6yBvig5jTL2ugqz5SF767AiszzrHKGRASsX1II84kqA,66
53
- teareduce-0.6.5.dist-info/top_level.txt,sha256=7OkwtX9zNRkGJ7ACgjk4ESgC74qUYcS5O2qcO0v-Si4,10
54
- teareduce-0.6.5.dist-info/RECORD,,
49
+ teareduce-0.6.7.dist-info/licenses/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
50
+ teareduce-0.6.7.dist-info/METADATA,sha256=wobVWo_cxUm1u_YWE6fp8o7YzwCEN0Ya5UsNR62E1M8,4081
51
+ teareduce-0.6.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
52
+ teareduce-0.6.7.dist-info/entry_points.txt,sha256=6yBvig5jTL2ugqz5SF767AiszzrHKGRASsX1II84kqA,66
53
+ teareduce-0.6.7.dist-info/top_level.txt,sha256=7OkwtX9zNRkGJ7ACgjk4ESgC74qUYcS5O2qcO0v-Si4,10
54
+ teareduce-0.6.7.dist-info/RECORD,,