radboy 0.0.665__py3-none-any.whl → 0.0.667__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 radboy might be problematic. Click here for more details.
- radboy/DB/Prompt.py +4 -0
- radboy/DB/SimpleScanner/SimpleScanner.py +451 -0
- radboy/DB/SimpleScanner/__init__.py +28 -0
- radboy/DB/__pycache__/Prompt.cpython-313.pyc +0 -0
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +1 -1
- radboy/TasksMode/Tasks.py +3 -1
- radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc +0 -0
- radboy/__init__.py +1 -1
- radboy/__pycache__/__init__.cpython-313.pyc +0 -0
- {radboy-0.0.665.dist-info → radboy-0.0.667.dist-info}/METADATA +1 -1
- {radboy-0.0.665.dist-info → radboy-0.0.667.dist-info}/RECORD +14 -12
- {radboy-0.0.665.dist-info → radboy-0.0.667.dist-info}/WHEEL +0 -0
- {radboy-0.0.665.dist-info → radboy-0.0.667.dist-info}/top_level.txt +0 -0
radboy/DB/Prompt.py
CHANGED
|
@@ -2453,10 +2453,14 @@ CMD's are not final until ended with {Fore.magenta}{hw_delim}{Style.reset}""")
|
|
|
2453
2453
|
{Fore.grey_70}** {Fore.light_steel_blue}{generate_cmds(startcmd=['util','diff','eq'],endCmd=['text ','txt'])} {Fore.light_green}compare 2 strings/text and return True or False{Style.reset}
|
|
2454
2454
|
{Fore.grey_70}** {Fore.light_steel_blue}{generate_cmds(startcmd=['util','diff','rules'],endCmd=['encounter-verify','ev'])} {Fore.light_green}confirm an encounter rules{Style.reset}
|
|
2455
2455
|
{Fore.grey_70}** {Fore.light_steel_blue}['letter','message']{Fore.light_green} Generate a displayable letter from a default format, allowing to return the text as colored, or plain output; if a return is not desired, continue to the last prompt. using curly-braces you may attempt to write small python code to be evaluated and used as text in the message/letter. This includes colors from Fore,Back, and Style.{Style.reset}
|
|
2456
|
+
{Fore.grey_70}** {Fore.light_steel_blue}{generate_cmds(startcmd=['simple','smpl'],endCmd=['scanner','scanr','scnnr','scnr'])} {Fore.light_green}a scanner recorder that only records the text,times scanned,and dtoe, and when when time permits, comment.{Style.reset}
|
|
2456
2457
|
'''
|
|
2457
2458
|
print(extra)
|
|
2458
2459
|
print(helpText)
|
|
2459
2460
|
continue
|
|
2461
|
+
elif cmd.lower() in generate_cmds(startcmd=['simple','smpl'],endCmd=['scanner','scanr','scnnr','scnr']):
|
|
2462
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).simple_scanner()
|
|
2463
|
+
continue
|
|
2460
2464
|
elif cmd.lower() in generate_cmds(startcmd=['util','checksum','cksm'],endCmd=['sha512 ','sha512']):
|
|
2461
2465
|
text=Control(func=FormBuilderMkText,ptext="Text: ",helpText="text for a checksum",data="str")
|
|
2462
2466
|
if text is None:
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
from . import *
|
|
2
|
+
|
|
3
|
+
@dataclass
|
|
4
|
+
class SimpleScan(BASE,Template):
|
|
5
|
+
__tablename__="SimpleScan"
|
|
6
|
+
ssid=Column(Integer,primary_key=True)
|
|
7
|
+
|
|
8
|
+
ScannedText=Column(String,default=None)
|
|
9
|
+
TimesScanned=Column(Float,default=0)
|
|
10
|
+
DTOE=Column(DateTime,default=datetime.now())
|
|
11
|
+
|
|
12
|
+
Note=Column(Text,default='')
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
try:
|
|
16
|
+
SimpleScan.metadata.create_all(ENGINE)
|
|
17
|
+
except Exception as e:
|
|
18
|
+
SimpleScan.__table__.drop(ENGINE)
|
|
19
|
+
SimpleScan.metadata.create_all(ENGINE)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class SimpleScanUi:
|
|
23
|
+
def fix_table(self):
|
|
24
|
+
SimpleScan.__table__.drop(ENGINE)
|
|
25
|
+
SimpleScan.metadata.create_all(ENGINE)
|
|
26
|
+
|
|
27
|
+
def scan_add(self,value=1):
|
|
28
|
+
default=False
|
|
29
|
+
ask_qty=Control(func=FormBuilderMkText,ptext=f"Ask For Qty Each Scan[False/True](default={default})",helpText="ask for a qty to add each time an item is selected",data="boolean")
|
|
30
|
+
if ask_qty is None:
|
|
31
|
+
return
|
|
32
|
+
elif ask_qty in ['NaN',]:
|
|
33
|
+
ask_qty=False
|
|
34
|
+
elif ask_qty in ['d',]:
|
|
35
|
+
ask_qty=default
|
|
36
|
+
|
|
37
|
+
if value is None:
|
|
38
|
+
value=Control(func=FormBuilderMkText,ptext="+/-:",helpText="How much to decrement or increment",data="float")
|
|
39
|
+
if value in [None,'NaN']:
|
|
40
|
+
return
|
|
41
|
+
elif value in ['d',]:
|
|
42
|
+
value=1
|
|
43
|
+
|
|
44
|
+
if value > 0:
|
|
45
|
+
inc="add/+"
|
|
46
|
+
elif value < 0:
|
|
47
|
+
inc="dec/minux/subtract/-"
|
|
48
|
+
else:
|
|
49
|
+
inc="equal/== 0"
|
|
50
|
+
with Session(ENGINE) as session:
|
|
51
|
+
while True:
|
|
52
|
+
scanText=Control(func=FormBuilderMkText,ptext="Barcode/Code/Text",helpText="whatever it is you are scanning, its just text.",data="string")
|
|
53
|
+
if scanText is None:
|
|
54
|
+
return
|
|
55
|
+
elif scanText.lower() in ['d','','nan']:
|
|
56
|
+
continue
|
|
57
|
+
else:
|
|
58
|
+
pass
|
|
59
|
+
results=session.query(SimpleScan).filter(SimpleScan.ScannedText.icontains(scanText)).all()
|
|
60
|
+
cta=len(results)
|
|
61
|
+
if cta < 1:
|
|
62
|
+
if ask_qty:
|
|
63
|
+
value=Control(func=FormBuilderMkText,ptext="+/-:",helpText="How much to decrement or increment",data="float")
|
|
64
|
+
if value in [None,'NaN']:
|
|
65
|
+
return
|
|
66
|
+
elif value in ['d',]:
|
|
67
|
+
value=1
|
|
68
|
+
else:
|
|
69
|
+
value=1
|
|
70
|
+
scanned=SimpleScan(ScannedText=scanText,DTOE=datetime.now(),TimesScanned=value)
|
|
71
|
+
session.add(scanned)
|
|
72
|
+
session.commit()
|
|
73
|
+
else:
|
|
74
|
+
while True:
|
|
75
|
+
try:
|
|
76
|
+
htext=[]
|
|
77
|
+
for num,i in enumerate(results):
|
|
78
|
+
htext.append(std_colorize(i,num,cta))
|
|
79
|
+
htext='\n'.join(htext)
|
|
80
|
+
print(htext)
|
|
81
|
+
selected=Control(func=FormBuilderMkText,ptext=f"{Fore.orange_red_1}DUPLICATE SELECT{Fore.light_yellow} Which indexes do you wish to {inc} {value}?",helpText=htext,data="list")
|
|
82
|
+
if selected in [None,'NAN','NaN']:
|
|
83
|
+
return
|
|
84
|
+
elif selected in ['d',]:
|
|
85
|
+
selected=[0,]
|
|
86
|
+
for i in selected:
|
|
87
|
+
try:
|
|
88
|
+
index=int(i)
|
|
89
|
+
if index_inList(index,results):
|
|
90
|
+
if ask_qty:
|
|
91
|
+
value=Control(func=FormBuilderMkText,ptext="+/-:",helpText="How much to decrement or increment",data="float")
|
|
92
|
+
if value in [None,'NaN']:
|
|
93
|
+
return
|
|
94
|
+
elif value in ['d',]:
|
|
95
|
+
value=1
|
|
96
|
+
results[index].TimesScanned+=value
|
|
97
|
+
session.commit()
|
|
98
|
+
except Exception as e:
|
|
99
|
+
print(e)
|
|
100
|
+
break
|
|
101
|
+
except Exception as e:
|
|
102
|
+
print(e)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def findAndUse2(self):
|
|
106
|
+
with Session(ENGINE) as session:
|
|
107
|
+
cmd=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{Fore.light_red}[FindAndUse2]{Fore.light_yellow}what cmd are your looking for?",helpText="type the cmd",data="string")
|
|
108
|
+
if cmd in ['d',None]:
|
|
109
|
+
return
|
|
110
|
+
else:
|
|
111
|
+
options=copy(self.options)
|
|
112
|
+
|
|
113
|
+
session.query(FindCmd).delete()
|
|
114
|
+
session.commit()
|
|
115
|
+
for num,k in enumerate(options):
|
|
116
|
+
stage=0
|
|
117
|
+
cmds=options[k]['cmds']
|
|
118
|
+
l=[]
|
|
119
|
+
l.extend(cmds)
|
|
120
|
+
l.append(options[k]['desc'])
|
|
121
|
+
cmdStr=' '.join(l)
|
|
122
|
+
cmd_string=FindCmd(CmdString=cmdStr,CmdKey=k)
|
|
123
|
+
session.add(cmd_string)
|
|
124
|
+
if num % 50 == 0:
|
|
125
|
+
session.commit()
|
|
126
|
+
session.commit()
|
|
127
|
+
session.flush()
|
|
128
|
+
|
|
129
|
+
results=session.query(FindCmd).filter(FindCmd.CmdString.icontains(cmd)).all()
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
ct=len(results)
|
|
133
|
+
if ct == 0:
|
|
134
|
+
print(f"No Cmd was found by {Fore.light_red}{cmd}{Style.reset}")
|
|
135
|
+
return
|
|
136
|
+
for num,x in enumerate(results):
|
|
137
|
+
msg=f"{Fore.light_yellow}{num}/{Fore.light_steel_blue}{num+1} of {Fore.light_red}{ct} -> {Fore.turquoise_4}{f'{Fore.light_yellow},{Style.reset}{Fore.turquoise_4}'.join(options[x.CmdKey]['cmds'])} - {Fore.green_yellow}{options[x.CmdKey]['desc']}"
|
|
138
|
+
print(msg)
|
|
139
|
+
select=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index?",helpText="the number farthest to the left before the /",data="integer")
|
|
140
|
+
if select in [None,'d']:
|
|
141
|
+
return
|
|
142
|
+
try:
|
|
143
|
+
ee=options[results[select].CmdKey]['exec']
|
|
144
|
+
if callable(ee):
|
|
145
|
+
ee()
|
|
146
|
+
except Exception as e:
|
|
147
|
+
print(e)
|
|
148
|
+
|
|
149
|
+
def delete_all(self):
|
|
150
|
+
fieldname=f'{__class__.__name__}'
|
|
151
|
+
mode=f'DeleteAll'
|
|
152
|
+
h=f'{Prompt.header.format(Fore=Fore,mode=mode,fieldname=fieldname,Style=Style)}'
|
|
153
|
+
|
|
154
|
+
code=''.join([str(random.randint(0,9)) for i in range(10)])
|
|
155
|
+
verification_protection=detectGetOrSet("Protect From Delete",code,setValue=False,literal=True)
|
|
156
|
+
while True:
|
|
157
|
+
try:
|
|
158
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{h}Really delete All SimpleScanItems?",helpText="yes or no boolean,default is NO",data="boolean")
|
|
159
|
+
if really in [None,]:
|
|
160
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
161
|
+
return True
|
|
162
|
+
elif really in ['d',False]:
|
|
163
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
164
|
+
return True
|
|
165
|
+
else:
|
|
166
|
+
pass
|
|
167
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"To {Fore.orange_red_1}Delete everything completely,{Fore.light_steel_blue}what is today's date?[{'.'.join([str(int(i)) for i in datetime.now().strftime("%m.%d.%y").split(".")])}]{Style.reset}",helpText="type y/yes for prompt or type as m.d.Y",data="datetime")
|
|
168
|
+
if really in [None,'d']:
|
|
169
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
170
|
+
return True
|
|
171
|
+
today=datetime.today()
|
|
172
|
+
if really.day == today.day and really.month == today.month and really.year == today.year:
|
|
173
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"Please type the verification code {Style.reset}'{Entry.cfmt(None,verification_protection)}'?",helpText=f"type '{Entry.cfmt(None,verification_protection)}' to finalize!",data="string")
|
|
174
|
+
if really in [None,]:
|
|
175
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
176
|
+
return True
|
|
177
|
+
elif really in ['d',False]:
|
|
178
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
179
|
+
return True
|
|
180
|
+
elif really == verification_protection:
|
|
181
|
+
break
|
|
182
|
+
else:
|
|
183
|
+
pass
|
|
184
|
+
except Exception as e:
|
|
185
|
+
print(e)
|
|
186
|
+
with Session(ENGINE) as session:
|
|
187
|
+
session.query(SimpleScan).delete()
|
|
188
|
+
session.commit()
|
|
189
|
+
|
|
190
|
+
def clear_all(self):
|
|
191
|
+
fieldname=f'{__class__.__name__}'
|
|
192
|
+
mode=f'ClearAll'
|
|
193
|
+
h=f'{Prompt.header.format(Fore=Fore,mode=mode,fieldname=fieldname,Style=Style)}'
|
|
194
|
+
|
|
195
|
+
code=''.join([str(random.randint(0,9)) for i in range(10)])
|
|
196
|
+
verification_protection=detectGetOrSet("Protect From Delete",code,setValue=False,literal=True)
|
|
197
|
+
while True:
|
|
198
|
+
try:
|
|
199
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{h}Really Clear All SimpleScanItems to TimesScanned=0?",helpText="yes or no boolean,default is NO",data="boolean")
|
|
200
|
+
if really in [None,]:
|
|
201
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Cleared!{Style.reset}")
|
|
202
|
+
return True
|
|
203
|
+
elif really in ['d',False]:
|
|
204
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Cleared!{Style.reset}")
|
|
205
|
+
return True
|
|
206
|
+
else:
|
|
207
|
+
pass
|
|
208
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"To {Fore.orange_red_1}Clear everything completely,{Fore.light_steel_blue}what is today's date?[{'.'.join([str(int(i)) for i in datetime.now().strftime("%m.%d.%y").split(".")])}]{Style.reset}",helpText="type y/yes for prompt or type as m.d.Y",data="datetime")
|
|
209
|
+
if really in [None,'d']:
|
|
210
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
211
|
+
return True
|
|
212
|
+
today=datetime.today()
|
|
213
|
+
if really.day == today.day and really.month == today.month and really.year == today.year:
|
|
214
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"Please type the verification code {Style.reset}'{Entry.cfmt(None,verification_protection)}'?",helpText=f"type '{Entry.cfmt(None,verification_protection)}' to finalize!",data="string")
|
|
215
|
+
if really in [None,]:
|
|
216
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Cleared!{Style.reset}")
|
|
217
|
+
return True
|
|
218
|
+
elif really in ['d',False]:
|
|
219
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Cleared!{Style.reset}")
|
|
220
|
+
return True
|
|
221
|
+
elif really == verification_protection:
|
|
222
|
+
break
|
|
223
|
+
else:
|
|
224
|
+
pass
|
|
225
|
+
except Exception as e:
|
|
226
|
+
print(e)
|
|
227
|
+
with Session(ENGINE) as session:
|
|
228
|
+
session.query(SimpleScan).update({'TimesScanned':0,'DTOE':datetime.now(),'Note':''})
|
|
229
|
+
session.commit()
|
|
230
|
+
|
|
231
|
+
def list_scan(self,sch=False,dated=False,menu=False):
|
|
232
|
+
default=True
|
|
233
|
+
FORMAT=f"terse==short;default={default};output is short using {Fore.light_steel_blue}[- chunked ScannedText]{Fore.light_magenta}ScannedText:{Fore.light_red}ssid[{Fore.green_yellow}DTOE]={Fore.cyan}TimesScanned{Style.reset}"
|
|
234
|
+
terse=Control(func=FormBuilderMkText,ptext="Terse output [False/True] ",helpText=FORMAT,data="boolean")
|
|
235
|
+
if terse is None:
|
|
236
|
+
return
|
|
237
|
+
elif terse in ['NaN',]:
|
|
238
|
+
terse=False
|
|
239
|
+
elif terse in ['d',]:
|
|
240
|
+
terse=default
|
|
241
|
+
|
|
242
|
+
with Session(ENGINE) as session:
|
|
243
|
+
query=session.query(SimpleScan)
|
|
244
|
+
|
|
245
|
+
if dated:
|
|
246
|
+
start_date=Control(func=FormBuilderMkText,ptext="Start Date:",helpText="start date",data="datetime")
|
|
247
|
+
if start_date in [None,'NaN']:
|
|
248
|
+
return
|
|
249
|
+
elif start_date in ['d',]:
|
|
250
|
+
start_date=datetime.today()
|
|
251
|
+
|
|
252
|
+
end_date=Control(func=FormBuilderMkText,ptext="end Date:",helpText="end date",data="datetime")
|
|
253
|
+
if end_date in [None,'NaN']:
|
|
254
|
+
return
|
|
255
|
+
elif end_date in ['d',]:
|
|
256
|
+
end_date=datetime.today()
|
|
257
|
+
query=query.filter(and_(SimpleScan.DTOE<end_date,SimpleScan.DTOE>start_date))
|
|
258
|
+
|
|
259
|
+
if sch:
|
|
260
|
+
term=Control(func=FormBuilderMkText,ptext="What are you looking for? ",helpText="a string of text",data="string")
|
|
261
|
+
if term is None:
|
|
262
|
+
return
|
|
263
|
+
elif term in ['d','NaN']:
|
|
264
|
+
term=''
|
|
265
|
+
query=query.filter(SimpleScan.ScannedText.icontains(term))
|
|
266
|
+
|
|
267
|
+
query=orderQuery(query,SimpleScan.DTOE,inverse=True)
|
|
268
|
+
results=query.all()
|
|
269
|
+
cta=len(results)
|
|
270
|
+
if cta < 1:
|
|
271
|
+
print("There are no results!")
|
|
272
|
+
return
|
|
273
|
+
for num, i in enumerate(results):
|
|
274
|
+
if not terse:
|
|
275
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
276
|
+
else:
|
|
277
|
+
if i.ScannedText == None:
|
|
278
|
+
i.ScannedText=''
|
|
279
|
+
chunked=stre(i.ScannedText)/4
|
|
280
|
+
chunked='-'.join(chunked)
|
|
281
|
+
msg=std_colorize(f"{Fore.light_steel_blue}[{chunked}]{Fore.light_magenta}{i.ScannedText}:{Fore.light_red}{i.ssid}[{Fore.green_yellow}{i.DTOE}] = {Fore.cyan}{i.TimesScanned} {Fore.dark_goldenrod}",num,cta)
|
|
282
|
+
print(msg)
|
|
283
|
+
if menu:
|
|
284
|
+
doWhat=Control(func=FormBuilderMkText,ptext="clear/clr, reset/rst, edit/e/ed, or delete/del/remove/rm (<Enter> Continues)?",helpText="clear/clr, reset/rst, edit/e/ed or delete/del/remove/rm?",data="string")
|
|
285
|
+
if doWhat in [None,'NaN']:
|
|
286
|
+
return
|
|
287
|
+
elif doWhat.lower() in "edit/e/ed".split("/"):
|
|
288
|
+
self.edit(i)
|
|
289
|
+
session.refresh(i)
|
|
290
|
+
if not terse:
|
|
291
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
292
|
+
else:
|
|
293
|
+
msg=std_colorize(f"{Fore.light_magenta}{i.ScannedText}:{Fore.light_red}{i.ssid}[{Fore.green_yellow}{i.DTOE}] = {Fore.cyan}{i.TimesScanned} {Fore.dark_goldenrod}",num,cta)
|
|
294
|
+
print(msg)
|
|
295
|
+
elif doWhat.lower() in "delete/del/remove/rm".split("/"):
|
|
296
|
+
session.delete(i)
|
|
297
|
+
session.commit()
|
|
298
|
+
elif doWhat.lower() in "clear/clr".split("/"):
|
|
299
|
+
self.edit(i,clear=True)
|
|
300
|
+
session.refresh(i)
|
|
301
|
+
if not terse:
|
|
302
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
303
|
+
else:
|
|
304
|
+
msg=std_colorize(f"{Fore.light_magenta}{i.ScannedText}:{Fore.light_red}{i.ssid}[{Fore.green_yellow}{i.DTOE}] = {Fore.cyan}{i.TimesScanned} {Fore.dark_goldenrod}",num,cta)
|
|
305
|
+
print(msg)
|
|
306
|
+
elif doWhat.lower() in "reset/rst".split("/"):
|
|
307
|
+
self.edit(i,reset=True)
|
|
308
|
+
session.refresh(i)
|
|
309
|
+
if not terse:
|
|
310
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
311
|
+
else:
|
|
312
|
+
msg=std_colorize(f"{Fore.light_magenta}{i.ScannedText}:{Fore.light_red}{i.ssid}[{Fore.green_yellow}{i.DTOE}] = {Fore.cyan}{i.TimesScanned} {Fore.dark_goldenrod}",num,cta)
|
|
313
|
+
print(msg)
|
|
314
|
+
|
|
315
|
+
print(FORMAT)
|
|
316
|
+
|
|
317
|
+
def edit(self,i:SimpleScan,excludes=['ssid',],reset=False,clear=False):
|
|
318
|
+
if reset:
|
|
319
|
+
with Session(ENGINE) as session:
|
|
320
|
+
r=session.query(SimpleScan).filter(SimpleScan.ssid==i.ssid).first()
|
|
321
|
+
r.ScannedText=''
|
|
322
|
+
r.DTOE=datetime.now()
|
|
323
|
+
r.Note=''
|
|
324
|
+
r.TimesScanned=0
|
|
325
|
+
session.commit()
|
|
326
|
+
return
|
|
327
|
+
|
|
328
|
+
if clear:
|
|
329
|
+
with Session(ENGINE) as session:
|
|
330
|
+
r=session.query(SimpleScan).filter(SimpleScan.ssid==i.ssid).first()
|
|
331
|
+
r.DTOE=datetime.now()
|
|
332
|
+
r.Note=''
|
|
333
|
+
r.TimesScanned=0
|
|
334
|
+
session.commit()
|
|
335
|
+
return
|
|
336
|
+
fields={
|
|
337
|
+
x.name:{
|
|
338
|
+
'default':getattr(i,x.name),
|
|
339
|
+
'type':str(x.type).lower()
|
|
340
|
+
} for x in i.__table__.columns if x.name not in excludes
|
|
341
|
+
}
|
|
342
|
+
fd=FormBuilder(data=fields)
|
|
343
|
+
if fd is None:
|
|
344
|
+
return
|
|
345
|
+
with Session(ENGINE) as session:
|
|
346
|
+
r=session.query(SimpleScan).filter(SimpleScan.ssid==i.ssid).update(fd)
|
|
347
|
+
session.commit()
|
|
348
|
+
|
|
349
|
+
def __init__(self):
|
|
350
|
+
MENUDO="edit,delete, clear count,reset all fields"
|
|
351
|
+
self.options={}
|
|
352
|
+
self.options[str(uuid1())]={
|
|
353
|
+
'cmds':generate_cmds(startcmd=["fix","fx"],endCmd=['tbl','table']),
|
|
354
|
+
'desc':'''
|
|
355
|
+
drop and regenerate SimpleScan Table
|
|
356
|
+
''',
|
|
357
|
+
'exec':self.fix_table
|
|
358
|
+
}
|
|
359
|
+
self.options[str(uuid1())]={
|
|
360
|
+
'cmds':['ca','clearall','clear all','clear-all','clear.all'],
|
|
361
|
+
'desc':f'clear qty of simple scans',
|
|
362
|
+
'exec':self.clear_all
|
|
363
|
+
}
|
|
364
|
+
self.options[str(uuid1())]={
|
|
365
|
+
'cmds':['da','deleteall','delete all','delete-all','delete.all'],
|
|
366
|
+
'desc':f'delete all of simple scans',
|
|
367
|
+
'exec':self.delete_all
|
|
368
|
+
}
|
|
369
|
+
self.options[str(uuid1())]={
|
|
370
|
+
'cmds':['list scan','lst scn',],
|
|
371
|
+
'desc':f'List Scans',
|
|
372
|
+
'exec':self.list_scan
|
|
373
|
+
}
|
|
374
|
+
self.options[str(uuid1())]={
|
|
375
|
+
'cmds':['list scan search','lst scn sch','lst sch','list find','lst fnd'],
|
|
376
|
+
'desc':f'List Scans with search by scanned text',
|
|
377
|
+
'exec':lambda self=self:self.list_scan(sch=True)
|
|
378
|
+
}
|
|
379
|
+
self.options[str(uuid1())]={
|
|
380
|
+
'cmds':['list scan dated','lst scn dt','lst dt','list dtd','lst d'],
|
|
381
|
+
'desc':f'List Scans within start and end dates',
|
|
382
|
+
'exec':lambda self=self:self.list_scan(dated=True)
|
|
383
|
+
}
|
|
384
|
+
self.options[str(uuid1())]={
|
|
385
|
+
'cmds':['list scan search date','lst scn sch dt','lst sch dt','list find dt','lst fnd dt'],
|
|
386
|
+
'desc':f'List Scans with search by scanned text between start and end dates',
|
|
387
|
+
'exec':lambda self=self:self.list_scan(sch=True,dated=True)
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
self.options[str(uuid1())]={
|
|
391
|
+
'cmds':['list scan menu','lst scn m',],
|
|
392
|
+
'desc':f'List Scans with menu to {MENUDO}',
|
|
393
|
+
'exec':lambda self=self:self.list_scan(menu=True)
|
|
394
|
+
}
|
|
395
|
+
self.options[str(uuid1())]={
|
|
396
|
+
'cmds':['list scan search menu','lst scn sch m','lst sch m','list find menu','lst fnd m'],
|
|
397
|
+
'desc':f'List Scans with search by scanned text with menu to {MENUDO}',
|
|
398
|
+
'exec':lambda self=self:self.list_scan(sch=True,menu=True)
|
|
399
|
+
}
|
|
400
|
+
self.options[str(uuid1())]={
|
|
401
|
+
'cmds':['list scan dated menu','lst scn dt m','lst dt m','list dtd m','lst d m'],
|
|
402
|
+
'desc':f'List Scans within start and end dates with menu to {MENUDO}',
|
|
403
|
+
'exec':lambda self=self:self.list_scan(dated=True,menu=True)
|
|
404
|
+
}
|
|
405
|
+
self.options[str(uuid1())]={
|
|
406
|
+
'cmds':['list scan search date menu','lst scn sch dt m','lst sch dt m','list find dt m','lst fnd dt m'],
|
|
407
|
+
'desc':f'List Scans with search by scanned text between start and end dates with menu to {MENUDO}',
|
|
408
|
+
'exec':lambda self=self:self.list_scan(sch=True,dated=True,menu=True)
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
self.options[str(uuid1())]={
|
|
412
|
+
'cmds':['scan1','scn1',],
|
|
413
|
+
'desc':f'Scan and add {Fore.light_yellow}1{Fore.medium_violet_red}{Style.reset}',
|
|
414
|
+
'exec':self.scan_add
|
|
415
|
+
}
|
|
416
|
+
self.options[str(uuid1())]={
|
|
417
|
+
'cmds':['scan-multi','scan-batch','scn-btch','scn-mlt','scn1',],
|
|
418
|
+
'desc':f'Scan and add a {Fore.light_yellow}Custom{Fore.medium_violet_red} value{Style.reset}',
|
|
419
|
+
'exec':lambda:self.scan_add(value=None)
|
|
420
|
+
}
|
|
421
|
+
#new methods() start
|
|
422
|
+
|
|
423
|
+
#new methods() end
|
|
424
|
+
self.options[str(uuid1())]={
|
|
425
|
+
'cmds':['fcmd','findcmd','find cmd'],
|
|
426
|
+
'desc':f'Find {Fore.light_yellow}cmd{Fore.medium_violet_red} and excute for return{Style.reset}',
|
|
427
|
+
'exec':self.findAndUse2
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
for num,i in enumerate(self.options):
|
|
431
|
+
if str(num) not in self.options[i]['cmds']:
|
|
432
|
+
self.options[i]['cmds'].append(str(num))
|
|
433
|
+
options=copy(self.options)
|
|
434
|
+
|
|
435
|
+
while True:
|
|
436
|
+
helpText=[]
|
|
437
|
+
for i in options:
|
|
438
|
+
msg=f"{Fore.light_green}{options[i]['cmds']}{Fore.light_red} -> {options[i]['desc']}{Style.reset}"
|
|
439
|
+
helpText.append(msg)
|
|
440
|
+
helpText='\n'.join(helpText)
|
|
441
|
+
|
|
442
|
+
cmd=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{__class__.__name__}|Do What?:",helpText=helpText,data="string")
|
|
443
|
+
if cmd is None:
|
|
444
|
+
return None
|
|
445
|
+
result=None
|
|
446
|
+
for i in options:
|
|
447
|
+
els=[ii.lower() for ii in options[i]['cmds']]
|
|
448
|
+
if cmd.lower() in els:
|
|
449
|
+
options[i]['exec']()
|
|
450
|
+
break
|
|
451
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from radboy.DB.db import *
|
|
2
|
+
from radboy.DB.RandomStringUtil import *
|
|
3
|
+
import radboy.Unified.Unified as unified
|
|
4
|
+
import radboy.possibleCode as pc
|
|
5
|
+
from radboy.DB.Prompt import *
|
|
6
|
+
from radboy.DB.Prompt import prefix_text
|
|
7
|
+
from radboy.TasksMode.ReFormula import *
|
|
8
|
+
from radboy.TasksMode.SetEntryNEU import *
|
|
9
|
+
from radboy.FB.FormBuilder import *
|
|
10
|
+
from radboy.FB.FBMTXT import *
|
|
11
|
+
from radboy.RNE.RNE import *
|
|
12
|
+
from radboy.Lookup2.Lookup2 import Lookup as Lookup2
|
|
13
|
+
from radboy.DayLog.DayLogger import *
|
|
14
|
+
from radboy.DB.masterLookup import *
|
|
15
|
+
from collections import namedtuple,OrderedDict
|
|
16
|
+
import nanoid,qrcode,io
|
|
17
|
+
from password_generator import PasswordGenerator
|
|
18
|
+
import random
|
|
19
|
+
from pint import UnitRegistry
|
|
20
|
+
import pandas as pd
|
|
21
|
+
import numpy as np
|
|
22
|
+
from datetime import *
|
|
23
|
+
from colored import Style,Fore
|
|
24
|
+
import json,sys,math,re,calendar,hashlib,haversine
|
|
25
|
+
from time import sleep
|
|
26
|
+
import itertools
|
|
27
|
+
|
|
28
|
+
from .SimpleScanner import *
|
|
Binary file
|
|
Binary file
|
radboy/DB/db.py
CHANGED
radboy/TasksMode/Tasks.py
CHANGED
|
@@ -47,7 +47,7 @@ from radboy.Comm2Common import *
|
|
|
47
47
|
import radboy.DB.OrderedAndRxd as OAR
|
|
48
48
|
import radboy.DB.LetterWriter as LW
|
|
49
49
|
from scipy.io.wavfile import write
|
|
50
|
-
|
|
50
|
+
from radboy.DB.SimpleScanner import SimpleScanner
|
|
51
51
|
|
|
52
52
|
def today():
|
|
53
53
|
dt=datetime.now()
|
|
@@ -1160,6 +1160,8 @@ def generateWhiteNoise():
|
|
|
1160
1160
|
|
|
1161
1161
|
|
|
1162
1162
|
class TasksMode:
|
|
1163
|
+
def simple_scanner(self):
|
|
1164
|
+
SimpleScanner.SimpleScanUi()
|
|
1163
1165
|
def white_noise(self):
|
|
1164
1166
|
generateWhiteNoise()
|
|
1165
1167
|
|
|
Binary file
|
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.667'
|
|
Binary file
|
|
@@ -5,7 +5,7 @@ radboy/Holidays.txt,sha256=y-JZPihh5iaWKxMIHNXD39yVuVmf1vMs4FdNDcg0f1Y,3114
|
|
|
5
5
|
radboy/InventoryGlossary.txt,sha256=018-Yqca6DFb10jPdkUY-5qhkRlQN1k3rxoTaERQ-LA,91008
|
|
6
6
|
radboy/RecordMyCodes.py,sha256=KI7Jmf3MX0Zng_YUvcjVKN2siyUOhaMAHQGzpPuX8KQ,41373
|
|
7
7
|
radboy/Run.py,sha256=JUoCTHnzQBv7n8PB2_i93ANdAC_iW__RkAge8esCnk4,76
|
|
8
|
-
radboy/__init__.py,sha256=
|
|
8
|
+
radboy/__init__.py,sha256=a0sI53iPtS2LFFxGDhM_1q89dRG3Sx91jgHBmJPXQaE,17
|
|
9
9
|
radboy/api_key,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
radboy/case-export-2024-05-14-13-10-00.672971.xlsx,sha256=Wd592d_VLFmfUI9KKKSVjNwjV91euc1T7ATyvwvUhlg,5431
|
|
11
11
|
radboy/case-export-2024-05-14-13-13-22.540614.xlsx,sha256=OnGrhmScHfGp_mVaWW-LNMsqrQgyZDpiU3wV-2s3U5Q,5556
|
|
@@ -88,20 +88,22 @@ radboy/DB/OrderedAndRxd.py,sha256=PZ_Rbm0H3DFhHuN1SZEnd1RhEnKOU_L0X0MHXwYN3-s,23
|
|
|
88
88
|
radboy/DB/PayDay.py,sha256=H2kPGvBCDkMOz7lbxQhYtUt_oAInpxi37Q6MFrah98I,8710
|
|
89
89
|
radboy/DB/PayModels.py,sha256=hjwWxP7PL33hmfzQl5YTf0HqzaMxXJxFknPdxFJXJc8,3499
|
|
90
90
|
radboy/DB/PrintLogging.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
-
radboy/DB/Prompt.py,sha256=
|
|
91
|
+
radboy/DB/Prompt.py,sha256=RvL5Kyjbg00V8j7uINRLw4JUOvlRF1JHl1OTTkkVmak,174661
|
|
92
92
|
radboy/DB/RandomStringUtil.py,sha256=eZCpR907WStgfbk4Evcghjv9hOkUDXH-iMXIq0-kXq8,24386
|
|
93
93
|
radboy/DB/ResetTools.py,sha256=RbI-Ua7UlsN0S9qLqtEkTWvzyTZ6R-hHR3CW4NHlUPE,6660
|
|
94
94
|
radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,4013
|
|
95
95
|
radboy/DB/__init__.py,sha256=JiigA9B7GalP7YuRdcwyGDu5PDSBahoi0lLjtScxlN8,49
|
|
96
96
|
radboy/DB/blankDataFile.py,sha256=YX_05Usi71UpDkZN9UTMYwUipbTndTAtEgqzBEga0kE,9285
|
|
97
97
|
radboy/DB/config.py,sha256=bvu43dUl1_yO3Zq3gsLuenGUgJSiS3S9Cs6ppFEvZbg,239
|
|
98
|
-
radboy/DB/db.py,sha256=
|
|
98
|
+
radboy/DB/db.py,sha256=VCMe0fJ1pV6vAIBwOfQvipOUr7UeJoZI6yWHkMJXLtc,262820
|
|
99
99
|
radboy/DB/glossary_db.py,sha256=1_qxeEpjjEtpWB_eDjsgJisimLv7OBm75MuqM-Lt6zg,28218
|
|
100
100
|
radboy/DB/masterLookup.py,sha256=DBaM2uscG3_X5dek49wjdnOzhrjWhKgvOEz_umdz0mY,4566
|
|
101
101
|
radboy/DB/msg.txt,sha256=YxWed6A6tuP1djJ5QPS2Rz3ING4TKKf8kUiCCPtzHXE,7937
|
|
102
102
|
radboy/DB/rad_types.py,sha256=mtZpBMIFPcw1IhmO7UQ7nV_1gNNURs4INwx3x40hLUU,4725
|
|
103
103
|
radboy/DB/renderText2Png.py,sha256=PWnTicLTfOPg9UlQYia3wMpjM9rh7MIyDVsmcsDRUBo,5678
|
|
104
104
|
radboy/DB/testClass.py,sha256=t3zT1gbvReUncnPY8R9JUfKXQ5UEB2wmQx8DNeds0hI,310
|
|
105
|
+
radboy/DB/SimpleScanner/SimpleScanner.py,sha256=5XRCaZZ78uz-u9OXexfMeJKb_wq_t5O8VKnTPapoZ0k,22334
|
|
106
|
+
radboy/DB/SimpleScanner/__init__.py,sha256=BknbeGbEv48sqoCWwCQbKbgbqLUuBAyeeIh4EFerJ0g,899
|
|
105
107
|
radboy/DB/__pycache__/DatePicker.cpython-311.pyc,sha256=VMJnJ7scb4VHMQi1HDZCF67KVYfb9m-fZK96IAoJzTQ,19676
|
|
106
108
|
radboy/DB/__pycache__/DatePicker.cpython-312.pyc,sha256=cc5XWJ6Sbtcg0xWPz3SOP93VceIqr1pH42kjkLl5iYs,30294
|
|
107
109
|
radboy/DB/__pycache__/DatePicker.cpython-313.pyc,sha256=jV__j5ER1oshsenGPynR0UNHWMI7VStgyw73-iLKxzg,33993
|
|
@@ -113,7 +115,7 @@ radboy/DB/__pycache__/FormBuilder.cpython-312.pyc,sha256=p1o-5SMRL8OXP_XQ5liUpf-
|
|
|
113
115
|
radboy/DB/__pycache__/PrintLogging.cpython-312.pyc,sha256=pIAFqTi6OiQQORSc-oMH1zAbsdH7sY1TifxrN_QOvnU,148
|
|
114
116
|
radboy/DB/__pycache__/Prompt.cpython-311.pyc,sha256=P2uPRpeqfLFtxieZ0JHBG3X_HZzWUCsFSLb_fpRqky0,6407
|
|
115
117
|
radboy/DB/__pycache__/Prompt.cpython-312.pyc,sha256=6CcQ1gE2hcz3cKPjo4f6d7xNM2PTDnl8NzQG0Pme5BE,142886
|
|
116
|
-
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=
|
|
118
|
+
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=Ke-daS6l0DhStSjLvGzutY_FfWWIylOby89nbMJH0UQ,259600
|
|
117
119
|
radboy/DB/__pycache__/RandomStringUtil.cpython-312.pyc,sha256=TrbEY89MuLmNlvoo5d8vOE6Dyshh5_EMlTZvk8MDVN4,48597
|
|
118
120
|
radboy/DB/__pycache__/RandomStringUtil.cpython-313.pyc,sha256=MCcgVwV2Y-9rAY2FVaJZCKcou3HDX70EZudoiCigT0o,49217
|
|
119
121
|
radboy/DB/__pycache__/ResetTools.cpython-311.pyc,sha256=4Vyc57iAAF0yRPjjglnVKovnTn8OoFIi6Zok3Wpj_YM,9292
|
|
@@ -131,7 +133,7 @@ radboy/DB/__pycache__/config.cpython-312.pyc,sha256=Qo7E6MHrF6yqvKgepNFyCoekZXiv
|
|
|
131
133
|
radboy/DB/__pycache__/config.cpython-313.pyc,sha256=_8wCIg_3jhyJjxnExD2Sm6aY-uZTw036p7Ki5znL7dc,376
|
|
132
134
|
radboy/DB/__pycache__/db.cpython-311.pyc,sha256=rNgigyBd0D-cg1JxKAS8t0B_k0IEJivgVlRaZE10Xis,210105
|
|
133
135
|
radboy/DB/__pycache__/db.cpython-312.pyc,sha256=ANDJPC0RoavbmSKFxG15vC7B4rEGyVt7xRJt7XGY3OA,334609
|
|
134
|
-
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=
|
|
136
|
+
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=dcZx_5o0wGn6q4oj8NqF6p3XQ_-5-RjbG0ocb5p1ces,412019
|
|
135
137
|
radboy/DB/__pycache__/glossary_db.cpython-312.pyc,sha256=8UL-29cKqtKovx0BANm6kzKKteef1BW_2qF3wumzst4,36023
|
|
136
138
|
radboy/DB/__pycache__/glossary_db.cpython-313.pyc,sha256=Ke9bkvllGv5CK0JdT9DRvQ3MOdrXxoYv7TVLNkqLux0,36582
|
|
137
139
|
radboy/DB/__pycache__/masterLookup.cpython-312.pyc,sha256=bQiOkmMwwHgcO18tYSWGQ-YUff4GQlKVhBMp1GoWAqY,6324
|
|
@@ -346,7 +348,7 @@ radboy/SystemSettings/__pycache__/__init__.cpython-312.pyc,sha256=aIzp4Po0t8EhSA
|
|
|
346
348
|
radboy/SystemSettings/__pycache__/__init__.cpython-313.pyc,sha256=QFDuoidxMWsGVLsy5lN-rDs6TP8nKJ4yyCyiamNOhwo,156
|
|
347
349
|
radboy/TasksMode/ReFormula.py,sha256=REDRJYub-OEOE6g14oRQOLOQwv8pHqVJy4NQk3CCM90,2255
|
|
348
350
|
radboy/TasksMode/SetEntryNEU.py,sha256=mkV9zAZe0lfpu_3coMuIILEzh6PgCNi7g9lJ4yDUpYM,20596
|
|
349
|
-
radboy/TasksMode/Tasks.py,sha256=
|
|
351
|
+
radboy/TasksMode/Tasks.py,sha256=90a79iRnHo3P_Fnvn2h18kv8S8bWTUJV1iNozSViQh4,355268
|
|
350
352
|
radboy/TasksMode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
351
353
|
radboy/TasksMode/__pycache__/ReFormula.cpython-311.pyc,sha256=QEG3PwVw-8HTd_Mf9XbVcxU56F1fC9yBqWXYPLC39DU,4865
|
|
352
354
|
radboy/TasksMode/__pycache__/ReFormula.cpython-312.pyc,sha256=aX7BWm2PPjCTnxsbGUitR-2h9hq4AjaBiHMrUXvIl0Y,3967
|
|
@@ -355,7 +357,7 @@ radboy/TasksMode/__pycache__/SetEntryNEU.cpython-312.pyc,sha256=pCdFj61aPKkHL6Sv
|
|
|
355
357
|
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=jMSrUX9pvEhf67uVwrPE2ZlBCems8V7tHJ1LcC15ovU,24603
|
|
356
358
|
radboy/TasksMode/__pycache__/Tasks.cpython-311.pyc,sha256=6QOTJnLiXSKdF81hkhy3vyrz49PPhS20s5_0X52g3Hw,131120
|
|
357
359
|
radboy/TasksMode/__pycache__/Tasks.cpython-312.pyc,sha256=hyJwdaYaaRLdcrNxgg36diJ5iijX5_3I0UAORsj-6LU,310295
|
|
358
|
-
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=
|
|
360
|
+
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=0Oce_YV6-LNWK_6VprrXQDMdCr9NN_ihlT0FXdIwXLM,429819
|
|
359
361
|
radboy/TasksMode/__pycache__/__init__.cpython-311.pyc,sha256=PKV1JbihEacm639b53bZozRQvcllSkjGP3q8STVMxF4,234
|
|
360
362
|
radboy/TasksMode/__pycache__/__init__.cpython-312.pyc,sha256=ERgnEvRMiGSecWp1BpNzLdSq_SdKw7GvFWUvUM7bLVw,272
|
|
361
363
|
radboy/TasksMode/__pycache__/__init__.cpython-313.pyc,sha256=lvsTxukyvGKB3C0rdF9dQi_bvVh6ceDVINfwcuIsd0s,151
|
|
@@ -402,7 +404,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
402
404
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
403
405
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
404
406
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
405
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
407
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=CFv9JC4TiZDP4ONEUsrek_rrS1PUmNazk0xqElAe4tc,165
|
|
406
408
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
407
409
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
408
410
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -430,7 +432,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
430
432
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
431
433
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
432
434
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
433
|
-
radboy-0.0.
|
|
434
|
-
radboy-0.0.
|
|
435
|
-
radboy-0.0.
|
|
436
|
-
radboy-0.0.
|
|
435
|
+
radboy-0.0.667.dist-info/METADATA,sha256=GDu-Z7naS5wdnvb_lXnAKvYhWMziu5wRvls8uwkgkTo,1891
|
|
436
|
+
radboy-0.0.667.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
437
|
+
radboy-0.0.667.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
438
|
+
radboy-0.0.667.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|