radboy 0.0.833__py3-none-any.whl → 0.0.854__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 +88 -5
- radboy/DB/__pycache__/Prompt.cpython-313.pyc +0 -0
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +6 -6
- radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc +0 -0
- radboy/RNE/RNE.py +7 -0
- radboy/RNE/__pycache__/RNE.cpython-313.pyc +0 -0
- radboy/TasksMode/SetEntryNEU.py +13 -2
- radboy/TasksMode/Tasks.py +131 -23
- radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc +0 -0
- radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc +0 -0
- radboy/Unified/BACKUP.py +7 -0
- radboy/Unified/__pycache__/bareCA.cpython-313.pyc +0 -0
- radboy/Unified/__pycache__/clearalll.cpython-313.pyc +0 -0
- radboy/Unified/bareCA.py +8 -2
- radboy/Unified/clearalll.py +1 -0
- radboy/__init__.py +1 -1
- radboy/__pycache__/__init__.cpython-313.pyc +0 -0
- radboy/code.png +0 -0
- radboy/preloader/preloader.py +26 -1
- radboy/preloader/preloader_func.py +331 -7
- {radboy-0.0.833.dist-info → radboy-0.0.854.dist-info}/METADATA +1 -1
- {radboy-0.0.833.dist-info → radboy-0.0.854.dist-info}/RECORD +25 -25
- {radboy-0.0.833.dist-info → radboy-0.0.854.dist-info}/WHEEL +0 -0
- {radboy-0.0.833.dist-info → radboy-0.0.854.dist-info}/top_level.txt +0 -0
radboy/DB/Prompt.py
CHANGED
|
@@ -59,7 +59,8 @@ def std_colorize(m,n,c,start=f'',end=''):
|
|
|
59
59
|
'''
|
|
60
60
|
'''Formula/Price menu options'''
|
|
61
61
|
PRICE=['quick price','qprc','price','prc']
|
|
62
|
-
FMLA=['fmlau','formulae-u','pre-formula','formulas']
|
|
62
|
+
FMLA=['fmlau','formulae-u','pre-formula','formulas','fmla']
|
|
63
|
+
HEALTHLOG=['healthlog','health log universal','healthlogu','healthloguniversal','hlu','health-log-universal']
|
|
63
64
|
def timedout(ptext,htext='',timeout_returnable="timeout"):
|
|
64
65
|
try:
|
|
65
66
|
while True:
|
|
@@ -250,6 +251,48 @@ class Obfuscate:
|
|
|
250
251
|
out.write(self.b64d)
|
|
251
252
|
print("Finalized:",self.b64d)
|
|
252
253
|
print("Saved to:",self.FILE)
|
|
254
|
+
return self.returnMsg(self.b64d.decode("utf-8"))
|
|
255
|
+
|
|
256
|
+
def readMsgFile(self):
|
|
257
|
+
try:
|
|
258
|
+
data=[]
|
|
259
|
+
FILE=db.detectGetOrSet("OBFUSCATED MSG FILE",value="MSG.txt",setValue=False,literal=True)
|
|
260
|
+
with open(FILE,"r") as fio:
|
|
261
|
+
ttl=0
|
|
262
|
+
for num,line in enumerate(fio.readlines()):
|
|
263
|
+
ttl=num
|
|
264
|
+
fio.seek(0)
|
|
265
|
+
counter=0
|
|
266
|
+
while True:
|
|
267
|
+
|
|
268
|
+
x=fio.readline()
|
|
269
|
+
data.append(x)
|
|
270
|
+
if not x:
|
|
271
|
+
break
|
|
272
|
+
try:
|
|
273
|
+
print(std_colorize(x,counter,ttl))
|
|
274
|
+
except Exception as ee:
|
|
275
|
+
print(x,ee)
|
|
276
|
+
counter+=1
|
|
277
|
+
return str(Obfuscate.returnMsg(None,''.join(data)))
|
|
278
|
+
except Exception as e:
|
|
279
|
+
print(e)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
def returnMsg(self,data):
|
|
283
|
+
try:
|
|
284
|
+
d=Control(func=FormBuilderMkText,ptext=f'Return "{data}"',helpText="Hit Enter to save. return the data to the terminal for things like text2file",data="boolean")
|
|
285
|
+
print(d)
|
|
286
|
+
if d in ['NaN',None,False]:
|
|
287
|
+
return
|
|
288
|
+
elif d in ['d',]:
|
|
289
|
+
FILE=db.detectGetOrSet("OBFUSCATED MSG FILE",value="MSG.txt",setValue=False,literal=True)
|
|
290
|
+
with open(FILE,"w") as out:
|
|
291
|
+
out.write(data)
|
|
292
|
+
else:
|
|
293
|
+
return data
|
|
294
|
+
except Exception as e:
|
|
295
|
+
print(e)
|
|
253
296
|
|
|
254
297
|
def decrypt(self):
|
|
255
298
|
try:
|
|
@@ -264,6 +307,7 @@ class Obfuscate:
|
|
|
264
307
|
cipher = AES.new(self.password,AES.MODE_ECB)
|
|
265
308
|
self.decoded = unpad(cipher.decrypt(base64.b64decode(self.encoded)),16).decode("utf-8")
|
|
266
309
|
print(f"'{self.decoded}'")
|
|
310
|
+
return self.returnMsg(self.decoded)
|
|
267
311
|
except Exception as e:
|
|
268
312
|
print(e)
|
|
269
313
|
|
|
@@ -284,6 +328,7 @@ class Obfuscate:
|
|
|
284
328
|
helpText=f'''
|
|
285
329
|
e,encrypt - make msg on INPUT and store in {self.FILE}
|
|
286
330
|
de,decrypt - decrypt msg from {self.FILE}
|
|
331
|
+
rf,readfile - read data/msg from {self.FILE} and print to screen
|
|
287
332
|
'''
|
|
288
333
|
doWhat=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Obfuscate Menu",helpText=helpText,data="str")
|
|
289
334
|
if doWhat in [None,]:
|
|
@@ -294,6 +339,8 @@ de,decrypt - decrypt msg from {self.FILE}
|
|
|
294
339
|
self.encrypt()
|
|
295
340
|
elif doWhat.lower() in ['de','decrypt']:
|
|
296
341
|
self.decrypt()
|
|
342
|
+
elif doWhat.lower() in ['rf','readfile']:
|
|
343
|
+
self.readMsgFile()
|
|
297
344
|
else:
|
|
298
345
|
print(helpText)
|
|
299
346
|
|
|
@@ -1020,6 +1067,13 @@ class Prompt(object):
|
|
|
1020
1067
|
def cse(code):
|
|
1021
1068
|
with Session(db.ENGINE) as session:
|
|
1022
1069
|
query=session.query(db.Entry).filter(db.Entry.InList==True,or_(db.Entry.Code.icontains(code),db.Entry.Barcode.icontains(code),db.Entry.Name.icontains(code)))
|
|
1070
|
+
LookUpState=db.detectGetOrSet('list maker lookup order',False,setValue=False,literal=False)
|
|
1071
|
+
if not isinstance(LookUpState,bool):
|
|
1072
|
+
LookUpState=db.detectGetOrSet('list maker lookup order',False,setValue=True,literal=False)
|
|
1073
|
+
if LookUpState == True:
|
|
1074
|
+
results=results_query.order_by(db.Entry.Timestamp.asc(),db.Entry.Name,db.Entry.Barcode,db.Entry.Code,db.Entry.Description,db.Entry.Note)
|
|
1075
|
+
else:
|
|
1076
|
+
results=results_query.order_by(db.Entry.Timestamp.desc(),db.Entry.Name,db.Entry.Barcode,db.Entry.Code,db.Entry.Description,db.Entry.Note)
|
|
1023
1077
|
results=query.all()
|
|
1024
1078
|
ct=len(results)
|
|
1025
1079
|
if ct < 1:
|
|
@@ -1158,9 +1212,9 @@ class Prompt(object):
|
|
|
1158
1212
|
if not isinstance(LookUpState,bool):
|
|
1159
1213
|
LookUpState=db.detectGetOrSet('list maker lookup order',False,setValue=True,literal=False)
|
|
1160
1214
|
if LookUpState == True:
|
|
1161
|
-
results=results_query.order_by(db.Entry.Timestamp.asc()).all()
|
|
1215
|
+
results=results_query.order_by(db.Entry.Timestamp.asc(),db.Entry.Name,db.Entry.Barcode,db.Entry.Code,db.Entry.Description,db.Entry.Note).all()
|
|
1162
1216
|
else:
|
|
1163
|
-
results=results_query.order_by(db.Entry.Timestamp.desc()).all()
|
|
1217
|
+
results=results_query.order_by(db.Entry.Timestamp.desc(),db.Entry.Name,db.Entry.Barcode,db.Entry.Code,db.Entry.Description,db.Entry.Note).all()
|
|
1164
1218
|
ct=len(results)
|
|
1165
1219
|
if ct < 1:
|
|
1166
1220
|
msg=f"{Fore.light_steel_blue}Nothing in {Fore.slate_blue_1}Bld{Fore.light_red}LS!{Style.reset}"
|
|
@@ -1304,6 +1358,8 @@ class Prompt(object):
|
|
|
1304
1358
|
{Fore.medium_spring_green}= {Fore.green_3a}NetPrice({total*decc(i.Price)+tax+crv:.{getcontext().prec}f}){Style.reset}
|
|
1305
1359
|
{Fore.medium_violet_red}PercentOfTotal({super_total:.{getcontext().prec}f}%) of FinalTotal({getSuperTotal(results,location_fields,colormapped)['final total']})
|
|
1306
1360
|
{Fore.orange_red_1}TaxRate({taxRate:.{getcontext().prec}f})={decc(taxRate*100):.{getcontext().prec}f}%{Style.reset}
|
|
1361
|
+
{Fore.light_cyan}Location = {Fore.light_steel_blue}{i.Location}{Style.reset}
|
|
1362
|
+
{Fore.grey_70}Note = \"\"\"\n{Fore.grey_50}{i.Note}{Fore.grey_70}\"\"\"{Style.reset}
|
|
1307
1363
|
{'*'*os.get_terminal_size().columns}{Style.reset}"""
|
|
1308
1364
|
if bldlse:
|
|
1309
1365
|
db.logInput(msg,user=False,filter_colors=True,maxed_hfl=False,ofile=Prompt.bld_file)
|
|
@@ -2109,6 +2165,8 @@ class Prompt(object):
|
|
|
2109
2165
|
continue
|
|
2110
2166
|
elif cmd.lower() == 'obf msg':
|
|
2111
2167
|
Obfuscate()
|
|
2168
|
+
elif cmd.lower() == 'obf msg rf':
|
|
2169
|
+
return func(Obfuscate.readMsgFile(Obfuscate),data)
|
|
2112
2170
|
elif cmd.lower() in generate_cmds(startcmd=['dt','datetime',],endCmd=['of entry','oe']):
|
|
2113
2171
|
dtoe=Control(func=FormBuilderMkText,ptext="Date String",helpText="a datestring",data="datetime")
|
|
2114
2172
|
if dtoe in [None,"NaN"]:
|
|
@@ -2257,6 +2315,8 @@ class Prompt(object):
|
|
|
2257
2315
|
return func(str(t),data)
|
|
2258
2316
|
elif cmd.lower() in ['esu',]:
|
|
2259
2317
|
TM.Tasks.TasksMode.Lookup()
|
|
2318
|
+
elif cmd.lower() in HEALTHLOG:
|
|
2319
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).healthlog()
|
|
2260
2320
|
elif cmd.lower() in ['daylogu','dlu']:
|
|
2261
2321
|
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).product_history()
|
|
2262
2322
|
elif cmd.lower() in ['neu',]:
|
|
@@ -2416,10 +2476,18 @@ class Prompt(object):
|
|
|
2416
2476
|
llo_modes=["dlu.cr","Prompt.lsbld","esu","t.[mksl||qsl||set Shelf||set Display]"]
|
|
2417
2477
|
extra=f'''
|
|
2418
2478
|
[Generation]
|
|
2419
|
-
{Fore.
|
|
2420
|
-
{Fore.grey_70}**{Fore.light_sea_green}'cruid',"checked uid"{Fore.light_yellow}- generate a uid, but non-local-system existant uid for input{Style.reset}
|
|
2479
|
+
{Fore.orange_red_1}--To Copy Codes--{Style.reset}
|
|
2421
2480
|
{Fore.grey_70}**{Fore.light_sea_green}'bcd-gen','bcd-img'{Fore.light_yellow}- generate a custom barcode img from input data possible output is selected from {barcode.PROVIDED_BARCODES}{Style.reset}
|
|
2422
2481
|
{Fore.grey_70}**{Fore.light_sea_green}'qr-gen','qr-img'{Fore.light_yellow}- generate a custom barcode img from input data possible output is selected{Style.reset}
|
|
2482
|
+
{Fore.grey_70}**{Fore.light_salmon_1}'cpcd cd128'{Fore.light_blue} cp barcode to Code128 and save to {Fore.light_green}the same as bcd-img{Style.reset}
|
|
2483
|
+
{Fore.grey_70}**{Fore.light_salmon_1}'cpcd cd39'{Fore.light_blue} cp barcode to Code39 and save to {Fore.light_green}the same as bcd-img{Style.reset}
|
|
2484
|
+
{Fore.grey_70}**{Fore.light_salmon_1}'cpcd upca'{Fore.light_blue} cp barcode to UPCA and save to {Fore.light_green}the same as bcd-img{Style.reset}
|
|
2485
|
+
{Fore.grey_70}**{Fore.light_salmon_1}'cpcd ean8'{Fore.light_blue} cp barcode to EAN8 and save to {Fore.light_green}the same as bcd-img{Style.reset}
|
|
2486
|
+
{Fore.grey_70}**{Fore.light_salmon_1}'cpcd ean13'{Fore.light_blue} cp barcode to EAN13 and save to {Fore.light_green}the same as bcd-img{Style.reset}
|
|
2487
|
+
{Fore.grey_70}**{Fore.light_salmon_1}'cpcd ean14'{Fore.light_blue} cp barcode to EAN14 and save to {Fore.light_green}the same as bcd-img{Style.reset}
|
|
2488
|
+
{Fore.orange_red_1}--Text && Code Generation--{Style.reset}
|
|
2489
|
+
{Fore.grey_70}**{Fore.light_sea_green}'crbc',"checked random barcode"{Fore.light_yellow}- generate a random, but non-local-system existant barcode for input{Style.reset}
|
|
2490
|
+
{Fore.grey_70}**{Fore.light_sea_green}'cruid',"checked uid"{Fore.light_yellow}- generate a uid, but non-local-system existant uid for input{Style.reset}
|
|
2423
2491
|
{Fore.grey_70}**{Fore.light_sea_green}{','.join(generate_cmds(startcmd=["nano",],endCmd=["id",]))}{Fore.light_yellow} - generate collision resistance nano ids{Style.reset}
|
|
2424
2492
|
{Fore.grey_70}**{Fore.light_sea_green}'upcify','format upc','fupc'{Fore.light_yellow} Format input text to look '{db.Entry.rebar(None,"TESTTEXTUPCA")}{Style.reset}'
|
|
2425
2493
|
{Fore.grey_70}**{Fore.light_sea_green}'codify','format code','fcode'{Fore.light_yellow} Format input text to look '{db.Entry.cfmt(None,"TESTTEXT")}{Style.reset}'
|
|
@@ -2439,6 +2507,7 @@ class Prompt(object):
|
|
|
2439
2507
|
{Fore.light_yellow}Don't Use {Fore.grey_70}**{Style.reset}
|
|
2440
2508
|
{Fore.grey_70}**{Fore.light_green}sft{Fore.light_red}u{Fore.light_steel_blue} - search for text across whole DB and return it as input{Style.reset}
|
|
2441
2509
|
{Fore.grey_70}**{Fore.light_green}ne{Fore.light_red}u{Fore.light_steel_blue} - create a new entry menu{Style.reset}
|
|
2510
|
+
{Fore.grey_70}**{Fore.light_green}{HEALTHLOG}{Fore.light_steel_blue} - open healthlog utility anywhere{Style.reset}
|
|
2442
2511
|
{Fore.grey_70}**{Fore.light_green}bld{Fore.light_red}ls{Fore.light_steel_blue} - list all items with InList==True and has a location value above {Fore.light_red}0{Style.reset}
|
|
2443
2512
|
{Fore.grey_70}**{Fore.light_green}s{Fore.light_red}bld{Fore.light_steel_blue} - search with barcode in all items with InList==True and has a location value above {Fore.light_red}0{Style.reset}
|
|
2444
2513
|
{Fore.grey_70}**{Fore.light_green}"bldlse","builde","buildlse","build list export ","bld ls exp",'elsbld','export list build','exp ls bld','ebld'{Fore.light_steel_blue} - same as versions without export, but dumps list to {Path(Prompt.bld_file).absolute()}{Style.reset}
|
|
@@ -2460,6 +2529,7 @@ class Prompt(object):
|
|
|
2460
2529
|
{Fore.grey_70}**{Fore.light_green}comm{Fore.light_steel_blue} - send an email message with gmail{Style.reset}
|
|
2461
2530
|
|
|
2462
2531
|
{Fore.grey_70}**{Fore.light_steel_blue}obf msg {Fore.spring_green_3a}encrypted msgs via {db.detectGetOrSet("OBFUSCATED MSG FILE",value="MSG.txt",setValue=False,literal=True)} and Prompt Input{Style.reset}
|
|
2532
|
+
{Fore.grey_70}**{Fore.light_steel_blue}read {Fore.spring_green_3a}{db.detectGetOrSet("OBFUSCATED MSG FILE",value="MSG.txt",setValue=False,literal=True)} and return the string{Style.reset}
|
|
2463
2533
|
{Fore.grey_70}**{Fore.light_green}{PRICE}{Fore.light_steel_blue} Calculate price information using user provided data for an arbitrary product who Data is not in the Entry table{Style.reset}
|
|
2464
2534
|
{Fore.grey_70}**{Fore.light_green}{FMLA}{Fore.light_steel_blue} use some pre-built formulas for returning values to the prompt{Style.reset}
|
|
2465
2535
|
{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}
|
|
@@ -2785,6 +2855,19 @@ Use an App Like Google Keep, or Notion, to Store a note with the Title as the Na
|
|
|
2785
2855
|
resultant=db.Entry.cfmt(None,code)
|
|
2786
2856
|
print(resultant)
|
|
2787
2857
|
return func(resultant,data)
|
|
2858
|
+
elif cmd.lower() in ['cpcd cd128',]:
|
|
2859
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).bcd_img(cp2="code128")
|
|
2860
|
+
elif cmd.lower() in ['cpcd cd39',]:
|
|
2861
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).bcd_img(cp2="code39")
|
|
2862
|
+
elif cmd.lower() in ['cpcd upca',]:
|
|
2863
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).bcd_img(cp2="upca")
|
|
2864
|
+
elif cmd.lower() in ['cpcd ean13',]:
|
|
2865
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).bcd_img(cp2="ean13")
|
|
2866
|
+
elif cmd.lower() in ['cpcd ean8',]:
|
|
2867
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).bcd_img(cp2="ean8")
|
|
2868
|
+
elif cmd.lower() in ['cpcd ean14',]:
|
|
2869
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).bcd_img(cp2="ean14")
|
|
2870
|
+
|
|
2788
2871
|
elif cmd.lower() in ['bcd-gen','bcd-img']:
|
|
2789
2872
|
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).bcd_img()
|
|
2790
2873
|
elif cmd.lower() in ['qr-gen','qr-img']:
|
|
Binary file
|
|
Binary file
|
radboy/DB/db.py
CHANGED
|
@@ -1844,13 +1844,13 @@ deducted from Total as remainder is to be filled from LOAD{Style.reset}
|
|
|
1844
1844
|
|
|
1845
1845
|
def seeShort(self):
|
|
1846
1846
|
rebar=self.rebar()
|
|
1847
|
-
ROUNDTO=
|
|
1848
|
-
default_taxrate=
|
|
1849
|
-
price=
|
|
1847
|
+
ROUNDTO=decc(detectGetOrSet("TotalSpent ROUNDTO default",3,setValue=False,literal=True))
|
|
1848
|
+
default_taxrate=decc(detectGetOrSet("Tax Rate",0.0925,setValue=False,literal=True))
|
|
1849
|
+
price=decc(self.Price)+decc(self.CRV)
|
|
1850
1850
|
|
|
1851
|
-
formula=
|
|
1852
|
-
|
|
1853
|
-
msg=f''' {Fore.slate_blue_1}{Style.underline}{'-'*5}{Style.reset}{Style.bold} Short Data {Style.reset}
|
|
1851
|
+
formula=decc(price+decc(self.Tax))
|
|
1852
|
+
location=f"{Fore.light_cyan}LCTN({Fore.light_steel_blue}{self.Location}{Fore.light_cyan})"
|
|
1853
|
+
msg=f''' {Fore.slate_blue_1}{Style.underline}{'-'*5}{Style.reset}{Style.bold} Short Data @ {location}{Style.reset}
|
|
1854
1854
|
{Fore.light_yellow}Name({Fore.pale_green_1b}{self.Name}{Fore.light_yellow}) {Fore.light_magenta}Price Per Unit({Fore.slate_blue_1}prc={self.Price}{Fore.light_magenta},crv={self.CRV},tax={self.Tax},ttl={formula}){Style.reset} {Fore.misty_rose_3}EID({Fore.pale_green_1b}{self.EntryId}{Fore.light_yellow}) {Fore.spring_green_3a}[BCD/UPC[A/E]/EAN[8/13]/GTIN](cd={Fore.light_magenta}{rebar},{Fore.chartreuse_1}no_sep={self.rebar(skip_sep=True)}{Fore.spring_green_3a}){Style.reset}{Fore.slate_blue_1} -{Fore.cyan}> {Fore.orange_red_1}[SHELF/TAG/CIC/STR_CD]({Fore.light_red}cd={self.cfmt(self.Code)}{Fore.orange_red_1}){Style.reset}'''
|
|
1855
1855
|
return msg
|
|
1856
1856
|
|
|
Binary file
|
radboy/RNE/RNE.py
CHANGED
|
@@ -461,6 +461,13 @@ class Expiration:
|
|
|
461
461
|
print(e)
|
|
462
462
|
|
|
463
463
|
def search_expo(self,returnable=False,code=None,group=True,past_due_only=False):
|
|
464
|
+
gtemp=group
|
|
465
|
+
group=Control(func=FormBuilderMkText,ptext="Group results?",helpText=f"default is {group}",data="boolean")
|
|
466
|
+
if group in [None,'NaN']:
|
|
467
|
+
return
|
|
468
|
+
elif group in ['d',]:
|
|
469
|
+
group=gtemp
|
|
470
|
+
|
|
464
471
|
with Session(ENGINE) as session:
|
|
465
472
|
while True:
|
|
466
473
|
if code != None:
|
|
Binary file
|
radboy/TasksMode/SetEntryNEU.py
CHANGED
|
@@ -279,6 +279,7 @@ class NEUSetter:
|
|
|
279
279
|
'TaxNote',
|
|
280
280
|
'CRV',
|
|
281
281
|
'Name',
|
|
282
|
+
'Note',
|
|
282
283
|
'Location',
|
|
283
284
|
'ALT_Barcode',
|
|
284
285
|
'DUP_Barcode',
|
|
@@ -292,11 +293,15 @@ class NEUSetter:
|
|
|
292
293
|
'Expiry',
|
|
293
294
|
'BestBy',
|
|
294
295
|
'AquisitionDate',
|
|
296
|
+
'Tags',
|
|
295
297
|
]
|
|
296
298
|
fields.extend(LOCATION_FIELDS)
|
|
299
|
+
fields=sorted(fields,key=str)
|
|
297
300
|
fct=len(fields)
|
|
301
|
+
t={i.name:str(i.type).lower() for i in Entry.__table__.columns}
|
|
298
302
|
for num,f in enumerate(fields):
|
|
299
|
-
|
|
303
|
+
|
|
304
|
+
msg=std_colorize(f,num,fct)+f"{Fore.red}[{Fore.cyan}{t[f]}{Fore.red}]{Fore.light_yellow}!{Style.reset}"
|
|
300
305
|
print(msg)
|
|
301
306
|
fnames=[]
|
|
302
307
|
which=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"which {Fore.light_green}index{Fore.light_red}({Fore.light_green}es{Fore.light_red}){Fore.light_yellow}?: ",helpText=f"which {Fore.light_green}index{Fore.light_red}({Fore.light_green}es{Fore.light_red}){Fore.light_yellow}, use comma to separate multiple fields{Style.reset}",data="list")
|
|
@@ -359,9 +364,15 @@ class NEUSetter:
|
|
|
359
364
|
for fname in fnames:
|
|
360
365
|
column=getattr(Entry,fname)
|
|
361
366
|
oldprice=getattr(selected,'Price')
|
|
362
|
-
|
|
367
|
+
if fname.lower() in ['tags','tag']:
|
|
368
|
+
TYPE="list"
|
|
369
|
+
else:
|
|
370
|
+
TYPE=str(column.type)
|
|
371
|
+
newValue=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"[{Fore.medium_violet_red}old{Fore.light_yellow}] {Fore.light_magenta}{fname} = {Fore.light_red}{getattr(selected,fname)}{Fore.orange_red_1} to: {Style.reset}",helpText="new value",data=TYPE)
|
|
363
372
|
if newValue in [None,'d']:
|
|
364
373
|
continue
|
|
374
|
+
if fname.lower() in ['tags','tag']:
|
|
375
|
+
newValue=json.dumps(newValue)
|
|
365
376
|
if fname.lower() == 'tax':
|
|
366
377
|
if not tax_adjusted:
|
|
367
378
|
setattr(selected,fname,newValue)
|
radboy/TasksMode/Tasks.py
CHANGED
|
@@ -53,6 +53,11 @@ from decimal import Decimal as DEC
|
|
|
53
53
|
from radboy.DB.lsToday import *
|
|
54
54
|
from radboy.DB.GEMINI import *
|
|
55
55
|
from radboy.Unified.BACKUP import *
|
|
56
|
+
import scipy
|
|
57
|
+
import radboy.HealthLog as HL
|
|
58
|
+
|
|
59
|
+
UnitRegister=pint.UnitRegistry()
|
|
60
|
+
from pint import Quantity
|
|
56
61
|
|
|
57
62
|
def today():
|
|
58
63
|
dt=datetime.now()
|
|
@@ -491,17 +496,20 @@ class Formulae:
|
|
|
491
496
|
return None
|
|
492
497
|
else:
|
|
493
498
|
returnTypes=["float","Decimal","string","string"]
|
|
494
|
-
returnActor=[lambda x:
|
|
499
|
+
returnActor=[lambda x:float(x),lambda x:Decimal(x),lambda x: f"{x:.4f}",lambda x:str(x)]
|
|
495
500
|
ct=len(returnTypes)
|
|
496
501
|
returnType=None
|
|
497
502
|
htext=[]
|
|
498
503
|
strOnly=False
|
|
504
|
+
tmp=[]
|
|
499
505
|
for num,i in enumerate(returnTypes):
|
|
500
506
|
try:
|
|
501
507
|
htext.append(std_colorize(f"{i} - {returnActor[num](result)} ",num,ct))
|
|
502
508
|
except Exception as e:
|
|
503
509
|
strOnly=True
|
|
504
|
-
print(e)
|
|
510
|
+
print(e,result,type(result))
|
|
511
|
+
if len(htext) < 2:
|
|
512
|
+
return str(result)
|
|
505
513
|
htext='\n'.join(htext)
|
|
506
514
|
while returnType not in range(0,ct+1):
|
|
507
515
|
print(htext)
|
|
@@ -1096,7 +1104,7 @@ SALES TAX ON APPLICABLE TANGIBLE ITEMS = (PRICE + CRV) * TTL TAX RATE
|
|
|
1096
1104
|
return None
|
|
1097
1105
|
else:
|
|
1098
1106
|
returnTypes=["float","Decimal","string","string"]
|
|
1099
|
-
returnActor=[lambda x:
|
|
1107
|
+
returnActor=[lambda x:float(x),lambda x:Decimal(x).quantize(Decimal("0.0000")),lambda x: f"{x:.4f}",lambda x:str(x)]
|
|
1100
1108
|
ct=len(returnTypes)
|
|
1101
1109
|
returnType=None
|
|
1102
1110
|
htext=[]
|
|
@@ -1106,7 +1114,10 @@ SALES TAX ON APPLICABLE TANGIBLE ITEMS = (PRICE + CRV) * TTL TAX RATE
|
|
|
1106
1114
|
htext.append(std_colorize(f"{i} - {returnActor[num](result)} ",num,ct))
|
|
1107
1115
|
except Exception as e:
|
|
1108
1116
|
strOnly=True
|
|
1109
|
-
print(e)
|
|
1117
|
+
print(e,result,type(result))
|
|
1118
|
+
if len(htext) < 2:
|
|
1119
|
+
return str(result)
|
|
1120
|
+
|
|
1110
1121
|
htext='\n'.join(htext)
|
|
1111
1122
|
while returnType not in range(0,ct+1):
|
|
1112
1123
|
print(htext)
|
|
@@ -1536,6 +1547,9 @@ rmc.quikRn(rootdir=ROOTDIR)'''
|
|
|
1536
1547
|
def cookbook(self):
|
|
1537
1548
|
CookBookUi()
|
|
1538
1549
|
|
|
1550
|
+
def healthlog(self):
|
|
1551
|
+
HL.HealthLog.HealthLogUi()
|
|
1552
|
+
|
|
1539
1553
|
def phonebook(self):
|
|
1540
1554
|
PhoneBookUi()
|
|
1541
1555
|
|
|
@@ -3061,6 +3075,73 @@ so use {Fore.orange_red_1}ls-lq/ls Shelf {Fore.light_yellow}from {Fore.light_mag
|
|
|
3061
3075
|
print(e)
|
|
3062
3076
|
|
|
3063
3077
|
def setFieldInList_(self,fieldname,load=False,repack_exec=None,barcode=None,only_select_qty=False):
|
|
3078
|
+
auto=detectGetOrSet("list maker auto default",False,setValue=False,literal=False)
|
|
3079
|
+
ready=0
|
|
3080
|
+
auto_text=f" [a,auto] use current settings and set defaults for any unset settings from system storage."
|
|
3081
|
+
if not auto:
|
|
3082
|
+
ready+=1
|
|
3083
|
+
m=f'{Fore.orange_red_1}INIT({ready}){Fore.light_yellow} -> '
|
|
3084
|
+
#extras that are not always necessary
|
|
3085
|
+
use_dflt_location=Prompt.__init2__(None,func=lambda text,data:FormBuilderMkText(text=text,data=data,passThru=["auto","a","o","oneshot","1shot"],PassThru=True),ptext=f"{m}ask to search for {Fore.cyan}default Entry{Fore.light_yellow} Location ({Fore.light_sea_green}Where the Product was stored by you last){Fore.light_yellow}? [y/N({Fore.orange_red_1}d=default{Fore.light_yellow})]",helpText=f"a boolean value from either of (0,f,n,no,false,False) or (1,t,true,True,yes,y) or formula that equates to a True or a False; {auto_text}",data="boolean")
|
|
3086
|
+
if use_dflt_location in [None,]:
|
|
3087
|
+
return
|
|
3088
|
+
elif use_dflt_location in ["auto","a","o","oneshot","1shot"]:
|
|
3089
|
+
if use_dflt_location in ["o","oneshot","1shot"]:
|
|
3090
|
+
one_shot=True
|
|
3091
|
+
auto=True
|
|
3092
|
+
use_dflt_location=False
|
|
3093
|
+
elif use_dflt_location in ['d',False,]:
|
|
3094
|
+
use_dflt_location=False
|
|
3095
|
+
else:
|
|
3096
|
+
use_dflt_location=True
|
|
3097
|
+
else:
|
|
3098
|
+
use_dflt_location=False
|
|
3099
|
+
|
|
3100
|
+
if use_dflt_location:
|
|
3101
|
+
dfltLctn=Control(func=FormBuilderMkText,ptext="Default Location?",helpText="where is this the contents of this list being stored",data="string")
|
|
3102
|
+
if dfltLctn in ['NaN',None]:
|
|
3103
|
+
return
|
|
3104
|
+
elif dfltLctn in ['d','',' ']:
|
|
3105
|
+
xdflt="Not/Ass/Ign/Ed"
|
|
3106
|
+
else:
|
|
3107
|
+
xdflt=dfltLctn
|
|
3108
|
+
else:
|
|
3109
|
+
xdflt="Not/Ass/Ign/Ed"
|
|
3110
|
+
|
|
3111
|
+
|
|
3112
|
+
if not auto:
|
|
3113
|
+
ready+=1
|
|
3114
|
+
m=f'{Fore.orange_red_1}INIT({ready}){Fore.light_yellow} -> '
|
|
3115
|
+
#extras that are not always necessary
|
|
3116
|
+
use_employee=Prompt.__init2__(None,func=lambda text,data:FormBuilderMkText(text=text,data=data,passThru=["auto","a","o","oneshot","1shot"],PassThru=True),ptext=f"{m}ask to for {Fore.cyan}default Entry{Fore.light_yellow} Employee Name/Initials/EmployeeId# ({Fore.light_sea_green}{Fore.light_blue}what ever you signed the box with){Fore.light_yellow}? [y/N({Fore.orange_red_1}d=default{Fore.light_yellow})]",helpText=f"a boolean value from either of (0,f,n,no,false,False) or (1,t,true,True,yes,y) or formula that equates to a True or a False; {auto_text}",data="boolean")
|
|
3117
|
+
if use_employee in [None,]:
|
|
3118
|
+
return
|
|
3119
|
+
elif use_employee in ["auto","a","o","oneshot","1shot"]:
|
|
3120
|
+
if use_employee in ["o","oneshot","1shot"]:
|
|
3121
|
+
one_shot=True
|
|
3122
|
+
auto=True
|
|
3123
|
+
use_employee=False
|
|
3124
|
+
elif use_employee in ['d',False,]:
|
|
3125
|
+
use_employee=False
|
|
3126
|
+
else:
|
|
3127
|
+
use_employee=True
|
|
3128
|
+
else:
|
|
3129
|
+
use_employee=False
|
|
3130
|
+
|
|
3131
|
+
employee='DEFAULT EMPLOYEE/PERSONNEL'
|
|
3132
|
+
if use_employee:
|
|
3133
|
+
personnel=Control(func=FormBuilderMkText,ptext="Employee Name/Signature/EmployeeId?",helpText="how you are identified on your box",data="string")
|
|
3134
|
+
if personnel in ['NaN',None]:
|
|
3135
|
+
return
|
|
3136
|
+
elif personnel in ['d','',' ']:
|
|
3137
|
+
employee=""
|
|
3138
|
+
else:
|
|
3139
|
+
employee=personnel
|
|
3140
|
+
else:
|
|
3141
|
+
employee=detectGetOrSet("list maker default employee",'',setValue=False,literal=True)
|
|
3142
|
+
|
|
3143
|
+
|
|
3144
|
+
defaultLocation=detectGetOrSet("list maker default employee",xdflt,setValue=True,literal=True)
|
|
3064
3145
|
#determine if ascending or descending by
|
|
3065
3146
|
def hnf(resultx,fieldname,code):
|
|
3066
3147
|
if isinstance(resultx,Entry):
|
|
@@ -3144,9 +3225,9 @@ so use {Fore.orange_red_1}ls-lq/ls Shelf {Fore.light_yellow}from {Fore.light_mag
|
|
|
3144
3225
|
ptext=f'''{hafnhaf_l}
|
|
3145
3226
|
{Fore.light_red}Enter {Style.bold}{Style.underline}{Fore.orange_red_1}Quantity/Formula{Style.reset} amount|+amount|-amount|a,+a,-a(advanced)|r,+r,-r(ReParseFormula) (Enter==1)|{Fore.light_green}ipcv={Fore.dark_goldenrod}PalletCount-value[{Fore.light_steel_blue}:-){Fore.dark_goldenrod}]|{Fore.light_green}iscv={Fore.dark_goldenrod}ShelfCount-value[{Fore.light_steel_blue}:-(){Fore.dark_goldenrod}]|{Fore.light_green}ilcv={Fore.dark_goldenrod}LoadCount-value[{Fore.light_steel_blue};-){Fore.dark_goldenrod}]|{Fore.light_green}iccv={Fore.dark_goldenrod}CaseCount-value[{Fore.light_steel_blue}:-P{Fore.dark_goldenrod}]|{Fore.light_green}ipcvc{Fore.dark_goldenrod}=(PalletCount-value)/CaseCount[{Fore.light_steel_blue}:-D{Fore.dark_goldenrod}]|{Fore.light_green}iscvc{Fore.dark_goldenrod}=(ShelfCount-value)/CaseCount[{Fore.light_steel_blue}:-|{Fore.dark_goldenrod}]|{Fore.light_green}ilcvc{Fore.dark_goldenrod}=(LoadCount-value)/CaseCount[{Fore.light_steel_blue}:-*{Fore.dark_goldenrod}]|{Fore.light_green}iccvc{Fore.dark_goldenrod}=(CaseCount-value)/CaseCount[{Fore.light_steel_blue}:O{Fore.dark_goldenrod}]{Style.reset}'''
|
|
3146
3227
|
return ptext
|
|
3147
|
-
|
|
3228
|
+
|
|
3148
3229
|
#ready+=1
|
|
3149
|
-
|
|
3230
|
+
|
|
3150
3231
|
use_code=detectGetOrSet("list maker use code default",False,setValue=False,literal=False)
|
|
3151
3232
|
use_casecount=detectGetOrSet("list maker use casecount default",False,setValue=False,literal=False)
|
|
3152
3233
|
use_price=detectGetOrSet("list maker use price default",True,setValue=False,literal=False)
|
|
@@ -3158,7 +3239,7 @@ so use {Fore.orange_red_1}ls-lq/ls Shelf {Fore.light_yellow}from {Fore.light_mag
|
|
|
3158
3239
|
ask_taxes=detectGetOrSet("list maker new item taxes default",False,setValue=False,literal=False)
|
|
3159
3240
|
use_search=detectGetOrSet("list maker new item search default",False,setValue=False,literal=False)
|
|
3160
3241
|
one_shot=detectGetOrSet("list maker one shot default",False,setValue=False,literal=False)
|
|
3161
|
-
|
|
3242
|
+
|
|
3162
3243
|
m=f'{Fore.orange_red_1}INIT({ready}){Fore.light_yellow} -> '
|
|
3163
3244
|
#names that are not always necessary
|
|
3164
3245
|
if not auto:
|
|
@@ -3960,6 +4041,8 @@ Location Fields:
|
|
|
3960
4041
|
continue
|
|
3961
4042
|
|
|
3962
4043
|
if isinstance(result,Entry):
|
|
4044
|
+
result.location=defaultLocation
|
|
4045
|
+
result.Note+=f"Name|Signature|EmployeeId:{employee}\nToday: {datetime.now().ctime()}\n"
|
|
3963
4046
|
if result.Price is None:
|
|
3964
4047
|
result.Price=0
|
|
3965
4048
|
if result.Tax is None:
|
|
@@ -4036,21 +4119,25 @@ Location Fields:
|
|
|
4036
4119
|
continue
|
|
4037
4120
|
def mkLT(text,data):
|
|
4038
4121
|
return text
|
|
4039
|
-
note=
|
|
4122
|
+
note=f""
|
|
4040
4123
|
if use_notes:
|
|
4041
|
-
|
|
4042
|
-
if
|
|
4124
|
+
nte=Prompt.__init2__(None,func=mkLT,ptext=f"Note's? ",helpText="temporary note about item, if any.",data=code)
|
|
4125
|
+
if nte in [None,]:
|
|
4043
4126
|
continue
|
|
4127
|
+
note+=nte
|
|
4044
4128
|
|
|
4045
4129
|
try:
|
|
4046
4130
|
color1=Fore.light_red
|
|
4047
4131
|
color2=Fore.orange_red_1
|
|
4048
4132
|
color3=Fore.cyan
|
|
4049
4133
|
color4=Fore.green_yellow
|
|
4134
|
+
result.Note+=f"\n{fieldname} = '{text}'\n"
|
|
4050
4135
|
if text.startswith("-") or text.startswith("+"):
|
|
4051
4136
|
#result=session.query(Entry).filter(or_(Entry.Barcode==code,Entry.Code==code,Entry.ALT_Barcode==code)).first()
|
|
4052
4137
|
#sore
|
|
4053
4138
|
if result:
|
|
4139
|
+
result.Location=defaultLocation
|
|
4140
|
+
#result.Note+=f"Name|Signature|EmployeeId:{employee}\nToday: {datetime.now().ctime()}\n"
|
|
4054
4141
|
if suffix.lower() in ['c',]:
|
|
4055
4142
|
if result.CaseCount in [None,]:
|
|
4056
4143
|
result.CaseCount=1
|
|
@@ -4085,6 +4172,8 @@ Location Fields:
|
|
|
4085
4172
|
if isinstance(replacement,int):
|
|
4086
4173
|
result=session.query(Entry).filter(Entry.EntryId==replacement).first()
|
|
4087
4174
|
if result:
|
|
4175
|
+
result.Location=defaultLocation
|
|
4176
|
+
result.Note+=f"Name|Signature|EmployeeId:{employee}\nToday: {datetime.now().ctime()}\n"
|
|
4088
4177
|
setattr(result,fieldname,getattr(result,fieldname)+float(value))
|
|
4089
4178
|
result.InList=True
|
|
4090
4179
|
session.commit()
|
|
@@ -4129,7 +4218,8 @@ Location Fields:
|
|
|
4129
4218
|
icc=1
|
|
4130
4219
|
if not use_price:
|
|
4131
4220
|
iprice=0
|
|
4132
|
-
|
|
4221
|
+
note+=f"Name|Signature|EmployeeId:{employee}\nToday: {datetime.now().ctime()}\n"
|
|
4222
|
+
n=Entry(Barcode=code,Code=icode,Price=iprice,Note=note+"\nNew Item",Location=defaultLocation,Tax=tax,CRV=crv,Name=name,CaseCount=icc,InList=True)
|
|
4133
4223
|
setattr(n,fieldname,value)
|
|
4134
4224
|
session.add(n)
|
|
4135
4225
|
session.commit()
|
|
@@ -4149,6 +4239,8 @@ Location Fields:
|
|
|
4149
4239
|
#result=session.query(Entry).filter(or_(Entry.Barcode==code,Entry.Code==code,Entry.ALT_Barcode==code)).first()
|
|
4150
4240
|
#sore
|
|
4151
4241
|
if result:
|
|
4242
|
+
result.Location=defaultLocation
|
|
4243
|
+
#result.Note+=f"Name|Signature|EmployeeId:{employee}\nToday: {datetime.now().ctime()}\n"
|
|
4152
4244
|
if suffix.lower() in ['c',]:
|
|
4153
4245
|
if result.CaseCount in [None,]:
|
|
4154
4246
|
result.CaseCount=1
|
|
@@ -4185,6 +4277,8 @@ Location Fields:
|
|
|
4185
4277
|
if isinstance(replacement,int):
|
|
4186
4278
|
result=session.query(Entry).filter(Entry.EntryId==replacement).first()
|
|
4187
4279
|
if result:
|
|
4280
|
+
result.Location=defaultLocation
|
|
4281
|
+
result.Note+=f"Name|Signature|EmployeeId:{employee}\nToday: {datetime.now().ctime()}\n"
|
|
4188
4282
|
setattr(result,fieldname,getattr(result,fieldname)+float(value))
|
|
4189
4283
|
result.InList=True
|
|
4190
4284
|
session.commit()
|
|
@@ -4230,7 +4324,8 @@ Location Fields:
|
|
|
4230
4324
|
icc=1
|
|
4231
4325
|
if not use_price:
|
|
4232
4326
|
iprice=0
|
|
4233
|
-
|
|
4327
|
+
note+=f"Name|Signature|EmployeeId:{employee}\nToday: {datetime.now().ctime()}\n"
|
|
4328
|
+
n=Entry(Barcode=code,Code=icode,Price=iprice,Note=note+"\nNew Item",Location=defaultLocation,Tax=tax,CRV=crv,Name=name,CaseCount=icc,InList=True)
|
|
4234
4329
|
#n=Entry(Barcode=code,Code=icode,Note=note+"\nNew Item",Name=name,Price=iprice,CaseCount=icc,InList=True)
|
|
4235
4330
|
setattr(n,fieldname,value)
|
|
4236
4331
|
session.add(n)
|
|
@@ -6576,26 +6671,35 @@ Do What? [rms,rma,edit/e,<ENTER>/next,prev]"""
|
|
|
6576
6671
|
else:
|
|
6577
6672
|
print(f"{Fore.light_steel_blue}Qty was still {Fore.orange_red_1}{Qty}{Style.reset}")
|
|
6578
6673
|
|
|
6579
|
-
def bcd_img(self):
|
|
6674
|
+
def bcd_img(self,cp2=None):
|
|
6580
6675
|
SUPPORTEDOUT=barcode.PROVIDED_BARCODES
|
|
6581
6676
|
final_out=detectGetOrSet("IMG_GEN_OUT","GENERATED_BCD",literal=True)
|
|
6582
6677
|
ct=len(SUPPORTEDOUT)
|
|
6583
|
-
|
|
6584
|
-
|
|
6585
|
-
|
|
6586
|
-
|
|
6587
|
-
|
|
6588
|
-
|
|
6678
|
+
if cp2 is None:
|
|
6679
|
+
for num,i in enumerate(SUPPORTEDOUT):
|
|
6680
|
+
msg=f'''{Fore.medium_violet_red}{num}{Fore.light_magenta}/{num+1} of {Fore.dark_goldenrod}{ct} -> {Fore.light_green}{i}{Style.reset}'''
|
|
6681
|
+
print(msg)
|
|
6682
|
+
which=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"Which {Fore.medium_violet_red}index? {Fore.light_yellow}",helpText="which {Fore.medium_violet_red}index? {Fore.light_yellow}",data="integer")
|
|
6683
|
+
if which in [None,'d']:
|
|
6684
|
+
which=SUPPORTEDOUT.index("code128")
|
|
6589
6685
|
try:
|
|
6590
6686
|
data=Prompt.__init2__(None,func=FormBuilderMkText,ptext="What data do you wish to encode?",helpText="its just text.",data="string")
|
|
6591
6687
|
options={}
|
|
6592
6688
|
options['writer']=barcode.writer.ImageWriter()
|
|
6593
6689
|
if data in ['d',None]:
|
|
6594
6690
|
return
|
|
6595
|
-
if
|
|
6596
|
-
|
|
6597
|
-
|
|
6598
|
-
|
|
6691
|
+
if cp2 is None:
|
|
6692
|
+
if SUPPORTEDOUT[which] == 'code39':
|
|
6693
|
+
options['add_checksum']=False
|
|
6694
|
+
else:
|
|
6695
|
+
if cp2 == "code39":
|
|
6696
|
+
options['add_checksum']=False
|
|
6697
|
+
|
|
6698
|
+
if cp2 is None:
|
|
6699
|
+
bcd_class=barcode.get_class(SUPPORTEDOUT[which])
|
|
6700
|
+
else:
|
|
6701
|
+
bcd_class=barcode.get_class(cp2)
|
|
6702
|
+
|
|
6599
6703
|
cde=bcd_class(data,**options)
|
|
6600
6704
|
cde.save(final_out)
|
|
6601
6705
|
print(f"Saved to '{final_out}'!")
|
|
@@ -6729,6 +6833,10 @@ CD4E(str_code_or_id,shrt=True/False) -> Retrieves the Entry for an Entry(s) Code
|
|
|
6729
6833
|
if no item is found, then an un-commited Entry is returned; Entry('NOT FOUND','ERROR 404').
|
|
6730
6834
|
if no item is selected, then an un-commited Entry is returned; Entry('No Selection','Nothing Selected').
|
|
6731
6835
|
if an exception prevents operation, then an un-commited Entry is returned; Entry('EXCEPTION','Exception').
|
|
6836
|
+
|
|
6837
|
+
CVT(value,str_in,str_out) - specifically a part of evaluateFormula()
|
|
6838
|
+
UnitRegistry - pint.UnitRegistry
|
|
6839
|
+
Quantity() - pint.Quantity for normalized values
|
|
6732
6840
|
{Style.reset}'''
|
|
6733
6841
|
def mkValue(text,self):
|
|
6734
6842
|
try:
|
|
Binary file
|
|
Binary file
|
radboy/Unified/BACKUP.py
CHANGED
|
@@ -236,6 +236,13 @@ rmc.quikRn(rootdir=ROOTDIR)'''.encode()
|
|
|
236
236
|
print(f"{Fore.spring_green_3b}Adding {Fore.green_yellow}{export_folder}{Style.reset}")
|
|
237
237
|
gzf.add(export_folder)
|
|
238
238
|
|
|
239
|
+
defFile=db.detectGetOrSet("currency_definitions_file","currency_definitions.txt",setValue=False,literal=True)
|
|
240
|
+
if defFile:
|
|
241
|
+
defFile=Path(defFile)
|
|
242
|
+
if defFile.exists() and defFile.is_file():
|
|
243
|
+
print(f"{Fore.spring_green_3b}Adding {Fore.green_yellow}{defFile}{Style.reset}")
|
|
244
|
+
gzf.add(defFile)
|
|
245
|
+
|
|
239
246
|
bootable="__bootable__.py"
|
|
240
247
|
if bootable:
|
|
241
248
|
bootable=Path(bootable)
|
|
Binary file
|
|
Binary file
|
radboy/Unified/bareCA.py
CHANGED
|
@@ -109,6 +109,7 @@ def bare_ca(self,inList=False,protect_unassigned=True):
|
|
|
109
109
|
'Expiry':None,
|
|
110
110
|
'BestBy':None,
|
|
111
111
|
'AquisitionDate':None,
|
|
112
|
+
'Location':'///',
|
|
112
113
|
})
|
|
113
114
|
else:
|
|
114
115
|
result=session.query(db.Entry).filter(db.Entry.InList==True,db.Entry.Code!="UNASSIGNED_TO_NEW_ITEM").update({
|
|
@@ -138,6 +139,7 @@ def bare_ca(self,inList=False,protect_unassigned=True):
|
|
|
138
139
|
'Expiry':None,
|
|
139
140
|
'BestBy':None,
|
|
140
141
|
'AquisitionDate':None,
|
|
142
|
+
'Location':'///',
|
|
141
143
|
})
|
|
142
144
|
else:
|
|
143
145
|
if not protect_unassigned:
|
|
@@ -168,6 +170,7 @@ def bare_ca(self,inList=False,protect_unassigned=True):
|
|
|
168
170
|
'Expiry':None,
|
|
169
171
|
'BestBy':None,
|
|
170
172
|
'AquisitionDate':None,
|
|
173
|
+
'Location':'///',
|
|
171
174
|
})
|
|
172
175
|
else:
|
|
173
176
|
result=session.query(db.Entry).filter(db.Entry.Code!="UNASSIGNED_TO_NEW_ITEM").update(
|
|
@@ -197,6 +200,7 @@ def bare_ca(self,inList=False,protect_unassigned=True):
|
|
|
197
200
|
'Expiry':None,
|
|
198
201
|
'BestBy':None,
|
|
199
202
|
'AquisitionDate':None,
|
|
203
|
+
'Location':'///',
|
|
200
204
|
})
|
|
201
205
|
session.commit()
|
|
202
206
|
session.flush()
|
|
@@ -229,7 +233,8 @@ def bare_ca(self,inList=False,protect_unassigned=True):
|
|
|
229
233
|
'CHKSTND_SPLY':0,
|
|
230
234
|
'Expiry':None,
|
|
231
235
|
'BestBy':None,
|
|
232
|
-
'AquisitionDate':None,
|
|
236
|
+
'AquisitionDate':None,
|
|
237
|
+
'Location':'///',})
|
|
233
238
|
session.commit()
|
|
234
239
|
session.flush()
|
|
235
240
|
r=query.all()
|
|
@@ -261,7 +266,8 @@ def bare_ca(self,inList=False,protect_unassigned=True):
|
|
|
261
266
|
'CHKSTND_SPLY':0,
|
|
262
267
|
'Expiry':None,
|
|
263
268
|
'BestBy':None,
|
|
264
|
-
'AquisitionDate':None,
|
|
269
|
+
'AquisitionDate':None,
|
|
270
|
+
'Location':'///',}
|
|
265
271
|
)
|
|
266
272
|
session.commit()
|
|
267
273
|
session.flush()
|
radboy/Unified/clearalll.py
CHANGED
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.854'
|
|
Binary file
|
radboy/code.png
CHANGED
|
Binary file
|
radboy/preloader/preloader.py
CHANGED
|
@@ -27,6 +27,11 @@ preloader={
|
|
|
27
27
|
'desc':f'return a selected drug text',
|
|
28
28
|
'exec':drug_text
|
|
29
29
|
},
|
|
30
|
+
f'{uuid1()}':{
|
|
31
|
+
'cmds':['golden-ratio','gldn rto',],
|
|
32
|
+
'desc':f'get the golden ration for a measurement',
|
|
33
|
+
'exec':golden_ratio
|
|
34
|
+
},
|
|
30
35
|
f'{uuid1()}':{
|
|
31
36
|
'cmds':['volume pint',],
|
|
32
37
|
'desc':f'find the volume of height*width*length using pint to normalize the values',
|
|
@@ -57,12 +62,32 @@ preloader={
|
|
|
57
62
|
'desc':f'now to percent time, or time to go',
|
|
58
63
|
'exec':ndtp
|
|
59
64
|
},
|
|
65
|
+
f'{uuid1()}':{
|
|
66
|
+
'cmds':['currency conversion','cur-cvt'],
|
|
67
|
+
'desc':f'convert currency from one to the another',
|
|
68
|
+
'exec':currency_conversion,
|
|
69
|
+
},
|
|
70
|
+
f'{uuid1()}':{
|
|
71
|
+
'cmds':['sonofman-bible','sonofman','bible','bbl'],
|
|
72
|
+
'desc':f'open sonofman bible',
|
|
73
|
+
'exec':bible_try,
|
|
74
|
+
},
|
|
75
|
+
f'{uuid1()}':{
|
|
76
|
+
'cmds':['sales floor location','sls flr lctn'],
|
|
77
|
+
'desc':f'generate a sales floor location string',
|
|
78
|
+
'exec':SalesFloorLocationString,
|
|
79
|
+
},
|
|
80
|
+
f'{uuid1()}':{
|
|
81
|
+
'cmds':['backroom location','br lctn'],
|
|
82
|
+
'desc':f'generate a backroom location string',
|
|
83
|
+
'exec':BackroomLocation,
|
|
84
|
+
},
|
|
60
85
|
f'{uuid1()}':{
|
|
61
86
|
'cmds':['generic item or service text template','txt gios '],
|
|
62
87
|
'desc':f'find the cost to run a device per day',
|
|
63
88
|
'exec':generic_service_or_item
|
|
64
89
|
},
|
|
65
|
-
|
|
90
|
+
f'{uuid1()}':{
|
|
66
91
|
'cmds':['reciept book entry','rbe'],
|
|
67
92
|
'desc':f'reciept book data to name template',
|
|
68
93
|
'exec':reciept_book_entry,
|
|
@@ -27,7 +27,7 @@ import itertools
|
|
|
27
27
|
import decimal
|
|
28
28
|
from decimal import localcontext,Decimal
|
|
29
29
|
unit_registry=pint.UnitRegistry()
|
|
30
|
-
import math
|
|
30
|
+
import math,scipy
|
|
31
31
|
from radboy.HowDoYouDefineMe.CoreEmotions import *
|
|
32
32
|
|
|
33
33
|
def volume():
|
|
@@ -1674,21 +1674,26 @@ def drug_text():
|
|
|
1674
1674
|
for line in reader:
|
|
1675
1675
|
for sub in line:
|
|
1676
1676
|
if sub not in ['',]:
|
|
1677
|
+
sub=f"{sub} {Fore.light_green}[{Fore.cyan}{extra_drugs}{Fore.light_green}]{Fore.dark_goldenrod}"
|
|
1677
1678
|
drug_names.append(sub)
|
|
1678
1679
|
|
|
1679
|
-
|
|
1680
|
-
|
|
1680
|
+
excludes_drn=['',' ',None,'\n','\r\n','\t',]
|
|
1681
|
+
rdr_state=db.detectGetOrSet('list maker lookup order',False,setValue=False,literal=False)
|
|
1682
|
+
if rdr_state:
|
|
1683
|
+
drug_names=list(sorted(set([i for i in drug_names if i not in excludes_drn]),key=str))
|
|
1684
|
+
else:
|
|
1685
|
+
drug_names=list(reversed(sorted(set([i for i in drug_names if i not in excludes_drn]),key=str)))
|
|
1681
1686
|
htext=[]
|
|
1682
1687
|
cta=len(drug_names)
|
|
1683
1688
|
for num,i in enumerate(drug_names):
|
|
1684
1689
|
htext.append(std_colorize(i,num,cta))
|
|
1685
1690
|
htext='\n'.join(htext)
|
|
1686
|
-
|
|
1687
|
-
which=Control(func=FormBuilderMkText,ptext="which index?",helpText=htext,data="integer")
|
|
1691
|
+
|
|
1692
|
+
which=Control(func=FormBuilderMkText,ptext=f"{htext}\n{Fore.yellow}which index?",helpText=htext,data="integer")
|
|
1688
1693
|
if which in [None,'NaN']:
|
|
1689
1694
|
return
|
|
1690
1695
|
|
|
1691
|
-
return drug_names[which]
|
|
1696
|
+
return strip_colors(drug_names[which])
|
|
1692
1697
|
except Exception as e:
|
|
1693
1698
|
print(e)
|
|
1694
1699
|
continue
|
|
@@ -1786,4 +1791,323 @@ def USCurrencyMassValues():
|
|
|
1786
1791
|
|
|
1787
1792
|
except Exception as e:
|
|
1788
1793
|
print(e)
|
|
1789
|
-
continue
|
|
1794
|
+
continue
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
def golden_ratio():
|
|
1798
|
+
msg=''
|
|
1799
|
+
while True:
|
|
1800
|
+
try:
|
|
1801
|
+
fields={
|
|
1802
|
+
'measurement':{
|
|
1803
|
+
'type':'dec.dec',
|
|
1804
|
+
'default':48,
|
|
1805
|
+
},
|
|
1806
|
+
}
|
|
1807
|
+
fd=FormBuilder(data=fields,passThruText=msg)
|
|
1808
|
+
if fd is None:
|
|
1809
|
+
return
|
|
1810
|
+
side1_value=(decc(fd['measurement'])/decc(scipy.constants.golden_ratio))
|
|
1811
|
+
side2_value=fd['measurement']-decc(side1_value)
|
|
1812
|
+
which=Control(func=FormBuilderMkText,ptext=f"Which side do you wish to return [for a side of {fd['measurement']}: side1_value={side1_value},side2_value={side2_value}]?",helpText="yes/1/true=side 1,side 2 is false/no/0",data="boolean")
|
|
1813
|
+
if which in [None,"NaN"]:
|
|
1814
|
+
return
|
|
1815
|
+
elif which:
|
|
1816
|
+
return side1_value
|
|
1817
|
+
else:
|
|
1818
|
+
return side2_value
|
|
1819
|
+
except Exception as e:
|
|
1820
|
+
print(e)
|
|
1821
|
+
|
|
1822
|
+
|
|
1823
|
+
def currency_conversion():
|
|
1824
|
+
cvt_registry=pint.UnitRegistry()
|
|
1825
|
+
|
|
1826
|
+
definition=f'''
|
|
1827
|
+
USD = [currency]
|
|
1828
|
+
Argentine_Peso = nan usd
|
|
1829
|
+
Australian_Dollar = nan usd
|
|
1830
|
+
Bahraini_Dinar = nan usd
|
|
1831
|
+
Botswana_Pula = nan usd
|
|
1832
|
+
Brazilian_Real = nan usd
|
|
1833
|
+
British_Pound = nan usd
|
|
1834
|
+
Bruneian_Dollar = nan usd
|
|
1835
|
+
Bulgarian_Lev = nan usd
|
|
1836
|
+
Canadian_Dollar = nan usd
|
|
1837
|
+
Chilean_Peso = nan usd
|
|
1838
|
+
Chinese_Yuan_Renminbi = nan usd
|
|
1839
|
+
Colombian_Peso = nan usd
|
|
1840
|
+
Czech_Koruna = nan usd
|
|
1841
|
+
Danish_Krone = nan usd
|
|
1842
|
+
Emirati_Dirham = nan usd
|
|
1843
|
+
Euro = nan usd
|
|
1844
|
+
Hong_Kong_Dollar = nan usd
|
|
1845
|
+
Hungarian_Forint = nan usd
|
|
1846
|
+
Icelandic_Krona = nan usd
|
|
1847
|
+
Indian_Rupee = nan usd
|
|
1848
|
+
Indonesian_Rupiah = nan usd
|
|
1849
|
+
Iranian_Rial = nan usd
|
|
1850
|
+
Israeli_Shekel = nan usd
|
|
1851
|
+
Japanese_Yen = nan usd
|
|
1852
|
+
Kazakhstani_Tenge = nan usd
|
|
1853
|
+
Kuwaiti_Dinar = nan usd
|
|
1854
|
+
Libyan_Dinar = nan usd
|
|
1855
|
+
Malaysian_Ringgit = nan usd
|
|
1856
|
+
Mauritian_Rupee = nan usd
|
|
1857
|
+
Mexican_Peso = nan usd
|
|
1858
|
+
Nepalese_Rupee = nan usd
|
|
1859
|
+
New_Zealand_Dollar = nan usd
|
|
1860
|
+
Norwegian_Krone = nan usd
|
|
1861
|
+
Omani_Rial = nan usd
|
|
1862
|
+
Pakistani_Rupee = nan usd
|
|
1863
|
+
Philippine_Peso = nan usd
|
|
1864
|
+
Polish_Zloty = nan usd
|
|
1865
|
+
Qatari_Riyal = nan usd
|
|
1866
|
+
Romanian_New_Leu = nan usd
|
|
1867
|
+
Russian_Ruble = nan usd
|
|
1868
|
+
Saudi_Arabian_Riyal = nan usd
|
|
1869
|
+
Singapore_Dollar = nan usd
|
|
1870
|
+
South_African_Rand = nan usd
|
|
1871
|
+
South_Korean_Won = nan usd
|
|
1872
|
+
Sri_Lankan_Rupee = nan usd
|
|
1873
|
+
Swedish_Krona = nan usd
|
|
1874
|
+
Swiss_Franc = nan usd
|
|
1875
|
+
Taiwan_New_Dollar = nan usd
|
|
1876
|
+
Thai_Baht = nan usd
|
|
1877
|
+
Trinidadian_Dollar = nan usd
|
|
1878
|
+
Turkish_Lira = nan usd
|
|
1879
|
+
|
|
1880
|
+
@context FX
|
|
1881
|
+
Argentine_Peso = 0.000671 usd
|
|
1882
|
+
Australian_Dollar = 0.651104 usd
|
|
1883
|
+
Bahraini_Dinar = 2.659574 usd
|
|
1884
|
+
Botswana_Pula = 0.070042 usd
|
|
1885
|
+
Brazilian_Real = 0.185537 usd
|
|
1886
|
+
British_Pound = 1.330948 usd
|
|
1887
|
+
Bruneian_Dollar = 0.769854 usd
|
|
1888
|
+
Bulgarian_Lev = 0.594475 usd
|
|
1889
|
+
Canadian_Dollar = 0.714527 usd
|
|
1890
|
+
Chilean_Peso = 0.001062 usd
|
|
1891
|
+
Chinese_Yuan_Renminbi = 0.140424 usd
|
|
1892
|
+
Colombian_Peso = 0.000259 usd
|
|
1893
|
+
Czech_Koruna = 0.047793 usd
|
|
1894
|
+
Danish_Krone = 0.155642 usd
|
|
1895
|
+
Emirati_Dirham = 0.272294 usd
|
|
1896
|
+
Euro = 1.162692 usd
|
|
1897
|
+
Hong_Kong_Dollar = 0.128701 usd
|
|
1898
|
+
Hungarian_Forint = 0.002981 usd
|
|
1899
|
+
Icelandic_Krona = 0.008119 usd
|
|
1900
|
+
Indian_Rupee = 0.011384 usd
|
|
1901
|
+
Indonesian_Rupiah = 0.00006 usd
|
|
1902
|
+
Iranian_Rial = 0.000024 usd
|
|
1903
|
+
Israeli_Shekel = 0.304734 usd
|
|
1904
|
+
Japanese_Yen = 0.006545 usd
|
|
1905
|
+
Kazakhstani_Tenge = 0.00186 usd
|
|
1906
|
+
Kuwaiti_Dinar = 3.261214 usd
|
|
1907
|
+
Libyan_Dinar = 0.183824 usd
|
|
1908
|
+
Malaysian_Ringgit = 0.236753 usd
|
|
1909
|
+
Mauritian_Rupee = 0.02197 usd
|
|
1910
|
+
Mexican_Peso = 0.054181 usd
|
|
1911
|
+
Nepalese_Rupee = 0.007112 usd
|
|
1912
|
+
New_Zealand_Dollar = 0.575051 usd
|
|
1913
|
+
Norwegian_Krone = 0.099905 usd
|
|
1914
|
+
Omani_Rial = 2.603489 usd
|
|
1915
|
+
Pakistani_Rupee = 0.003531 usd
|
|
1916
|
+
Philippine_Peso = 0.017016 usd
|
|
1917
|
+
Polish_Zloty = 0.274017 usd
|
|
1918
|
+
Qatari_Riyal = 0.274725 usd
|
|
1919
|
+
Romanian_New_Leu = 0.228593 usd
|
|
1920
|
+
Russian_Ruble = 0.012559 usd
|
|
1921
|
+
Saudi_Arabian_Riyal = 0.266667 usd
|
|
1922
|
+
Singapore_Dollar = 0.769854 usd
|
|
1923
|
+
South_African_Rand = 0.057932 usd
|
|
1924
|
+
South_Korean_Won = 0.000695 usd
|
|
1925
|
+
Sri_Lankan_Rupee = 0.003293 usd
|
|
1926
|
+
Swedish_Krona = 0.106347 usd
|
|
1927
|
+
Swiss_Franc = 1.256685 usd
|
|
1928
|
+
Taiwan_New_Dollar = 0.032417 usd
|
|
1929
|
+
Thai_Baht = 0.030604 usd
|
|
1930
|
+
Trinidadian_Dollar = 0.147095 usd
|
|
1931
|
+
Turkish_Lira = 0.023829 usd
|
|
1932
|
+
@end'''.lower()
|
|
1933
|
+
defFile=db.detectGetOrSet("currency_definitions_file","currency_definitions.txt",setValue=False,literal=True)
|
|
1934
|
+
if defFile is None:
|
|
1935
|
+
return
|
|
1936
|
+
defFile=Path(defFile)
|
|
1937
|
+
with open(defFile,"w") as out:
|
|
1938
|
+
out.write(definition)
|
|
1939
|
+
cvt_registry.load_definitions(defFile)
|
|
1940
|
+
with cvt_registry.context("fx") as cvtr:
|
|
1941
|
+
while True:
|
|
1942
|
+
try:
|
|
1943
|
+
htext=[]
|
|
1944
|
+
definition=definition.split("@context FX")[-1].replace('\n@end','')
|
|
1945
|
+
cta=len(definition.split("\n"))
|
|
1946
|
+
formats='\n'.join([std_colorize(i,num,cta) for num,i in enumerate(definition.split("\n"))])
|
|
1947
|
+
|
|
1948
|
+
formats=f'''Conversion Formats are:\n{formats}\n'''
|
|
1949
|
+
fields={
|
|
1950
|
+
'value':{
|
|
1951
|
+
'default':1,
|
|
1952
|
+
'type':'float',
|
|
1953
|
+
},
|
|
1954
|
+
'FromString':{
|
|
1955
|
+
'default':'USD',
|
|
1956
|
+
'type':'string',
|
|
1957
|
+
},
|
|
1958
|
+
'ToString':{
|
|
1959
|
+
'default':'Euro',
|
|
1960
|
+
'type':'string'
|
|
1961
|
+
},
|
|
1962
|
+
}
|
|
1963
|
+
fb=FormBuilder(data=fields,passThruText=formats)
|
|
1964
|
+
if fb is None:
|
|
1965
|
+
return
|
|
1966
|
+
|
|
1967
|
+
return_string=fb['ToString'].lower()
|
|
1968
|
+
value_string=f"{fb['value']} {fb['FromString']}".lower()
|
|
1969
|
+
resultant=cvtr.Quantity(value_string).to(return_string)
|
|
1970
|
+
|
|
1971
|
+
#if it gets here return None
|
|
1972
|
+
return resultant
|
|
1973
|
+
except Exception as e:
|
|
1974
|
+
print(e)
|
|
1975
|
+
|
|
1976
|
+
def bible_try():
|
|
1977
|
+
try:
|
|
1978
|
+
os.system("sonofman")
|
|
1979
|
+
return None
|
|
1980
|
+
except Exception as e:
|
|
1981
|
+
print(e)
|
|
1982
|
+
|
|
1983
|
+
DELCHAR=db.detectGetOrSet("DELCHAR preloader func","|",setValue=False,literal=True)
|
|
1984
|
+
if not DELCHAR:
|
|
1985
|
+
DELCHAR='|'
|
|
1986
|
+
|
|
1987
|
+
def SalesFloorLocationString():
|
|
1988
|
+
fields=OrderedDict({
|
|
1989
|
+
|
|
1990
|
+
'Aisle[s]':{
|
|
1991
|
+
'default':'',
|
|
1992
|
+
'type':'string',
|
|
1993
|
+
},
|
|
1994
|
+
'Bay[s]/AisleDepth':{
|
|
1995
|
+
'default':'',
|
|
1996
|
+
'type':'string',
|
|
1997
|
+
},
|
|
1998
|
+
'Shel[f,ves]':{
|
|
1999
|
+
'default':'',
|
|
2000
|
+
'type':'string',
|
|
2001
|
+
}
|
|
2002
|
+
})
|
|
2003
|
+
passThruText=f"""
|
|
2004
|
+
{Fore.orange_red_1}Valid Aisle[s]:{Fore.grey_85}
|
|
2005
|
+
this is the aisle on which the product resides
|
|
2006
|
+
if the product belongs on an end cap use the endcap here as
|
|
2007
|
+
well. endcaps are numbered 0+=1 from left to right of the store
|
|
2008
|
+
front. the same is true for aisle. if the product resides on an
|
|
2009
|
+
end cap, append FEC (0FEC) to signify front end cap 0, or 0REC for
|
|
2010
|
+
rear end cap 0.
|
|
2011
|
+
0 -> on aisle 0
|
|
2012
|
+
0,1 -> on aisle 0 and 1
|
|
2013
|
+
0-2 -> from aisle 0 to aisle 2
|
|
2014
|
+
|
|
2015
|
+
encaps on the front side of the aisle will have an FEC Appended to its number
|
|
2016
|
+
The same is true for rear of the aisle(REC). if a encap range is used, the character
|
|
2017
|
+
will identify its side of the store. if two encaps on opposite sides of the store
|
|
2018
|
+
are specified, then use 2 separate ranges; one for front and one for the rear.
|
|
2019
|
+
0FEC -> on front endcap 0
|
|
2020
|
+
0FEC,1REC -> on front endcap 0 and on rear endcap 1.
|
|
2021
|
+
0-2FEC -> from front endcap 0 to front endcap 2
|
|
2022
|
+
0-2REC -> from rear endcap 0 to rear endcap 2
|
|
2023
|
+
0-2FEC,0-2REC -> from front endcap 0 to front endcap 2 && from rear endcap 0 to rear endcap 2
|
|
2024
|
+
|
|
2025
|
+
if No number is provided, but a common NAME is used, use that here for this section of the location.
|
|
2026
|
+
{Fore.orange_red_1}Valid 'Bay[s]/AisleDepth':{Fore.grey_85}
|
|
2027
|
+
This is How many shelf bays deep from the front of the store
|
|
2028
|
+
to the back, where 0 is the first bay from the endcap at the
|
|
2029
|
+
front of the store and increments upwards to the rear end cap.
|
|
2030
|
+
Bays on the right side of the aisle will have an R Appended to its number
|
|
2031
|
+
The same is true for left of the aisle. if a bay range is used, the character
|
|
2032
|
+
will identify its side of the aisle. if two bays on opposite sides of the aisle
|
|
2033
|
+
are specified, then use 2 separate ranges; one for left and one for right.
|
|
2034
|
+
0 -> on bay 0
|
|
2035
|
+
0,1 -> on bay 0 and 1
|
|
2036
|
+
0-2R -> from bay 0 to bay 2 on the right side of the aisle
|
|
2037
|
+
0-2L -> from bay 0 to bay 2 on the left side of the aisle
|
|
2038
|
+
0-2R,0-2L -> from bay 0 to bay 2 on the right side of the aisle && from bay 0 to bay 2 on the left side of the aisle.
|
|
2039
|
+
|
|
2040
|
+
if No number is provided, but a common NAME is used, use that here for this section of the location.
|
|
2041
|
+
{Fore.orange_red_1}Valid Shel[f,ves]:{Fore.grey_85}
|
|
2042
|
+
this is the height where the product is on the shelf
|
|
2043
|
+
shelves are number 0 to their highest from bottom to top
|
|
2044
|
+
where the very bottom shelf is 0, and the next following shelf upwards is
|
|
2045
|
+
1, and so on.
|
|
2046
|
+
0 -> on shelf 0
|
|
2047
|
+
0,1 -> on shelf 0 and 1
|
|
2048
|
+
0-2 -> from shelf 0 to shelf 2
|
|
2049
|
+
|
|
2050
|
+
if No number is provided, but a common NAME is used, use that here for this section of the location.
|
|
2051
|
+
{Fore.light_green}Aisle or EndCap{Fore.light_red}/{Fore.light_yellow}Depth or Bay in Aisle{Fore.light_red}/{Fore.light_steel_blue}Shelf or Location Number(s) Where Item Resides [optional]{Style.reset}
|
|
2052
|
+
{Fore.light_green}A completely Valid Example is Aisle 0|Household Chemicals|Kitchen Care, which is where Dawn Dish Detergent is normally located.
|
|
2053
|
+
{Fore.light_red}{os.get_terminal_size().columns*'/'}
|
|
2054
|
+
"""
|
|
2055
|
+
fb=FormBuilder(data=fields,passThruText=passThruText)
|
|
2056
|
+
if fb is None:
|
|
2057
|
+
return
|
|
2058
|
+
if fb['Shel[f,ves]'] not in ['',]:
|
|
2059
|
+
fb['Shel[f,ves]']=f"{DELCHAR}{fb['Shel[f,ves]']}"
|
|
2060
|
+
locationString=f"{fb['Aisle[s]']}{DELCHAR}{fb['Bay[s]/AisleDepth']}{fb['Shel[f,ves]']}"
|
|
2061
|
+
return locationString
|
|
2062
|
+
|
|
2063
|
+
def BackroomLocation():
|
|
2064
|
+
fields=OrderedDict({
|
|
2065
|
+
'moduleType':{
|
|
2066
|
+
'default':'',
|
|
2067
|
+
'type':'string',
|
|
2068
|
+
},
|
|
2069
|
+
'moduleNumberRange':{
|
|
2070
|
+
'default':'',
|
|
2071
|
+
'type':'string',
|
|
2072
|
+
},
|
|
2073
|
+
'caseID':{
|
|
2074
|
+
'default':'',
|
|
2075
|
+
'type':'string',
|
|
2076
|
+
},
|
|
2077
|
+
|
|
2078
|
+
})
|
|
2079
|
+
passThruText=f'''
|
|
2080
|
+
{Fore.orange_red_1}Valid ModuleTypes:{Fore.grey_85}
|
|
2081
|
+
this what to look on for where the product is stored
|
|
2082
|
+
s or S -> For Pallet/Platform [General]/Skid
|
|
2083
|
+
u or U -> For U-Boat/Size Wheeler
|
|
2084
|
+
rc or rC or Rc or RC -> for RotaCart
|
|
2085
|
+
sc or sC or Sc or SC -> Shopping Cart
|
|
2086
|
+
if a name is used, or common identifier is used, use that here in this segment of the location.
|
|
2087
|
+
|
|
2088
|
+
{Fore.orange_red_1}Valid ModuleNumberRange:{Fore.grey_85}
|
|
2089
|
+
This which of the what's contains said item.
|
|
2090
|
+
0 -> on which 0
|
|
2091
|
+
0,1 -> on which 0 and which 1
|
|
2092
|
+
0-2 -> from which 0 to which 2 on the left side of the aisle
|
|
2093
|
+
if a name is used, or common identifier is used, use that here in this segment of the location.
|
|
2094
|
+
{Fore.orange_red_1}Valid caseID:{Fore.grey_85}
|
|
2095
|
+
This is the case where the item is stored in which is the which found on the what.
|
|
2096
|
+
anything that you want as long as it is unique to the module in which it is stored.
|
|
2097
|
+
try using the following cmds for something on the fly.
|
|
2098
|
+
nanoid - nanoid
|
|
2099
|
+
crbc - checked random barcode
|
|
2100
|
+
dsur - generate a datestring
|
|
2101
|
+
urid - generate reciept id with a log
|
|
2102
|
+
cruid - checked uuid
|
|
2103
|
+
if a name is used, or common identifier is used, use that here in this segment of the location.
|
|
2104
|
+
{Fore.light_red}{os.get_terminal_size().columns*'/'}
|
|
2105
|
+
|
|
2106
|
+
'''
|
|
2107
|
+
fb=FormBuilder(data=fields,passThruText=passThruText)
|
|
2108
|
+
if fb is None:
|
|
2109
|
+
return
|
|
2110
|
+
if fb['caseID'] not in ['',]:
|
|
2111
|
+
fb['caseID']=f"{DELCHAR}{fb['caseID']}"
|
|
2112
|
+
locationString=f"{fb['moduleType']}{DELCHAR}{fb['moduleNumberRange']}{' '.join(db.stre(fb['caseID'])/3)}"
|
|
2113
|
+
return locationString
|
|
@@ -5,12 +5,12 @@ radboy/Holidays.txt,sha256=y-JZPihh5iaWKxMIHNXD39yVuVmf1vMs4FdNDcg0f1Y,3114
|
|
|
5
5
|
radboy/InventoryGlossary.txt,sha256=018-Yqca6DFb10jPdkUY-5qhkRlQN1k3rxoTaERQ-LA,91008
|
|
6
6
|
radboy/RecordMyCodes.py,sha256=h30zoTqt-XLt_afDPlxMxBiKKwmKi3N-yAuldNCqXUo,41476
|
|
7
7
|
radboy/Run.py,sha256=JUoCTHnzQBv7n8PB2_i93ANdAC_iW__RkAge8esCnk4,76
|
|
8
|
-
radboy/__init__.py,sha256=
|
|
8
|
+
radboy/__init__.py,sha256=OZn3eVMvqzpI6xQkP_KpXsBNR-54eGL7uFArYUNWSbQ,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
|
|
12
12
|
radboy/changelog.txt,sha256=_73e-OcHDecsK-eHEE45T84zHbUZ8Io3FzvLNwHPdoY,3714
|
|
13
|
-
radboy/code.png,sha256=
|
|
13
|
+
radboy/code.png,sha256=m_P6IENXfBTYMF2mDkZ-hL7hlRlFE5Dwjwqrk421U7o,263
|
|
14
14
|
radboy/db.csv,sha256=hpecu18LtCow5fH01queqWgqPByR628K7pLuEuLSuj4,19
|
|
15
15
|
radboy/dictionary.txt,sha256=EJlEazI8RfTDX_Uzd6xnXLm9IjU5AEq6HVDwi42Y4_4,195680
|
|
16
16
|
radboy/export.csv,sha256=YIU8c34enlknKMzKwzfQEN8e0mUdyW8m6O8GvgUQ9do,41015
|
|
@@ -89,14 +89,14 @@ radboy/DB/OrderedAndRxd.py,sha256=v_vrTOiTDhKqT5KErK6MOG_u4Nt7ug2MoLTHvAnm88M,19
|
|
|
89
89
|
radboy/DB/PayDay.py,sha256=H2kPGvBCDkMOz7lbxQhYtUt_oAInpxi37Q6MFrah98I,8710
|
|
90
90
|
radboy/DB/PayModels.py,sha256=hjwWxP7PL33hmfzQl5YTf0HqzaMxXJxFknPdxFJXJc8,3499
|
|
91
91
|
radboy/DB/PrintLogging.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
|
-
radboy/DB/Prompt.py,sha256=
|
|
92
|
+
radboy/DB/Prompt.py,sha256=f5C7I0LeCkSxBcPfwT44nqyzGekhOaV2HLQJGDqyt6I,201050
|
|
93
93
|
radboy/DB/RandomStringUtil.py,sha256=eZCpR907WStgfbk4Evcghjv9hOkUDXH-iMXIq0-kXq8,24386
|
|
94
94
|
radboy/DB/ResetTools.py,sha256=RbI-Ua7UlsN0S9qLqtEkTWvzyTZ6R-hHR3CW4NHlUPE,6660
|
|
95
95
|
radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,4013
|
|
96
96
|
radboy/DB/__init__.py,sha256=JiigA9B7GalP7YuRdcwyGDu5PDSBahoi0lLjtScxlN8,49
|
|
97
97
|
radboy/DB/blankDataFile.py,sha256=YX_05Usi71UpDkZN9UTMYwUipbTndTAtEgqzBEga0kE,9285
|
|
98
98
|
radboy/DB/config.py,sha256=bvu43dUl1_yO3Zq3gsLuenGUgJSiS3S9Cs6ppFEvZbg,239
|
|
99
|
-
radboy/DB/db.py,sha256=
|
|
99
|
+
radboy/DB/db.py,sha256=Nt5J70GUV3LsYXtpEp1SJJcVWUVLRyyd6-eQAa8u2Ao,269365
|
|
100
100
|
radboy/DB/glossary_db.py,sha256=1_qxeEpjjEtpWB_eDjsgJisimLv7OBm75MuqM-Lt6zg,28218
|
|
101
101
|
radboy/DB/jobnotes.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
102
|
radboy/DB/lsToday.py,sha256=Pevus6GBHLM2xudBEx8u36Q-jYvatOI-y5o72BmFnzA,9435
|
|
@@ -120,7 +120,7 @@ radboy/DB/__pycache__/FormBuilder.cpython-312.pyc,sha256=p1o-5SMRL8OXP_XQ5liUpf-
|
|
|
120
120
|
radboy/DB/__pycache__/PrintLogging.cpython-312.pyc,sha256=pIAFqTi6OiQQORSc-oMH1zAbsdH7sY1TifxrN_QOvnU,148
|
|
121
121
|
radboy/DB/__pycache__/Prompt.cpython-311.pyc,sha256=P2uPRpeqfLFtxieZ0JHBG3X_HZzWUCsFSLb_fpRqky0,6407
|
|
122
122
|
radboy/DB/__pycache__/Prompt.cpython-312.pyc,sha256=6CcQ1gE2hcz3cKPjo4f6d7xNM2PTDnl8NzQG0Pme5BE,142886
|
|
123
|
-
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=
|
|
123
|
+
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=fp9akh_NtWl9Y3fMcWEJv3pTOcUFRq73gPjTATljeM0,288440
|
|
124
124
|
radboy/DB/__pycache__/RandomStringUtil.cpython-312.pyc,sha256=TrbEY89MuLmNlvoo5d8vOE6Dyshh5_EMlTZvk8MDVN4,48597
|
|
125
125
|
radboy/DB/__pycache__/RandomStringUtil.cpython-313.pyc,sha256=MCcgVwV2Y-9rAY2FVaJZCKcou3HDX70EZudoiCigT0o,49217
|
|
126
126
|
radboy/DB/__pycache__/ResetTools.cpython-311.pyc,sha256=4Vyc57iAAF0yRPjjglnVKovnTn8OoFIi6Zok3Wpj_YM,9292
|
|
@@ -138,7 +138,7 @@ radboy/DB/__pycache__/config.cpython-312.pyc,sha256=Qo7E6MHrF6yqvKgepNFyCoekZXiv
|
|
|
138
138
|
radboy/DB/__pycache__/config.cpython-313.pyc,sha256=_8wCIg_3jhyJjxnExD2Sm6aY-uZTw036p7Ki5znL7dc,376
|
|
139
139
|
radboy/DB/__pycache__/db.cpython-311.pyc,sha256=rNgigyBd0D-cg1JxKAS8t0B_k0IEJivgVlRaZE10Xis,210105
|
|
140
140
|
radboy/DB/__pycache__/db.cpython-312.pyc,sha256=ANDJPC0RoavbmSKFxG15vC7B4rEGyVt7xRJt7XGY3OA,334609
|
|
141
|
-
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=
|
|
141
|
+
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=_XliixS8MkybVKu-N5x9U3w7-5vO1_KSM3NUf7vVTTM,422112
|
|
142
142
|
radboy/DB/__pycache__/glossary_db.cpython-312.pyc,sha256=8UL-29cKqtKovx0BANm6kzKKteef1BW_2qF3wumzst4,36023
|
|
143
143
|
radboy/DB/__pycache__/glossary_db.cpython-313.pyc,sha256=Ke9bkvllGv5CK0JdT9DRvQ3MOdrXxoYv7TVLNkqLux0,36582
|
|
144
144
|
radboy/DB/__pycache__/masterLookup.cpython-312.pyc,sha256=bQiOkmMwwHgcO18tYSWGQ-YUff4GQlKVhBMp1GoWAqY,6324
|
|
@@ -155,7 +155,7 @@ radboy/DayLog/BhTrSa/__init__.py,sha256=q6xDsXAiWpQR2QWILKZKf--D3apR_KOE1CRbZaP7
|
|
|
155
155
|
radboy/DayLog/BhTrSa/bhtrsaa.py,sha256=3ECYU_2yMNS_zsN0ZD6BbiIwbWcJ9mokUwOt_hkTAYs,18233
|
|
156
156
|
radboy/DayLog/__pycache__/DayLogger.cpython-311.pyc,sha256=TmRnRZHp5tMTokSEB8hWTxnasi-iJdh6TmYcb_nXGoY,29557
|
|
157
157
|
radboy/DayLog/__pycache__/DayLogger.cpython-312.pyc,sha256=bfDCQZrIhgQYzoUle7roicRE_bhGPYZtIbCRIiDrsxU,68240
|
|
158
|
-
radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc,sha256=
|
|
158
|
+
radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc,sha256=xeO9OXxmHL31r01oShxv323SGMepsWmPrDh6bJG3X4o,156214
|
|
159
159
|
radboy/DayLog/__pycache__/__init__.cpython-311.pyc,sha256=Z5Y4DdVF77LZf6-Of92MDGFdi-IXik1ASQd4AdLNNfQ,231
|
|
160
160
|
radboy/DayLog/__pycache__/__init__.cpython-312.pyc,sha256=lP_GHzSPt5JTrT1jLWiRMFGPmSdJYBn4eRV__OxgJ6s,269
|
|
161
161
|
radboy/DayLog/__pycache__/__init__.cpython-313.pyc,sha256=UQw5v4r7yismC9qcqP0dEme6h-lawbOA5pXYpkqUwFk,148
|
|
@@ -311,11 +311,11 @@ radboy/PunchCard/__pycache__/PunchCard.cpython-313.pyc,sha256=N8L4cP6iQldfDcYZNx
|
|
|
311
311
|
radboy/PunchCard/__pycache__/__init__.cpython-311.pyc,sha256=Off5ltCdLUEhm2xHBufyQYZn3cmJ0FHMb5ZiZpzi6cI,234
|
|
312
312
|
radboy/PunchCard/__pycache__/__init__.cpython-312.pyc,sha256=Y6qJWX7nupibrd15D5ZkcLV2B9QucwyIu6Mz3YFv-Bw,272
|
|
313
313
|
radboy/PunchCard/__pycache__/__init__.cpython-313.pyc,sha256=aa7buQA_iDOOynayLa8DRx1TYsKRpB9VkhwoL1n8LDU,151
|
|
314
|
-
radboy/RNE/RNE.py,sha256=
|
|
314
|
+
radboy/RNE/RNE.py,sha256=0rZAjUwzUAYomHzeyQ9XOgu7RzEweigCvLz1IepXrUc,39217
|
|
315
315
|
radboy/RNE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
316
316
|
radboy/RNE/dateAhead.py,sha256=g5pp84vteEkYlxRi5rgo6p2Z6PyoBmozljlnWx8twMs,1594
|
|
317
317
|
radboy/RNE/__pycache__/RNE.cpython-312.pyc,sha256=TCmgh08Ac9MDZgJZwb-_cpCATcLu04wp_HPNtXBrwFw,54377
|
|
318
|
-
radboy/RNE/__pycache__/RNE.cpython-313.pyc,sha256=
|
|
318
|
+
radboy/RNE/__pycache__/RNE.cpython-313.pyc,sha256=flCjfhUPQDYMTUApXjlMwJ_aG9gf9qA339fNQsjToYw,75732
|
|
319
319
|
radboy/RNE/__pycache__/__init__.cpython-312.pyc,sha256=uV2pHPbmeCebUp_7Fx1oOhe0ccQGsOtaCzVRFmj6IAg,266
|
|
320
320
|
radboy/RNE/__pycache__/__init__.cpython-313.pyc,sha256=7J11knluwp7WjdVRcd4526_Y1LJo_nH4Kg3rNKIc77U,145
|
|
321
321
|
radboy/Repack/Repack.py,sha256=JmGpsVWUIW71dwARwcuG_L2PP6puYbwRjVy1NJ9tYH8,42593
|
|
@@ -356,17 +356,17 @@ radboy/SystemSettings/__pycache__/SystemSettings.cpython-313.pyc,sha256=ddGbkpJe
|
|
|
356
356
|
radboy/SystemSettings/__pycache__/__init__.cpython-312.pyc,sha256=aIzp4Po0t8EhSAE8ytO-tJlNuKnEzAWPi1fzEIoGesI,277
|
|
357
357
|
radboy/SystemSettings/__pycache__/__init__.cpython-313.pyc,sha256=QFDuoidxMWsGVLsy5lN-rDs6TP8nKJ4yyCyiamNOhwo,156
|
|
358
358
|
radboy/TasksMode/ReFormula.py,sha256=REDRJYub-OEOE6g14oRQOLOQwv8pHqVJy4NQk3CCM90,2255
|
|
359
|
-
radboy/TasksMode/SetEntryNEU.py,sha256=
|
|
360
|
-
radboy/TasksMode/Tasks.py,sha256=
|
|
359
|
+
radboy/TasksMode/SetEntryNEU.py,sha256=dxyYOKnGOe6eCq0wz1ir8-kqte3ajZhoNj1BOcElErI,21147
|
|
360
|
+
radboy/TasksMode/Tasks.py,sha256=X2kdmL4_2kyQ6kaBo7Q5k4oppIX3yjUtVOF_nm7IqxI,386979
|
|
361
361
|
radboy/TasksMode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
362
362
|
radboy/TasksMode/__pycache__/ReFormula.cpython-311.pyc,sha256=QEG3PwVw-8HTd_Mf9XbVcxU56F1fC9yBqWXYPLC39DU,4865
|
|
363
363
|
radboy/TasksMode/__pycache__/ReFormula.cpython-312.pyc,sha256=aX7BWm2PPjCTnxsbGUitR-2h9hq4AjaBiHMrUXvIl0Y,3967
|
|
364
364
|
radboy/TasksMode/__pycache__/ReFormula.cpython-313.pyc,sha256=BfNrg6vlQn5f2asq3gT7JVYC0sOLmYqQyuBPTGJXPNk,3901
|
|
365
365
|
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-312.pyc,sha256=pCdFj61aPKkHL6SvZZ4jUfWJulvDbKue4HGFTIeteOU,17671
|
|
366
|
-
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=
|
|
366
|
+
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=ukD50hAe2WLPoFM4LT9mwx8xsR5ZnpXEdZLQkHXZIfs,25197
|
|
367
367
|
radboy/TasksMode/__pycache__/Tasks.cpython-311.pyc,sha256=6QOTJnLiXSKdF81hkhy3vyrz49PPhS20s5_0X52g3Hw,131120
|
|
368
368
|
radboy/TasksMode/__pycache__/Tasks.cpython-312.pyc,sha256=hyJwdaYaaRLdcrNxgg36diJ5iijX5_3I0UAORsj-6LU,310295
|
|
369
|
-
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=
|
|
369
|
+
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=a64uW5rJJkIEUsJQp89zd2Fpw-qbwlByLZmX9kswnBE,459907
|
|
370
370
|
radboy/TasksMode/__pycache__/__init__.cpython-311.pyc,sha256=PKV1JbihEacm639b53bZozRQvcllSkjGP3q8STVMxF4,234
|
|
371
371
|
radboy/TasksMode/__pycache__/__init__.cpython-312.pyc,sha256=ERgnEvRMiGSecWp1BpNzLdSq_SdKw7GvFWUvUM7bLVw,272
|
|
372
372
|
radboy/TasksMode/__pycache__/__init__.cpython-313.pyc,sha256=lvsTxukyvGKB3C0rdF9dQi_bvVh6ceDVINfwcuIsd0s,151
|
|
@@ -378,12 +378,12 @@ radboy/TouchStampC/__pycache__/TouchStampC.cpython-313.pyc,sha256=6A1Z56mlsBBZi4
|
|
|
378
378
|
radboy/TouchStampC/__pycache__/__init__.cpython-311.pyc,sha256=0Rn25Y_gKIKFC7fRVMToQ99ozp8rqnK3HkTajb4skdo,236
|
|
379
379
|
radboy/TouchStampC/__pycache__/__init__.cpython-312.pyc,sha256=Qa5Iy6Fp7_w5wPhQCbj6FFvfMttQoNd5j6DTqYXa_GQ,274
|
|
380
380
|
radboy/TouchStampC/__pycache__/__init__.cpython-313.pyc,sha256=kA-p_LdocXJQHfYfDE0DQZ3fgzbfoL90Kr0soLsff_w,153
|
|
381
|
-
radboy/Unified/BACKUP.py,sha256=
|
|
381
|
+
radboy/Unified/BACKUP.py,sha256=uB7yXUYcQF4gQFYC5g-hj7VvFol-6pSHGNvTkvcbTHw,20056
|
|
382
382
|
radboy/Unified/Unified.py,sha256=l6SLbwnAg6XP_eIhgzj4a3rI54kTDv8kRt_z1A9D_vM,47147
|
|
383
383
|
radboy/Unified/Unified2.py,sha256=TnJQ5Ir28cLG449o8mDe8Ya1Zx4WaRhuoHfEIrCbJME,42257
|
|
384
384
|
radboy/Unified/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
385
|
-
radboy/Unified/bareCA.py,sha256=
|
|
386
|
-
radboy/Unified/clearalll.py,sha256=
|
|
385
|
+
radboy/Unified/bareCA.py,sha256=nV3vXH0K9Y8iLNUwl-dFqOxHGaqpKkEzgTuKYvhCOP0,7739
|
|
386
|
+
radboy/Unified/clearalll.py,sha256=DVJnhkL2sc0mQGxpHlLm0_LThF1Q0uhslNQXleAujqg,4064
|
|
387
387
|
radboy/Unified/__pycache__/Unified.cpython-311.pyc,sha256=ZtvZDV9cVMV_r_Cuj6LR4m27CGUnZy0l9zUTILSnMRg,65018
|
|
388
388
|
radboy/Unified/__pycache__/Unified.cpython-312.pyc,sha256=BT3bLl4LQUs7m3H44WVjg6BsHfU9xnWNwpytZSA2smI,78625
|
|
389
389
|
radboy/Unified/__pycache__/Unified.cpython-313.pyc,sha256=zsjNgW6Z1KRZmuhfBk_42fJxQobSFpiwg6ianEJ3qE0,63057
|
|
@@ -391,9 +391,9 @@ radboy/Unified/__pycache__/__init__.cpython-311.pyc,sha256=2OjdGThHMNZ2yMrbdlwiK
|
|
|
391
391
|
radboy/Unified/__pycache__/__init__.cpython-312.pyc,sha256=5aXXASuWsXCly7t_gqJ6cVbdAeTo4Wom8989FszH4Xw,270
|
|
392
392
|
radboy/Unified/__pycache__/__init__.cpython-313.pyc,sha256=h03zVuB4hfY_ko4nkuSS-SIkjHOGTlFM9bDpMdQPwg4,149
|
|
393
393
|
radboy/Unified/__pycache__/bareCA.cpython-312.pyc,sha256=1zLSCPMarDCdguIxDCjlvTf2SQXi9Y17oznnEbNbQlg,2839
|
|
394
|
-
radboy/Unified/__pycache__/bareCA.cpython-313.pyc,sha256=
|
|
394
|
+
radboy/Unified/__pycache__/bareCA.cpython-313.pyc,sha256=sp1JYvJBFN8PWohKtJGTUCA1WqKBrH9OOogZBKtyqKQ,8452
|
|
395
395
|
radboy/Unified/__pycache__/clearalll.cpython-312.pyc,sha256=GDkncqa0aJ_55M5ElOfcl-LLiKS6ZXgY779ENHLYS-E,5042
|
|
396
|
-
radboy/Unified/__pycache__/clearalll.cpython-313.pyc,sha256=
|
|
396
|
+
radboy/Unified/__pycache__/clearalll.cpython-313.pyc,sha256=2Nn2wuvarNtyU0Tx1AaWVNWpGdQJtbft90nx-lzbwfQ,7198
|
|
397
397
|
radboy/UpdatesAndImports/UpdatesAndImports.py,sha256=KXmiLaB72hMs2Iqkek9fMmme7xgNSXgpcVkKBYVXD00,1687
|
|
398
398
|
radboy/UpdatesAndImports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
399
399
|
radboy/UpdatesAndImports/__pycache__/UpdatesAndImports.cpython-311.pyc,sha256=n5mnxgmq0egDH-Evf6h0cRF6mmP9N0pAOsS2NkyKA1o,3351
|
|
@@ -414,7 +414,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
414
414
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
415
415
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
416
416
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
417
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
417
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=SFLAtBliP9y3nz0Jc5MEMLEXcpeg-e2dOH1rKTJn_2A,165
|
|
418
418
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
419
419
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
420
420
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -424,8 +424,8 @@ radboy/__pycache__/t.cpython-311.pyc,sha256=bVszNkmfiyoNLd0WUc8aBJc2geGseW4O28cq
|
|
|
424
424
|
radboy/__pycache__/te.cpython-311.pyc,sha256=vI8eNUE5VVrfCQvnrJ7WuWpoKcLz-vVK3ifdUZ4UNhk,592
|
|
425
425
|
radboy/__pycache__/x.cpython-311.pyc,sha256=3jIvWoO5y5WqrL_hRmXNK8O0vO7DwJ4gufjm2b0V7VI,1963
|
|
426
426
|
radboy/preloader/__init__.py,sha256=lrGR0JF0dkDM8N9ORGUKH_MucUFx1-PI38YsvqS-wgA,926
|
|
427
|
-
radboy/preloader/preloader.py,sha256=
|
|
428
|
-
radboy/preloader/preloader_func.py,sha256=
|
|
427
|
+
radboy/preloader/preloader.py,sha256=wEiImcxM1Rrzt-SwMwNxQxG7WCgzl26M-Bi76K4kyL4,9705
|
|
428
|
+
radboy/preloader/preloader_func.py,sha256=bE_3B7JDts3porBnhEqwx6pIGSKk7tkvN6HaKAUF-HY,76174
|
|
429
429
|
radboy/setCode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
430
430
|
radboy/setCode/setCode.py,sha256=8UOf4okbx-Zane99odeoLAS_lfIt8pIaFomN7EtnnVA,5202
|
|
431
431
|
radboy/setCode/__pycache__/__init__.cpython-311.pyc,sha256=cJuP5rve6Wn7ZO789tixyOlyrHZQWsBxDn9oZGoG5WE,232
|
|
@@ -442,7 +442,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
442
442
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
443
443
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
444
444
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
445
|
-
radboy-0.0.
|
|
446
|
-
radboy-0.0.
|
|
447
|
-
radboy-0.0.
|
|
448
|
-
radboy-0.0.
|
|
445
|
+
radboy-0.0.854.dist-info/METADATA,sha256=FknTqzednxKO0K1y43bIYcmJniHo0uSDvSHkPAYcp0Y,1920
|
|
446
|
+
radboy-0.0.854.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
447
|
+
radboy-0.0.854.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
448
|
+
radboy-0.0.854.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|