ChessAnalysisPipeline 0.0.12__py3-none-any.whl → 0.0.13__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.
Potentially problematic release.
This version of ChessAnalysisPipeline might be problematic. Click here for more details.
- CHAP/__init__.py +2 -0
- CHAP/common/__init__.py +6 -2
- CHAP/common/processor.py +245 -153
- CHAP/common/reader.py +160 -124
- CHAP/common/writer.py +150 -94
- CHAP/tomo/models.py +10 -9
- CHAP/tomo/processor.py +554 -353
- CHAP/utils/general.py +21 -11
- CHAP/utils/scanparsers.py +78 -39
- {ChessAnalysisPipeline-0.0.12.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/METADATA +1 -1
- {ChessAnalysisPipeline-0.0.12.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/RECORD +15 -15
- {ChessAnalysisPipeline-0.0.12.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/WHEEL +1 -1
- {ChessAnalysisPipeline-0.0.12.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/LICENSE +0 -0
- {ChessAnalysisPipeline-0.0.12.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/entry_points.txt +0 -0
- {ChessAnalysisPipeline-0.0.12.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/top_level.txt +0 -0
CHAP/utils/general.py
CHANGED
|
@@ -1417,8 +1417,8 @@ def select_roi_2d(
|
|
|
1417
1417
|
|
|
1418
1418
|
|
|
1419
1419
|
def select_image_indices(
|
|
1420
|
-
a, axis, b=None, preselected_indices=None,
|
|
1421
|
-
min_num_indices=2, max_num_indices=2, title=None,
|
|
1420
|
+
a, axis, b=None, preselected_indices=None, axis_index_offset=0,
|
|
1421
|
+
min_range=None, min_num_indices=2, max_num_indices=2, title=None,
|
|
1422
1422
|
title_a=None, title_b=None, row_label='row index',
|
|
1423
1423
|
column_label='column index', interactive=True):
|
|
1424
1424
|
"""Display a 2D image and have the user select a set of image
|
|
@@ -1435,7 +1435,10 @@ def select_image_indices(
|
|
|
1435
1435
|
:type b: numpy.ndarray, optional
|
|
1436
1436
|
:param preselected_indices: Preselected image indices,
|
|
1437
1437
|
defaults to `None`.
|
|
1438
|
-
:type
|
|
1438
|
+
:type preselected_indices: tuple(int), list(int), optional
|
|
1439
|
+
:param axis_index_offset: Offset in axes index range and
|
|
1440
|
+
preselected indices, defaults to `0`.
|
|
1441
|
+
:type axis_index_offset: int, optional
|
|
1439
1442
|
:param min_range: The minimal range spanned by the selected
|
|
1440
1443
|
indices, defaults to `None`
|
|
1441
1444
|
:type min_range: int, optional
|
|
@@ -1531,12 +1534,14 @@ def select_image_indices(
|
|
|
1531
1534
|
error_texts.pop()
|
|
1532
1535
|
try:
|
|
1533
1536
|
index = int(expression)
|
|
1534
|
-
if
|
|
1537
|
+
if (index < axis_index_offset
|
|
1538
|
+
or index >= axis_index_offset+a.shape[axis]):
|
|
1535
1539
|
raise ValueError
|
|
1536
1540
|
except ValueError:
|
|
1537
1541
|
change_error_text(
|
|
1538
1542
|
f'Invalid {row_column} index ({expression}), enter an integer '
|
|
1539
|
-
f'between
|
|
1543
|
+
f'between {axis_index_offset} and '
|
|
1544
|
+
f'{axis_index_offset+a.shape[axis]-1}')
|
|
1540
1545
|
else:
|
|
1541
1546
|
try:
|
|
1542
1547
|
add_index(index)
|
|
@@ -1585,9 +1590,13 @@ def select_image_indices(
|
|
|
1585
1590
|
row_column = 'row'
|
|
1586
1591
|
else:
|
|
1587
1592
|
row_column = 'column'
|
|
1593
|
+
if not is_int(axis_index_offset, ge=0, log=False):
|
|
1594
|
+
raise ValueError(
|
|
1595
|
+
'Invalid parameter axis_index_offset ({axis_index_offset})')
|
|
1588
1596
|
if preselected_indices is not None:
|
|
1589
1597
|
if not is_int_series(
|
|
1590
|
-
preselected_indices, ge=
|
|
1598
|
+
preselected_indices, ge=axis_index_offset,
|
|
1599
|
+
le=axis_index_offset+a.shape[axis], log=False):
|
|
1591
1600
|
if interactive:
|
|
1592
1601
|
logger.warning(
|
|
1593
1602
|
'Invalid parameter preselected_indices '
|
|
@@ -1607,7 +1616,7 @@ def select_image_indices(
|
|
|
1607
1616
|
if a.shape[0] != b.shape[0]:
|
|
1608
1617
|
raise ValueError(f'Inconsistent image shapes({a.shape} vs '
|
|
1609
1618
|
f'{b.shape})')
|
|
1610
|
-
|
|
1619
|
+
|
|
1611
1620
|
indices = []
|
|
1612
1621
|
lines = []
|
|
1613
1622
|
fig_title = []
|
|
@@ -1627,10 +1636,11 @@ def select_image_indices(
|
|
|
1627
1636
|
fig, axs = plt.subplots(1, 2, figsize=(11, 8.5))
|
|
1628
1637
|
else:
|
|
1629
1638
|
fig, axs = plt.subplots(2, 1, figsize=(11, 8.5))
|
|
1630
|
-
|
|
1639
|
+
extent = (0, a.shape[1], axis_index_offset+a.shape[0], axis_index_offset)
|
|
1640
|
+
axs[0].imshow(a, extent=extent)
|
|
1631
1641
|
axs[0].set_title(title_a, fontsize='xx-large')
|
|
1632
1642
|
if b is not None:
|
|
1633
|
-
axs[1].imshow(b)
|
|
1643
|
+
axs[1].imshow(b, extent=extent)
|
|
1634
1644
|
axs[1].set_title(title_b, fontsize='xx-large')
|
|
1635
1645
|
if a.shape[0]+b.shape[0] > max(a.shape[1], b.shape[1]):
|
|
1636
1646
|
axs[0].set_xlabel(column_label, fontsize='x-large')
|
|
@@ -1641,8 +1651,8 @@ def select_image_indices(
|
|
|
1641
1651
|
axs[1].set_xlabel(column_label, fontsize='x-large')
|
|
1642
1652
|
axs[1].set_ylabel(row_label, fontsize='x-large')
|
|
1643
1653
|
for ax in axs:
|
|
1644
|
-
ax.set_xlim(0,
|
|
1645
|
-
ax.set_ylim(
|
|
1654
|
+
ax.set_xlim(extent[0], extent[1])
|
|
1655
|
+
ax.set_ylim(extent[2], extent[3])
|
|
1646
1656
|
fig.subplots_adjust(bottom=0.0, top=0.85)
|
|
1647
1657
|
|
|
1648
1658
|
# Setup the preselected indices if provided
|
CHAP/utils/scanparsers.py
CHANGED
|
@@ -49,7 +49,12 @@ class ScanParser:
|
|
|
49
49
|
|
|
50
50
|
self._detector_data_path = None
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
if isinstance(self, FMBRotationScanParser) and scan_number > 1:
|
|
53
|
+
scanparser = FMBRotationScanParser(spec_file_name, scan_number-1)
|
|
54
|
+
if (scanparser.spec_macro in ('rams4_step_ome', 'rams4_fly_ome')
|
|
55
|
+
and len(scanparser.spec_args) == 5):
|
|
56
|
+
self._rams4_args = scanparser.spec_args
|
|
57
|
+
|
|
53
58
|
return (f'{self.__class__.__name__}'
|
|
54
59
|
f'({self.spec_file_name}, {self.scan_number}) '
|
|
55
60
|
f'-- {self.spec_command}')
|
|
@@ -527,7 +532,17 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
527
532
|
|
|
528
533
|
def get_spec_scan_motor_mnes(self):
|
|
529
534
|
if self.spec_macro == 'flymesh':
|
|
530
|
-
|
|
535
|
+
m1_mne = self.spec_args[0]
|
|
536
|
+
try:
|
|
537
|
+
# Try post-summer-2022 format
|
|
538
|
+
dwell = float(self.spec_args[4])
|
|
539
|
+
except:
|
|
540
|
+
# Accommodate pre-summer-2022 format
|
|
541
|
+
m2_mne_i = 4
|
|
542
|
+
else:
|
|
543
|
+
m2_mne_i = 5
|
|
544
|
+
m2_mne = self.spec_args[m2_mne_i]
|
|
545
|
+
return (m1_mne, m2_mne)
|
|
531
546
|
if self.spec_macro in ('flyscan', 'ascan'):
|
|
532
547
|
return (self.spec_args[0],)
|
|
533
548
|
if self.spec_macro in ('tseries', 'loopscan'):
|
|
@@ -537,12 +552,26 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
537
552
|
|
|
538
553
|
def get_spec_scan_motor_vals(self):
|
|
539
554
|
if self.spec_macro == 'flymesh':
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
555
|
+
m1_start = float(self.spec_args[1])
|
|
556
|
+
m1_end = float(self.spec_args[2])
|
|
557
|
+
m1_npt = int(self.spec_args[3]) + 1
|
|
558
|
+
try:
|
|
559
|
+
# Try post-summer-2022 format
|
|
560
|
+
dwell = float(self.spec_args[4])
|
|
561
|
+
except:
|
|
562
|
+
# Accommodate pre-summer-2022 format
|
|
563
|
+
m2_start_i = 5
|
|
564
|
+
m2_end_i = 6
|
|
565
|
+
m2_nint_i = 7
|
|
566
|
+
else:
|
|
567
|
+
m2_start_i = 6
|
|
568
|
+
m2_end_i = 7
|
|
569
|
+
m2_nint_i = 8
|
|
570
|
+
m2_start = float(self.spec_args[m2_start_i])
|
|
571
|
+
m2_end = float(self.spec_args[m2_end_i])
|
|
572
|
+
m2_npt = int(self.spec_args[m2_nint_i]) + 1
|
|
573
|
+
fast_mot_vals = np.linspace(m1_start, m1_end, m1_npt)
|
|
574
|
+
slow_mot_vals = np.linspace(m2_start, m2_end, m2_npt)
|
|
546
575
|
return (fast_mot_vals, slow_mot_vals)
|
|
547
576
|
if self.spec_macro in ('flyscan', 'ascan'):
|
|
548
577
|
mot_vals = np.linspace(float(self.spec_args[1]),
|
|
@@ -556,8 +585,16 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
556
585
|
|
|
557
586
|
def get_spec_scan_shape(self):
|
|
558
587
|
if self.spec_macro == 'flymesh':
|
|
559
|
-
fast_mot_npts = int(self.spec_args[3])+1
|
|
560
|
-
|
|
588
|
+
fast_mot_npts = int(self.spec_args[3]) + 1
|
|
589
|
+
try:
|
|
590
|
+
# Try post-summer-2022 format
|
|
591
|
+
dwell = float(self.spec_args[4])
|
|
592
|
+
except:
|
|
593
|
+
# Accommodate pre-summer-2022 format
|
|
594
|
+
m2_nint_i = 7
|
|
595
|
+
else:
|
|
596
|
+
m2_nint_i = 8
|
|
597
|
+
slow_mot_npts = int(self.spec_args[m2_nint_i]) + 1
|
|
561
598
|
return (fast_mot_npts, slow_mot_npts)
|
|
562
599
|
if self.spec_macro in ('flyscan', 'ascan'):
|
|
563
600
|
mot_npts = int(self.spec_args[3])+1
|
|
@@ -568,7 +605,15 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
568
605
|
f'for scans of type {self.spec_macro}')
|
|
569
606
|
|
|
570
607
|
def get_spec_scan_dwell(self):
|
|
571
|
-
if self.
|
|
608
|
+
if self.macro == 'flymesh':
|
|
609
|
+
try:
|
|
610
|
+
# Try post-summer-2022 format
|
|
611
|
+
dwell = float(self.spec_args[4])
|
|
612
|
+
except:
|
|
613
|
+
# Accommodate pre-summer-2022 format
|
|
614
|
+
dwell = float(self.spec_args[8])
|
|
615
|
+
return dwell
|
|
616
|
+
if self.spec_macro in ('flyscan', 'ascan'):
|
|
572
617
|
return float(self.spec_args[4])
|
|
573
618
|
if self.spec_macro in ('tseries', 'loopscan'):
|
|
574
619
|
return float(self.spec_args[1])
|
|
@@ -609,8 +654,10 @@ class FMBSAXSWAXSScanParser(FMBLinearScanParser):
|
|
|
609
654
|
return f'{self.scan_name}_{self.scan_number:03d}'
|
|
610
655
|
|
|
611
656
|
def get_detector_data_file(self, detector_prefix, scan_step_index:int):
|
|
612
|
-
detector_files = list_fmb_saxswaxs_detector_files(
|
|
613
|
-
|
|
657
|
+
detector_files = list_fmb_saxswaxs_detector_files(
|
|
658
|
+
self.detector_data_path, detector_prefix)
|
|
659
|
+
return os.path.join(
|
|
660
|
+
self.detector_data_path, detector_files[scan_step_index])
|
|
614
661
|
|
|
615
662
|
def get_detector_data(self, detector_prefix, scan_step_index:int):
|
|
616
663
|
image_file = self.get_detector_data_file(detector_prefix,
|
|
@@ -793,7 +840,17 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
793
840
|
with the typical tomography setup at FMB.
|
|
794
841
|
"""
|
|
795
842
|
|
|
843
|
+
def get_spec_scan_data(self):
|
|
844
|
+
spec_scan_data = super().get_spec_scan_data()
|
|
845
|
+
if hasattr(self, '_rams4_args'):
|
|
846
|
+
spec_scan_data['theta'] = np.linspace(
|
|
847
|
+
float(self._rams4_args[0]), float(self._rams4_args[1]),
|
|
848
|
+
1+int(self._rams4_args[2]))
|
|
849
|
+
return spec_scan_data
|
|
850
|
+
|
|
796
851
|
def get_spec_scan_npts(self):
|
|
852
|
+
if hasattr(self, '_rams4_args'):
|
|
853
|
+
return 1+int(self._rams4_args[2])
|
|
797
854
|
if self.spec_macro == 'flyscan':
|
|
798
855
|
if len(self.spec_args) == 2:
|
|
799
856
|
return 1+int(self.spec_args[0])
|
|
@@ -802,12 +859,12 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
802
859
|
raise RuntimeError(f'{self.scan_title}: cannot obtain number of '
|
|
803
860
|
f'points from {self.spec_macro} with arguments '
|
|
804
861
|
f'{self.spec_args}')
|
|
805
|
-
|
|
806
|
-
if len(self.spec_args) == 5:
|
|
807
|
-
return int(self.spec_args[3])
|
|
808
|
-
raise RuntimeError(f'{self.scan_title}: cannot obtain number of '
|
|
809
|
-
f'points from {self.spec_macro} with arguments '
|
|
810
|
-
f'{self.spec_args}')
|
|
862
|
+
# if self.spec_macro == 'ascan':
|
|
863
|
+
# if len(self.spec_args) == 5:
|
|
864
|
+
# return int(self.spec_args[3])
|
|
865
|
+
# raise RuntimeError(f'{self.scan_title}: cannot obtain number of '
|
|
866
|
+
# f'points from {self.spec_macro} with arguments '
|
|
867
|
+
# f'{self.spec_args}')
|
|
811
868
|
raise RuntimeError(f'{self.scan_title}: cannot determine rotation '
|
|
812
869
|
f' angles for scans of type {self.spec_macro}')
|
|
813
870
|
|
|
@@ -815,21 +872,10 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
815
872
|
return 0
|
|
816
873
|
|
|
817
874
|
def get_starting_image_offset(self):
|
|
875
|
+
if hasattr(self, '_rams4_args'):
|
|
876
|
+
return int(self.spec_args[0]) - self.spec_scan_npts
|
|
818
877
|
if self.spec_macro == 'flyscan':
|
|
819
|
-
# if len(self.spec_args) == 2:
|
|
820
|
-
# return 1
|
|
821
|
-
# if len(self.spec_args) == 5:
|
|
822
|
-
# return 1
|
|
823
878
|
return 1
|
|
824
|
-
# raise RuntimeError(f'{self.scan_title}: cannot obtain starting '
|
|
825
|
-
# f'image offset {self.spec_macro} with arguments'
|
|
826
|
-
# f' {self.spec_args}')
|
|
827
|
-
# elif self.spec_macro == 'ascan':
|
|
828
|
-
# if len(self.spec_args) == 5:
|
|
829
|
-
# return 0
|
|
830
|
-
# raise RuntimeError(f'{self.scan_title}: cannot obtain starting '
|
|
831
|
-
# f'image offset {self.spec_macro} with arguments'
|
|
832
|
-
# f' {self.spec_args}')
|
|
833
879
|
raise RuntimeError(f'{self.scan_title}: cannot determine starting '
|
|
834
880
|
f'image offset for scans of type {self.spec_macro}')
|
|
835
881
|
|
|
@@ -855,8 +901,6 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
855
901
|
if scan_step_index is None:
|
|
856
902
|
detector_data = h5_file['/entry/instrument/detector/data'][
|
|
857
903
|
self.starting_image_offset:]
|
|
858
|
-
# sum_det = list(np.sum(detector_data, (1,2)))
|
|
859
|
-
# print(f'\n\nsum scanparser ({len(sum_det)}):\n{sum_det}')
|
|
860
904
|
elif isinstance(scan_step_index, int):
|
|
861
905
|
detector_data = h5_file['/entry/instrument/detector/data'][
|
|
862
906
|
self.starting_image_offset+scan_step_index]
|
|
@@ -873,10 +917,8 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
873
917
|
def get_detector_data(self, detector_prefix, scan_step_index=None):
|
|
874
918
|
try:
|
|
875
919
|
# Detector files in h5 format
|
|
876
|
-
# print('data in h5 file')
|
|
877
920
|
detector_data = self.get_all_detector_data_in_file(
|
|
878
921
|
detector_prefix, scan_step_index)
|
|
879
|
-
# print(f'detector_data {detector_prefix} {scan_step_index}:\n{detector_data.shape}')
|
|
880
922
|
except:
|
|
881
923
|
# Detector files in tiff format
|
|
882
924
|
if scan_step_index is None:
|
|
@@ -999,19 +1041,16 @@ class SMBRotationScanParser(RotationScanParser, SMBScanParser):
|
|
|
999
1041
|
f'file for scan step ({scan_step_index})')
|
|
1000
1042
|
|
|
1001
1043
|
def get_detector_data(self, detector_prefix, scan_step_index=None):
|
|
1002
|
-
# print(f'\n\nin get_detector_data: {detector_prefix} {scan_step_index}')
|
|
1003
1044
|
if scan_step_index is None:
|
|
1004
1045
|
detector_data = []
|
|
1005
1046
|
for index in range(self.spec_scan_npts):
|
|
1006
1047
|
detector_data.append(
|
|
1007
1048
|
self.get_detector_data(detector_prefix, index))
|
|
1008
1049
|
detector_data = np.asarray(detector_data)
|
|
1009
|
-
# print(f'detector_data shape {type(detector_data)} {detector_data.shape}:\n{detector_data}')
|
|
1010
1050
|
elif isinstance(scan_step_index, int):
|
|
1011
1051
|
image_file = self.get_detector_data_file(scan_step_index)
|
|
1012
1052
|
with TiffFile(image_file) as tiff_file:
|
|
1013
1053
|
detector_data = tiff_file.asarray()
|
|
1014
|
-
# print(f'\t{scan_step_index} {image_file} {np.sum(np.asarray(detector_data))}')
|
|
1015
1054
|
elif (isinstance(scan_step_index, (list, tuple))
|
|
1016
1055
|
and len(scan_step_index) == 2):
|
|
1017
1056
|
detector_data = []
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
CHAP/TaskManager.py,sha256=NEqg2jAq10kbScE18XtzY3liqkIdAtysaR-gMG5tBzs,6803
|
|
2
|
-
CHAP/__init__.py,sha256=
|
|
2
|
+
CHAP/__init__.py,sha256=fgkAhLmrMNcSnOgxfo_WLbanG5pOsqqtWctjRgtk1aw,1073
|
|
3
3
|
CHAP/pipeline.py,sha256=nEoMJVn7ckn_hbo_O-B53tN-zo7MRZqcJsSlYWNbxNM,7358
|
|
4
4
|
CHAP/processor.py,sha256=nqg1uK5jvADl35xuR6VIdU5uVGFVt-rzivnaZyOWruA,2639
|
|
5
5
|
CHAP/reader.py,sha256=wGzAl_p5UnR7fC7Cie29S7RZTFFLcdOuhbViNDzH-4s,2534
|
|
6
6
|
CHAP/runner.py,sha256=VdmCVA7wosGGI6QKJIAPuU1NFBMTCKPh1I1YZCR1qDc,6542
|
|
7
7
|
CHAP/server.py,sha256=JAh5a7ZPh_Vx7fm0uI_g2WHLVxLn8s1uwBX8oMJ3G9c,3648
|
|
8
8
|
CHAP/writer.py,sha256=9hed3_51AwSSH3kNisMR6Wq6mLInNGpgktPG5G_s-DM,2589
|
|
9
|
-
CHAP/common/__init__.py,sha256=
|
|
10
|
-
CHAP/common/processor.py,sha256=
|
|
11
|
-
CHAP/common/reader.py,sha256=
|
|
12
|
-
CHAP/common/writer.py,sha256=
|
|
9
|
+
CHAP/common/__init__.py,sha256=xNKfvDLBW3NIKqcjCMH7LAl__I43BKwKFQRGn_Sei0c,1033
|
|
10
|
+
CHAP/common/processor.py,sha256=RJu-gGhY--cqmpJUQMaT3HW8MwdnFKk-sdQQ0I2FSsg,29183
|
|
11
|
+
CHAP/common/reader.py,sha256=iVlOluctVpfMTKQzI79bwuaXKqAwU6XJ52oZSqKf7-E,13557
|
|
12
|
+
CHAP/common/writer.py,sha256=Zk_LnYOwX-UwmlMAEwLbX3rmBooDGNV1O2o-lOxr2iQ,12242
|
|
13
13
|
CHAP/common/models/__init__.py,sha256=MpmtY6biXgC7AaedznoSqFJJZ54YU8tBPgwzYJIVJ1c,200
|
|
14
14
|
CHAP/common/models/integration.py,sha256=0WM2Q15XFQf-uydMALh3snbpoop-c5N6Pnf_O7ikXW0,27175
|
|
15
15
|
CHAP/common/models/map.py,sha256=YIDojY_bgXS4k4GFOpmzo__yi7IsXl1mCIquTBS5srA,38280
|
|
@@ -32,23 +32,23 @@ CHAP/sin2psi/processor.py,sha256=6ytGpsK5u6tyUTzOJqAlcRdaimA4QfXZ6xpwGf2QMFo,97
|
|
|
32
32
|
CHAP/sin2psi/reader.py,sha256=O0KeZcqACsZ8ngrliPU6I3u8SeQT0Aq866jCTbruXqc,94
|
|
33
33
|
CHAP/sin2psi/writer.py,sha256=Y1CXWMRU87XeeDp4g4-sUgPP2UbCguYZUR_Cg5Ci6l8,94
|
|
34
34
|
CHAP/tomo/__init__.py,sha256=7cwm1ufJkDKqrp2OPH_z7tKAOQ0S_RJbNainK0soKNo,328
|
|
35
|
-
CHAP/tomo/models.py,sha256=
|
|
36
|
-
CHAP/tomo/processor.py,sha256=
|
|
35
|
+
CHAP/tomo/models.py,sha256=UPmn5rJl1MQe2cifBIOu7yBQO2qMmUtFu-KKw8XBMys,7889
|
|
36
|
+
CHAP/tomo/processor.py,sha256=evNtZ3yTPKWDsm-RNxcQm7Pw7ERnwwDZu74QOqVrIAI,153325
|
|
37
37
|
CHAP/tomo/reader.py,sha256=7nNP_KyIR-ghrrajCR2k5IsJnrLm6BIy-eAXIDXrQe8,123
|
|
38
38
|
CHAP/tomo/writer.py,sha256=J7q_nmsqi_zbgAS-LvAciiBqtYD8hHJ4QmwS2oZAM2Q,123
|
|
39
39
|
CHAP/utils/__init__.py,sha256=3blWv3cFKA4woMNUUI8d1WZFc4izlgMbfUPNAyBDiRs,183
|
|
40
40
|
CHAP/utils/fit.py,sha256=VEhqAkNqkDpjBQ_kbOfGlNCEwmaPCh8RBc5SxHUy-OM,127878
|
|
41
|
-
CHAP/utils/general.py,sha256=
|
|
41
|
+
CHAP/utils/general.py,sha256=E1aKdoIEZCIDJoFGmOqSn0rRRA1rfbpImCmzhhyRGfY,67565
|
|
42
42
|
CHAP/utils/material.py,sha256=NnLHAin3PrDxZiG6of8v7vFma0nAeOIRZJuXxSN_xj8,11495
|
|
43
43
|
CHAP/utils/parfile.py,sha256=GxBWG6EVKQnV1I_r_m4nfJrCb0VGAn6tjEfuxVTg-aA,7227
|
|
44
|
-
CHAP/utils/scanparsers.py,sha256=
|
|
44
|
+
CHAP/utils/scanparsers.py,sha256=zCyad4P6OTytozM-rJjmIKXrOqeotbUHmr8Xc4YhpG8,44881
|
|
45
45
|
MLaaS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
46
|
MLaaS/ktrain.py,sha256=SPDUOQgjBDSx7sI8vZNXog9orvSyKmzpe6TdGHol9qM,7467
|
|
47
47
|
MLaaS/mnist_img.py,sha256=ppDtlo6yrNQy0oIhFZVOnLvHJrR3ZPZ3PjZTtJY8l0E,2738
|
|
48
48
|
MLaaS/tfaas_client.py,sha256=zpZ201wwcQBW1XkzDakD9Kl_NRSESAUdbnN6k6Ey15A,14889
|
|
49
|
-
ChessAnalysisPipeline-0.0.
|
|
50
|
-
ChessAnalysisPipeline-0.0.
|
|
51
|
-
ChessAnalysisPipeline-0.0.
|
|
52
|
-
ChessAnalysisPipeline-0.0.
|
|
53
|
-
ChessAnalysisPipeline-0.0.
|
|
54
|
-
ChessAnalysisPipeline-0.0.
|
|
49
|
+
ChessAnalysisPipeline-0.0.13.dist-info/LICENSE,sha256=GrJL25aZivxje_x-zBbeWASvdmgztxv8kBMhIP4XSMo,1075
|
|
50
|
+
ChessAnalysisPipeline-0.0.13.dist-info/METADATA,sha256=KTZzy22v8P2ISFOgRLCXMDc6ytFoR2yayPtficwLHZA,1542
|
|
51
|
+
ChessAnalysisPipeline-0.0.13.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
52
|
+
ChessAnalysisPipeline-0.0.13.dist-info/entry_points.txt,sha256=w-KIKdUjmj5GCobrFC4_jexCsFB4yMXYjrsMWrhI6Co,42
|
|
53
|
+
ChessAnalysisPipeline-0.0.13.dist-info/top_level.txt,sha256=BKhggOWLb9dD6oQm1RXrkJPnXm-zJxVzQef1iXYtt2k,11
|
|
54
|
+
ChessAnalysisPipeline-0.0.13.dist-info/RECORD,,
|
|
File without changes
|
{ChessAnalysisPipeline-0.0.12.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{ChessAnalysisPipeline-0.0.12.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/top_level.txt
RENAMED
|
File without changes
|