radboy 0.0.545__py3-none-any.whl → 0.0.547__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 +105 -45
- radboy/DB/__pycache__/Prompt.cpython-313.pyc +0 -0
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +78 -0
- radboy/TasksMode/Tasks.py +93 -26
- radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc +0 -0
- radboy/__init__.py +1 -1
- radboy/__pycache__/__init__.cpython-313.pyc +0 -0
- radboy/preloader/__init__.py +28 -0
- radboy/preloader/preloader.py +61 -0
- {radboy-0.0.545.dist-info → radboy-0.0.547.dist-info}/METADATA +1 -1
- {radboy-0.0.545.dist-info → radboy-0.0.547.dist-info}/RECORD +14 -12
- {radboy-0.0.545.dist-info → radboy-0.0.547.dist-info}/WHEEL +0 -0
- {radboy-0.0.545.dist-info → radboy-0.0.547.dist-info}/top_level.txt +0 -0
radboy/DB/Prompt.py
CHANGED
|
@@ -32,7 +32,7 @@ import radboy.Orders.MilkWaterOrder as MWR
|
|
|
32
32
|
import itertools
|
|
33
33
|
from inputimeout import inputimeout, TimeoutOccurred
|
|
34
34
|
from uuid import uuid1
|
|
35
|
-
import zipfile
|
|
35
|
+
import zipfile,pydoc
|
|
36
36
|
|
|
37
37
|
import enum
|
|
38
38
|
try:
|
|
@@ -2560,51 +2560,111 @@ which will result in a cmd of 'ls Shelf'{Style.reset}
|
|
|
2560
2560
|
{Fore.light_steel_blue}if 'b' returns to previous menu, try '#b' to return to barcode input, in ListMode@$LOCATION_FIELD, 'e' does the same{Style.reset}''')
|
|
2561
2561
|
continue
|
|
2562
2562
|
elif cmd.lower() in ['i','info']:
|
|
2563
|
-
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
print(msg_fmbtxt)
|
|
2575
|
-
l=Path("Holidays.txt")
|
|
2576
|
-
if not l.exists():
|
|
2577
|
-
l=Path(__file__).parent.parent/Path("Holidays.txt")
|
|
2578
|
-
print(l)
|
|
2579
|
-
with open(l,"r") as msgr:
|
|
2580
|
-
for num,line in enumerate(msgr.readlines()):
|
|
2581
|
-
if num % 2 == 0:
|
|
2582
|
-
color=Fore.light_yellow
|
|
2583
|
-
else:
|
|
2584
|
-
color=Fore.sea_green_2
|
|
2585
|
-
|
|
2586
|
-
msg=f"""{Fore.magenta}Line {Fore.cyan}{num}/{Fore.light_steel_blue}{num+1} - {color}{line}{Style.reset}"""
|
|
2587
|
-
print(msg)
|
|
2588
|
-
print(f"{Fore.orange_red_1}You can override the default Holidays.txt by placing a file called 'Holidays.txt' in your current pwd{Style.reset}")
|
|
2589
|
-
print(f"{Fore.light_cyan}Running on Android:{Fore.slate_blue_1}{db.onAndroid()}{Style.reset}")
|
|
2590
|
-
print(f"{Fore.light_cyan}Running on {Fore.slate_blue_1}{platform.system()} {Fore.light_cyan}Rel:{Fore.orange_red_1}{platform.release()}{Style.reset}")
|
|
2591
|
-
print(helpText2)
|
|
2592
|
-
Prompt.passwordfile(None,)
|
|
2593
|
-
print(Prompt.resrc(Prompt))
|
|
2594
|
-
sales_tax_msg=f'''
|
|
2595
|
-
{Fore.light_green}{Style.underline}Tax Formulas{Style.reset}
|
|
2596
|
-
{Fore.light_blue}Price is what is stated on the reciept or shelf tag without {Fore.light_red}Tax{Fore.cyan} and CRV applied.{Style.reset}
|
|
2597
|
-
{Fore.cyan}CRV is for beverages, where under 24 Fluid Ounces, the CRV is {Fore.light_cyan}$0.05{Fore.cyan} and above 24 Fluid ounces is {Fore.light_cyan}$0.10,{Fore.light_steel_blue}if multiple bottles are in a single purchased case, then the CRV is applied to each contained within the sold/purchased case{Style.reset}
|
|
2598
|
-
{Fore.cyan}CRV={Fore.light_cyan}({Fore.light_green}CRV_4_SIZE*{Fore.green_yellow}QTY_OF_cONTAINERS_IN_CASE{Fore.light_cyan}){Style.reset}
|
|
2599
|
-
{Fore.light_red}Total=(({Fore.cyan}CRV+{Fore.light_blue}Price)*{Fore.light_magenta}(Sales Tax Rate(0.0925)))+{Fore.light_blue}Price{Style.reset}
|
|
2600
|
-
{Fore.light_red}Tax=(({Fore.cyan}CRV+{Fore.light_blue}Price)*{Fore.light_magenta}(Sales Tax Rate(0.0925))){Style.reset}
|
|
2601
|
-
'''
|
|
2602
|
-
print(sales_tax_msg)
|
|
2603
|
-
ConversionUnitsMSg=f"""
|
|
2604
|
-
degress celcius - degC
|
|
2605
|
-
degress fahrenheite - degF
|
|
2563
|
+
while True:
|
|
2564
|
+
msg_fmbtxt=f"""{FormBuilderHelpText()}"""
|
|
2565
|
+
print(msg_fmbtxt)
|
|
2566
|
+
n=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Next?",helpText="yes or no",data="boolean")
|
|
2567
|
+
if n in ['d',True]:
|
|
2568
|
+
pass
|
|
2569
|
+
elif n is None:
|
|
2570
|
+
fail=True
|
|
2571
|
+
break
|
|
2572
|
+
else:
|
|
2573
|
+
continue
|
|
2606
2574
|
|
|
2607
|
-
|
|
2575
|
+
l=Path("Holidays.txt")
|
|
2576
|
+
if not l.exists():
|
|
2577
|
+
l=Path(__file__).parent.parent/Path("Holidays.txt")
|
|
2578
|
+
print(l)
|
|
2579
|
+
with open(l,"r") as msgr:
|
|
2580
|
+
for num,line in enumerate(msgr.readlines()):
|
|
2581
|
+
if num % 2 == 0:
|
|
2582
|
+
color=Fore.light_yellow
|
|
2583
|
+
else:
|
|
2584
|
+
color=Fore.sea_green_2
|
|
2585
|
+
|
|
2586
|
+
msg=f"""{Fore.magenta}Line {Fore.cyan}{num}/{Fore.light_steel_blue}{num+1} - {color}{line}{Style.reset}"""
|
|
2587
|
+
print(msg)
|
|
2588
|
+
n=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Next?",helpText="yes or no",data="boolean")
|
|
2589
|
+
if n in ['d',True]:
|
|
2590
|
+
pass
|
|
2591
|
+
elif n is None:
|
|
2592
|
+
fail=True
|
|
2593
|
+
break
|
|
2594
|
+
else:
|
|
2595
|
+
continue
|
|
2596
|
+
print(f"{Fore.orange_red_1}You can override the default Holidays.txt by placing a file called 'Holidays.txt' in your current pwd{Style.reset}")
|
|
2597
|
+
print(f"{Fore.light_cyan}Running on Android:{Fore.slate_blue_1}{db.onAndroid()}{Style.reset}")
|
|
2598
|
+
print(f"{Fore.light_cyan}Running on {Fore.slate_blue_1}{platform.system()} {Fore.light_cyan}Rel:{Fore.orange_red_1}{platform.release()}{Style.reset}")
|
|
2599
|
+
print(helpText2)
|
|
2600
|
+
n=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Next?",helpText="yes or no",data="boolean")
|
|
2601
|
+
if n in ['d',True]:
|
|
2602
|
+
pass
|
|
2603
|
+
elif n is None:
|
|
2604
|
+
fail=True
|
|
2605
|
+
break
|
|
2606
|
+
else:
|
|
2607
|
+
continue
|
|
2608
|
+
Prompt.passwordfile(None,)
|
|
2609
|
+
n=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Next?",helpText="yes or no",data="boolean")
|
|
2610
|
+
if n in ['d',True]:
|
|
2611
|
+
pass
|
|
2612
|
+
elif n is None:
|
|
2613
|
+
fail=True
|
|
2614
|
+
break
|
|
2615
|
+
else:
|
|
2616
|
+
continue
|
|
2617
|
+
print(Prompt.resrc(Prompt))
|
|
2618
|
+
n=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Next?",helpText="yes or no",data="boolean")
|
|
2619
|
+
if n in ['d',True]:
|
|
2620
|
+
pass
|
|
2621
|
+
elif n is None:
|
|
2622
|
+
fail=True
|
|
2623
|
+
break
|
|
2624
|
+
else:
|
|
2625
|
+
continue
|
|
2626
|
+
sales_tax_msg=f'''
|
|
2627
|
+
{Fore.light_green}{Style.underline}Tax Formulas{Style.reset}
|
|
2628
|
+
{Fore.light_blue}Price is what is stated on the reciept or shelf tag without {Fore.light_red}Tax{Fore.cyan} and CRV applied.{Style.reset}
|
|
2629
|
+
{Fore.cyan}CRV is for beverages, where under 24 Fluid Ounces, the CRV is {Fore.light_cyan}$0.05{Fore.cyan} and above 24 Fluid ounces is {Fore.light_cyan}$0.10,{Fore.light_steel_blue}if multiple bottles are in a single purchased case, then the CRV is applied to each contained within the sold/purchased case{Style.reset}
|
|
2630
|
+
{Fore.cyan}CRV={Fore.light_cyan}({Fore.light_green}CRV_4_SIZE*{Fore.green_yellow}QTY_OF_cONTAINERS_IN_CASE{Fore.light_cyan}){Style.reset}
|
|
2631
|
+
{Fore.light_red}Total=(({Fore.cyan}CRV+{Fore.light_blue}Price)*{Fore.light_magenta}(Sales Tax Rate(0.0925)))+{Fore.light_blue}Price{Style.reset}
|
|
2632
|
+
{Fore.light_red}Tax=(({Fore.cyan}CRV+{Fore.light_blue}Price)*{Fore.light_magenta}(Sales Tax Rate(0.0925))){Style.reset}
|
|
2633
|
+
'''
|
|
2634
|
+
print(sales_tax_msg)
|
|
2635
|
+
n=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Next?",helpText="yes or no",data="boolean")
|
|
2636
|
+
if n in ['d',True]:
|
|
2637
|
+
pass
|
|
2638
|
+
elif n is None:
|
|
2639
|
+
fail=True
|
|
2640
|
+
break
|
|
2641
|
+
else:
|
|
2642
|
+
continue
|
|
2643
|
+
ConversionUnitsMSg=f"""
|
|
2644
|
+
degress celcius - degC
|
|
2645
|
+
degress fahrenheite - degF
|
|
2646
|
+
|
|
2647
|
+
"""
|
|
2648
|
+
print(ConversionUnitsMSg)
|
|
2649
|
+
n=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Next?",helpText="yes or no",data="boolean")
|
|
2650
|
+
if n in ['d',True]:
|
|
2651
|
+
pass
|
|
2652
|
+
elif n is None:
|
|
2653
|
+
fail=True
|
|
2654
|
+
break
|
|
2655
|
+
else:
|
|
2656
|
+
continue
|
|
2657
|
+
m='\n'.join([i for i in reversed(pydoc.render_doc(stre).split("\n"))])
|
|
2658
|
+
print(m)
|
|
2659
|
+
|
|
2660
|
+
n=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Again?",helpText="yes or no",data="boolean")
|
|
2661
|
+
if n in ['d',True]:
|
|
2662
|
+
pass
|
|
2663
|
+
elif n is None:
|
|
2664
|
+
fail=True
|
|
2665
|
+
break
|
|
2666
|
+
else:
|
|
2667
|
+
break
|
|
2608
2668
|
continue
|
|
2609
2669
|
elif cmd.lower() in ['sftu','search for text universal',]:
|
|
2610
2670
|
result=global_search_for_text()
|
|
Binary file
|
|
Binary file
|
radboy/DB/db.py
CHANGED
|
@@ -32,6 +32,84 @@ import platform
|
|
|
32
32
|
from uuid import uuid1
|
|
33
33
|
import sys
|
|
34
34
|
from inputimeout import inputimeout, TimeoutOccurred
|
|
35
|
+
import random
|
|
36
|
+
import hashlib
|
|
37
|
+
from Crypto.Cipher import AES
|
|
38
|
+
#from Cryptodome.Cipher import AES
|
|
39
|
+
from Crypto.Util.Padding import pad, unpad
|
|
40
|
+
from collections import namedtuple
|
|
41
|
+
import random
|
|
42
|
+
import hashlib
|
|
43
|
+
from Crypto.Cipher import AES
|
|
44
|
+
#from Cryptodome.Cipher import AES
|
|
45
|
+
from Crypto.Util.Padding import pad, unpad
|
|
46
|
+
from collections import namedtuple
|
|
47
|
+
from barcode import Code128
|
|
48
|
+
from barcode.writer import ImageWriter
|
|
49
|
+
import hashlib
|
|
50
|
+
import base64
|
|
51
|
+
|
|
52
|
+
class stre(str):
|
|
53
|
+
'''String Extended to include operators for some useful functionality.'''
|
|
54
|
+
def __invert__(self):
|
|
55
|
+
'''Generate a 512 Hex Digest for self'''
|
|
56
|
+
hl=hashlib.sha512()
|
|
57
|
+
hl.update(self.encode())
|
|
58
|
+
return str(hl.hexdigest())
|
|
59
|
+
|
|
60
|
+
def __sub__(self,other):
|
|
61
|
+
'''remove this many characters from the string, where a positive removes from the right and a negative removes from the left'''
|
|
62
|
+
if isinstance(other,int) or isinstance(other,float):
|
|
63
|
+
#print(other<0)
|
|
64
|
+
if other < 0:
|
|
65
|
+
return self[:other]
|
|
66
|
+
elif other > 0:
|
|
67
|
+
m=[self[i:i+1] for i in range(0,len(self),int(1))]
|
|
68
|
+
for i in range(0,other):
|
|
69
|
+
popped=m.pop(0)
|
|
70
|
+
return ''.join(m)
|
|
71
|
+
else:
|
|
72
|
+
raise NotImplemented
|
|
73
|
+
|
|
74
|
+
def __truediv__(self,other):
|
|
75
|
+
'''return a list broken into chunks of other'''
|
|
76
|
+
if isinstance(other,int) or isinstance(other,float):
|
|
77
|
+
return [self[i:i+other] for i in range(0,len(self),int(other))]
|
|
78
|
+
else:
|
|
79
|
+
raise NotImplemented
|
|
80
|
+
|
|
81
|
+
def __mod__(self,other):
|
|
82
|
+
#return the number of chunks
|
|
83
|
+
if isinstance(other,int) or isinstance(other,float):
|
|
84
|
+
|
|
85
|
+
return len([self[i:i+other] for i in range(0,len(self),int(other))])
|
|
86
|
+
else:
|
|
87
|
+
raise NotImplemented
|
|
88
|
+
|
|
89
|
+
def __floordiv__(self,other):
|
|
90
|
+
'''reverse of __truediv__'''
|
|
91
|
+
if isinstance(other,int) or isinstance(other,float):
|
|
92
|
+
|
|
93
|
+
return [ii for ii in reversed([self[i:i+other] for i in range(0,len(self),int(other))])]
|
|
94
|
+
|
|
95
|
+
else:
|
|
96
|
+
raise NotImplemented
|
|
97
|
+
|
|
98
|
+
def __pow__(self,other):
|
|
99
|
+
'''generate a random string from self of length other.'''
|
|
100
|
+
|
|
101
|
+
if isinstance(other,int) or isinstance(other,float):
|
|
102
|
+
|
|
103
|
+
src=[self[i:i+1] for i in range(0,len(self),int(1))]
|
|
104
|
+
end=''.join(random.choices(src,k=int(abs(other))))[:int(abs(other))]
|
|
105
|
+
while (len(end) < other) or (len(end) > other):
|
|
106
|
+
end=''.join(random.choices(src,k=int(abs(other))))[:int(abs(other))]
|
|
107
|
+
return end
|
|
108
|
+
else:
|
|
109
|
+
raise NotImplemented
|
|
110
|
+
|
|
111
|
+
import builtins
|
|
112
|
+
builtins.stre=stre
|
|
35
113
|
|
|
36
114
|
def textInFile(text):
|
|
37
115
|
'''textInFile(str) -> Boolean
|
radboy/TasksMode/Tasks.py
CHANGED
|
@@ -42,6 +42,7 @@ from radboy.RepeatableDates import *
|
|
|
42
42
|
from radboy.CookBook import *
|
|
43
43
|
from radboy.PhoneBook import *
|
|
44
44
|
from radboy.Occurances import *
|
|
45
|
+
from radboy.preloader import preloader
|
|
45
46
|
|
|
46
47
|
def today():
|
|
47
48
|
dt=datetime.now()
|
|
@@ -289,6 +290,52 @@ def save(value):
|
|
|
289
290
|
detectGetOrSet("InLineResult",value,setValue=True,literal=True)
|
|
290
291
|
|
|
291
292
|
class Formulae:
|
|
293
|
+
def findAndUse2(self,options=None):
|
|
294
|
+
if options is None:
|
|
295
|
+
options=self.options
|
|
296
|
+
with Session(ENGINE) as session:
|
|
297
|
+
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")
|
|
298
|
+
if cmd in ['d',None]:
|
|
299
|
+
return
|
|
300
|
+
else:
|
|
301
|
+
options=copy(options)
|
|
302
|
+
|
|
303
|
+
session.query(FindCmd).delete()
|
|
304
|
+
session.commit()
|
|
305
|
+
for num,k in enumerate(options):
|
|
306
|
+
stage=0
|
|
307
|
+
cmds=options[k]['cmds']
|
|
308
|
+
l=[]
|
|
309
|
+
l.extend(cmds)
|
|
310
|
+
l.append(options[k]['desc'])
|
|
311
|
+
cmdStr=' '.join(l)
|
|
312
|
+
cmd_string=FindCmd(CmdString=cmdStr,CmdKey=k)
|
|
313
|
+
session.add(cmd_string)
|
|
314
|
+
if num % 50 == 0:
|
|
315
|
+
session.commit()
|
|
316
|
+
session.commit()
|
|
317
|
+
session.flush()
|
|
318
|
+
|
|
319
|
+
results=session.query(FindCmd).filter(FindCmd.CmdString.icontains(cmd)).all()
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
ct=len(results)
|
|
323
|
+
if ct == 0:
|
|
324
|
+
print(f"No Cmd was found by {Fore.light_red}{cmd}{Style.reset}")
|
|
325
|
+
return
|
|
326
|
+
for num,x in enumerate(results):
|
|
327
|
+
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']}"
|
|
328
|
+
print(msg)
|
|
329
|
+
select=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index?",helpText="the number farthest to the left before the /",data="integer")
|
|
330
|
+
if select in [None,'d']:
|
|
331
|
+
return
|
|
332
|
+
try:
|
|
333
|
+
ee=options[results[select].CmdKey]['exec']
|
|
334
|
+
if callable(ee):
|
|
335
|
+
return ee()
|
|
336
|
+
except Exception as e:
|
|
337
|
+
print(e)
|
|
338
|
+
|
|
292
339
|
def __init__(self):
|
|
293
340
|
pass
|
|
294
341
|
def formulaeu(self):
|
|
@@ -337,22 +384,49 @@ class Formulae:
|
|
|
337
384
|
result=value*-1
|
|
338
385
|
return result
|
|
339
386
|
|
|
340
|
-
|
|
387
|
+
def tax_rate_decimal():
|
|
388
|
+
result=None
|
|
389
|
+
tax_percent=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Tax Rate Percent: ",helpText="percent to convert to decimal (Percent/100=Rate)",data="dec.dec")
|
|
390
|
+
if tax_percent is None:
|
|
391
|
+
return
|
|
392
|
+
elif tax_percent in ['d',]:
|
|
393
|
+
tax_percent=default_taxrate/100
|
|
394
|
+
result=tax_percent/100
|
|
395
|
+
return result
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
self.options={
|
|
341
400
|
f'{uuid1()}':{
|
|
342
401
|
'cmds':['invert','-value','iv-val'],
|
|
343
|
-
'desc':f'{Fore.light_yellow}value{Fore.medium_violet_red}is multiplied by -1 to make inverse{Style.reset}',
|
|
402
|
+
'desc':f'{Fore.light_yellow}value{Fore.medium_violet_red} is multiplied by -1 to make inverse{Style.reset}',
|
|
344
403
|
'exec':invert_value
|
|
345
404
|
},
|
|
346
405
|
f'{uuid1()}':{
|
|
347
406
|
'cmds':['time dec to clock','t2c','time to clock'],
|
|
348
|
-
'desc':f'{Fore.light_yellow}value{Fore.medium_violet_red}convert decimal time to clock time{Style.reset}',
|
|
407
|
+
'desc':f'{Fore.light_yellow}value{Fore.medium_violet_red} convert decimal time to clock time{Style.reset}',
|
|
349
408
|
'exec':timedecimal_to_ampm
|
|
350
409
|
},
|
|
410
|
+
f'{uuid1()}':{
|
|
411
|
+
'cmds':['percent to decimal','p2d','prcnt2decimal','prcnt 2 dec'],
|
|
412
|
+
'desc':f'{Fore.light_yellow}decimal (0.02) {Fore.medium_violet_red} from percent (2%->2){Style.reset}',
|
|
413
|
+
'exec':tax_rate_decimal
|
|
414
|
+
},
|
|
351
415
|
}
|
|
416
|
+
|
|
417
|
+
for i in preloader:
|
|
418
|
+
self.options[i]=preloader[i]
|
|
352
419
|
defaults_msg=f'''
|
|
353
420
|
'''
|
|
354
|
-
for
|
|
355
|
-
|
|
421
|
+
'''must be last for user to always see'''
|
|
422
|
+
self.options[f'{uuid1()}']={
|
|
423
|
+
'cmds':['fcmd','findcmd','find cmd'],
|
|
424
|
+
'desc':f'Find {Fore.light_yellow}cmd{Fore.medium_violet_red} and excute for return{Style.reset}',
|
|
425
|
+
'exec':self.findAndUse2
|
|
426
|
+
}
|
|
427
|
+
for num,i in enumerate(self.options):
|
|
428
|
+
self.options[i]['cmds'].append(str(num))
|
|
429
|
+
options=copy(self.options)
|
|
356
430
|
|
|
357
431
|
while True:
|
|
358
432
|
helpText=[]
|
|
@@ -451,16 +525,6 @@ class Formulae:
|
|
|
451
525
|
{Fore.light_sea_green}default_purchased_qty=={Fore.turquoise_4}{default_purchased_qty}
|
|
452
526
|
{Style.reset}"""
|
|
453
527
|
|
|
454
|
-
def tax_rate_decimal():
|
|
455
|
-
result=None
|
|
456
|
-
tax_percent=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Tax Rate Percent: ",helpText="percent to convert to decimal (Percent/100=Rate)",data="dec.dec")
|
|
457
|
-
if tax_percent is None:
|
|
458
|
-
return
|
|
459
|
-
elif tax_percent in ['d',]:
|
|
460
|
-
tax_percent=default_taxrate/100
|
|
461
|
-
result=tax_percent/100
|
|
462
|
-
return result
|
|
463
|
-
|
|
464
528
|
def beverage_PTCRV_base():
|
|
465
529
|
result=None
|
|
466
530
|
print('Beverage Total Price+Tax+CRV of Size')
|
|
@@ -511,7 +575,7 @@ class Formulae:
|
|
|
511
575
|
tax=price*Decimal(tax_rate)
|
|
512
576
|
|
|
513
577
|
|
|
514
|
-
result=
|
|
578
|
+
result=(Decimal(price)+tax).quantize(Decimal('0.0000'))
|
|
515
579
|
return result
|
|
516
580
|
|
|
517
581
|
def tax_with_crv():
|
|
@@ -698,7 +762,7 @@ class Formulae:
|
|
|
698
762
|
return result
|
|
699
763
|
|
|
700
764
|
|
|
701
|
-
options={
|
|
765
|
+
self.options={
|
|
702
766
|
f'{uuid1()}':{
|
|
703
767
|
'cmds':['beverage price+tax+CRV','b-ptcrv',],
|
|
704
768
|
'desc':f'{Fore.light_yellow}beverage Price+Tax+CRV{Fore.medium_violet_red} asking for base questions like bottle size and qty to get total cost with tax{Style.reset}',
|
|
@@ -734,15 +798,16 @@ class Formulae:
|
|
|
734
798
|
'desc':f'{Fore.light_yellow}tax rate{Fore.medium_violet_red} from old price and new price{Style.reset}',
|
|
735
799
|
'exec':tax_rate_from_oldPriceAndNewPrice
|
|
736
800
|
},
|
|
737
|
-
|
|
738
|
-
'cmds':['tax decimal','taxdecimal'],
|
|
739
|
-
'desc':f'{Fore.light_yellow}tax rate decimal{Fore.medium_violet_red} from percent{Style.reset}',
|
|
740
|
-
'exec':tax_rate_decimal
|
|
741
|
-
},
|
|
801
|
+
|
|
742
802
|
}
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
803
|
+
self.options[f'{uuid1()}']={
|
|
804
|
+
'cmds':['fcmd','findcmd','find cmd'],
|
|
805
|
+
'desc':f'Find {Fore.light_yellow}cmd{Fore.medium_violet_red} and excute for return{Style.reset}',
|
|
806
|
+
'exec':self.findAndUse2
|
|
807
|
+
}
|
|
808
|
+
for num,i in enumerate(self.options):
|
|
809
|
+
self.options[i]['cmds'].append(str(num))
|
|
810
|
+
options=copy(self.options)
|
|
746
811
|
while True:
|
|
747
812
|
helpText=[]
|
|
748
813
|
for i in options:
|
|
@@ -1004,7 +1069,9 @@ class TasksMode:
|
|
|
1004
1069
|
text=''
|
|
1005
1070
|
for i in range(len(buffer)):
|
|
1006
1071
|
text+=fd[i]
|
|
1007
|
-
|
|
1072
|
+
return text
|
|
1073
|
+
else:
|
|
1074
|
+
return
|
|
1008
1075
|
def getInLineResult(self):
|
|
1009
1076
|
return str(detectGetOrSet("InLineResult",None,setValue=False,literal=True))
|
|
1010
1077
|
|
|
Binary file
|
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.547'
|
|
Binary file
|
|
@@ -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 .preloader import *
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
from . import *
|
|
2
|
+
unit_registry=pint.UnitRegistry()
|
|
3
|
+
|
|
4
|
+
def volume():
|
|
5
|
+
height=Prompt.__init2__(None,func=FormBuilderMkText,ptext="height?: ",helpText="height=1",data="dec.dec")
|
|
6
|
+
if height is None:
|
|
7
|
+
return
|
|
8
|
+
elif height in ['d',]:
|
|
9
|
+
height=Decimal('1')
|
|
10
|
+
|
|
11
|
+
width=Prompt.__init2__(None,func=FormBuilderMkText,ptext="width?: ",helpText="width=1 ",data="dec.dec")
|
|
12
|
+
if width is None:
|
|
13
|
+
return
|
|
14
|
+
elif width in ['d',]:
|
|
15
|
+
width=Decimal('1')
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
length=Prompt.__init2__(None,func=FormBuilderMkText,ptext="length?: ",helpText="length=1",data="dec.dec")
|
|
20
|
+
if length is None:
|
|
21
|
+
return
|
|
22
|
+
elif length in ['d',]:
|
|
23
|
+
length=Decimal('1')
|
|
24
|
+
|
|
25
|
+
return length*width*height
|
|
26
|
+
|
|
27
|
+
def volume_pint():
|
|
28
|
+
height=Prompt.__init2__(None,func=FormBuilderMkText,ptext="height?: ",helpText="height=1",data="string")
|
|
29
|
+
if height is None:
|
|
30
|
+
return
|
|
31
|
+
elif height in ['d',]:
|
|
32
|
+
height='1'
|
|
33
|
+
|
|
34
|
+
width=Prompt.__init2__(None,func=FormBuilderMkText,ptext="width?: ",helpText="width=1 ",data="string")
|
|
35
|
+
if width is None:
|
|
36
|
+
return
|
|
37
|
+
elif width in ['d',]:
|
|
38
|
+
width='1'
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
length=Prompt.__init2__(None,func=FormBuilderMkText,ptext="length?: ",helpText="length=1",data="string")
|
|
43
|
+
if length is None:
|
|
44
|
+
return
|
|
45
|
+
elif length in ['d',]:
|
|
46
|
+
length='1'
|
|
47
|
+
|
|
48
|
+
return unit_registry.Quantity(length)*unit_registry.Quantity(width)*unit_registry.Quantity(height)
|
|
49
|
+
|
|
50
|
+
preloader={
|
|
51
|
+
f'{uuid1()}':{
|
|
52
|
+
'cmds':['volume',],
|
|
53
|
+
'desc':f'find the volume of height*width*length without dimensions',
|
|
54
|
+
'exec':volume
|
|
55
|
+
},
|
|
56
|
+
f'{uuid1()}':{
|
|
57
|
+
'cmds':['volume pint',],
|
|
58
|
+
'desc':f'find the volume of height*width*length using pint to normalize the values',
|
|
59
|
+
'exec':volume_pint
|
|
60
|
+
},
|
|
61
|
+
}
|
|
@@ -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=Lt2reA6xchq3U7Y08DvkrHboZ25i1ts7X2E9gSIwcVg,41101
|
|
7
7
|
radboy/Run.py,sha256=JUoCTHnzQBv7n8PB2_i93ANdAC_iW__RkAge8esCnk4,76
|
|
8
|
-
radboy/__init__.py,sha256=
|
|
8
|
+
radboy/__init__.py,sha256=gHS6bjkAstoK97rWN1-YnyJ5eZ3QD2USEJCT9eaSaqU,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
|
|
@@ -84,14 +84,14 @@ radboy/DB/ExerciseTracker.py,sha256=OS9i8jGIZPj-6m1bB0-eKNHQ6vf2iv_AYPEc0s4bkBM,
|
|
|
84
84
|
radboy/DB/PayDay.py,sha256=H2kPGvBCDkMOz7lbxQhYtUt_oAInpxi37Q6MFrah98I,8710
|
|
85
85
|
radboy/DB/PayModels.py,sha256=hjwWxP7PL33hmfzQl5YTf0HqzaMxXJxFknPdxFJXJc8,3499
|
|
86
86
|
radboy/DB/PrintLogging.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
|
-
radboy/DB/Prompt.py,sha256=
|
|
87
|
+
radboy/DB/Prompt.py,sha256=6k1G-C_Guwu_g0M7yy1X_o9fuF4aSXCDJVFO-YScwuA,158555
|
|
88
88
|
radboy/DB/RandomStringUtil.py,sha256=eZCpR907WStgfbk4Evcghjv9hOkUDXH-iMXIq0-kXq8,24386
|
|
89
89
|
radboy/DB/ResetTools.py,sha256=RbI-Ua7UlsN0S9qLqtEkTWvzyTZ6R-hHR3CW4NHlUPE,6660
|
|
90
90
|
radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,4013
|
|
91
91
|
radboy/DB/__init__.py,sha256=JiigA9B7GalP7YuRdcwyGDu5PDSBahoi0lLjtScxlN8,49
|
|
92
92
|
radboy/DB/blankDataFile.py,sha256=YX_05Usi71UpDkZN9UTMYwUipbTndTAtEgqzBEga0kE,9285
|
|
93
93
|
radboy/DB/config.py,sha256=bvu43dUl1_yO3Zq3gsLuenGUgJSiS3S9Cs6ppFEvZbg,239
|
|
94
|
-
radboy/DB/db.py,sha256=
|
|
94
|
+
radboy/DB/db.py,sha256=WNbsj0zJih9Vb5NQwxNW754fkqulbOY0MtwE8YSEtKA,253523
|
|
95
95
|
radboy/DB/glossary_db.py,sha256=1_qxeEpjjEtpWB_eDjsgJisimLv7OBm75MuqM-Lt6zg,28218
|
|
96
96
|
radboy/DB/masterLookup.py,sha256=DBaM2uscG3_X5dek49wjdnOzhrjWhKgvOEz_umdz0mY,4566
|
|
97
97
|
radboy/DB/msg.txt,sha256=YxWed6A6tuP1djJ5QPS2Rz3ING4TKKf8kUiCCPtzHXE,7937
|
|
@@ -108,7 +108,7 @@ radboy/DB/__pycache__/FormBuilder.cpython-312.pyc,sha256=p1o-5SMRL8OXP_XQ5liUpf-
|
|
|
108
108
|
radboy/DB/__pycache__/PrintLogging.cpython-312.pyc,sha256=pIAFqTi6OiQQORSc-oMH1zAbsdH7sY1TifxrN_QOvnU,148
|
|
109
109
|
radboy/DB/__pycache__/Prompt.cpython-311.pyc,sha256=P2uPRpeqfLFtxieZ0JHBG3X_HZzWUCsFSLb_fpRqky0,6407
|
|
110
110
|
radboy/DB/__pycache__/Prompt.cpython-312.pyc,sha256=6CcQ1gE2hcz3cKPjo4f6d7xNM2PTDnl8NzQG0Pme5BE,142886
|
|
111
|
-
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=
|
|
111
|
+
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=qpUiih6peXHOM8xeqOfd4GZuCzaNm5yC4zb8OwsLLGM,237448
|
|
112
112
|
radboy/DB/__pycache__/RandomStringUtil.cpython-312.pyc,sha256=TrbEY89MuLmNlvoo5d8vOE6Dyshh5_EMlTZvk8MDVN4,48597
|
|
113
113
|
radboy/DB/__pycache__/RandomStringUtil.cpython-313.pyc,sha256=MCcgVwV2Y-9rAY2FVaJZCKcou3HDX70EZudoiCigT0o,49217
|
|
114
114
|
radboy/DB/__pycache__/ResetTools.cpython-311.pyc,sha256=4Vyc57iAAF0yRPjjglnVKovnTn8OoFIi6Zok3Wpj_YM,9292
|
|
@@ -126,7 +126,7 @@ radboy/DB/__pycache__/config.cpython-312.pyc,sha256=Qo7E6MHrF6yqvKgepNFyCoekZXiv
|
|
|
126
126
|
radboy/DB/__pycache__/config.cpython-313.pyc,sha256=_8wCIg_3jhyJjxnExD2Sm6aY-uZTw036p7Ki5znL7dc,376
|
|
127
127
|
radboy/DB/__pycache__/db.cpython-311.pyc,sha256=rNgigyBd0D-cg1JxKAS8t0B_k0IEJivgVlRaZE10Xis,210105
|
|
128
128
|
radboy/DB/__pycache__/db.cpython-312.pyc,sha256=ANDJPC0RoavbmSKFxG15vC7B4rEGyVt7xRJt7XGY3OA,334609
|
|
129
|
-
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=
|
|
129
|
+
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=FwF3TLH-dQYEDLtiFqVb38xjN46QDqCMObygKkzONCA,400364
|
|
130
130
|
radboy/DB/__pycache__/glossary_db.cpython-312.pyc,sha256=8UL-29cKqtKovx0BANm6kzKKteef1BW_2qF3wumzst4,36023
|
|
131
131
|
radboy/DB/__pycache__/glossary_db.cpython-313.pyc,sha256=Ke9bkvllGv5CK0JdT9DRvQ3MOdrXxoYv7TVLNkqLux0,36582
|
|
132
132
|
radboy/DB/__pycache__/masterLookup.cpython-312.pyc,sha256=bQiOkmMwwHgcO18tYSWGQ-YUff4GQlKVhBMp1GoWAqY,6324
|
|
@@ -341,7 +341,7 @@ radboy/SystemSettings/__pycache__/__init__.cpython-312.pyc,sha256=aIzp4Po0t8EhSA
|
|
|
341
341
|
radboy/SystemSettings/__pycache__/__init__.cpython-313.pyc,sha256=QFDuoidxMWsGVLsy5lN-rDs6TP8nKJ4yyCyiamNOhwo,156
|
|
342
342
|
radboy/TasksMode/ReFormula.py,sha256=REDRJYub-OEOE6g14oRQOLOQwv8pHqVJy4NQk3CCM90,2255
|
|
343
343
|
radboy/TasksMode/SetEntryNEU.py,sha256=Gu0Z677tjpc7-9AQtLbIr7yzPx6ZJXGK33lOIgU0IRM,17432
|
|
344
|
-
radboy/TasksMode/Tasks.py,sha256=
|
|
344
|
+
radboy/TasksMode/Tasks.py,sha256=VsQOT0FMSvY5UOVKoCUMVT3uK049NgSgxvQGQNcYJn8,340468
|
|
345
345
|
radboy/TasksMode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
346
346
|
radboy/TasksMode/__pycache__/ReFormula.cpython-311.pyc,sha256=QEG3PwVw-8HTd_Mf9XbVcxU56F1fC9yBqWXYPLC39DU,4865
|
|
347
347
|
radboy/TasksMode/__pycache__/ReFormula.cpython-312.pyc,sha256=aX7BWm2PPjCTnxsbGUitR-2h9hq4AjaBiHMrUXvIl0Y,3967
|
|
@@ -350,7 +350,7 @@ radboy/TasksMode/__pycache__/SetEntryNEU.cpython-312.pyc,sha256=pCdFj61aPKkHL6Sv
|
|
|
350
350
|
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=UExwr8dN2STFEDE5t_YnQFMUX-wGv7JH10I1OyBDRtM,20212
|
|
351
351
|
radboy/TasksMode/__pycache__/Tasks.cpython-311.pyc,sha256=6QOTJnLiXSKdF81hkhy3vyrz49PPhS20s5_0X52g3Hw,131120
|
|
352
352
|
radboy/TasksMode/__pycache__/Tasks.cpython-312.pyc,sha256=hyJwdaYaaRLdcrNxgg36diJ5iijX5_3I0UAORsj-6LU,310295
|
|
353
|
-
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=
|
|
353
|
+
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=FQZb2bnNeOwp2lJQ9475NTDO7bIqDX0wuRF0Jfmwiec,412609
|
|
354
354
|
radboy/TasksMode/__pycache__/__init__.cpython-311.pyc,sha256=PKV1JbihEacm639b53bZozRQvcllSkjGP3q8STVMxF4,234
|
|
355
355
|
radboy/TasksMode/__pycache__/__init__.cpython-312.pyc,sha256=ERgnEvRMiGSecWp1BpNzLdSq_SdKw7GvFWUvUM7bLVw,272
|
|
356
356
|
radboy/TasksMode/__pycache__/__init__.cpython-313.pyc,sha256=lvsTxukyvGKB3C0rdF9dQi_bvVh6ceDVINfwcuIsd0s,151
|
|
@@ -397,7 +397,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
397
397
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
398
398
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
399
399
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
400
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
400
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=VDIpNXfn1S5aLxPl_9z6C8sp0Qpy16KLI9GT-64l250,165
|
|
401
401
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
402
402
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
403
403
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -406,6 +406,8 @@ radboy/__pycache__/renderQR.cpython-311.pyc,sha256=0UqhQXTpdLERvxOTi79fTfsvvSUMW
|
|
|
406
406
|
radboy/__pycache__/t.cpython-311.pyc,sha256=bVszNkmfiyoNLd0WUc8aBJc2geGseW4O28cqjUwiwaw,681
|
|
407
407
|
radboy/__pycache__/te.cpython-311.pyc,sha256=vI8eNUE5VVrfCQvnrJ7WuWpoKcLz-vVK3ifdUZ4UNhk,592
|
|
408
408
|
radboy/__pycache__/x.cpython-311.pyc,sha256=3jIvWoO5y5WqrL_hRmXNK8O0vO7DwJ4gufjm2b0V7VI,1963
|
|
409
|
+
radboy/preloader/__init__.py,sha256=m7oQ0G4gRuB1c2FvrDJ51-euecvuSz5t6uAWkMOXAAg,895
|
|
410
|
+
radboy/preloader/preloader.py,sha256=wvO7dcIROzNlnFDHfPsC0ROF4PFteZntMz-SqAWcUbM,1610
|
|
409
411
|
radboy/setCode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
410
412
|
radboy/setCode/setCode.py,sha256=8UOf4okbx-Zane99odeoLAS_lfIt8pIaFomN7EtnnVA,5202
|
|
411
413
|
radboy/setCode/__pycache__/__init__.cpython-311.pyc,sha256=cJuP5rve6Wn7ZO789tixyOlyrHZQWsBxDn9oZGoG5WE,232
|
|
@@ -422,7 +424,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
422
424
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
423
425
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
424
426
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
425
|
-
radboy-0.0.
|
|
426
|
-
radboy-0.0.
|
|
427
|
-
radboy-0.0.
|
|
428
|
-
radboy-0.0.
|
|
427
|
+
radboy-0.0.547.dist-info/METADATA,sha256=Cb3QRN8jHLs15X7U1IFzd4YzESskEZJoDCC-k2CSyrU,1615
|
|
428
|
+
radboy-0.0.547.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
429
|
+
radboy-0.0.547.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
430
|
+
radboy-0.0.547.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|