pogucam 0.1.14__py3-none-any.whl → 0.1.16__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.
- pogucam/explore_u24_uni.py +180 -25
- {pogucam-0.1.14.dist-info → pogucam-0.1.16.dist-info}/METADATA +1 -1
- {pogucam-0.1.14.dist-info → pogucam-0.1.16.dist-info}/RECORD +5 -5
- {pogucam-0.1.14.dist-info → pogucam-0.1.16.dist-info}/WHEEL +0 -0
- {pogucam-0.1.14.dist-info → pogucam-0.1.16.dist-info}/entry_points.txt +0 -0
pogucam/explore_u24_uni.py
CHANGED
@@ -91,8 +91,8 @@ import datetime as dt
|
|
91
91
|
import cv2
|
92
92
|
import threading
|
93
93
|
|
94
|
-
|
95
|
-
|
94
|
+
import glob # look for bg fg
|
95
|
+
import shutil
|
96
96
|
|
97
97
|
istrip = 0
|
98
98
|
UPDATE_INTERVAL = 1
|
@@ -104,6 +104,69 @@ FILE_USERPASS = "~/.config/flashcam/.flashcam_upw" # will extend
|
|
104
104
|
FILE_REDCROSS0 = "~/.config/pogucam/crossred" # will extend
|
105
105
|
FILE_REDCROSS = "~/.config/pogucam/crossred" # will extend
|
106
106
|
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
# ================================================================================
|
112
|
+
#
|
113
|
+
# --------------------------------------------------------------------------------
|
114
|
+
|
115
|
+
|
116
|
+
# ================================================================================
|
117
|
+
#
|
118
|
+
# --------------------------------------------------------------------------------
|
119
|
+
|
120
|
+
|
121
|
+
# ================================================================================
|
122
|
+
#
|
123
|
+
# --------------------------------------------------------------------------------
|
124
|
+
|
125
|
+
|
126
|
+
# ================================================================================
|
127
|
+
#
|
128
|
+
# --------------------------------------------------------------------------------
|
129
|
+
|
130
|
+
|
131
|
+
# def parse_timestamp_in_saved_file(filename):
|
132
|
+
# # Extract timestamp part YYmmdd_HHMMSS.ff from filename
|
133
|
+
# parts = filename.split('_')
|
134
|
+
# if len(parts) < 5:
|
135
|
+
# return None
|
136
|
+
# timestamp_str = parts[3] + '_' + parts[4] # YYmmdd_HHMMSS.ff
|
137
|
+
# try:
|
138
|
+
# # Parse ignoring fractional seconds for sorting
|
139
|
+
# dt = datetime.strptime(timestamp_str.split('.')[0], "%Y%m%d_%H%M%S")
|
140
|
+
# return dt
|
141
|
+
# except ValueError:
|
142
|
+
# return None
|
143
|
+
|
144
|
+
def find_latest_bg_or_fg(new_name, foreground=False):
|
145
|
+
#
|
146
|
+
tag = "background"
|
147
|
+
if foreground:
|
148
|
+
tag = "foreground"
|
149
|
+
base, ext = os.path.splitext(new_name) #
|
150
|
+
parts = base.split('_')
|
151
|
+
pattern = f"{parts[0]}_{parts[1]}_{parts[2]}_"
|
152
|
+
copyfile = f"{pattern}{tag}{ext}"
|
153
|
+
#if not base.endswith(tag):
|
154
|
+
# print("Filename must end with '_background' before extension")
|
155
|
+
# return
|
156
|
+
#base_prefix = base[:-11] # remove '_background'
|
157
|
+
pattern2 = f"{pattern}20*{ext}" # 20ieth century
|
158
|
+
files = glob.glob(pattern2)
|
159
|
+
lastfile = None
|
160
|
+
if not files:
|
161
|
+
print("D... No matching files found for", pattern2)
|
162
|
+
else:
|
163
|
+
lastfile = sorted(files)[-1]
|
164
|
+
print(f"D... {len(files)} possible files" , lastfile)
|
165
|
+
if lastfile is None: print(f"{fg.red}X... no suitable saved file for {tag} ", fg.default)
|
166
|
+
return lastfile,copyfile
|
167
|
+
|
168
|
+
|
169
|
+
|
107
170
|
# ================================================================================
|
108
171
|
# RA "00 12 45.2"
|
109
172
|
# --------------------------------------------------------------------------------
|
@@ -588,7 +651,14 @@ class StreamWidget(QLabel):
|
|
588
651
|
# -------------------------------------------------
|
589
652
|
#self.level2_buffer = None
|
590
653
|
#self.level2_buffer_max_size = 10
|
591
|
-
|
654
|
+
#---------------------------------------------
|
655
|
+
self.filename_background = None
|
656
|
+
self.filename_foreground = None
|
657
|
+
self.image_background = None
|
658
|
+
self.image_foreground = None
|
659
|
+
self.l_timelaps = False
|
660
|
+
self.l_timelaps_seconds = 16 # initial 2^4
|
661
|
+
self.l_timelaps_last = dt.datetime.now() #
|
592
662
|
# --------------------------------- I put it at the end so that it knows all attributes
|
593
663
|
self.update_image()
|
594
664
|
|
@@ -613,7 +683,8 @@ class StreamWidget(QLabel):
|
|
613
683
|
#print(self.internet_not_device, self.internet_not_device)
|
614
684
|
# -------------------------------------------------------------- ACCUM -----------------
|
615
685
|
if self.internet_not_device:
|
616
|
-
|
686
|
+
#### every internet call do here
|
687
|
+
#### but skip anyting with ACCUM ACCUMTXT !!!!!!!!
|
617
688
|
if ('accumtxt' in data) and int(data['accumtxt']) == 1: # skip Loop 1
|
618
689
|
print("D... LOOP 1 skipped for remote send command - for some reason I send out 0 only,not 1")
|
619
690
|
pass
|
@@ -622,7 +693,7 @@ class StreamWidget(QLabel):
|
|
622
693
|
if val == 0: val = 1 # trying to fix
|
623
694
|
if len(self.FABuffer) != val and val > 0:
|
624
695
|
self.FABuffer.set_max_frames(val)
|
625
|
-
else
|
696
|
+
else:#### HERE REALLY ######--------------------------------------------------
|
626
697
|
post_response = requests.post(url=self.post_addr, data=data )
|
627
698
|
else:
|
628
699
|
# --------------------------------------------------------- JUST LOCAL DEVICE ----------------
|
@@ -965,7 +1036,7 @@ class StreamWidget(QLabel):
|
|
965
1036
|
SAV = f" "
|
966
1037
|
if self.saving_all:
|
967
1038
|
SAV = f"SAVING"
|
968
|
-
LAPS = f"
|
1039
|
+
LAPS = f"LAPS:{self.saving_laps:3d}"
|
969
1040
|
#
|
970
1041
|
FIT = f" "
|
971
1042
|
if self.saving_fits_only:
|
@@ -988,6 +1059,10 @@ class StreamWidget(QLabel):
|
|
988
1059
|
bufshow = "(SUM)"
|
989
1060
|
else:
|
990
1061
|
bufshow = "( )"
|
1062
|
+
bgfg1 = " "
|
1063
|
+
bgfg2 = " "
|
1064
|
+
if self.image_foreground is not None: bgfg1 = "FG"
|
1065
|
+
if self.image_background is not None: bgfg2 = "BG"
|
991
1066
|
|
992
1067
|
BUF = f"BUF{bufshow}={cur_size:3d}/{max_size:3d} {total_size/1024/1024:5.0f} MB"
|
993
1068
|
#
|
@@ -995,9 +1070,11 @@ class StreamWidget(QLabel):
|
|
995
1070
|
#
|
996
1071
|
#overtext = f"{self.frame_time} # {self.frame_num} # {self.l_frame_num:6d} # {RXT} . {ZOO} . {ROO} . {LGA} . {SAV} {FIT} . {BUF}. {LAPS}"
|
997
1072
|
# SAVING is already red
|
998
|
-
overtext = f"{self.frame_time} # {self.frame_num} # {self.l_frame_num:6d} # {RXT} . {ZOO} . {ROO} . {LGA} . {FIT} . {BUF}. {LAPS}"
|
1073
|
+
#overtext = f"{self.frame_time} # {self.frame_num} # {self.l_frame_num:6d} # {RXT} . {ZOO} . {ROO} . {LGA} . {FIT} . {BUF}. {LAPS}"
|
999
1074
|
# ROTATE IS LOCAL
|
1000
|
-
overtext = f"{self.frame_time} # {self.frame_num} # {self.l_frame_num:6d} # {RXT} . {ZOO} . {LGA} . {FIT} . {BUF}. {LAPS}"
|
1075
|
+
#overtext = f"{self.frame_time} # {self.frame_num} # {self.l_frame_num:6d} # {RXT} . {ZOO} . {LGA} . {FIT} . {BUF}. {LAPS}"
|
1076
|
+
# I add BG-FG
|
1077
|
+
overtext = f"{self.frame_time} # {self.frame_num} # {self.l_frame_num:6d} # {RXT} . {ZOO} . {LGA} . {FIT} . {bgfg1}{bgfg2} . {BUF}. {LAPS}"
|
1001
1078
|
#
|
1002
1079
|
position = ( 0, selfimg.shape[0]-1 ) # 480 on x-axis
|
1003
1080
|
#
|
@@ -1032,6 +1109,7 @@ class StreamWidget(QLabel):
|
|
1032
1109
|
# ----------------------------------------------------------------------
|
1033
1110
|
|
1034
1111
|
def prepare_save(self, png=False, time_tag=None):
|
1112
|
+
# ..... self.saving_fits_only is not necessary, handled elsewhere
|
1035
1113
|
dir2create = os.path.expanduser("~/DATA/")
|
1036
1114
|
if not os.path.isdir(os.path.expanduser(dir2create)):
|
1037
1115
|
print(f"D... trying to create directory {dir2create} for saving")
|
@@ -1039,12 +1117,13 @@ class StreamWidget(QLabel):
|
|
1039
1117
|
os.mkdir(os.path.expanduser(dir2create))
|
1040
1118
|
now = time_tag
|
1041
1119
|
if time_tag is None:
|
1042
|
-
now = dt.datetime.now().strftime( '%Y%m%d_%H%M%
|
1120
|
+
now = dt.datetime.now().strftime( '%Y%m%d_%H%M%S.%f')[:-4] # dot fraction - should be conform with other parts
|
1043
1121
|
else:
|
1044
1122
|
# 20:23:46.12
|
1045
1123
|
now = dt.datetime.now().strftime( '%Y%m%d_')+now.replace(":", "")
|
1046
1124
|
ext = "jpg"
|
1047
1125
|
if png:ext = "png"
|
1126
|
+
#if self.saving_fits_only:ext = "fits" # not necessary here...
|
1048
1127
|
host = socket.gethostname()
|
1049
1128
|
murl = ""
|
1050
1129
|
if self.url.find("http://") >= 0:
|
@@ -1160,7 +1239,9 @@ class StreamWidget(QLabel):
|
|
1160
1239
|
dumpbuffer:
|
1161
1240
|
use_buffer is None OR THE BUFFER TO USE (level2)
|
1162
1241
|
"""
|
1163
|
-
fname1 =
|
1242
|
+
fname1 = fname
|
1243
|
+
if fname is None:
|
1244
|
+
fname1 = self.prepare_save( time_tag=time_tag)
|
1164
1245
|
if not silent: print(fname1)
|
1165
1246
|
#---------- FITS *****
|
1166
1247
|
if use_fits: # --------- FITS CASE --- more complex -------------------------------
|
@@ -1516,6 +1597,12 @@ class StreamWidget(QLabel):
|
|
1516
1597
|
ret_val = False
|
1517
1598
|
if True:# self.img.shape == self.frame.shape:
|
1518
1599
|
self.img = self.frame.copy()
|
1600
|
+
if not self.image_background is None:
|
1601
|
+
#self.img = self.img - self.image_background
|
1602
|
+
self.img = cv2.subtract(self.img , self.image_background )
|
1603
|
+
if not self.image_foreground is None:
|
1604
|
+
#self.img = self.img + self.image_foreground
|
1605
|
+
self.img = 0.5*self.img + 0.5*self.image_foreground
|
1519
1606
|
if stripes: # These are thin gray
|
1520
1607
|
#self.vcr_pal_style(["NO SIGNAL"])
|
1521
1608
|
for y in range(0, self.img.shape[0], 16):
|
@@ -1989,9 +2076,15 @@ class StreamWidget(QLabel):
|
|
1989
2076
|
# print(fg.red, f"L{self.saving_laps}{fitag}", fg.default, end="")
|
1990
2077
|
# self.saving_laps_last_save = now
|
1991
2078
|
# self.save_img( time_tag=self.frame_time , savingjpg=False) #
|
1992
|
-
|
2079
|
+
DO_TIMELAPS = False
|
2080
|
+
if self.l_timelaps:
|
2081
|
+
if dt.datetime.now() > self.l_timelaps_last + dt.timedelta(seconds=self.l_timelaps_seconds):
|
2082
|
+
print(f"\ni... {fg.cyan} TIMELAPS saving now {fg.default} ... every {fg.orange} {self.l_timelaps_seconds} s. {fg.default}")
|
2083
|
+
self.l_timelaps_last = dt.datetime.now()
|
2084
|
+
DO_TIMELAPS = True
|
1993
2085
|
# ---- just save once -------------------- ************ "s" ***********
|
1994
|
-
if self.saving_once:
|
2086
|
+
if self.saving_once or DO_TIMELAPS:
|
2087
|
+
DO_TIMELAPS = False
|
1995
2088
|
# jpg and NO AVG --------- No difference show_accum_not_showaccum if frabuffer ==1
|
1996
2089
|
if (len(self.FABuffer) < 2) and (not self.l_show_accum) and (not self.saving_fits_only):
|
1997
2090
|
# no bufffer no loopshow no fits
|
@@ -2068,6 +2161,7 @@ class StreamWidget(QLabel):
|
|
2068
2161
|
|
2069
2162
|
|
2070
2163
|
# ---- save ALL ----------------- -------------------------------------------- ************ "shift-s" ***********
|
2164
|
+
#
|
2071
2165
|
# ---- save ALL ----------------- -------------------------------------------- ************ "shift-s" ***********
|
2072
2166
|
if self.saving_all: # --------------- Shift-S------- ALWAYS PUT RED
|
2073
2167
|
|
@@ -2260,20 +2354,26 @@ class StreamWidget(QLabel):
|
|
2260
2354
|
print('kstars (but press revert)')
|
2261
2355
|
print()
|
2262
2356
|
elif (parts_set == {'Ctrl'}) :
|
2263
|
-
|
2264
|
-
self.saving_all = False
|
2265
|
-
if self.saving_fits_only:
|
2266
|
-
print(f"i... {fg.orange}FITS_ONLY set to {self.saving_fits_only}{fg.default} (interval is {self.FITS_INTERVAL_SECONDS}) ; but 'SAVING_all' SET TO ", self.saving_all)
|
2267
|
-
else:
|
2268
|
-
print(f"i... FITS_ONLY set to {fg.cyan}{self.saving_fits_only}{fg.default} (interval is {self.FITS_INTERVAL_SECONDS}) ; but 'SAVING_all' SET TO ", self.saving_all)
|
2357
|
+
pass
|
2269
2358
|
|
2270
2359
|
elif (parts_set == {'Ctrl', 'Shift'}) :
|
2360
|
+
# --------------
|
2271
2361
|
self.saving_jpg = not self.saving_jpg
|
2272
2362
|
self.saving_all = False
|
2273
2363
|
if self.saving_jpg:
|
2274
2364
|
print(f"i... {fg.green}SAVING_JPG set to {self.saving_jpg}{fg.default} (interval is {self.FITS_INTERVAL_SECONDS}) ; but 'SAVING_all' SET TO ", self.saving_all)
|
2275
2365
|
else:
|
2276
2366
|
print(f"i... {fg.orange}PNG!{fg.default} SAVING_JPG set to {fg.cyan}{self.saving_jpg}{fg.default} (interval is {self.FITS_INTERVAL_SECONDS}) ; but 'SAVING_all' SET TO ", self.saving_all)
|
2367
|
+
elif (parts_set == {'Alt'}) :
|
2368
|
+
# FITS / JPEG saving !!!
|
2369
|
+
self.saving_fits_only = not self.saving_fits_only
|
2370
|
+
self.saving_all = False
|
2371
|
+
if self.saving_fits_only:
|
2372
|
+
print(f"i... {fg.orange}FITS_ONLY set to {self.saving_fits_only}{fg.default} (interval is {self.FITS_INTERVAL_SECONDS}) ; but 'SAVING_all' SET TO ", self.saving_all)
|
2373
|
+
else:
|
2374
|
+
print(f"i... FITS_ONLY set to {fg.cyan}{self.saving_fits_only}{fg.default} (interval is {self.FITS_INTERVAL_SECONDS}) ; but 'SAVING_all' SET TO ", self.saving_all)
|
2375
|
+
|
2376
|
+
|
2277
2377
|
|
2278
2378
|
# ------------------------------ xtend x2 ot switchres resolution--- x XRES SWITCH - REMOTE - **SEND_COMMAND**
|
2279
2379
|
if (key == Qt.Key.Key_X):
|
@@ -2463,7 +2563,7 @@ class StreamWidget(QLabel):
|
|
2463
2563
|
elif (parts_set == {'Ctrl'}) :
|
2464
2564
|
print( "i... reset position red cross")
|
2465
2565
|
self.redcross = [0, 0]
|
2466
|
-
# ----------------------------------------------------------------- i integrate accumulate - LOCAL ONLY !
|
2566
|
+
# ----------------------------------------------------------------- i integrate accumulate - LOCAL ONLY ! tricky**SEND_COMMAND**
|
2467
2567
|
if (key == Qt.Key.Key_I): # i:inc shift-i:dec Ctrl-i:reset Ctrl-Shift-i:watch Alt-i: SUM vs. AVG
|
2468
2568
|
# 4.6GB / 1000 640x480
|
2469
2569
|
if ( len(parts_set) == 0):
|
@@ -2505,18 +2605,49 @@ class StreamWidget(QLabel):
|
|
2505
2605
|
# ----------------------------------------------------------------- b BACKGROUND - REMOTE **SEND_COMMAND**
|
2506
2606
|
if (key == Qt.Key.Key_B):
|
2507
2607
|
if ( len(parts_set) == 0):
|
2508
|
-
self.send_command( data= {"subbg": "SUBBG"})
|
2608
|
+
#self.send_command( data= {"subbg": "SUBBG"})
|
2609
|
+
fname1 = self.prepare_save( time_tag=None)
|
2610
|
+
#print(fg.green, f"D... looking for like {fname1}", fg.default)
|
2611
|
+
bgfilename, copyname= find_latest_bg_or_fg(fname1, foreground=False)
|
2612
|
+
self.filename_background = copyname
|
2613
|
+
if os.path.exists(self.filename_background):
|
2614
|
+
print(f"{fg.green}D... BG= {self.filename_background}", fg.default)
|
2615
|
+
self.image_background = cv2.imread(self.filename_background)
|
2616
|
+
pass
|
2509
2617
|
elif (parts_set == {'Shift'}) :
|
2510
|
-
self.
|
2618
|
+
fname1 = self.prepare_save( time_tag=None)
|
2619
|
+
#print(fg.green, f"D... looking for like {fname1}", fg.default)
|
2620
|
+
bgfilename, copyname= find_latest_bg_or_fg(fname1, foreground=False)
|
2621
|
+
if not bgfilename is None:
|
2622
|
+
print(f"{fg.green}D... copying:", bgfilename, copyname, fg.default)
|
2623
|
+
shutil.copy(bgfilename, copyname)
|
2624
|
+
#self.send_command( data= {"savebg": "SAVEBG"})
|
2625
|
+
pass
|
2511
2626
|
elif (parts_set == {'Ctrl'}) :
|
2627
|
+
self.filename_background = None
|
2628
|
+
self.image_background = None
|
2512
2629
|
pass
|
2513
|
-
# ----------------------------------------------------------------- f FOREGROUND -
|
2630
|
+
# ----------------------------------------------------------------- f FOREGROUND - LOCAL ONLY !
|
2514
2631
|
if (key == Qt.Key.Key_F):
|
2515
2632
|
if ( len(parts_set) == 0):
|
2516
|
-
self.send_command( data= {"mixfg": "MIXFG"})
|
2633
|
+
#self.send_command( data= {"mixfg": "MIXFG"})
|
2634
|
+
fname1 = self.prepare_save( time_tag=None)
|
2635
|
+
bgfilename, copyname= find_latest_bg_or_fg(fname1, foreground=True)
|
2636
|
+
self.filename_foreground = copyname
|
2637
|
+
if os.path.exists(self.filename_foreground):
|
2638
|
+
print(f"{fg.green}D... FG= {self.filename_foreground}", fg.default)
|
2639
|
+
self.image_foreground = cv2.imread(self.filename_foreground)
|
2517
2640
|
elif (parts_set == {'Shift'}) :
|
2518
|
-
self.send_command( data= {"savefg": "SAVEFG"})
|
2641
|
+
#self.send_command( data= {"savefg": "SAVEFG"})
|
2642
|
+
fname1 = self.prepare_save( time_tag=None)
|
2643
|
+
#print(fg.green, f"D... looking for like {fname1}", fg.default)
|
2644
|
+
bgfilename, copyname= find_latest_bg_or_fg(fname1, foreground=True)
|
2645
|
+
if not bgfilename is None:
|
2646
|
+
print(f"{fg.green}D... copying:", bgfilename, copyname, fg.default)
|
2647
|
+
shutil.copy(bgfilename, copyname)
|
2519
2648
|
elif (parts_set == {'Ctrl'}) :
|
2649
|
+
self.filename_foreground = None
|
2650
|
+
self.image_foreground = None
|
2520
2651
|
pass
|
2521
2652
|
|
2522
2653
|
# ----------------------------------------------------------------- r ROTATE - LOCAL ONLY !
|
@@ -2581,7 +2712,7 @@ class StreamWidget(QLabel):
|
|
2581
2712
|
self.setup("q") # quit-resetall
|
2582
2713
|
|
2583
2714
|
|
2584
|
-
# -----------------------------------------------------------------
|
2715
|
+
# ----------------------------------------------------------------- [ ] tests whatever
|
2585
2716
|
if (key == Qt.Key.Key_T):
|
2586
2717
|
if ( len(parts_set) == 0):
|
2587
2718
|
#self.send_command( data= {"gaint": "GAINT", "gaintxt": float(0.123)})
|
@@ -2594,6 +2725,30 @@ class StreamWidget(QLabel):
|
|
2594
2725
|
elif (parts_set == {'Ctrl'}) :
|
2595
2726
|
#self.send_command( data= {"expot": "EXPOT", "expotxt": float(-1.0)})
|
2596
2727
|
pass
|
2728
|
+
|
2729
|
+
# ----------------------------------------------------------------- [ ] tests whatever A timelaps LOCAL
|
2730
|
+
if (key == Qt.Key.Key_A):
|
2731
|
+
if ( len(parts_set) == 0):
|
2732
|
+
self.l_timelaps = True
|
2733
|
+
if self.l_timelaps_seconds == 0:
|
2734
|
+
self.l_timelaps_seconds = 1
|
2735
|
+
else:
|
2736
|
+
self.l_timelaps_seconds = self.l_timelaps_seconds * 2
|
2737
|
+
self.l_timelaps_last = dt.datetime.now()- dt.timedelta(seconds=self.l_timelaps_seconds)
|
2738
|
+
pass
|
2739
|
+
elif (parts_set == {'Shift'}) :
|
2740
|
+
if self.l_timelaps_seconds > 1:
|
2741
|
+
self.l_timelaps_seconds = int(self.l_timelaps_seconds / 2)
|
2742
|
+
else:
|
2743
|
+
self.l_timelaps_seconds = 1
|
2744
|
+
self.l_timelaps_last = dt.datetime.now()- dt.timedelta(seconds=self.l_timelaps_seconds)
|
2745
|
+
pass
|
2746
|
+
elif (parts_set == {'Ctrl'}) :
|
2747
|
+
self.l_timelaps = False
|
2748
|
+
print(f"{fg.cyan}i... NO TIMELAPS from now {fg.default}")
|
2749
|
+
pass
|
2750
|
+
elif (parts_set == {'Alt'}) :
|
2751
|
+
pass
|
2597
2752
|
# ----------------------------------------------------------------- t tests whatever REMOTE ! **SEND_COMMAND**
|
2598
2753
|
if (key == Qt.Key.Key_T):
|
2599
2754
|
if ( len(parts_set) == 0):
|
@@ -1,11 +1,11 @@
|
|
1
1
|
pogucam/__init__.py,sha256=Iij7VvXCrFPMtTia41mQ7LxFLaulf_fD5cb-AyjpUo0,53
|
2
2
|
pogucam/buffers.py,sha256=1JLkuenkHoA-K-uZAlNV7chHQDZLrspgT5_XOY-E-34,6692
|
3
|
-
pogucam/explore_u24_uni.py,sha256=
|
3
|
+
pogucam/explore_u24_uni.py,sha256=NmfRwRtejZGqm8FgAQwnzUyCmlYWEINztztiQwPD0Mc,134103
|
4
4
|
pogucam/installation.md,sha256=8qspiLlYjEBx5CedRfBU7Mm0A2pz0lfAnaupZyBm5Eo,128
|
5
5
|
pogucam/mqimr.py,sha256=f48gTXng5vM-1RiNPXSA-IvAc3y6WMStbvfQ8rUV7l0,1727
|
6
6
|
pogucam/mqims.py,sha256=_G8AdfrbTrkIm2MOsq3tFOBYpiD4o58JUIvnZt0Sm7A,3293
|
7
7
|
pogucam/text_write.py,sha256=hyRyA1M5z-pda963T-k0i8fvvAlv1p3YBTZtYNdOeoE,19304
|
8
|
-
pogucam-0.1.
|
9
|
-
pogucam-0.1.
|
10
|
-
pogucam-0.1.
|
11
|
-
pogucam-0.1.
|
8
|
+
pogucam-0.1.16.dist-info/METADATA,sha256=AxyuX54D4t4HzSrgoAakJXiWRb1nQhbRUFgi7ga_Uug,499
|
9
|
+
pogucam-0.1.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
10
|
+
pogucam-0.1.16.dist-info/entry_points.txt,sha256=-97N0LsXIR8h0rJMzIMuNeNwuY8LvPYPTqnXsuAnVsM,63
|
11
|
+
pogucam-0.1.16.dist-info/RECORD,,
|
File without changes
|
File without changes
|