radboy 0.0.444__py3-none-any.whl → 0.0.446__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/CookBook/CookBook.py +379 -0
- radboy/CookBook/__init__.py +29 -0
- radboy/DB/Prompt.py +1 -1
- radboy/DB/__pycache__/Prompt.cpython-313.pyc +0 -0
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +78 -1
- radboy/FB/FBMTXT.py +1 -1
- radboy/FB/__pycache__/FBMTXT.cpython-313.pyc +0 -0
- radboy/HealthLog/HealthLog.py +1 -0
- radboy/HealthLog/__pycache__/HealthLog.cpython-313.pyc +0 -0
- radboy/RepeatableDates/RepeatableDates.py +1 -1
- radboy/TasksMode/Tasks.py +20 -3
- radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc +0 -0
- radboy/__init__.py +1 -1
- radboy/__pycache__/__init__.cpython-313.pyc +0 -0
- {radboy-0.0.444.dist-info → radboy-0.0.446.dist-info}/METADATA +1 -1
- {radboy-0.0.444.dist-info → radboy-0.0.446.dist-info}/RECORD +19 -17
- {radboy-0.0.444.dist-info → radboy-0.0.446.dist-info}/WHEEL +0 -0
- {radboy-0.0.444.dist-info → radboy-0.0.446.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
from . import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class CookBookUi:
|
|
5
|
+
def create_new_rcp(self):
|
|
6
|
+
with Session(ENGINE) as session:
|
|
7
|
+
uid=uuid1()
|
|
8
|
+
uid=str(uid)
|
|
9
|
+
excludes=['cbid','DTOE','recipe_uid','Instructions','recipe_name']
|
|
10
|
+
while True:
|
|
11
|
+
try:
|
|
12
|
+
cb=CookBook()
|
|
13
|
+
cb.recipe_uid=uid
|
|
14
|
+
session.add(cb)
|
|
15
|
+
session.commit()
|
|
16
|
+
entry=None
|
|
17
|
+
while True:
|
|
18
|
+
try:
|
|
19
|
+
barcode=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Barcode|Code|Name of Ingredient[enter=skip]:",helpText="what to search for in Entry",data="string")
|
|
20
|
+
if barcode is None:
|
|
21
|
+
print("User Cancelled Early")
|
|
22
|
+
return
|
|
23
|
+
elif barcode in ['d',]:
|
|
24
|
+
break
|
|
25
|
+
entry=session.query(Entry).filter(or_(Entry.Barcode==barcode,Entry.Barcode.icontains(barcode),Entry.Name.icontains(barcode),Entry.Code==barcode,Entry.Code.icontains(barcode)))
|
|
26
|
+
|
|
27
|
+
entry=orderQuery(entry,Entry.Timestamp)
|
|
28
|
+
entry=entry.all()
|
|
29
|
+
ct=len(entry)
|
|
30
|
+
if ct > 0:
|
|
31
|
+
htext=[]
|
|
32
|
+
for num, i in enumerate(entry):
|
|
33
|
+
msg=f"{Fore.light_red}{num}/{Fore.medium_violet_red}{num+1} of {Fore.light_sea_green}{ct} -> {i.seeShort()}"
|
|
34
|
+
htext.append(msg)
|
|
35
|
+
print(msg)
|
|
36
|
+
htext='\n'.join(htext)
|
|
37
|
+
which=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"Which {Fore.light_red}index?{Fore.light_yellow}",helpText=f"{htext}\n{Fore.light_red}number{Fore.light_yellow} farthest to left of screen{Style.reset}",data="integer")
|
|
38
|
+
if which not in [None,]:
|
|
39
|
+
if which == 'd':
|
|
40
|
+
entry=entry[0]
|
|
41
|
+
else:
|
|
42
|
+
entry=entry[which]
|
|
43
|
+
else:
|
|
44
|
+
htext=f"{Fore.orange_red_1}No Results for '{Fore.cyan}{barcode}{Fore.orange_red_1}'{Style.reset}"
|
|
45
|
+
again=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Try another search?[yes/no=default]",helpText=htext,data="boolean")
|
|
46
|
+
if again is None:
|
|
47
|
+
return
|
|
48
|
+
elif again in [False,'d']:
|
|
49
|
+
entry=None
|
|
50
|
+
break
|
|
51
|
+
else:
|
|
52
|
+
barcode=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{h}Barcode|Code|Name[b=skips search]: ",helpText="what was consumed?",data="string")
|
|
53
|
+
continue
|
|
54
|
+
else:
|
|
55
|
+
entry=None
|
|
56
|
+
htext=f"{Fore.orange_red_1}No Results for '{Fore.cyan}{barcode}{Fore.orange_red_1}'{Style.reset}"
|
|
57
|
+
again=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Try another search?[yes/no=default]",helpText=htext,data="boolean")
|
|
58
|
+
if again is None:
|
|
59
|
+
return
|
|
60
|
+
elif again in [False,'d']:
|
|
61
|
+
break
|
|
62
|
+
else:
|
|
63
|
+
barcode=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{h}Barcode|Code|Name[b=skips search]: ",helpText="what was consumed?",data="string")
|
|
64
|
+
continue
|
|
65
|
+
break
|
|
66
|
+
except Exception as e:
|
|
67
|
+
print(e)
|
|
68
|
+
return
|
|
69
|
+
|
|
70
|
+
fields={i.name:{'default':getattr(cb,i.name),"type":str(i.type).lower()} for i in cb.__table__.columns if str(i.name) not in excludes}
|
|
71
|
+
if entry is not None:
|
|
72
|
+
fields['IngredientName']['default']=entry.Name
|
|
73
|
+
fields['IngredientBarcode']['default']=entry.Barcode
|
|
74
|
+
fields['IngredientCode']['default']=entry.Code
|
|
75
|
+
if entry.Price is None:
|
|
76
|
+
entry.Price=0
|
|
77
|
+
if entry.Tax is None:
|
|
78
|
+
entry.Tax=0
|
|
79
|
+
if entry.CRV is None:
|
|
80
|
+
entry.CRV=0
|
|
81
|
+
fields['IngredientPricePerPurchase']['default']=float(Decimal(entry.Price+entry.CRV+entry.Tax).quantize(Decimal("0.00")))
|
|
82
|
+
fd=FormBuilder(data=fields)
|
|
83
|
+
if fd is None:
|
|
84
|
+
session.delete(cb)
|
|
85
|
+
session.commit()
|
|
86
|
+
print("User Cancelled Early")
|
|
87
|
+
return
|
|
88
|
+
|
|
89
|
+
for k in fd:
|
|
90
|
+
setattr(cb,k,fd[k])
|
|
91
|
+
session.commit()
|
|
92
|
+
htext="Add another ingredient?"
|
|
93
|
+
again=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Try another search?[yes/no=default]",helpText=htext,data="boolean")
|
|
94
|
+
if again is None:
|
|
95
|
+
return
|
|
96
|
+
elif again in [False,'d']:
|
|
97
|
+
break
|
|
98
|
+
else:
|
|
99
|
+
continue
|
|
100
|
+
except Exception as eee:
|
|
101
|
+
print(eee)
|
|
102
|
+
return
|
|
103
|
+
instructions={
|
|
104
|
+
'Instructions':{'default':'','type':'text'},
|
|
105
|
+
'recipe_name':{'default':'','type':'string'}}
|
|
106
|
+
fdi=FormBuilder(data=instructions)
|
|
107
|
+
if fdi is None:
|
|
108
|
+
print("User Quit Early, so all work has been deleted!")
|
|
109
|
+
r=session.query(CookBook).filter(CookBook.recipe_uid==uid).delete()
|
|
110
|
+
session.commit()
|
|
111
|
+
else:
|
|
112
|
+
session.query(CookBook).filter(CookBook.recipe_uid==uid).update(fdi)
|
|
113
|
+
session.commit()
|
|
114
|
+
|
|
115
|
+
results=session.query(CookBook).filter(CookBook.recipe_uid==uid)
|
|
116
|
+
results=orderQuery(results,CookBook.DTOE,inverse=True)
|
|
117
|
+
results=results.all()
|
|
118
|
+
ctt=len(results)
|
|
119
|
+
for num,i in enumerate(results):
|
|
120
|
+
msg=std_colorize(i,num,ctt)
|
|
121
|
+
print(msg)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def fix_table(self):
|
|
125
|
+
CookBook.__table__.drop(ENGINE)
|
|
126
|
+
CookBook.metadata.create_all(ENGINE)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def rm_rcp(self):
|
|
130
|
+
with Session(ENGINE) as session:
|
|
131
|
+
rcp=self.ls_rcp_names(asSelector=True,whole=True,names=True)
|
|
132
|
+
ct=len(rcp[0])
|
|
133
|
+
htext=[]
|
|
134
|
+
for i in rcp[0]:
|
|
135
|
+
htext.append(i)
|
|
136
|
+
htext='\n'.join(htext)
|
|
137
|
+
print(htext)
|
|
138
|
+
which=Prompt.__init2__(self,func=FormBuilderMkText,ptext="which index",helpText=f"{htext}\nindex of rcp to delete",data="integer")
|
|
139
|
+
if which in [None,'d']:
|
|
140
|
+
return
|
|
141
|
+
try:
|
|
142
|
+
query_2=session.query(CookBook).filter(CookBook.recipe_uid==rcp[-1][which].recipe_uid).delete()
|
|
143
|
+
session.commit()
|
|
144
|
+
print("Done Deleting!")
|
|
145
|
+
except Exception as e:
|
|
146
|
+
print(e)
|
|
147
|
+
#delete everything found by searchtext using recipe_uid as the final selection parameter
|
|
148
|
+
|
|
149
|
+
def edit_rcp(self):
|
|
150
|
+
with Session(ENGINE) as session:
|
|
151
|
+
rcp=self.ls_rcp_names(asSelector=True,whole=True,names=True)
|
|
152
|
+
ct=len(rcp[0])
|
|
153
|
+
htext=[]
|
|
154
|
+
for i in rcp[0]:
|
|
155
|
+
htext.append(i)
|
|
156
|
+
htext='\n'.join(htext)
|
|
157
|
+
print(htext)
|
|
158
|
+
which=Prompt.__init2__(self,func=FormBuilderMkText,ptext="which index",helpText=f"{htext}\nindex of rcp to edit",data="integer")
|
|
159
|
+
if which in [None,'d']:
|
|
160
|
+
return
|
|
161
|
+
try:
|
|
162
|
+
query_2=session.query(CookBook).filter(CookBook.recipe_uid==rcp[-1][which].recipe_uid).first()
|
|
163
|
+
fields={
|
|
164
|
+
'recipe_name':{'default':getattr(query_2,'recipe_name'),'type':"string"},
|
|
165
|
+
'Instructions':{'default':getattr(query_2,'Instructions'),'type':"string"},
|
|
166
|
+
}
|
|
167
|
+
fd=FormBuilder(data=fields)
|
|
168
|
+
if fd is not None:
|
|
169
|
+
r=session.query(CookBook).filter(CookBook.recipe_uid==query_2.recipe_uid)
|
|
170
|
+
r.update(fd)
|
|
171
|
+
session.commit()
|
|
172
|
+
print("Done Editing!")
|
|
173
|
+
except Exception as e:
|
|
174
|
+
print(e)
|
|
175
|
+
#edit everything found by searchtext using recipe_uid as the final selection parameter
|
|
176
|
+
|
|
177
|
+
def rm_ingredient(self):
|
|
178
|
+
with Session(ENGINE) as session:
|
|
179
|
+
rcp=self.ls_rcp_names(asSelector=True,whole=True,names=True)
|
|
180
|
+
ct=len(rcp[0])
|
|
181
|
+
htext=[]
|
|
182
|
+
for i in rcp[0]:
|
|
183
|
+
htext.append(i)
|
|
184
|
+
htext='\n'.join(htext)
|
|
185
|
+
print(htext)
|
|
186
|
+
which=Prompt.__init2__(self,func=FormBuilderMkText,ptext="which index",helpText=f"{htext}\nindex of rcp to delete its ingredients",data="integer")
|
|
187
|
+
if which in [None,'d']:
|
|
188
|
+
return
|
|
189
|
+
try:
|
|
190
|
+
query_2=session.query(CookBook).filter(CookBook.recipe_uid==rcp[-1][which].recipe_uid)
|
|
191
|
+
ordered_2=orderQuery(query_2,CookBook.DTOE)
|
|
192
|
+
results_2=ordered_2.all()
|
|
193
|
+
ct=len(results_2)
|
|
194
|
+
for num,i in enumerate(results_2):
|
|
195
|
+
print(std_colorize(i,num,ct))
|
|
196
|
+
delete=Prompt.__init2__(self,func=FormBuilderMkText,ptext="Delete[default=False]?",helpText="delete it, yes or no?",data="boolean")
|
|
197
|
+
if delete in [None,]:
|
|
198
|
+
return
|
|
199
|
+
elif delete in ['d',]:
|
|
200
|
+
continue
|
|
201
|
+
elif delete == True:
|
|
202
|
+
session.delete(i)
|
|
203
|
+
session.commit()
|
|
204
|
+
except Exception as e:
|
|
205
|
+
print(e)
|
|
206
|
+
#find a recipe, list its ingredients, select ingredients to delete, delete selected ingredients
|
|
207
|
+
|
|
208
|
+
#asSelector==False,whole==True,names==False - print selector_string_whole
|
|
209
|
+
#asSelector==False,whole==False,names==True - print selector_string_names
|
|
210
|
+
#asSelector==False,whole==True,names==True - print selector_string_whole,selector_string_names
|
|
211
|
+
#asSelector==True,whole==True,names==False - return selector_string_whole,selector_list
|
|
212
|
+
#asSelector==True,whole==False,names==True - return selector_string_names,selector_list
|
|
213
|
+
#asSelector==True,whole==True,names==True - return selector_string_names,selector_string_whole,selector_list
|
|
214
|
+
def ls_rcp_names(self,asSelector=False,whole=False,names=False):
|
|
215
|
+
with Session(ENGINE) as session:
|
|
216
|
+
selector_list=[]
|
|
217
|
+
selector_string_names=[]
|
|
218
|
+
selector_string_whole=[]
|
|
219
|
+
|
|
220
|
+
searchText=Prompt.__init2__(None,func=FormBuilderMkText,ptext="What are you looking for?",helpText="text to search for",data="string")
|
|
221
|
+
if searchText is None:
|
|
222
|
+
return
|
|
223
|
+
includes=["string","varchar","text"]
|
|
224
|
+
excludes=['cbid','DTOE']
|
|
225
|
+
fields=[i.name for i in CookBook.__table__.columns if str(i.name) not in excludes and str(i.type).lower() in includes]
|
|
226
|
+
q=[]
|
|
227
|
+
for i in fields:
|
|
228
|
+
q.append(getattr(CookBook,i).icontains(searchText))
|
|
229
|
+
query=session.query(CookBook).filter(or_(*q))
|
|
230
|
+
grouped=query.group_by(CookBook.recipe_uid)
|
|
231
|
+
ordered=orderQuery(grouped,CookBook.DTOE,inverse=True)
|
|
232
|
+
|
|
233
|
+
results=ordered.all()
|
|
234
|
+
ct=len(results)
|
|
235
|
+
if ct <= 0:
|
|
236
|
+
print("No Results")
|
|
237
|
+
return None
|
|
238
|
+
for num,i in enumerate(results):
|
|
239
|
+
selector_list.append(i)
|
|
240
|
+
selector_string_whole.append(std_colorize(i,num,ct))
|
|
241
|
+
selector_string_names.append(std_colorize(f"{i.recipe_name} - {i.recipe_uid}",num,ct))
|
|
242
|
+
if not asSelector:
|
|
243
|
+
if whole:
|
|
244
|
+
print(selector_string_whole[num])
|
|
245
|
+
if names:
|
|
246
|
+
print(selector_string_names[num])
|
|
247
|
+
if asSelector:
|
|
248
|
+
if whole and not names:
|
|
249
|
+
return selector_string_whole,selector_list
|
|
250
|
+
elif names and not whole:
|
|
251
|
+
return selector_string_names,selector_list
|
|
252
|
+
elif names and whole:
|
|
253
|
+
return selector_string_names,selector_string_whole,selector_list
|
|
254
|
+
|
|
255
|
+
def ls_rcp_ingredients(self):
|
|
256
|
+
with Session(ENGINE) as session:
|
|
257
|
+
rcp=self.ls_rcp_names(asSelector=True,whole=True,names=True)
|
|
258
|
+
ct=len(rcp[0])
|
|
259
|
+
htext=[]
|
|
260
|
+
for i in rcp[0]:
|
|
261
|
+
htext.append(i)
|
|
262
|
+
htext='\n'.join(htext)
|
|
263
|
+
print(htext)
|
|
264
|
+
which=Prompt.__init2__(self,func=FormBuilderMkText,ptext="which index",helpText=f"{htext}\nindex of rcp to view its ingredients",data="integer")
|
|
265
|
+
if which in [None,'d']:
|
|
266
|
+
return
|
|
267
|
+
try:
|
|
268
|
+
query_2=session.query(CookBook).filter(CookBook.recipe_uid==rcp[-1][which].recipe_uid)
|
|
269
|
+
ordered_2=orderQuery(query_2,CookBook.DTOE)
|
|
270
|
+
results_2=ordered_2.all()
|
|
271
|
+
ct=len(results_2)
|
|
272
|
+
for num,i in enumerate(results_2):
|
|
273
|
+
print(std_colorize(i,num,ct))
|
|
274
|
+
except Exception as e:
|
|
275
|
+
print(e)
|
|
276
|
+
|
|
277
|
+
def edit_rcp_ingredients(self):
|
|
278
|
+
with Session(ENGINE) as session:
|
|
279
|
+
rcp=self.ls_rcp_names(asSelector=True,whole=True,names=True)
|
|
280
|
+
ct=len(rcp[0])
|
|
281
|
+
htext=[]
|
|
282
|
+
for i in rcp[0]:
|
|
283
|
+
htext.append(i)
|
|
284
|
+
htext='\n'.join(htext)
|
|
285
|
+
print(htext)
|
|
286
|
+
which=Prompt.__init2__(self,func=FormBuilderMkText,ptext="which index",helpText=f"{htext}\nindex of rcp to view its ingredients",data="integer")
|
|
287
|
+
if which in [None,'d']:
|
|
288
|
+
return
|
|
289
|
+
try:
|
|
290
|
+
query_2=session.query(CookBook).filter(CookBook.recipe_uid==rcp[-1][which].recipe_uid)
|
|
291
|
+
ordered_2=orderQuery(query_2,CookBook.DTOE)
|
|
292
|
+
results_2=ordered_2.all()
|
|
293
|
+
ct=len(results_2)
|
|
294
|
+
for num,i in enumerate(results_2):
|
|
295
|
+
print(std_colorize(i,num,ct))
|
|
296
|
+
edit=Prompt.__init2__(self,func=FormBuilderMkText,ptext="Edit[default=False]?",helpText="Edit it, yes or no?",data="boolean")
|
|
297
|
+
if edit in [None,]:
|
|
298
|
+
return
|
|
299
|
+
elif edit in ['d',]:
|
|
300
|
+
continue
|
|
301
|
+
elif edit == True:
|
|
302
|
+
excludes=['cbid','recipe_uid','recipe_name','DTOE']
|
|
303
|
+
fields={ii.name:{'default':getattr(i,ii.name),'type':str(ii.type).lower()} for ii in CookBook.__table__.columns if ii.name not in excludes}
|
|
304
|
+
fd=FormBuilder(data=fields)
|
|
305
|
+
if fd is not None:
|
|
306
|
+
for k in fd:
|
|
307
|
+
setattr(i,k,fd[k])
|
|
308
|
+
session.commit()
|
|
309
|
+
else:
|
|
310
|
+
continue
|
|
311
|
+
except Exception as e:
|
|
312
|
+
print(e)
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
def __init__(self):
|
|
316
|
+
cmds={
|
|
317
|
+
str(uuid1()):{
|
|
318
|
+
'cmds':generate_cmds(startcmd=['create new','cn','cnw'],endCmd=['recipe','rcp']),
|
|
319
|
+
'desc':"create a new recipe",
|
|
320
|
+
'exec':self.create_new_rcp,
|
|
321
|
+
},
|
|
322
|
+
uuid1():{
|
|
323
|
+
'cmds':generate_cmds(startcmd=['fix','fx'],endCmd=['tbl','table']),
|
|
324
|
+
'desc':"reinstall table",
|
|
325
|
+
'exec':self.fix_table,
|
|
326
|
+
},
|
|
327
|
+
uuid1():{
|
|
328
|
+
'cmds':generate_cmds(startcmd=['rm','del','remove','delete'],endCmd=['recipe','rcp']),
|
|
329
|
+
'desc':"delete a recipe(delete everything found by searchtext using recipe_uid as the final selection parameter)",
|
|
330
|
+
'exec':self.rm_rcp,
|
|
331
|
+
},
|
|
332
|
+
uuid1():{
|
|
333
|
+
'cmds':generate_cmds(startcmd=['rm','del','remove','delete'],endCmd=['ingredient','ingrdnt','component','cmpnt']),
|
|
334
|
+
'desc':"delete a recipe ingredient/component(find a recipe, list its ingredients, select ingredients to delete, delete selected ingredients)",
|
|
335
|
+
'exec':self.rm_ingredient,
|
|
336
|
+
},
|
|
337
|
+
uuid1():{
|
|
338
|
+
'cmds':generate_cmds(startcmd=['ls','list','lst'],endCmd=['rcp','recipe']),
|
|
339
|
+
'desc':"list recipe names",
|
|
340
|
+
'exec':lambda self=self:self.ls_rcp_names(asSelector=False,whole=False,names=True),
|
|
341
|
+
},
|
|
342
|
+
uuid1():{
|
|
343
|
+
'cmds':generate_cmds(startcmd=['ls','list','lst'],endCmd=['rcp ingrdnts','recipe ingredients']),
|
|
344
|
+
'desc':"list recipe names",
|
|
345
|
+
'exec':lambda self=self:self.ls_rcp_ingredients(),
|
|
346
|
+
},
|
|
347
|
+
uuid1():{
|
|
348
|
+
'cmds':generate_cmds(startcmd=['ed','edt','edit'],endCmd=['rcp ingrdnts','recipe ingredients']),
|
|
349
|
+
'desc':"edit recipe ingredients",
|
|
350
|
+
'exec':lambda self=self:self.edit_rcp_ingredients(),
|
|
351
|
+
},
|
|
352
|
+
uuid1():{
|
|
353
|
+
'cmds':generate_cmds(startcmd=['ed','edt','edit'],endCmd=['rcp','recipe']),
|
|
354
|
+
'desc':"edit recipe names and instructions",
|
|
355
|
+
'exec':lambda self=self:self.edit_rcp(),
|
|
356
|
+
},
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
htext=[]
|
|
360
|
+
ct=len(cmds)
|
|
361
|
+
for num,i in enumerate(cmds):
|
|
362
|
+
m=f"{Fore.light_sea_green}{cmds[i]['cmds']}{Fore.orange_red_1} - {Fore.light_steel_blue}{cmds[i]['desc']}"
|
|
363
|
+
msg=f"{std_colorize(m,num,ct)}"
|
|
364
|
+
htext.append(msg)
|
|
365
|
+
htext='\n'.join(htext)
|
|
366
|
+
while True:
|
|
367
|
+
doWhat=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{self.__class__.__name__} @ Do What? ",helpText=htext,data="string")
|
|
368
|
+
if doWhat is None:
|
|
369
|
+
return
|
|
370
|
+
elif doWhat in ['','d',]:
|
|
371
|
+
print(htext)
|
|
372
|
+
continue
|
|
373
|
+
for i in cmds:
|
|
374
|
+
if doWhat.lower() in [i.lower() for i in cmds[i]['cmds']]:
|
|
375
|
+
if callable(cmds[i]['exec']):
|
|
376
|
+
cmds[i]['exec']()
|
|
377
|
+
else:
|
|
378
|
+
print(f"{i} - {cmds[i]['cmds']} - {cmds[i]['exec']}() - {cmds[i]['desc']}")
|
|
379
|
+
return
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
from uuid import uuid1
|
|
28
|
+
|
|
29
|
+
from .CookBook import *
|
radboy/DB/Prompt.py
CHANGED
|
@@ -141,7 +141,7 @@ def getSuperTotal(results,location_fields,colormapped):
|
|
|
141
141
|
master_total_tax_crv+=tax_crv
|
|
142
142
|
tax_crv=tax_crv
|
|
143
143
|
|
|
144
|
-
return {'final total':master_total_tax_crv+master_total,'master_total_tax_crv':master_total_tax_crv,'master_total_tax':master_total_tax,'master_total_crv':master_total_crv,'sub_total':master_total}
|
|
144
|
+
return {'final total':float(master_total_tax_crv+master_total),'master_total_tax_crv':float(master_total_tax_crv),'master_total_tax':float(master_total_tax),'master_total_crv':float(master_total_crv),'sub_total':float(master_total)}
|
|
145
145
|
|
|
146
146
|
|
|
147
147
|
class Obfuscate:
|
|
Binary file
|
|
Binary file
|
radboy/DB/db.py
CHANGED
|
@@ -5183,4 +5183,81 @@ try:
|
|
|
5183
5183
|
RepeatableDates.metadata.create_all(ENGINE)
|
|
5184
5184
|
except Exception as e:
|
|
5185
5185
|
RepeatableDates.__table__.drop(ENGINE)
|
|
5186
|
-
RepeatableDates.metadata.create_all(ENGINE)
|
|
5186
|
+
RepeatableDates.metadata.create_all(ENGINE)
|
|
5187
|
+
|
|
5188
|
+
|
|
5189
|
+
class CookBook(BASE,Template):
|
|
5190
|
+
__tablename__='CookBook'
|
|
5191
|
+
cbid=Column(Integer,primary_key=True)
|
|
5192
|
+
|
|
5193
|
+
#to bind ingredients together as one
|
|
5194
|
+
recipe_uid=Column(String,default=None)
|
|
5195
|
+
recipe_name=Column(String,default=None)
|
|
5196
|
+
|
|
5197
|
+
IngredientName=Column(String,default=None)
|
|
5198
|
+
IngredientBarcode=Column(String,default=None)
|
|
5199
|
+
IngredientCode=Column(String,default=None)
|
|
5200
|
+
IngredientPricePerPurchase=Column(Float,default=None)
|
|
5201
|
+
|
|
5202
|
+
IngredientQty=Column(Float,default=None)
|
|
5203
|
+
IngredientQtyUnit=Column(String,default="gram")
|
|
5204
|
+
|
|
5205
|
+
carb_per_serving=Column(Float,default=None)
|
|
5206
|
+
carb_per_serving_unit=Column(String,default="gram")
|
|
5207
|
+
|
|
5208
|
+
fiber_per_serving=Column(Float,default=None)
|
|
5209
|
+
fiber_per_serving_unit=Column(String,default="gram")
|
|
5210
|
+
|
|
5211
|
+
protien_per_serving=Column(Float,default=None)
|
|
5212
|
+
protien_per_serving_unit=Column(String,default="gram")
|
|
5213
|
+
|
|
5214
|
+
total_fat_per_serving=Column(Float,default=None)
|
|
5215
|
+
total_fat_per_serving_unit=Column(String,default="gram")
|
|
5216
|
+
|
|
5217
|
+
saturated_fat_per_serving=Column(Float,default=None)
|
|
5218
|
+
saturated_fat_per_serving_unit=Column(String,default="gram")
|
|
5219
|
+
|
|
5220
|
+
trans_fat_per_serving=Column(Float,default=None)
|
|
5221
|
+
trans_fat_per_serving_unit=Column(String,default="gram")
|
|
5222
|
+
|
|
5223
|
+
sodium_per_serving=Column(Float,default=None)
|
|
5224
|
+
sodium_per_serving_unit=Column(String,default="milligram")
|
|
5225
|
+
|
|
5226
|
+
cholesterol_per_serving=Column(Float,default=None)
|
|
5227
|
+
cholesterol_per_serving_unit=Column(String,default="milligram")
|
|
5228
|
+
|
|
5229
|
+
vitamin_d=Column(Float,default=None)
|
|
5230
|
+
vitamin_d_unit=Column(String,default="mg")
|
|
5231
|
+
|
|
5232
|
+
calcium=Column(Float,default=None)
|
|
5233
|
+
calcium_unit=Column(String,default="mg")
|
|
5234
|
+
|
|
5235
|
+
iron=Column(Float,default=None)
|
|
5236
|
+
iron_unit=Column(String,default="mg")
|
|
5237
|
+
|
|
5238
|
+
potassium=Column(Float,default=None)
|
|
5239
|
+
potassium_unit=Column(String,default="mg")
|
|
5240
|
+
|
|
5241
|
+
DTOE=Column(DateTime,default=datetime.now())
|
|
5242
|
+
Comment=Column(String,default='N/A')
|
|
5243
|
+
|
|
5244
|
+
Instructions=Column(Text,default='')
|
|
5245
|
+
|
|
5246
|
+
def as_json(self):
|
|
5247
|
+
excludes=['cbid','DTOE']
|
|
5248
|
+
dd={str(d.name):self.__dict__[d.name] for d in self.__table__.columns if d.name not in excludes}
|
|
5249
|
+
return json.dumps(dd)
|
|
5250
|
+
|
|
5251
|
+
def asID(self):
|
|
5252
|
+
return f"{self.__class__.__name__}(cbid={self.cbid})"
|
|
5253
|
+
|
|
5254
|
+
def __init__(self,**kwargs):
|
|
5255
|
+
for k in kwargs.keys():
|
|
5256
|
+
if k in [s.name for s in self.__table__.columns]:
|
|
5257
|
+
setattr(self,k,kwargs.get(k))
|
|
5258
|
+
|
|
5259
|
+
try:
|
|
5260
|
+
CookBook.metadata.create_all(ENGINE)
|
|
5261
|
+
except Exception as e:
|
|
5262
|
+
CookBook.__table__.drop(ENGINE)
|
|
5263
|
+
CookBook.metadata.create_all(ENGINE)
|
radboy/FB/FBMTXT.py
CHANGED
|
@@ -212,7 +212,7 @@ def FormBuilderMkText(text,data,passThru=[],PassThru=True,alternative_false=None
|
|
|
212
212
|
return 'd'
|
|
213
213
|
except Exception as e:
|
|
214
214
|
return 'd'
|
|
215
|
-
elif data.lower() in ['str','string',"varchar",]:
|
|
215
|
+
elif data.lower() in ['str','string',"varchar","text"]:
|
|
216
216
|
value=text
|
|
217
217
|
elif data.lower() == 'date':
|
|
218
218
|
if text.lower() in ['y','yes','1','t','true']:
|
|
Binary file
|
radboy/HealthLog/HealthLog.py
CHANGED
|
Binary file
|
|
@@ -272,7 +272,7 @@ class RepeatableDatesUi:
|
|
|
272
272
|
htext.append(msg)
|
|
273
273
|
htext='\n'.join(htext)
|
|
274
274
|
while True:
|
|
275
|
-
doWhat=Prompt.__init2__(None,func=FormBuilderMkText,ptext="
|
|
275
|
+
doWhat=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{self.__class__.__name__} @ Do What? ",helpText=htext,data="string")
|
|
276
276
|
if doWhat is None:
|
|
277
277
|
return
|
|
278
278
|
elif doWhat in ['','d',]:
|
radboy/TasksMode/Tasks.py
CHANGED
|
@@ -39,6 +39,7 @@ from decimal import Decimal,getcontext
|
|
|
39
39
|
from radboy.GDOWN.GDOWN import *
|
|
40
40
|
from radboy.Unified.clearalll import clear_all
|
|
41
41
|
from radboy.RepeatableDates import *
|
|
42
|
+
from radboy.CookBook import *
|
|
42
43
|
|
|
43
44
|
def today():
|
|
44
45
|
dt=datetime.now()
|
|
@@ -291,7 +292,11 @@ class TasksMode:
|
|
|
291
292
|
def rd_ui(self):
|
|
292
293
|
RepeatableDatesUi()
|
|
293
294
|
|
|
295
|
+
def cookbook(self):
|
|
296
|
+
CookBookUi()
|
|
297
|
+
|
|
294
298
|
def process_cmd(self,buffer):
|
|
299
|
+
''
|
|
295
300
|
data=OrderedDict()
|
|
296
301
|
for num,line in enumerate(buffer):
|
|
297
302
|
data[num]={
|
|
@@ -305,9 +310,9 @@ class TasksMode:
|
|
|
305
310
|
fd[0]='#ml#'+fd[0]
|
|
306
311
|
if not fd[len(buffer)-1].endswith('#ml#'):
|
|
307
312
|
fd[len(buffer)-1]+='#ml#'
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
313
|
+
text=''
|
|
314
|
+
for i in range(len(buffer)):
|
|
315
|
+
text+=fd[i]
|
|
311
316
|
return text
|
|
312
317
|
def getInLineResult(self):
|
|
313
318
|
return str(detectGetOrSet("InLineResult",None,setValue=False,literal=True))
|
|
@@ -4742,6 +4747,18 @@ where:
|
|
|
4742
4747
|
'exec':lambda self=self: print(self.DateTimePkr()),
|
|
4743
4748
|
}
|
|
4744
4749
|
count+=1
|
|
4750
|
+
self.options[str(uuid1())]={
|
|
4751
|
+
'cmds':["#"+str(count),*[i for i in generate_cmds(startcmd=["cookbook","ckbk"],endCmd=["",])]],
|
|
4752
|
+
'desc':f"cookbook",
|
|
4753
|
+
'exec':lambda self=self: print(self.cookbook()),
|
|
4754
|
+
}
|
|
4755
|
+
count+=1
|
|
4756
|
+
self.options[str(uuid1())]={
|
|
4757
|
+
'cmds':["#"+str(count),*[i for i in generate_cmds(startcmd=["loads2","lds2"],endCmd=["",])]],
|
|
4758
|
+
'desc':f"dates that repeat weekly, or upcoming dates that are important",
|
|
4759
|
+
'exec':lambda self=self: print(self.rd_ui()),
|
|
4760
|
+
}
|
|
4761
|
+
count+=1
|
|
4745
4762
|
#self.product_history=
|
|
4746
4763
|
|
|
4747
4764
|
'''
|
|
Binary file
|
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.446'
|
|
Binary file
|
|
@@ -5,7 +5,7 @@ radboy/Holidays.txt,sha256=y-JZPihh5iaWKxMIHNXD39yVuVmf1vMs4FdNDcg0f1Y,3114
|
|
|
5
5
|
radboy/InventoryGlossary.txt,sha256=018-Yqca6DFb10jPdkUY-5qhkRlQN1k3rxoTaERQ-LA,91008
|
|
6
6
|
radboy/RecordMyCodes.py,sha256=dOm24buf-rWC4FGLQLDjL5obdxOKF3D01t6Qkkit-R0,41421
|
|
7
7
|
radboy/Run.py,sha256=JUoCTHnzQBv7n8PB2_i93ANdAC_iW__RkAge8esCnk4,76
|
|
8
|
-
radboy/__init__.py,sha256=
|
|
8
|
+
radboy/__init__.py,sha256=wcDStHyBxLpSEKOCtqi1zLg7IQBZDcrpnO0Gcy1iE4s,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
|
|
@@ -75,6 +75,8 @@ radboy/ConvertCode/__pycache__/__init__.cpython-311.pyc,sha256=1-K1vfRZxAs9MoOyy
|
|
|
75
75
|
radboy/ConvertCode/__pycache__/__init__.cpython-312.pyc,sha256=77LSCMdrPg91lbsloPumUo1SpAt5A8l1WPgTxGIvwTs,274
|
|
76
76
|
radboy/ConvertCode/__pycache__/__init__.cpython-313.pyc,sha256=4F9h0V0Z5sQHdZQGEsnfCSLMQK4lUD5CzJwU4Elv-EU,153
|
|
77
77
|
radboy/ConvertCode/__pycache__/codep.cpython-311.pyc,sha256=-qJqPEjGOP1-x6Xw6W4Msfuu2iwVffN_-DerH18Is2o,1086
|
|
78
|
+
radboy/CookBook/CookBook.py,sha256=ZKjSkvLXoPL0eCxjLrySeF7Gjh_n1CJRQqYj0Kaju00,14132
|
|
79
|
+
radboy/CookBook/__init__.py,sha256=svTiqqFxHZeqYCRorLx6qLxL3oI1pil4fxomm-kkQ88,927
|
|
78
80
|
radboy/DB/CoinCombo.py,sha256=NJfTmx3XYgS41zkAyyO2W6de1Mj3rWsCWqU4ikHfvJI,13604
|
|
79
81
|
radboy/DB/DatePicker.py,sha256=6eNjmryFWPpzrRYmI418UwSGin3XpJlL52h8cauanbY,18004
|
|
80
82
|
radboy/DB/DisplayItemDb.py,sha256=uVvrNyFyBuKvrw-BEPXKYvfa-QWyFN5ahESi2l6vUUA,52046
|
|
@@ -83,14 +85,14 @@ radboy/DB/ExerciseTracker.py,sha256=CZ8jdKJiAE_QTAiJTRXi8ZOnS1NUiSvWVSKLHLpYVGk,
|
|
|
83
85
|
radboy/DB/PayDay.py,sha256=H2kPGvBCDkMOz7lbxQhYtUt_oAInpxi37Q6MFrah98I,8710
|
|
84
86
|
radboy/DB/PayModels.py,sha256=hjwWxP7PL33hmfzQl5YTf0HqzaMxXJxFknPdxFJXJc8,3499
|
|
85
87
|
radboy/DB/PrintLogging.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
|
-
radboy/DB/Prompt.py,sha256=
|
|
88
|
+
radboy/DB/Prompt.py,sha256=HhpI4-u0pCuUt43I-0kTD8f4q-B4UN7MRg56j7LG3ww,139089
|
|
87
89
|
radboy/DB/RandomStringUtil.py,sha256=eZCpR907WStgfbk4Evcghjv9hOkUDXH-iMXIq0-kXq8,24386
|
|
88
90
|
radboy/DB/ResetTools.py,sha256=RbI-Ua7UlsN0S9qLqtEkTWvzyTZ6R-hHR3CW4NHlUPE,6660
|
|
89
91
|
radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,4013
|
|
90
92
|
radboy/DB/__init__.py,sha256=JiigA9B7GalP7YuRdcwyGDu5PDSBahoi0lLjtScxlN8,49
|
|
91
93
|
radboy/DB/blankDataFile.py,sha256=YX_05Usi71UpDkZN9UTMYwUipbTndTAtEgqzBEga0kE,9285
|
|
92
94
|
radboy/DB/config.py,sha256=bvu43dUl1_yO3Zq3gsLuenGUgJSiS3S9Cs6ppFEvZbg,239
|
|
93
|
-
radboy/DB/db.py,sha256=
|
|
95
|
+
radboy/DB/db.py,sha256=IfAxy3rE6cnyyAJT9L0hu95Rsn67ljmLEy-Mi3iH-gU,239987
|
|
94
96
|
radboy/DB/glossary_db.py,sha256=1_qxeEpjjEtpWB_eDjsgJisimLv7OBm75MuqM-Lt6zg,28218
|
|
95
97
|
radboy/DB/masterLookup.py,sha256=DBaM2uscG3_X5dek49wjdnOzhrjWhKgvOEz_umdz0mY,4566
|
|
96
98
|
radboy/DB/msg.txt,sha256=YxWed6A6tuP1djJ5QPS2Rz3ING4TKKf8kUiCCPtzHXE,7937
|
|
@@ -107,7 +109,7 @@ radboy/DB/__pycache__/FormBuilder.cpython-312.pyc,sha256=p1o-5SMRL8OXP_XQ5liUpf-
|
|
|
107
109
|
radboy/DB/__pycache__/PrintLogging.cpython-312.pyc,sha256=pIAFqTi6OiQQORSc-oMH1zAbsdH7sY1TifxrN_QOvnU,148
|
|
108
110
|
radboy/DB/__pycache__/Prompt.cpython-311.pyc,sha256=P2uPRpeqfLFtxieZ0JHBG3X_HZzWUCsFSLb_fpRqky0,6407
|
|
109
111
|
radboy/DB/__pycache__/Prompt.cpython-312.pyc,sha256=6CcQ1gE2hcz3cKPjo4f6d7xNM2PTDnl8NzQG0Pme5BE,142886
|
|
110
|
-
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=
|
|
112
|
+
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=IcoofO4HR1jUrBtY8gAEhTJSTSJMWqCpBNcFwZZ09dg,213626
|
|
111
113
|
radboy/DB/__pycache__/RandomStringUtil.cpython-312.pyc,sha256=TrbEY89MuLmNlvoo5d8vOE6Dyshh5_EMlTZvk8MDVN4,48597
|
|
112
114
|
radboy/DB/__pycache__/RandomStringUtil.cpython-313.pyc,sha256=MCcgVwV2Y-9rAY2FVaJZCKcou3HDX70EZudoiCigT0o,49217
|
|
113
115
|
radboy/DB/__pycache__/ResetTools.cpython-311.pyc,sha256=4Vyc57iAAF0yRPjjglnVKovnTn8OoFIi6Zok3Wpj_YM,9292
|
|
@@ -125,7 +127,7 @@ radboy/DB/__pycache__/config.cpython-312.pyc,sha256=Qo7E6MHrF6yqvKgepNFyCoekZXiv
|
|
|
125
127
|
radboy/DB/__pycache__/config.cpython-313.pyc,sha256=_8wCIg_3jhyJjxnExD2Sm6aY-uZTw036p7Ki5znL7dc,376
|
|
126
128
|
radboy/DB/__pycache__/db.cpython-311.pyc,sha256=rNgigyBd0D-cg1JxKAS8t0B_k0IEJivgVlRaZE10Xis,210105
|
|
127
129
|
radboy/DB/__pycache__/db.cpython-312.pyc,sha256=ANDJPC0RoavbmSKFxG15vC7B4rEGyVt7xRJt7XGY3OA,334609
|
|
128
|
-
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=
|
|
130
|
+
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=NCtdFi-lav2m3SShNb4If3YUY5E5Tep1pszMvddk0jM,378883
|
|
129
131
|
radboy/DB/__pycache__/glossary_db.cpython-312.pyc,sha256=8UL-29cKqtKovx0BANm6kzKKteef1BW_2qF3wumzst4,36023
|
|
130
132
|
radboy/DB/__pycache__/glossary_db.cpython-313.pyc,sha256=Ke9bkvllGv5CK0JdT9DRvQ3MOdrXxoYv7TVLNkqLux0,36582
|
|
131
133
|
radboy/DB/__pycache__/masterLookup.cpython-312.pyc,sha256=bQiOkmMwwHgcO18tYSWGQ-YUff4GQlKVhBMp1GoWAqY,6324
|
|
@@ -190,11 +192,11 @@ radboy/ExtractPkg/__pycache__/ExtractPkg2.cpython-313.pyc,sha256=bgw-00G_ouurOtO
|
|
|
190
192
|
radboy/ExtractPkg/__pycache__/__init__.cpython-311.pyc,sha256=62yPgrgPZffZFLr6FscOqCdo45vfhScJ8aZbLTbD7I4,235
|
|
191
193
|
radboy/ExtractPkg/__pycache__/__init__.cpython-312.pyc,sha256=Ll1iKcG0MDtoCIloQ_frcihvCSe1HPtyERzcAoXwQT0,273
|
|
192
194
|
radboy/ExtractPkg/__pycache__/__init__.cpython-313.pyc,sha256=kL3Y3KxCTaGNg3aq5fhf2fsnQHZolGfvniEUfsx2bwY,152
|
|
193
|
-
radboy/FB/FBMTXT.py,sha256=
|
|
195
|
+
radboy/FB/FBMTXT.py,sha256=Yc1P0diaRNDvQZfmX872cOER6YQZr8flZBzbG62X2oM,41413
|
|
194
196
|
radboy/FB/FormBuilder.py,sha256=oOlGmvrUaAOVf0DpM_wlHKfIyz-Q8WU9pJRZ7XPzdQg,14275
|
|
195
197
|
radboy/FB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
196
198
|
radboy/FB/__pycache__/FBMTXT.cpython-312.pyc,sha256=XCVFa7Mo83LGIdRrTvcK73siUpcVIEQfXKCH2QHeViw,9626
|
|
197
|
-
radboy/FB/__pycache__/FBMTXT.cpython-313.pyc,sha256=
|
|
199
|
+
radboy/FB/__pycache__/FBMTXT.cpython-313.pyc,sha256=yGN_5nMHjf2Yy7s7nF0BSkJjapNVHwpRO4DlnnLFhuA,54686
|
|
198
200
|
radboy/FB/__pycache__/FormBuilder.cpython-312.pyc,sha256=lNQdB-zApsXM7OQF9MIi0zRZD1SAL6stKEN-AyQiIKg,18873
|
|
199
201
|
radboy/FB/__pycache__/FormBuilder.cpython-313.pyc,sha256=WOX7ndix3aTqTaF01w1x4X_b-DX15RAoBdH7_L5NPCc,19706
|
|
200
202
|
radboy/FB/__pycache__/__init__.cpython-312.pyc,sha256=ULEL8Au_CxcYpNAcSoSbI65M7-av1W6Zuy6kQJUu-Mw,265
|
|
@@ -208,10 +210,10 @@ radboy/GeoTools/__pycache__/GeoClass.cpython-313.pyc,sha256=eZ6hpLKoic1XCb7BKKg-
|
|
|
208
210
|
radboy/GeoTools/__pycache__/OSMClass.cpython-312.pyc,sha256=5RoT8_wiI8R7yb_B9FWIC7mALdGNoqyWtkzsjM2pbh0,40387
|
|
209
211
|
radboy/GeoTools/__pycache__/__init__.cpython-312.pyc,sha256=Y7Xtrzwm44-xuY_4NK8aDjYfVmXIzUFWOyexJu9le8A,1238
|
|
210
212
|
radboy/GeoTools/__pycache__/__init__.cpython-313.pyc,sha256=-bk9eEIxWZgHYZHtNJbrpubDRWkbdYNkGr5J7sVhyIE,1238
|
|
211
|
-
radboy/HealthLog/HealthLog.py,sha256=
|
|
213
|
+
radboy/HealthLog/HealthLog.py,sha256=ziw5zvKgjbsEKES2GC5h7U8ZuoUYMfRjVcuvhv6yW8A,19875
|
|
212
214
|
radboy/HealthLog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
213
215
|
radboy/HealthLog/__pycache__/HealthLog.cpython-312.pyc,sha256=hTo4o7jo9L2yqPZgzuKUw_kon_PVcCuTRguELTuLrIo,27946
|
|
214
|
-
radboy/HealthLog/__pycache__/HealthLog.cpython-313.pyc,sha256=
|
|
216
|
+
radboy/HealthLog/__pycache__/HealthLog.cpython-313.pyc,sha256=kepTB0QEnhtCa8d87E2cyEMLJy2iEM_pw6u0grXF1zQ,32341
|
|
215
217
|
radboy/HealthLog/__pycache__/__init__.cpython-312.pyc,sha256=yZrYKBk31pGSjCRqmqzpX409iw-muC1zsNO2ObqkGlY,272
|
|
216
218
|
radboy/HealthLog/__pycache__/__init__.cpython-313.pyc,sha256=cqdZbEJKq9XVoVqDAwsW0pwwBBGSerJNWGlST3YVR3g,151
|
|
217
219
|
radboy/InListRestore/ILR.py,sha256=s8fbbHLKQSVJX1VaeyGE-vdIUGBEbOPX29kRIG2j2WY,16847
|
|
@@ -307,7 +309,7 @@ radboy/Repack/__pycache__/Repack.cpython-313.pyc,sha256=6MjxbPlXSer4oFs2fyUXMNHP
|
|
|
307
309
|
radboy/Repack/__pycache__/__init__.cpython-311.pyc,sha256=fnP-an9GM_scIcBL6D9z8eDQRgb7EWs1usOIzKRqc8s,231
|
|
308
310
|
radboy/Repack/__pycache__/__init__.cpython-312.pyc,sha256=SRvtYwum13YJJ0NnJHQa6f_wHmyZ8KxHrmICv5Qawcg,269
|
|
309
311
|
radboy/Repack/__pycache__/__init__.cpython-313.pyc,sha256=VxcShJHR5BBzMPCKvDDjPR2EPDErl1fTPOt93NZKzNQ,148
|
|
310
|
-
radboy/RepeatableDates/RepeatableDates.py,sha256=
|
|
312
|
+
radboy/RepeatableDates/RepeatableDates.py,sha256=cDCGRDIdz0SrMPkcf6hoYokWmWcgJElAZuK9INgwcys,8867
|
|
311
313
|
radboy/RepeatableDates/__init__.py,sha256=9fV4hKov1VvXym9fmNbTFTPxmMx6LA3AaL103IOrMQg,934
|
|
312
314
|
radboy/Roster/Roster.py,sha256=hOtq-jA9Rw_167fqKF-iRBzLscVUtOXdY7g_kdPSgVs,82325
|
|
313
315
|
radboy/Roster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -336,7 +338,7 @@ radboy/SystemSettings/__pycache__/__init__.cpython-312.pyc,sha256=aIzp4Po0t8EhSA
|
|
|
336
338
|
radboy/SystemSettings/__pycache__/__init__.cpython-313.pyc,sha256=QFDuoidxMWsGVLsy5lN-rDs6TP8nKJ4yyCyiamNOhwo,156
|
|
337
339
|
radboy/TasksMode/ReFormula.py,sha256=REDRJYub-OEOE6g14oRQOLOQwv8pHqVJy4NQk3CCM90,2255
|
|
338
340
|
radboy/TasksMode/SetEntryNEU.py,sha256=TTzlAT5rNXvXUAy16BHBq0hJOKhONYpPhdAfQKdTfGw,17364
|
|
339
|
-
radboy/TasksMode/Tasks.py,sha256=
|
|
341
|
+
radboy/TasksMode/Tasks.py,sha256=_4QakS45dlnrNUaEhRqlpHHrME1NUgH2WYf4-PnYMBM,309665
|
|
340
342
|
radboy/TasksMode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
341
343
|
radboy/TasksMode/__pycache__/ReFormula.cpython-311.pyc,sha256=QEG3PwVw-8HTd_Mf9XbVcxU56F1fC9yBqWXYPLC39DU,4865
|
|
342
344
|
radboy/TasksMode/__pycache__/ReFormula.cpython-312.pyc,sha256=aX7BWm2PPjCTnxsbGUitR-2h9hq4AjaBiHMrUXvIl0Y,3967
|
|
@@ -345,7 +347,7 @@ radboy/TasksMode/__pycache__/SetEntryNEU.cpython-312.pyc,sha256=pCdFj61aPKkHL6Sv
|
|
|
345
347
|
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=eSWkYvfm5RuRE5rbO5wI7XxzFyKnp6KlbphSqPAF2z4,20133
|
|
346
348
|
radboy/TasksMode/__pycache__/Tasks.cpython-311.pyc,sha256=6QOTJnLiXSKdF81hkhy3vyrz49PPhS20s5_0X52g3Hw,131120
|
|
347
349
|
radboy/TasksMode/__pycache__/Tasks.cpython-312.pyc,sha256=hyJwdaYaaRLdcrNxgg36diJ5iijX5_3I0UAORsj-6LU,310295
|
|
348
|
-
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=
|
|
350
|
+
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=i1LPUMNcQXkyAs89G1mwc9ZcId7lKpateMdhlKJ5pKs,380450
|
|
349
351
|
radboy/TasksMode/__pycache__/__init__.cpython-311.pyc,sha256=PKV1JbihEacm639b53bZozRQvcllSkjGP3q8STVMxF4,234
|
|
350
352
|
radboy/TasksMode/__pycache__/__init__.cpython-312.pyc,sha256=ERgnEvRMiGSecWp1BpNzLdSq_SdKw7GvFWUvUM7bLVw,272
|
|
351
353
|
radboy/TasksMode/__pycache__/__init__.cpython-313.pyc,sha256=lvsTxukyvGKB3C0rdF9dQi_bvVh6ceDVINfwcuIsd0s,151
|
|
@@ -392,7 +394,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
392
394
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
393
395
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
394
396
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
395
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
397
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=VjvyFLJqsRJ68CbsnhY8iv-FpZk-AuYhc2Xq5OtLNeE,165
|
|
396
398
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
397
399
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
398
400
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -417,7 +419,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
417
419
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
418
420
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
419
421
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
420
|
-
radboy-0.0.
|
|
421
|
-
radboy-0.0.
|
|
422
|
-
radboy-0.0.
|
|
423
|
-
radboy-0.0.
|
|
422
|
+
radboy-0.0.446.dist-info/METADATA,sha256=Gzj19N35zq39hMRdsei1IEVi92QuFKN_EuYMMCeWISU,1574
|
|
423
|
+
radboy-0.0.446.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
424
|
+
radboy-0.0.446.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
425
|
+
radboy-0.0.446.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|