ChessAnalysisPipeline 0.0.11__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/models/map.py +217 -70
- CHAP/common/processor.py +249 -155
- CHAP/common/reader.py +175 -130
- CHAP/common/writer.py +150 -94
- CHAP/edd/models.py +458 -262
- CHAP/edd/processor.py +614 -354
- CHAP/edd/utils.py +746 -235
- CHAP/tomo/models.py +22 -18
- CHAP/tomo/processor.py +1215 -892
- CHAP/utils/fit.py +211 -127
- CHAP/utils/general.py +789 -610
- CHAP/utils/parfile.py +1 -9
- CHAP/utils/scanparsers.py +101 -52
- {ChessAnalysisPipeline-0.0.11.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/METADATA +1 -1
- {ChessAnalysisPipeline-0.0.11.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/RECORD +21 -21
- {ChessAnalysisPipeline-0.0.11.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/WHEEL +1 -1
- {ChessAnalysisPipeline-0.0.11.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/LICENSE +0 -0
- {ChessAnalysisPipeline-0.0.11.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/entry_points.txt +0 -0
- {ChessAnalysisPipeline-0.0.11.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/top_level.txt +0 -0
CHAP/utils/parfile.py
CHANGED
|
@@ -99,15 +99,7 @@ class ParFile():
|
|
|
99
99
|
'data_type': 'smb_par'}
|
|
100
100
|
for dim in par_dims] + other_dims
|
|
101
101
|
}
|
|
102
|
-
|
|
103
|
-
map_size = np.prod(map_config.shape)
|
|
104
|
-
if map_size != len(good_scans):
|
|
105
|
-
raise ValueError(
|
|
106
|
-
f'{self.par_file} has {len(good_scans)} good scans, '
|
|
107
|
-
+ 'but size of map along '
|
|
108
|
-
+ ', '.join([dim['name'] for dim in par_dims + other_dims])
|
|
109
|
-
+ f' is {map_size}.')
|
|
110
|
-
return map_config
|
|
102
|
+
return MapConfig(**map_config)
|
|
111
103
|
|
|
112
104
|
def good_scan_numbers(self, good_col_name='1/0'):
|
|
113
105
|
"""Return the numbers of scans marked with a "1" in the
|
CHAP/utils/scanparsers.py
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
# System modules
|
|
6
6
|
from csv import reader
|
|
7
7
|
from fnmatch import filter as fnmatch_filter
|
|
8
|
+
from functools import cache
|
|
8
9
|
from json import load
|
|
9
10
|
import os
|
|
10
11
|
import re
|
|
@@ -48,7 +49,12 @@ class ScanParser:
|
|
|
48
49
|
|
|
49
50
|
self._detector_data_path = None
|
|
50
51
|
|
|
51
|
-
|
|
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
|
+
|
|
52
58
|
return (f'{self.__class__.__name__}'
|
|
53
59
|
f'({self.spec_file_name}, {self.scan_number}) '
|
|
54
60
|
f'-- {self.spec_command}')
|
|
@@ -359,7 +365,7 @@ class SMBScanParser(ScanParser):
|
|
|
359
365
|
|
|
360
366
|
if par_dict is None:
|
|
361
367
|
raise RuntimeError(f'{self.scan_title}: could not find scan pars '
|
|
362
|
-
'for scan number {self.scan_number}')
|
|
368
|
+
f'for scan number {self.scan_number}')
|
|
363
369
|
return par_dict
|
|
364
370
|
|
|
365
371
|
def get_counter_gain(self, counter_name):
|
|
@@ -526,7 +532,17 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
526
532
|
|
|
527
533
|
def get_spec_scan_motor_mnes(self):
|
|
528
534
|
if self.spec_macro == 'flymesh':
|
|
529
|
-
|
|
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)
|
|
530
546
|
if self.spec_macro in ('flyscan', 'ascan'):
|
|
531
547
|
return (self.spec_args[0],)
|
|
532
548
|
if self.spec_macro in ('tseries', 'loopscan'):
|
|
@@ -536,12 +552,26 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
536
552
|
|
|
537
553
|
def get_spec_scan_motor_vals(self):
|
|
538
554
|
if self.spec_macro == 'flymesh':
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
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)
|
|
545
575
|
return (fast_mot_vals, slow_mot_vals)
|
|
546
576
|
if self.spec_macro in ('flyscan', 'ascan'):
|
|
547
577
|
mot_vals = np.linspace(float(self.spec_args[1]),
|
|
@@ -555,8 +585,16 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
555
585
|
|
|
556
586
|
def get_spec_scan_shape(self):
|
|
557
587
|
if self.spec_macro == 'flymesh':
|
|
558
|
-
fast_mot_npts = int(self.spec_args[3])+1
|
|
559
|
-
|
|
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
|
|
560
598
|
return (fast_mot_npts, slow_mot_npts)
|
|
561
599
|
if self.spec_macro in ('flyscan', 'ascan'):
|
|
562
600
|
mot_npts = int(self.spec_args[3])+1
|
|
@@ -567,7 +605,15 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
567
605
|
f'for scans of type {self.spec_macro}')
|
|
568
606
|
|
|
569
607
|
def get_spec_scan_dwell(self):
|
|
570
|
-
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'):
|
|
571
617
|
return float(self.spec_args[4])
|
|
572
618
|
if self.spec_macro in ('tseries', 'loopscan'):
|
|
573
619
|
return float(self.spec_args[1])
|
|
@@ -578,6 +624,27 @@ class FMBLinearScanParser(LinearScanParser, FMBScanParser):
|
|
|
578
624
|
return os.path.join(self.scan_path, self.scan_title)
|
|
579
625
|
|
|
580
626
|
|
|
627
|
+
|
|
628
|
+
@cache
|
|
629
|
+
def list_fmb_saxswaxs_detector_files(detector_data_path, detector_prefix):
|
|
630
|
+
"""Return a sorted list of all data files for the given detector
|
|
631
|
+
in the given directory. This function is cached to improve
|
|
632
|
+
performace for carrying our full FAMB SAXS/WAXS data-processing
|
|
633
|
+
workflows.
|
|
634
|
+
|
|
635
|
+
:param detector_data_path: directory in which to look for detector
|
|
636
|
+
data files
|
|
637
|
+
:type detector_data_path: str
|
|
638
|
+
:param detector_prefix: detector name to list files for
|
|
639
|
+
:type detector_prefix: str
|
|
640
|
+
:return: list of detector filenames
|
|
641
|
+
:rtype: list[str]
|
|
642
|
+
"""
|
|
643
|
+
return sorted(
|
|
644
|
+
[f for f in os.listdir(detector_data_path)
|
|
645
|
+
if detector_prefix in f
|
|
646
|
+
and not f.endswith('.log')])
|
|
647
|
+
|
|
581
648
|
class FMBSAXSWAXSScanParser(FMBLinearScanParser):
|
|
582
649
|
"""Concrete implementation of a class representing a scan taken
|
|
583
650
|
with the typical SAXS/WAXS setup at FMB.
|
|
@@ -587,20 +654,10 @@ class FMBSAXSWAXSScanParser(FMBLinearScanParser):
|
|
|
587
654
|
return f'{self.scan_name}_{self.scan_number:03d}'
|
|
588
655
|
|
|
589
656
|
def get_detector_data_file(self, detector_prefix, scan_step_index:int):
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
if len(file_indices) == 0:
|
|
595
|
-
file_indices = ['000']
|
|
596
|
-
file_name = f'{self.scan_name}_{detector_prefix}_' \
|
|
597
|
-
f'{self.scan_number:03d}_{"_".join(file_indices)}.tiff'
|
|
598
|
-
file_name_full = os.path.join(self.detector_data_path, file_name)
|
|
599
|
-
if os.path.isfile(file_name_full):
|
|
600
|
-
return file_name_full
|
|
601
|
-
raise RuntimeError(f'{self.scan_title}: could not find detector image '
|
|
602
|
-
f'file for detector {detector_prefix} scan step '
|
|
603
|
-
f'({scan_step})')
|
|
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])
|
|
604
661
|
|
|
605
662
|
def get_detector_data(self, detector_prefix, scan_step_index:int):
|
|
606
663
|
image_file = self.get_detector_data_file(detector_prefix,
|
|
@@ -783,7 +840,17 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
783
840
|
with the typical tomography setup at FMB.
|
|
784
841
|
"""
|
|
785
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
|
+
|
|
786
851
|
def get_spec_scan_npts(self):
|
|
852
|
+
if hasattr(self, '_rams4_args'):
|
|
853
|
+
return 1+int(self._rams4_args[2])
|
|
787
854
|
if self.spec_macro == 'flyscan':
|
|
788
855
|
if len(self.spec_args) == 2:
|
|
789
856
|
return 1+int(self.spec_args[0])
|
|
@@ -792,12 +859,12 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
792
859
|
raise RuntimeError(f'{self.scan_title}: cannot obtain number of '
|
|
793
860
|
f'points from {self.spec_macro} with arguments '
|
|
794
861
|
f'{self.spec_args}')
|
|
795
|
-
|
|
796
|
-
if len(self.spec_args) == 5:
|
|
797
|
-
return int(self.spec_args[3])
|
|
798
|
-
raise RuntimeError(f'{self.scan_title}: cannot obtain number of '
|
|
799
|
-
f'points from {self.spec_macro} with arguments '
|
|
800
|
-
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}')
|
|
801
868
|
raise RuntimeError(f'{self.scan_title}: cannot determine rotation '
|
|
802
869
|
f' angles for scans of type {self.spec_macro}')
|
|
803
870
|
|
|
@@ -805,21 +872,10 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
805
872
|
return 0
|
|
806
873
|
|
|
807
874
|
def get_starting_image_offset(self):
|
|
875
|
+
if hasattr(self, '_rams4_args'):
|
|
876
|
+
return int(self.spec_args[0]) - self.spec_scan_npts
|
|
808
877
|
if self.spec_macro == 'flyscan':
|
|
809
|
-
# if len(self.spec_args) == 2:
|
|
810
|
-
# return 1
|
|
811
|
-
# if len(self.spec_args) == 5:
|
|
812
|
-
# return 1
|
|
813
878
|
return 1
|
|
814
|
-
# raise RuntimeError(f'{self.scan_title}: cannot obtain starting '
|
|
815
|
-
# f'image offset {self.spec_macro} with arguments'
|
|
816
|
-
# f' {self.spec_args}')
|
|
817
|
-
# elif self.spec_macro == 'ascan':
|
|
818
|
-
# if len(self.spec_args) == 5:
|
|
819
|
-
# return 0
|
|
820
|
-
# raise RuntimeError(f'{self.scan_title}: cannot obtain starting '
|
|
821
|
-
# f'image offset {self.spec_macro} with arguments'
|
|
822
|
-
# f' {self.spec_args}')
|
|
823
879
|
raise RuntimeError(f'{self.scan_title}: cannot determine starting '
|
|
824
880
|
f'image offset for scans of type {self.spec_macro}')
|
|
825
881
|
|
|
@@ -845,8 +901,6 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
845
901
|
if scan_step_index is None:
|
|
846
902
|
detector_data = h5_file['/entry/instrument/detector/data'][
|
|
847
903
|
self.starting_image_offset:]
|
|
848
|
-
# sum_det = list(np.sum(detector_data, (1,2)))
|
|
849
|
-
# print(f'\n\nsum scanparser ({len(sum_det)}):\n{sum_det}')
|
|
850
904
|
elif isinstance(scan_step_index, int):
|
|
851
905
|
detector_data = h5_file['/entry/instrument/detector/data'][
|
|
852
906
|
self.starting_image_offset+scan_step_index]
|
|
@@ -863,10 +917,8 @@ class FMBRotationScanParser(RotationScanParser, FMBScanParser):
|
|
|
863
917
|
def get_detector_data(self, detector_prefix, scan_step_index=None):
|
|
864
918
|
try:
|
|
865
919
|
# Detector files in h5 format
|
|
866
|
-
# print('data in h5 file')
|
|
867
920
|
detector_data = self.get_all_detector_data_in_file(
|
|
868
921
|
detector_prefix, scan_step_index)
|
|
869
|
-
# print(f'detector_data {detector_prefix} {scan_step_index}:\n{detector_data.shape}')
|
|
870
922
|
except:
|
|
871
923
|
# Detector files in tiff format
|
|
872
924
|
if scan_step_index is None:
|
|
@@ -989,19 +1041,16 @@ class SMBRotationScanParser(RotationScanParser, SMBScanParser):
|
|
|
989
1041
|
f'file for scan step ({scan_step_index})')
|
|
990
1042
|
|
|
991
1043
|
def get_detector_data(self, detector_prefix, scan_step_index=None):
|
|
992
|
-
# print(f'\n\nin get_detector_data: {detector_prefix} {scan_step_index}')
|
|
993
1044
|
if scan_step_index is None:
|
|
994
1045
|
detector_data = []
|
|
995
1046
|
for index in range(self.spec_scan_npts):
|
|
996
1047
|
detector_data.append(
|
|
997
1048
|
self.get_detector_data(detector_prefix, index))
|
|
998
1049
|
detector_data = np.asarray(detector_data)
|
|
999
|
-
# print(f'detector_data shape {type(detector_data)} {detector_data.shape}:\n{detector_data}')
|
|
1000
1050
|
elif isinstance(scan_step_index, int):
|
|
1001
1051
|
image_file = self.get_detector_data_file(scan_step_index)
|
|
1002
1052
|
with TiffFile(image_file) as tiff_file:
|
|
1003
1053
|
detector_data = tiff_file.asarray()
|
|
1004
|
-
# print(f'\t{scan_step_index} {image_file} {np.sum(np.asarray(detector_data))}')
|
|
1005
1054
|
elif (isinstance(scan_step_index, (list, tuple))
|
|
1006
1055
|
and len(scan_step_index) == 2):
|
|
1007
1056
|
detector_data = []
|
|
@@ -1,23 +1,23 @@
|
|
|
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
|
-
CHAP/common/models/map.py,sha256=
|
|
15
|
+
CHAP/common/models/map.py,sha256=YIDojY_bgXS4k4GFOpmzo__yi7IsXl1mCIquTBS5srA,38280
|
|
16
16
|
CHAP/edd/__init__.py,sha256=w3qmOjaoeiY69pf0ombi6TPRHcm60_T3sbTms5393pQ,422
|
|
17
|
-
CHAP/edd/models.py,sha256=
|
|
18
|
-
CHAP/edd/processor.py,sha256=
|
|
17
|
+
CHAP/edd/models.py,sha256=60xqOyClZefLngLFLN2lHM9c0UQKti8ZTylj5h9pJek,35075
|
|
18
|
+
CHAP/edd/processor.py,sha256=s2w7qqcn0ajld6QBy3uMg8PzrE-Re0DR7yCt7330qkQ,56335
|
|
19
19
|
CHAP/edd/reader.py,sha256=O0KeZcqACsZ8ngrliPU6I3u8SeQT0Aq866jCTbruXqc,94
|
|
20
|
-
CHAP/edd/utils.py,sha256=
|
|
20
|
+
CHAP/edd/utils.py,sha256=9K_OnSUNcRL_oLDqivXkqbwbxE9HmP1cXf-6vkkPDxI,35095
|
|
21
21
|
CHAP/edd/writer.py,sha256=Y1CXWMRU87XeeDp4g4-sUgPP2UbCguYZUR_Cg5Ci6l8,94
|
|
22
22
|
CHAP/inference/__init__.py,sha256=GwpEKEMHY1-3AE7HWKBdBz_i7N1sz7xwve6y9tZ7Skk,263
|
|
23
23
|
CHAP/inference/processor.py,sha256=TYYPtZ3YlZS1kgvGr6I_9RvSaR0kn9PKL98A3QwqeDI,2065
|
|
@@ -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
|
-
CHAP/utils/fit.py,sha256=
|
|
41
|
-
CHAP/utils/general.py,sha256=
|
|
40
|
+
CHAP/utils/fit.py,sha256=VEhqAkNqkDpjBQ_kbOfGlNCEwmaPCh8RBc5SxHUy-OM,127878
|
|
41
|
+
CHAP/utils/general.py,sha256=E1aKdoIEZCIDJoFGmOqSn0rRRA1rfbpImCmzhhyRGfY,67565
|
|
42
42
|
CHAP/utils/material.py,sha256=NnLHAin3PrDxZiG6of8v7vFma0nAeOIRZJuXxSN_xj8,11495
|
|
43
|
-
CHAP/utils/parfile.py,sha256=
|
|
44
|
-
CHAP/utils/scanparsers.py,sha256=
|
|
43
|
+
CHAP/utils/parfile.py,sha256=GxBWG6EVKQnV1I_r_m4nfJrCb0VGAn6tjEfuxVTg-aA,7227
|
|
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.11.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{ChessAnalysisPipeline-0.0.11.dist-info → ChessAnalysisPipeline-0.0.13.dist-info}/top_level.txt
RENAMED
|
File without changes
|