radboy 0.0.440__py3-none-any.whl → 0.0.442__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 +15 -5
- radboy/DB/__pycache__/Prompt.cpython-313.pyc +0 -0
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +45 -3
- radboy/FB/FBMTXT.py +272 -10
- 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 +289 -0
- radboy/RepeatableDates/__init__.py +29 -0
- radboy/TasksMode/Tasks.py +4 -0
- 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.440.dist-info → radboy-0.0.442.dist-info}/METADATA +1 -1
- {radboy-0.0.440.dist-info → radboy-0.0.442.dist-info}/RECORD +18 -16
- {radboy-0.0.440.dist-info → radboy-0.0.442.dist-info}/WHEEL +0 -0
- {radboy-0.0.440.dist-info → radboy-0.0.442.dist-info}/top_level.txt +0 -0
radboy/DB/Prompt.py
CHANGED
|
@@ -43,14 +43,20 @@ def timedout(ptext):
|
|
|
43
43
|
user_input = "timeout"
|
|
44
44
|
return user_input
|
|
45
45
|
|
|
46
|
-
def orderQuery(query,orderBy):
|
|
46
|
+
def orderQuery(query,orderBy,inverse=False):
|
|
47
47
|
LookUpState=db.detectGetOrSet('list maker lookup order',False,setValue=False,literal=False)
|
|
48
48
|
if not isinstance(LookUpState,bool):
|
|
49
49
|
LookUpState=db.detectGetOrSet('list maker lookup order',False,setValue=True,literal=False)
|
|
50
50
|
if LookUpState == True:
|
|
51
|
-
|
|
51
|
+
if not inverse:
|
|
52
|
+
query=query.order_by(orderBy.asc())
|
|
53
|
+
else:
|
|
54
|
+
query=query.order_by(orderBy.desc())
|
|
52
55
|
else:
|
|
53
|
-
|
|
56
|
+
if not inverse:
|
|
57
|
+
query=query.order_by(orderBy.desc())
|
|
58
|
+
else:
|
|
59
|
+
query=query.order_by(orderBy.asc())
|
|
54
60
|
return query
|
|
55
61
|
|
|
56
62
|
def generate_cmds(startcmd,endCmd):
|
|
@@ -2012,6 +2018,9 @@ CMD's are not final until ended with {Fore.magenta}{hw_delim}{Style.reset}""")
|
|
|
2012
2018
|
elif cmd.lower() in ['pc','prec calc',]:
|
|
2013
2019
|
resultant=TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).prec_calc()
|
|
2014
2020
|
return func(resultant,data)
|
|
2021
|
+
elif cmd.lower() in generate_cmds(startcmd=['lds2','rdts'],endCmd=['',]):
|
|
2022
|
+
resultant=TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).rd_ui()
|
|
2023
|
+
continue
|
|
2015
2024
|
elif cmd.lower() in ['b','back']:
|
|
2016
2025
|
lastTime=db.detectGetOrSet("PromptLastDTasFloat",datetime.now().timestamp(),setValue=True)
|
|
2017
2026
|
return
|
|
@@ -2070,7 +2079,8 @@ CMD's are not final until ended with {Fore.magenta}{hw_delim}{Style.reset}""")
|
|
|
2070
2079
|
{Fore.grey_85}** {Fore.light_steel_blue}{f'{Fore.light_red},{Fore.light_steel_blue}'.join(generate_cmds(startcmd=['orddt','ordt','loads','lds'],endCmd=['frozen','Frozen','fzn']))}{Fore.light_green} print hard-coded order dates frozen load{Style.reset}
|
|
2071
2080
|
{Fore.grey_85}** {Fore.light_steel_blue}{f'{Fore.light_red},{Fore.light_steel_blue}'.join(generate_cmds(startcmd=['orddt','ordt','loads','lds'],endCmd=['gm','lqr','general merchandise','liquor','totes','green totes','grn tts','grntts']))}{Fore.light_green} print hard-coded order dates GM Load/Liquor Load{Style.reset}
|
|
2072
2081
|
{Fore.grey_85}** {Fore.light_steel_blue}{f'{Fore.light_red},{Fore.light_steel_blue}'.join(generate_cmds(startcmd=['orddts','ordts','loads','lds','orders','loads','rxdates'],endCmd=['','all','all dates','all dts','aldts','*']))}{Fore.light_green} print all load dates {Style.reset}
|
|
2073
|
-
{Fore.grey_70}**{Fore.
|
|
2082
|
+
{Fore.grey_70}** {Fore.light_steel_blue}{f'{Fore.light_red},{Fore.light_steel_blue}'.join(generate_cmds(startcmd=['units',],endCmd=['']))}{Fore.light_green} list supported units{Style.reset}
|
|
2083
|
+
{Fore.grey_70}** {Fore.light_steel_blue}{f'{Fore.light_red},{Fore.light_steel_blue}'.join(generate_cmds(startcmd=['lds2','rdts'],endCmd=['',]))}{Fore.light_green} repeable dates,orders,etc...{Style.reset}
|
|
2074
2084
|
'''
|
|
2075
2085
|
print(extra)
|
|
2076
2086
|
print(helpText)
|
|
@@ -2174,7 +2184,7 @@ CMD's are not final until ended with {Fore.magenta}{hw_delim}{Style.reset}""")
|
|
|
2174
2184
|
elif cmd.lower() in ['vllo','view list lookup order']:
|
|
2175
2185
|
try:
|
|
2176
2186
|
state=db.detectGetOrSet('list maker lookup order',False,setValue=False,literal=False)
|
|
2177
|
-
translate={True:"Ascending by Timestamp
|
|
2187
|
+
translate={True:"Ascending by Timestamp, Newest==First Line & Last Line==Oldest",False:"Descending by Timestamp, Oldest==First Line & Last Line==Newest"}
|
|
2178
2188
|
print(f"{state} : {translate[state]}")
|
|
2179
2189
|
except Exception as e:
|
|
2180
2190
|
state=db.detectGetOrSet('list maker lookup order',True,setValue=True,literal=False)
|
|
Binary file
|
|
Binary file
|
radboy/DB/db.py
CHANGED
|
@@ -745,7 +745,7 @@ class Template:
|
|
|
745
745
|
m=[]
|
|
746
746
|
now=datetime.now()
|
|
747
747
|
microid=now.timestamp()
|
|
748
|
-
nowStr=now.strftime(" -> Time:%I:%M:%S %p(12)/%H:%M:%S(24H)\nDate:%m/%d/%Y")+f" Timestamp:{microid}\n"
|
|
748
|
+
nowStr=now.strftime(" -> Time:%I:%M:%S %p(12)/%H:%M:%S(24H)\nDate:%m/%d/%Y")+f" Today:{now.strftime("%A")} Timestamp:{microid}\n"
|
|
749
749
|
m.append(f"{nowStr} -> {cc}{self.__tablename__}{Style.reset}(")
|
|
750
750
|
fields=[i.name for i in self.__table__.columns]
|
|
751
751
|
ft={i.name:str(i.type).lower() for i in self.__table__.columns}
|
|
@@ -765,7 +765,7 @@ class Template:
|
|
|
765
765
|
return '\n'.join(m)
|
|
766
766
|
|
|
767
767
|
def __repr__(self,vc=Fore.dark_blue+Style.bold,fc=Fore.light_green,cc=Fore.light_magenta,vg=Back.grey_50):
|
|
768
|
-
return self.
|
|
768
|
+
return self.__str__(vc,fc,cc,vg)
|
|
769
769
|
|
|
770
770
|
|
|
771
771
|
class EntryDataExtras(BASE,Template):
|
|
@@ -5141,4 +5141,46 @@ class Scheduled_And_Appointments(BASE,Template):
|
|
|
5141
5141
|
setattr(self,k,kwargs.get(k))
|
|
5142
5142
|
|
|
5143
5143
|
|
|
5144
|
-
Scheduled_And_Appointments.metadata.create_all(ENGINE)
|
|
5144
|
+
Scheduled_And_Appointments.metadata.create_all(ENGINE)
|
|
5145
|
+
|
|
5146
|
+
class RepeatableDates(BASE,Template):
|
|
5147
|
+
__tablename__='RepeatableDates'
|
|
5148
|
+
rd_id=Column(Integer,primary_key=True)
|
|
5149
|
+
|
|
5150
|
+
For_Whom=Column(String,default=None)
|
|
5151
|
+
What_Is_It=Column(String,default=None)
|
|
5152
|
+
|
|
5153
|
+
PalletCount=Column(Float,default=0)
|
|
5154
|
+
|
|
5155
|
+
#if true, DO NOT USE info for DTORX
|
|
5156
|
+
#repe
|
|
5157
|
+
Go_By_WeekDayNames=Column(Boolean,default=True)
|
|
5158
|
+
WeekDayNames=Column(String,default='[]')
|
|
5159
|
+
#else, use DTORX
|
|
5160
|
+
|
|
5161
|
+
#DateTime recieved
|
|
5162
|
+
DTORX=Column(DateTime,default=None)
|
|
5163
|
+
#repeats same day every every period of x
|
|
5164
|
+
#every 24h
|
|
5165
|
+
|
|
5166
|
+
DTOE=Column(DateTime,default=datetime.now())
|
|
5167
|
+
Comment=Column(String,default='N/A')
|
|
5168
|
+
|
|
5169
|
+
def as_json(self):
|
|
5170
|
+
excludes=['rd_id','DTOE']
|
|
5171
|
+
dd={str(d.name):self.__dict__[d.name] for d in self.__table__.columns if d.name not in excludes}
|
|
5172
|
+
return json.dumps(dd)
|
|
5173
|
+
|
|
5174
|
+
def asID(self):
|
|
5175
|
+
return f"RepeatableDates(rd_id={self.rd_id})"
|
|
5176
|
+
|
|
5177
|
+
def __init__(self,**kwargs):
|
|
5178
|
+
for k in kwargs.keys():
|
|
5179
|
+
if k in [s.name for s in self.__table__.columns]:
|
|
5180
|
+
setattr(self,k,kwargs.get(k))
|
|
5181
|
+
|
|
5182
|
+
try:
|
|
5183
|
+
RepeatableDates.metadata.create_all(ENGINE)
|
|
5184
|
+
except Exception as e:
|
|
5185
|
+
RepeatableDates.__table__.drop(ENGINE)
|
|
5186
|
+
RepeatableDates.metadata.create_all(ENGINE)
|
radboy/FB/FBMTXT.py
CHANGED
|
@@ -8,6 +8,17 @@ import re
|
|
|
8
8
|
from datetime import timedelta
|
|
9
9
|
import calendar
|
|
10
10
|
from colored import Fore,Back,Style
|
|
11
|
+
import itertools
|
|
12
|
+
|
|
13
|
+
def generate_cmds(startcmd,endCmd):
|
|
14
|
+
cmd=(startcmd,endCmd)
|
|
15
|
+
cmds=[]
|
|
16
|
+
for i in itertools.product(startcmd,endCmd):
|
|
17
|
+
if ''.join(i) not in cmds:
|
|
18
|
+
cmds.append(''.join(i))
|
|
19
|
+
if ' '.join(i) not in cmds:
|
|
20
|
+
cmds.append(' '.join(i))
|
|
21
|
+
return cmds
|
|
11
22
|
|
|
12
23
|
fm_data={
|
|
13
24
|
'Decimal':{
|
|
@@ -55,6 +66,7 @@ fm_data={
|
|
|
55
66
|
'default':[],
|
|
56
67
|
},
|
|
57
68
|
}
|
|
69
|
+
UNDER_RND="Under Development; not functional!"
|
|
58
70
|
def FormBuilderHelpText():
|
|
59
71
|
TODAY_IS=datetime.now()
|
|
60
72
|
z=TODAY_IS
|
|
@@ -90,6 +102,36 @@ def FormBuilderHelpText():
|
|
|
90
102
|
{Fore.light_cyan}**{Fore.light_steel_blue}Boolean True={Fore.spring_green_3a}y,yes,Yes,Y,True,T,t,1 or an equation that results in a True such as {Fore.orange_red_1}`datetime.now()`/{datetime.now()}`!=datetime(2001,1,1)`/{datetime(2001,1,1)} or 1==1.{Style.reset}
|
|
91
103
|
{Fore.light_cyan}**{Fore.light_steel_blue}Boolean False={Fore.spring_green_3a}false,no,n,N,No,False,0 or an equation that results in a False such as {Fore.orange_red_1}`datetime.now()`/{datetime.now()}`==datetime(2001,1,1)`/{datetime(2001,1,1)} or 1==0.{Style.reset}
|
|
92
104
|
{Fore.medium_violet_red}**{Fore.light_magenta}When Asked for a List of integers {Fore.magenta}use 1,2,3 for indexes 1-3, {Fore.orange_red_1}or 1,3 for indexes 1 and 3, {Fore.light_red}or 1,4,6-8,10 for indexes 1,4,6,7,8, and 10,{Fore.purple_1a} or 1 for index 1.{Style.reset}
|
|
105
|
+
{UNDER_RND}
|
|
106
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming week start - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
107
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming week end - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
108
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last week start - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
109
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last week end - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
110
|
+
|
|
111
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last saturday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
112
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last sunday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
113
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last monday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
114
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last tuesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
115
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last wednesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
116
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last thursday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
117
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last friday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
118
|
+
|
|
119
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming saturday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
120
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming sunday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
121
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming monday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
122
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming tuesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
123
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming wednesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
124
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming thursday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
125
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming friday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
126
|
+
|
|
127
|
+
{Fore.green_yellow}**{Fore.light_magenta}saturday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
128
|
+
{Fore.green_yellow}**{Fore.light_magenta}sunday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
129
|
+
{Fore.green_yellow}**{Fore.light_magenta}monday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
130
|
+
{Fore.green_yellow}**{Fore.light_magenta}tuesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
131
|
+
{Fore.green_yellow}**{Fore.light_magenta}wednesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
132
|
+
{Fore.green_yellow}**{Fore.light_magenta}thursday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
133
|
+
{Fore.green_yellow}**{Fore.light_magenta}friday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
134
|
+
|
|
93
135
|
'''
|
|
94
136
|
print(msg)
|
|
95
137
|
|
|
@@ -269,17 +311,237 @@ def FormBuilderMkText(text,data,passThru=[],PassThru=True,alternative_false=None
|
|
|
269
311
|
return datetime(year=TODAY_IS.year,month=TODAY_IS.month,day=TODAY_IS.day)-timedelta(seconds=60*60*24*7)
|
|
270
312
|
|
|
271
313
|
'''
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
314
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming week start - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
315
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming week end - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
316
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last week start - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
317
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last week end - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
318
|
+
[RDY]
|
|
319
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last saturday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
320
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last sunday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
321
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last monday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
322
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last tuesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
323
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last wednesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
324
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last thursday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
325
|
+
{Fore.green_yellow}**{Fore.light_magenta}previous/last friday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
326
|
+
[RDY]
|
|
327
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming saturday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
328
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming sunday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
329
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming monday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
330
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming tuesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
331
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming wednesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
332
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming thursday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
333
|
+
{Fore.green_yellow}**{Fore.light_magenta}next/this/upcoming friday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} from today{Style.reset}
|
|
334
|
+
[RDY]
|
|
335
|
+
{Fore.green_yellow}**{Fore.light_magenta}saturday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
336
|
+
{Fore.green_yellow}**{Fore.light_magenta}sunday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
337
|
+
{Fore.green_yellow}**{Fore.light_magenta}monday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
338
|
+
{Fore.green_yellow}**{Fore.light_magenta}tuesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
339
|
+
{Fore.green_yellow}**{Fore.light_magenta}wednesday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
340
|
+
{Fore.green_yellow}**{Fore.light_magenta}thursday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
341
|
+
{Fore.green_yellow}**{Fore.light_magenta}friday - {Fore.orange_red_1}WARNING:{Fore.light_cyan} of this week only{Style.reset}
|
|
282
342
|
'''
|
|
343
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['week end','w e','we']):
|
|
344
|
+
today=datetime.now()
|
|
345
|
+
friday=6
|
|
346
|
+
weekEnd=today+timedelta(days=(friday-today.weekday())%7)
|
|
347
|
+
weekEnd-=timedelta(days=7)
|
|
348
|
+
return weekEnd
|
|
349
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['week start','w s','ws']):
|
|
350
|
+
today=datetime.now()
|
|
351
|
+
friday=6
|
|
352
|
+
Friday=today+timedelta(days=(friday-today.weekday())%7)
|
|
353
|
+
weekStart=Friday-timedelta(days=7)
|
|
354
|
+
weekStart-=timedelta(days=6)
|
|
355
|
+
return weekStart
|
|
356
|
+
elif text.lower() in generate_cmds(startcmd=['next','upcoming'],endCmd=['week end','w e','we']):
|
|
357
|
+
today=datetime.now()
|
|
358
|
+
friday=6
|
|
359
|
+
weekEnd=today+timedelta(days=(friday-today.weekday())%7)
|
|
360
|
+
weekEnd+=timedelta(days=7)
|
|
361
|
+
return weekEnd
|
|
362
|
+
elif text.lower() in generate_cmds(startcmd=['next','upcoming'],endCmd=['week start','w s','ws']):
|
|
363
|
+
today=datetime.now()
|
|
364
|
+
friday=0
|
|
365
|
+
Friday=today+timedelta(days=(friday-today.weekday())%7)
|
|
366
|
+
weekStart=Friday-timedelta(days=7)
|
|
367
|
+
weekStart+=timedelta(days=7)
|
|
368
|
+
return weekStart
|
|
369
|
+
elif text.lower() in generate_cmds(startcmd=['this','current'],endCmd=['week end','w e','we']):
|
|
370
|
+
today=datetime.now()
|
|
371
|
+
friday=6
|
|
372
|
+
weekEnd=today+timedelta(days=(friday-today.weekday())%7)
|
|
373
|
+
return weekEnd
|
|
374
|
+
elif text.lower() in generate_cmds(startcmd=['this','current'],endCmd=['week start','w s','ws']):
|
|
375
|
+
today=datetime.now()
|
|
376
|
+
friday=6
|
|
377
|
+
Friday=today+timedelta(days=(friday-today.weekday())%7)
|
|
378
|
+
weekStart=Friday-timedelta(days=7)
|
|
379
|
+
return weekStart
|
|
380
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['friday',]):
|
|
381
|
+
dayNum=4
|
|
382
|
+
today=datetime.now()
|
|
383
|
+
daysUntil=(dayNum-today.weekday())%7
|
|
384
|
+
dayOf=today+timedelta(days=daysUntil)
|
|
385
|
+
lastDay=dayOf-timedelta(days=7)
|
|
386
|
+
return lastDay
|
|
387
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['saturday',]):
|
|
388
|
+
dayNum=5
|
|
389
|
+
today=datetime.now()
|
|
390
|
+
daysUntil=(dayNum-today.weekday())%7
|
|
391
|
+
dayOf=today+timedelta(days=daysUntil)
|
|
392
|
+
lastDay=dayOf-timedelta(days=7)
|
|
393
|
+
return lastDay
|
|
394
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['sunday',]):
|
|
395
|
+
dayNum=6
|
|
396
|
+
today=datetime.now()
|
|
397
|
+
daysUntil=(dayNum-today.weekday())%7
|
|
398
|
+
dayOf=today+timedelta(days=daysUntil)
|
|
399
|
+
lastDay=dayOf-timedelta(days=7)
|
|
400
|
+
return lastDay
|
|
401
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['monday',]):
|
|
402
|
+
dayNum=0
|
|
403
|
+
today=datetime.now()
|
|
404
|
+
daysUntil=(dayNum-today.weekday())%7
|
|
405
|
+
dayOf=today+timedelta(days=daysUntil)
|
|
406
|
+
lastDay=dayOf-timedelta(days=7)
|
|
407
|
+
return lastDay
|
|
408
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['tuesday',]):
|
|
409
|
+
dayNum=1
|
|
410
|
+
today=datetime.now()
|
|
411
|
+
daysUntil=(dayNum-today.weekday())%7
|
|
412
|
+
dayOf=today+timedelta(days=daysUntil)
|
|
413
|
+
lastDay=dayOf-timedelta(days=7)
|
|
414
|
+
return lastDay
|
|
415
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['wednesday',]):
|
|
416
|
+
dayNum=2
|
|
417
|
+
today=datetime.now()
|
|
418
|
+
daysUntil=(dayNum-today.weekday())%7
|
|
419
|
+
dayOf=today+timedelta(days=daysUntil)
|
|
420
|
+
lastDay=dayOf-timedelta(days=7)
|
|
421
|
+
return lastDay
|
|
422
|
+
elif text.lower() in generate_cmds(startcmd=['previous','last','prev'],endCmd=['thursday',]):
|
|
423
|
+
dayNum=3
|
|
424
|
+
today=datetime.now()
|
|
425
|
+
daysUntil=(dayNum-today.weekday())%7
|
|
426
|
+
dayOf=today+timedelta(days=daysUntil)
|
|
427
|
+
lastDay=dayOf-timedelta(days=7)
|
|
428
|
+
return lastDay
|
|
429
|
+
elif text.lower() in generate_cmds(startcmd=['next','this','upcoming'],endCmd=['friday',]):
|
|
430
|
+
dayOfWeek=4
|
|
431
|
+
today=datetime.now()
|
|
432
|
+
todaysDayOfWeek=today.weekday()
|
|
433
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)%7
|
|
434
|
+
if untilDayOfWeek == 0:
|
|
435
|
+
untilDayOfWeek=7
|
|
436
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
437
|
+
return when
|
|
438
|
+
elif text.lower() in generate_cmds(startcmd=['next','this','upcoming'],endCmd=['saturday',]):
|
|
439
|
+
dayOfWeek=5
|
|
440
|
+
today=datetime.now()
|
|
441
|
+
todaysDayOfWeek=today.weekday()
|
|
442
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)%7
|
|
443
|
+
if untilDayOfWeek == 0:
|
|
444
|
+
untilDayOfWeek=7
|
|
445
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
446
|
+
return when
|
|
447
|
+
elif text.lower() in generate_cmds(startcmd=['next','this','upcoming'],endCmd=['sunday',]):
|
|
448
|
+
dayOfWeek=6
|
|
449
|
+
today=datetime.now()
|
|
450
|
+
todaysDayOfWeek=today.weekday()
|
|
451
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)%7
|
|
452
|
+
if untilDayOfWeek == 0:
|
|
453
|
+
untilDayOfWeek=7
|
|
454
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
455
|
+
return when
|
|
456
|
+
elif text.lower() in generate_cmds(startcmd=['next','this','upcoming'],endCmd=['monday',]):
|
|
457
|
+
dayOfWeek=0
|
|
458
|
+
today=datetime.now()
|
|
459
|
+
todaysDayOfWeek=today.weekday()
|
|
460
|
+
#add %7 for next
|
|
461
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)%7
|
|
462
|
+
if untilDayOfWeek == 0:
|
|
463
|
+
untilDayOfWeek=7
|
|
464
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
465
|
+
return when
|
|
466
|
+
elif text.lower() in generate_cmds(startcmd=['next','this','upcoming'],endCmd=['tuesday',]):
|
|
467
|
+
dayOfWeek=1
|
|
468
|
+
today=datetime.now()
|
|
469
|
+
todaysDayOfWeek=today.weekday()
|
|
470
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)%7
|
|
471
|
+
if untilDayOfWeek == 0:
|
|
472
|
+
untilDayOfWeek=7
|
|
473
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
474
|
+
return when
|
|
475
|
+
elif text.lower() in generate_cmds(startcmd=['next','this','upcoming'],endCmd=['wednesday',]):
|
|
476
|
+
dayOfWeek=2
|
|
477
|
+
today=datetime.now()
|
|
478
|
+
todaysDayOfWeek=today.weekday()
|
|
479
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)%7
|
|
480
|
+
if untilDayOfWeek == 0:
|
|
481
|
+
untilDayOfWeek=7
|
|
482
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
483
|
+
return when
|
|
484
|
+
elif text.lower() in generate_cmds(startcmd=['next','this','upcoming'],endCmd=['thursday',]):
|
|
485
|
+
dayOfWeek=3
|
|
486
|
+
today=datetime.now()
|
|
487
|
+
todaysDayOfWeek=today.weekday()
|
|
488
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)%7
|
|
489
|
+
if untilDayOfWeek == 0:
|
|
490
|
+
untilDayOfWeek=7
|
|
491
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
492
|
+
return when
|
|
493
|
+
|
|
494
|
+
elif text.lower() in ['friday',]:
|
|
495
|
+
dayOfWeek=4
|
|
496
|
+
today=datetime.now()
|
|
497
|
+
todaysDayOfWeek=today.weekday()
|
|
498
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)
|
|
499
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
500
|
+
return when
|
|
501
|
+
elif text.lower() in ['saturday',]:
|
|
502
|
+
dayOfWeek=5
|
|
503
|
+
today=datetime.now()
|
|
504
|
+
todaysDayOfWeek=today.weekday()
|
|
505
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)
|
|
506
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
507
|
+
return when
|
|
508
|
+
elif text.lower() in ['sunday',]:
|
|
509
|
+
dayOfWeek=6
|
|
510
|
+
today=datetime.now()
|
|
511
|
+
todaysDayOfWeek=today.weekday()
|
|
512
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)
|
|
513
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
514
|
+
return when
|
|
515
|
+
elif text.lower() in ['monday',]:
|
|
516
|
+
dayOfWeek=0
|
|
517
|
+
today=datetime.now()
|
|
518
|
+
todaysDayOfWeek=today.weekday()
|
|
519
|
+
#add %7 for next
|
|
520
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)
|
|
521
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
522
|
+
return when
|
|
523
|
+
elif text.lower() in ['tuesday',]:
|
|
524
|
+
dayOfWeek=1
|
|
525
|
+
today=datetime.now()
|
|
526
|
+
todaysDayOfWeek=today.weekday()
|
|
527
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)
|
|
528
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
529
|
+
return when
|
|
530
|
+
elif text.lower() in ['wednesday',]:
|
|
531
|
+
dayOfWeek=2
|
|
532
|
+
today=datetime.now()
|
|
533
|
+
todaysDayOfWeek=today.weekday()
|
|
534
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)
|
|
535
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
536
|
+
return when
|
|
537
|
+
elif text.lower() in ['thursday',]:
|
|
538
|
+
dayOfWeek=3
|
|
539
|
+
today=datetime.now()
|
|
540
|
+
todaysDayOfWeek=today.weekday()
|
|
541
|
+
untilDayOfWeek=(dayOfWeek-todaysDayOfWeek)
|
|
542
|
+
when=datetime(today.year,today.month,today.day)+timedelta(days=untilDayOfWeek)
|
|
543
|
+
return when
|
|
544
|
+
|
|
283
545
|
elif text.lower() in ['next year',]:
|
|
284
546
|
TODAY_IS=datetime.now()
|
|
285
547
|
return datetime(year=TODAY_IS.year,month=TODAY_IS.month,day=TODAY_IS.day)+timedelta(seconds=60*60*24*365)
|
|
Binary file
|
radboy/HealthLog/HealthLog.py
CHANGED
|
@@ -94,6 +94,7 @@ class HealthLogUi:
|
|
|
94
94
|
continue
|
|
95
95
|
|
|
96
96
|
else:
|
|
97
|
+
entry=None
|
|
97
98
|
htext=f"{Fore.orange_red_1}No Results for '{Fore.cyan}{barcode}{Fore.orange_red_1}'{Style.reset}"
|
|
98
99
|
again=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Try another search?[yes/no=default]",helpText=htext,data="boolean")
|
|
99
100
|
if again is None:
|
|
Binary file
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
from . import *
|
|
2
|
+
|
|
3
|
+
class RepeatableDatesUi:
|
|
4
|
+
def create_new_dt(self):
|
|
5
|
+
with Session(ENGINE) as session:
|
|
6
|
+
rd=RepeatableDates()
|
|
7
|
+
excludes=['rd_id','DTOE','Go_By_WeekDayNames','WeekDayNames']
|
|
8
|
+
fields={
|
|
9
|
+
i.name:{'default':getattr(rd,i.name),'type':str(i.type).lower()} for i in rd.__table__.columns if i.name not in excludes
|
|
10
|
+
}
|
|
11
|
+
fd=FormBuilder(data=fields)
|
|
12
|
+
fd['Go_By_WeekDayNames']=False
|
|
13
|
+
|
|
14
|
+
if fd is None:
|
|
15
|
+
print(f"{Fore.orange_red_1}User cancelled early!{Style.reset}")
|
|
16
|
+
return
|
|
17
|
+
for k in fd:
|
|
18
|
+
setattr(rd,k,fd[k])
|
|
19
|
+
session.add(rd)
|
|
20
|
+
session.commit()
|
|
21
|
+
session.flush()
|
|
22
|
+
session.refresh(rd)
|
|
23
|
+
print(rd)
|
|
24
|
+
|
|
25
|
+
def create_new_wd(self):
|
|
26
|
+
with Session(ENGINE) as session:
|
|
27
|
+
rd=RepeatableDates()
|
|
28
|
+
|
|
29
|
+
excludes=['rd_id','DTOE','DTORX','Go_By_WeekDayNames','WeekDayNames']
|
|
30
|
+
weekdays=['monday','tuesday','wednesday','thursday','friday','saturday','sunday']
|
|
31
|
+
ct=len(weekdays)
|
|
32
|
+
weekdays_ct=len(weekdays)
|
|
33
|
+
|
|
34
|
+
htext=[std_colorize(i,num,ct) for num,i in enumerate(weekdays)]
|
|
35
|
+
htext='\n'.join(htext)
|
|
36
|
+
print(htext)
|
|
37
|
+
weekday_names=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which indexes?",helpText=htext,data="list")
|
|
38
|
+
if weekday_names is None:
|
|
39
|
+
return
|
|
40
|
+
if weekday_names in ['d',[]]:
|
|
41
|
+
return
|
|
42
|
+
tmp=[]
|
|
43
|
+
try:
|
|
44
|
+
for i in weekday_names:
|
|
45
|
+
try:
|
|
46
|
+
index=int(i)
|
|
47
|
+
tmp.append(weekdays[index])
|
|
48
|
+
except Exception as e:
|
|
49
|
+
print(e)
|
|
50
|
+
weekday_names=tmp
|
|
51
|
+
except Exception as e:
|
|
52
|
+
print("Could not continue as an error occured in translating indexes to name strings",e)
|
|
53
|
+
return
|
|
54
|
+
|
|
55
|
+
#check for valid daynames
|
|
56
|
+
#check to ensure its a valid list
|
|
57
|
+
|
|
58
|
+
fields={
|
|
59
|
+
i.name:{'default':getattr(rd,i.name),'type':str(i.type).lower()} for i in rd.__table__.columns if i.name not in excludes
|
|
60
|
+
}
|
|
61
|
+
fd=FormBuilder(data=fields)
|
|
62
|
+
if fd is None:
|
|
63
|
+
print(f"{Fore.orange_red_1}User cancelled early!{Style.reset}")
|
|
64
|
+
return
|
|
65
|
+
fd['Go_By_WeekDayNames']=True
|
|
66
|
+
fd['WeekDayNames']=json.dumps(weekday_names)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
if fd is None:
|
|
70
|
+
print(f"{Fore.orange_red_1}User cancelled early!{Style.reset}")
|
|
71
|
+
for k in fd:
|
|
72
|
+
setattr(rd,k,fd[k])
|
|
73
|
+
session.add(rd)
|
|
74
|
+
session.commit()
|
|
75
|
+
session.flush()
|
|
76
|
+
session.refresh(rd)
|
|
77
|
+
print(rd)
|
|
78
|
+
|
|
79
|
+
def searchText(self,query):
|
|
80
|
+
searchText=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Search Text: ",helpText="text to look for",data="string")
|
|
81
|
+
if searchText is None:
|
|
82
|
+
return None
|
|
83
|
+
elif searchText in ['d',' ','*']:
|
|
84
|
+
return query
|
|
85
|
+
|
|
86
|
+
invertSearch=Prompt.__init2__(None,func=FormBuilderMkText,ptext="do not include[y/n]: ",helpText="yes or no",data="boolean")
|
|
87
|
+
if invertSearch is None:
|
|
88
|
+
return None
|
|
89
|
+
elif invertSearch in ['d',]:
|
|
90
|
+
invertSearch=False
|
|
91
|
+
|
|
92
|
+
searchable=['string','varchar','text','str']
|
|
93
|
+
#print("throate")
|
|
94
|
+
textfields=[i.name for i in RepeatableDates.__table__.columns if str(i.type).lower() in searchable]
|
|
95
|
+
q=[]
|
|
96
|
+
for i in textfields:
|
|
97
|
+
if not invertSearch:
|
|
98
|
+
q.append(
|
|
99
|
+
getattr(RepeatableDates,i).icontains(searchText)
|
|
100
|
+
)
|
|
101
|
+
else:
|
|
102
|
+
q.append(
|
|
103
|
+
not_(getattr(RepeatableDates,i).icontains(searchText)),
|
|
104
|
+
)
|
|
105
|
+
#print("throate 1")
|
|
106
|
+
try:
|
|
107
|
+
idx=int(searchText)
|
|
108
|
+
if not invertSearch:
|
|
109
|
+
q.append(RepeatableDates.rd_id==idx)
|
|
110
|
+
else:
|
|
111
|
+
q.append(not_(RepeatableDates.rd_id==idx))
|
|
112
|
+
except Exception as e:
|
|
113
|
+
print(e)
|
|
114
|
+
|
|
115
|
+
if not invertSearch:
|
|
116
|
+
query=query.filter(or_(*q))
|
|
117
|
+
else:
|
|
118
|
+
query=query.filter(and_(*q))
|
|
119
|
+
return query
|
|
120
|
+
|
|
121
|
+
def orderDisplay(self,query,asString=False,asList=False):
|
|
122
|
+
tmp=[]
|
|
123
|
+
tmp_list=[]
|
|
124
|
+
query=orderQuery(query,RepeatableDates.DTOE,inverse=True).all()
|
|
125
|
+
ct=len(query)
|
|
126
|
+
if ct > 0:
|
|
127
|
+
for num,i in enumerate(query):
|
|
128
|
+
msg=f"{std_colorize(i,num,ct)}"
|
|
129
|
+
if not asString or not asList or ( not asList and not asString):
|
|
130
|
+
print(msg)
|
|
131
|
+
else:
|
|
132
|
+
tmp.append(msg)
|
|
133
|
+
tmp_list.append(i)
|
|
134
|
+
if asList and not asString:
|
|
135
|
+
return tmp_list
|
|
136
|
+
elif asString and not asList:
|
|
137
|
+
return '\n'.join(tmp)
|
|
138
|
+
elif asString and asList:
|
|
139
|
+
return tmp_list,'\n'.join(tmp)
|
|
140
|
+
else:
|
|
141
|
+
print("Nothing is Stored!")
|
|
142
|
+
|
|
143
|
+
def list_dtorx_upcoming(self):
|
|
144
|
+
with Session(ENGINE) as session:
|
|
145
|
+
today=Prompt.__init2__(None,func=FormBuilderMkText,ptext="What is today",helpText="any date that you wish to use as the date of today",data="datetime")
|
|
146
|
+
if today is None:
|
|
147
|
+
return
|
|
148
|
+
elif today in ['d',]:
|
|
149
|
+
today=datetime.now()
|
|
150
|
+
query=session.query(RepeatableDates).filter(and_(RepeatableDates.Go_By_WeekDayNames==False,RepeatableDates.DTORX>=today))
|
|
151
|
+
self.orderDisplay(query)
|
|
152
|
+
|
|
153
|
+
def list_dtorx_expired(self):
|
|
154
|
+
with Session(ENGINE) as session:
|
|
155
|
+
today=Prompt.__init2__(None,func=FormBuilderMkText,ptext="What is today",helpText="any date that you wish to use as the date of today",data="datetime")
|
|
156
|
+
if today is None:
|
|
157
|
+
return
|
|
158
|
+
elif today in ['d',]:
|
|
159
|
+
today=datetime.now()
|
|
160
|
+
query=session.query(RepeatableDates).filter(and_(RepeatableDates.Go_By_WeekDayNames==False,RepeatableDates.DTORX<=today))
|
|
161
|
+
self.orderDisplay(query)
|
|
162
|
+
|
|
163
|
+
def list_all(self):
|
|
164
|
+
with Session(ENGINE) as session:
|
|
165
|
+
query=session.query(RepeatableDates)
|
|
166
|
+
|
|
167
|
+
query=self.searchText(query)
|
|
168
|
+
if query is None:
|
|
169
|
+
return
|
|
170
|
+
|
|
171
|
+
query=orderQuery(query,RepeatableDates.DTOE,inverse=True)
|
|
172
|
+
self.orderDisplay(query)
|
|
173
|
+
|
|
174
|
+
def list_today_of_weekdays(self):
|
|
175
|
+
with Session(ENGINE) as session:
|
|
176
|
+
today=Prompt.__init2__(None,func=FormBuilderMkText,ptext="What is today?",helpText="any date that you wish to use as the date of today",data="datetime")
|
|
177
|
+
if today is None:
|
|
178
|
+
return
|
|
179
|
+
elif today in ['d',]:
|
|
180
|
+
today=datetime.now()
|
|
181
|
+
|
|
182
|
+
todaysDayName=today.strftime("%A").lower()
|
|
183
|
+
print(f"Today is a {todaysDayName}.")
|
|
184
|
+
query=session.query(RepeatableDates).filter(and_(RepeatableDates.Go_By_WeekDayNames==True,RepeatableDates.WeekDayNames.icontains(todaysDayName)))
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
self.orderDisplay(query)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def remove(self):
|
|
191
|
+
with Session(ENGINE) as session:
|
|
192
|
+
query=session.query(RepeatableDates)
|
|
193
|
+
|
|
194
|
+
query=self.searchText(query)
|
|
195
|
+
if query is None:
|
|
196
|
+
return
|
|
197
|
+
|
|
198
|
+
query=orderQuery(query,RepeatableDates.DTOE,inverse=True)
|
|
199
|
+
searched_list,searched_str=self.orderDisplay(query,asString=True,asList=True)
|
|
200
|
+
print(searched_str)
|
|
201
|
+
which=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Which indexes to delete?",helpText=searched_str,data="list")
|
|
202
|
+
if which is None:
|
|
203
|
+
return
|
|
204
|
+
elif which in ['d',[]]:
|
|
205
|
+
return
|
|
206
|
+
try:
|
|
207
|
+
for i in which:
|
|
208
|
+
try:
|
|
209
|
+
index=int(i)
|
|
210
|
+
print(searched_list[index])
|
|
211
|
+
session.delete(searched_list[index])
|
|
212
|
+
session.commit()
|
|
213
|
+
except Exception as ee:
|
|
214
|
+
print(ee)
|
|
215
|
+
|
|
216
|
+
except Exception as e:
|
|
217
|
+
print(e)
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
def fix_table(self):
|
|
221
|
+
RepeatableDates.__table__.drop(ENGINE)
|
|
222
|
+
RepeatableDates.metadata.create_all(ENGINE)
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def __init__(self):
|
|
226
|
+
cmds={
|
|
227
|
+
uuid1():{
|
|
228
|
+
'cmds':generate_cmds(startcmd=['create new','cn','cnw'],endCmd=['datetime','dt','date time']),
|
|
229
|
+
'desc':"create a repeatable date with datetime",
|
|
230
|
+
'exec':self.create_new_dt,
|
|
231
|
+
},
|
|
232
|
+
uuid1():{
|
|
233
|
+
'cmds':generate_cmds(startcmd=['create new','cn','cnw'],endCmd=['wd','weekdays','week days','wk dys','wkdys']),
|
|
234
|
+
'desc':"create a repeatable date with datetime",
|
|
235
|
+
'exec':self.create_new_wd,
|
|
236
|
+
},
|
|
237
|
+
uuid1():{
|
|
238
|
+
'cmds':generate_cmds(startcmd=['list','ls','lst'],endCmd=['all','a','*']),
|
|
239
|
+
'desc':"lists everything! orders by DTOE",
|
|
240
|
+
'exec':self.list_all,
|
|
241
|
+
},
|
|
242
|
+
uuid1():{
|
|
243
|
+
'cmds':generate_cmds(startcmd=['list','ls','lst'],endCmd=['week day daily','wdd','wk dy dly','today is day of weekdays','tdy is dy of wkdys','tidow']),
|
|
244
|
+
'desc':"lists today of from weekdays! orders by DTOE",
|
|
245
|
+
'exec':self.list_today_of_weekdays,
|
|
246
|
+
},
|
|
247
|
+
uuid1():{
|
|
248
|
+
'cmds':generate_cmds(startcmd=['list','ls','lst'],endCmd=['dtorx uc','dtorx upcoming','dtorxuc','dtorx+']),
|
|
249
|
+
'desc':"list upcoming with dtorx! orders by DTOE",
|
|
250
|
+
'exec':self.list_dtorx_upcoming,
|
|
251
|
+
},
|
|
252
|
+
uuid1():{
|
|
253
|
+
'cmds':generate_cmds(startcmd=['list','ls','lst'],endCmd=['dtorx exp','dtorx expired','dtorxexp','dtorxx-']),
|
|
254
|
+
'desc':"list expired with dtorx! orders by DTOE",
|
|
255
|
+
'exec':self.list_dtorx_expired,
|
|
256
|
+
},
|
|
257
|
+
uuid1():{
|
|
258
|
+
'cmds':generate_cmds(startcmd=['fix','fx'],endCmd=['tbl','table']),
|
|
259
|
+
'desc':"reinstall table",
|
|
260
|
+
'exec':self.fix_table,
|
|
261
|
+
},
|
|
262
|
+
uuid1():{
|
|
263
|
+
'cmds':generate_cmds(startcmd=['rm','delete','del','remove','rmv'],endCmd=['',]),
|
|
264
|
+
'desc':"delete a RepeatableDate",
|
|
265
|
+
'exec':self.remove,
|
|
266
|
+
},
|
|
267
|
+
|
|
268
|
+
}
|
|
269
|
+
htext=[]
|
|
270
|
+
ct=len(cmds)
|
|
271
|
+
for num,i in enumerate(cmds):
|
|
272
|
+
m=f"{Fore.light_sea_green}{cmds[i]['cmds']}{Fore.orange_red_1} - {Fore.light_steel_blue}{cmds[i]['desc']}"
|
|
273
|
+
msg=f"{std_colorize(m,num,ct)}"
|
|
274
|
+
htext.append(msg)
|
|
275
|
+
htext='\n'.join(htext)
|
|
276
|
+
while True:
|
|
277
|
+
doWhat=Prompt.__init2__(None,func=FormBuilderMkText,ptext="RepeatableDatesUi @ Do What? ",helpText=htext,data="string")
|
|
278
|
+
if doWhat is None:
|
|
279
|
+
return
|
|
280
|
+
elif doWhat in ['','d',]:
|
|
281
|
+
print(htext)
|
|
282
|
+
continue
|
|
283
|
+
for i in cmds:
|
|
284
|
+
if doWhat.lower() in [i.lower() for i in cmds[i]['cmds']]:
|
|
285
|
+
if callable(cmds[i]['exec']):
|
|
286
|
+
cmds[i]['exec']()
|
|
287
|
+
else:
|
|
288
|
+
print(f"{i} - {cmds[i]['cmds']} - {cmds[i]['exec']}() - {cmds[i]['desc']}")
|
|
289
|
+
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 .RepeatableDates import *
|
radboy/TasksMode/Tasks.py
CHANGED
|
@@ -38,6 +38,7 @@ from copy import copy
|
|
|
38
38
|
from decimal import Decimal,getcontext
|
|
39
39
|
from radboy.GDOWN.GDOWN import *
|
|
40
40
|
from radboy.Unified.clearalll import clear_all
|
|
41
|
+
from radboy.RepeatableDates import *
|
|
41
42
|
|
|
42
43
|
def today():
|
|
43
44
|
dt=datetime.now()
|
|
@@ -287,6 +288,9 @@ def save(value):
|
|
|
287
288
|
|
|
288
289
|
|
|
289
290
|
class TasksMode:
|
|
291
|
+
def rd_ui(self):
|
|
292
|
+
RepeatableDatesUi()
|
|
293
|
+
|
|
290
294
|
def process_cmd(self,buffer):
|
|
291
295
|
data=OrderedDict()
|
|
292
296
|
for num,line in enumerate(buffer):
|
|
Binary file
|
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.442'
|
|
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=1-pYXKerVjukTHfM9MSjnaTuAfx7qy6TDAeiLzoNBIY,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
|
|
@@ -83,14 +83,14 @@ radboy/DB/ExerciseTracker.py,sha256=CZ8jdKJiAE_QTAiJTRXi8ZOnS1NUiSvWVSKLHLpYVGk,
|
|
|
83
83
|
radboy/DB/PayDay.py,sha256=H2kPGvBCDkMOz7lbxQhYtUt_oAInpxi37Q6MFrah98I,8710
|
|
84
84
|
radboy/DB/PayModels.py,sha256=hjwWxP7PL33hmfzQl5YTf0HqzaMxXJxFknPdxFJXJc8,3499
|
|
85
85
|
radboy/DB/PrintLogging.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
|
-
radboy/DB/Prompt.py,sha256=
|
|
86
|
+
radboy/DB/Prompt.py,sha256=5WKiXvEY0NlUCkVWEOylOjRsVIVPpvLoKgen_aQKaKE,139054
|
|
87
87
|
radboy/DB/RandomStringUtil.py,sha256=eZCpR907WStgfbk4Evcghjv9hOkUDXH-iMXIq0-kXq8,24386
|
|
88
88
|
radboy/DB/ResetTools.py,sha256=RbI-Ua7UlsN0S9qLqtEkTWvzyTZ6R-hHR3CW4NHlUPE,6660
|
|
89
89
|
radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,4013
|
|
90
90
|
radboy/DB/__init__.py,sha256=JiigA9B7GalP7YuRdcwyGDu5PDSBahoi0lLjtScxlN8,49
|
|
91
91
|
radboy/DB/blankDataFile.py,sha256=YX_05Usi71UpDkZN9UTMYwUipbTndTAtEgqzBEga0kE,9285
|
|
92
92
|
radboy/DB/config.py,sha256=bvu43dUl1_yO3Zq3gsLuenGUgJSiS3S9Cs6ppFEvZbg,239
|
|
93
|
-
radboy/DB/db.py,sha256=
|
|
93
|
+
radboy/DB/db.py,sha256=eS4USltCDbsMfc5JDQPObDwPK4451yA4ts8VJwgWo7Q,237461
|
|
94
94
|
radboy/DB/glossary_db.py,sha256=1_qxeEpjjEtpWB_eDjsgJisimLv7OBm75MuqM-Lt6zg,28218
|
|
95
95
|
radboy/DB/masterLookup.py,sha256=DBaM2uscG3_X5dek49wjdnOzhrjWhKgvOEz_umdz0mY,4566
|
|
96
96
|
radboy/DB/msg.txt,sha256=YxWed6A6tuP1djJ5QPS2Rz3ING4TKKf8kUiCCPtzHXE,7937
|
|
@@ -107,7 +107,7 @@ radboy/DB/__pycache__/FormBuilder.cpython-312.pyc,sha256=p1o-5SMRL8OXP_XQ5liUpf-
|
|
|
107
107
|
radboy/DB/__pycache__/PrintLogging.cpython-312.pyc,sha256=pIAFqTi6OiQQORSc-oMH1zAbsdH7sY1TifxrN_QOvnU,148
|
|
108
108
|
radboy/DB/__pycache__/Prompt.cpython-311.pyc,sha256=P2uPRpeqfLFtxieZ0JHBG3X_HZzWUCsFSLb_fpRqky0,6407
|
|
109
109
|
radboy/DB/__pycache__/Prompt.cpython-312.pyc,sha256=6CcQ1gE2hcz3cKPjo4f6d7xNM2PTDnl8NzQG0Pme5BE,142886
|
|
110
|
-
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=
|
|
110
|
+
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=JkwchbakHIXGcUoj65rHnMtqFtkj_LXlPWf9E_cElRo,213457
|
|
111
111
|
radboy/DB/__pycache__/RandomStringUtil.cpython-312.pyc,sha256=TrbEY89MuLmNlvoo5d8vOE6Dyshh5_EMlTZvk8MDVN4,48597
|
|
112
112
|
radboy/DB/__pycache__/RandomStringUtil.cpython-313.pyc,sha256=MCcgVwV2Y-9rAY2FVaJZCKcou3HDX70EZudoiCigT0o,49217
|
|
113
113
|
radboy/DB/__pycache__/ResetTools.cpython-311.pyc,sha256=4Vyc57iAAF0yRPjjglnVKovnTn8OoFIi6Zok3Wpj_YM,9292
|
|
@@ -125,7 +125,7 @@ radboy/DB/__pycache__/config.cpython-312.pyc,sha256=Qo7E6MHrF6yqvKgepNFyCoekZXiv
|
|
|
125
125
|
radboy/DB/__pycache__/config.cpython-313.pyc,sha256=_8wCIg_3jhyJjxnExD2Sm6aY-uZTw036p7Ki5znL7dc,376
|
|
126
126
|
radboy/DB/__pycache__/db.cpython-311.pyc,sha256=rNgigyBd0D-cg1JxKAS8t0B_k0IEJivgVlRaZE10Xis,210105
|
|
127
127
|
radboy/DB/__pycache__/db.cpython-312.pyc,sha256=ANDJPC0RoavbmSKFxG15vC7B4rEGyVt7xRJt7XGY3OA,334609
|
|
128
|
-
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=
|
|
128
|
+
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=gXmD_XfJ5GN1JzZAqGMJwm_HBVTp1mKXFsoiOJ4jL9g,375697
|
|
129
129
|
radboy/DB/__pycache__/glossary_db.cpython-312.pyc,sha256=8UL-29cKqtKovx0BANm6kzKKteef1BW_2qF3wumzst4,36023
|
|
130
130
|
radboy/DB/__pycache__/glossary_db.cpython-313.pyc,sha256=Ke9bkvllGv5CK0JdT9DRvQ3MOdrXxoYv7TVLNkqLux0,36582
|
|
131
131
|
radboy/DB/__pycache__/masterLookup.cpython-312.pyc,sha256=bQiOkmMwwHgcO18tYSWGQ-YUff4GQlKVhBMp1GoWAqY,6324
|
|
@@ -190,11 +190,11 @@ radboy/ExtractPkg/__pycache__/ExtractPkg2.cpython-313.pyc,sha256=bgw-00G_ouurOtO
|
|
|
190
190
|
radboy/ExtractPkg/__pycache__/__init__.cpython-311.pyc,sha256=62yPgrgPZffZFLr6FscOqCdo45vfhScJ8aZbLTbD7I4,235
|
|
191
191
|
radboy/ExtractPkg/__pycache__/__init__.cpython-312.pyc,sha256=Ll1iKcG0MDtoCIloQ_frcihvCSe1HPtyERzcAoXwQT0,273
|
|
192
192
|
radboy/ExtractPkg/__pycache__/__init__.cpython-313.pyc,sha256=kL3Y3KxCTaGNg3aq5fhf2fsnQHZolGfvniEUfsx2bwY,152
|
|
193
|
-
radboy/FB/FBMTXT.py,sha256=
|
|
193
|
+
radboy/FB/FBMTXT.py,sha256=CxMqujpDLFe_azvARaJuF0l2x5tJFsDNqPfMjVpXkQw,41407
|
|
194
194
|
radboy/FB/FormBuilder.py,sha256=oOlGmvrUaAOVf0DpM_wlHKfIyz-Q8WU9pJRZ7XPzdQg,14275
|
|
195
195
|
radboy/FB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
196
196
|
radboy/FB/__pycache__/FBMTXT.cpython-312.pyc,sha256=XCVFa7Mo83LGIdRrTvcK73siUpcVIEQfXKCH2QHeViw,9626
|
|
197
|
-
radboy/FB/__pycache__/FBMTXT.cpython-313.pyc,sha256=
|
|
197
|
+
radboy/FB/__pycache__/FBMTXT.cpython-313.pyc,sha256=KS3MAXVUaBFxec0iglOcQEIILlptOuV0yGBP_snpstI,54681
|
|
198
198
|
radboy/FB/__pycache__/FormBuilder.cpython-312.pyc,sha256=lNQdB-zApsXM7OQF9MIi0zRZD1SAL6stKEN-AyQiIKg,18873
|
|
199
199
|
radboy/FB/__pycache__/FormBuilder.cpython-313.pyc,sha256=WOX7ndix3aTqTaF01w1x4X_b-DX15RAoBdH7_L5NPCc,19706
|
|
200
200
|
radboy/FB/__pycache__/__init__.cpython-312.pyc,sha256=ULEL8Au_CxcYpNAcSoSbI65M7-av1W6Zuy6kQJUu-Mw,265
|
|
@@ -208,10 +208,10 @@ radboy/GeoTools/__pycache__/GeoClass.cpython-313.pyc,sha256=eZ6hpLKoic1XCb7BKKg-
|
|
|
208
208
|
radboy/GeoTools/__pycache__/OSMClass.cpython-312.pyc,sha256=5RoT8_wiI8R7yb_B9FWIC7mALdGNoqyWtkzsjM2pbh0,40387
|
|
209
209
|
radboy/GeoTools/__pycache__/__init__.cpython-312.pyc,sha256=Y7Xtrzwm44-xuY_4NK8aDjYfVmXIzUFWOyexJu9le8A,1238
|
|
210
210
|
radboy/GeoTools/__pycache__/__init__.cpython-313.pyc,sha256=-bk9eEIxWZgHYZHtNJbrpubDRWkbdYNkGr5J7sVhyIE,1238
|
|
211
|
-
radboy/HealthLog/HealthLog.py,sha256=
|
|
211
|
+
radboy/HealthLog/HealthLog.py,sha256=n_LJx5ll77hkYifR2UF7CVzhjlwfqzwe7AJerMMgBwI,19678
|
|
212
212
|
radboy/HealthLog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
213
213
|
radboy/HealthLog/__pycache__/HealthLog.cpython-312.pyc,sha256=hTo4o7jo9L2yqPZgzuKUw_kon_PVcCuTRguELTuLrIo,27946
|
|
214
|
-
radboy/HealthLog/__pycache__/HealthLog.cpython-313.pyc,sha256=
|
|
214
|
+
radboy/HealthLog/__pycache__/HealthLog.cpython-313.pyc,sha256=X0U2h2GE5_Q5CHUcReSCGBPGDvHatHH9HyRLh7N6fQU,32196
|
|
215
215
|
radboy/HealthLog/__pycache__/__init__.cpython-312.pyc,sha256=yZrYKBk31pGSjCRqmqzpX409iw-muC1zsNO2ObqkGlY,272
|
|
216
216
|
radboy/HealthLog/__pycache__/__init__.cpython-313.pyc,sha256=cqdZbEJKq9XVoVqDAwsW0pwwBBGSerJNWGlST3YVR3g,151
|
|
217
217
|
radboy/InListRestore/ILR.py,sha256=s8fbbHLKQSVJX1VaeyGE-vdIUGBEbOPX29kRIG2j2WY,16847
|
|
@@ -307,6 +307,8 @@ radboy/Repack/__pycache__/Repack.cpython-313.pyc,sha256=6MjxbPlXSer4oFs2fyUXMNHP
|
|
|
307
307
|
radboy/Repack/__pycache__/__init__.cpython-311.pyc,sha256=fnP-an9GM_scIcBL6D9z8eDQRgb7EWs1usOIzKRqc8s,231
|
|
308
308
|
radboy/Repack/__pycache__/__init__.cpython-312.pyc,sha256=SRvtYwum13YJJ0NnJHQa6f_wHmyZ8KxHrmICv5Qawcg,269
|
|
309
309
|
radboy/Repack/__pycache__/__init__.cpython-313.pyc,sha256=VxcShJHR5BBzMPCKvDDjPR2EPDErl1fTPOt93NZKzNQ,148
|
|
310
|
+
radboy/RepeatableDates/RepeatableDates.py,sha256=pqEVLGvE4aFu8U_Bz7nYBSwFrNKNaEp23jdxfYPePJg,8941
|
|
311
|
+
radboy/RepeatableDates/__init__.py,sha256=9fV4hKov1VvXym9fmNbTFTPxmMx6LA3AaL103IOrMQg,934
|
|
310
312
|
radboy/Roster/Roster.py,sha256=hOtq-jA9Rw_167fqKF-iRBzLscVUtOXdY7g_kdPSgVs,82325
|
|
311
313
|
radboy/Roster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
312
314
|
radboy/Roster/__pycache__/Roster.cpython-312.pyc,sha256=NX-4IpmvypiXQGgTvp6LOkwRqTIogSqUgEE08_9u24A,130560
|
|
@@ -334,7 +336,7 @@ radboy/SystemSettings/__pycache__/__init__.cpython-312.pyc,sha256=aIzp4Po0t8EhSA
|
|
|
334
336
|
radboy/SystemSettings/__pycache__/__init__.cpython-313.pyc,sha256=QFDuoidxMWsGVLsy5lN-rDs6TP8nKJ4yyCyiamNOhwo,156
|
|
335
337
|
radboy/TasksMode/ReFormula.py,sha256=REDRJYub-OEOE6g14oRQOLOQwv8pHqVJy4NQk3CCM90,2255
|
|
336
338
|
radboy/TasksMode/SetEntryNEU.py,sha256=TTzlAT5rNXvXUAy16BHBq0hJOKhONYpPhdAfQKdTfGw,17364
|
|
337
|
-
radboy/TasksMode/Tasks.py,sha256=
|
|
339
|
+
radboy/TasksMode/Tasks.py,sha256=AIbCybNxZmGPBJzHGMRTy0v62deCH3i5vBNYRMnnFaU,308915
|
|
338
340
|
radboy/TasksMode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
339
341
|
radboy/TasksMode/__pycache__/ReFormula.cpython-311.pyc,sha256=QEG3PwVw-8HTd_Mf9XbVcxU56F1fC9yBqWXYPLC39DU,4865
|
|
340
342
|
radboy/TasksMode/__pycache__/ReFormula.cpython-312.pyc,sha256=aX7BWm2PPjCTnxsbGUitR-2h9hq4AjaBiHMrUXvIl0Y,3967
|
|
@@ -343,7 +345,7 @@ radboy/TasksMode/__pycache__/SetEntryNEU.cpython-312.pyc,sha256=pCdFj61aPKkHL6Sv
|
|
|
343
345
|
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=eSWkYvfm5RuRE5rbO5wI7XxzFyKnp6KlbphSqPAF2z4,20133
|
|
344
346
|
radboy/TasksMode/__pycache__/Tasks.cpython-311.pyc,sha256=6QOTJnLiXSKdF81hkhy3vyrz49PPhS20s5_0X52g3Hw,131120
|
|
345
347
|
radboy/TasksMode/__pycache__/Tasks.cpython-312.pyc,sha256=hyJwdaYaaRLdcrNxgg36diJ5iijX5_3I0UAORsj-6LU,310295
|
|
346
|
-
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=
|
|
348
|
+
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=XZMWj-cXakusl8rnq3rn6tbBXq2Qc7eIBXaZ9QiJ_Vs,379231
|
|
347
349
|
radboy/TasksMode/__pycache__/__init__.cpython-311.pyc,sha256=PKV1JbihEacm639b53bZozRQvcllSkjGP3q8STVMxF4,234
|
|
348
350
|
radboy/TasksMode/__pycache__/__init__.cpython-312.pyc,sha256=ERgnEvRMiGSecWp1BpNzLdSq_SdKw7GvFWUvUM7bLVw,272
|
|
349
351
|
radboy/TasksMode/__pycache__/__init__.cpython-313.pyc,sha256=lvsTxukyvGKB3C0rdF9dQi_bvVh6ceDVINfwcuIsd0s,151
|
|
@@ -390,7 +392,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
390
392
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
391
393
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
392
394
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
393
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
395
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=kTLV74F94UDNpG4Drwyo-pfQ9Wx89Z9JJ_2UIaYtbpw,165
|
|
394
396
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
395
397
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
396
398
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -415,7 +417,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
415
417
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
416
418
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
417
419
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
418
|
-
radboy-0.0.
|
|
419
|
-
radboy-0.0.
|
|
420
|
-
radboy-0.0.
|
|
421
|
-
radboy-0.0.
|
|
420
|
+
radboy-0.0.442.dist-info/METADATA,sha256=pI59eAku3h6SEReFaqacw0e0Du5VFpcxt56_5hxJ2to,1574
|
|
421
|
+
radboy-0.0.442.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
422
|
+
radboy-0.0.442.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
423
|
+
radboy-0.0.442.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|