radboy 0.0.378__py3-none-any.whl → 0.0.380__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/DatePicker.py +46 -13
- radboy/DB/__pycache__/DatePicker.cpython-313.pyc +0 -0
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +135 -2
- radboy/DayLog/BhTrSa/__init__.py +33 -0
- radboy/DayLog/BhTrSa/bhtrsaa.py +438 -0
- radboy/DayLog/DayLogger.py +4 -0
- radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc +0 -0
- radboy/FB/FBMTXT.py +3 -2
- radboy/FB/__pycache__/FBMTXT.cpython-313.pyc +0 -0
- radboy/TasksMode/Tasks.py +20 -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.378.dist-info → radboy-0.0.380.dist-info}/METADATA +1 -1
- {radboy-0.0.378.dist-info → radboy-0.0.380.dist-info}/RECORD +18 -16
- {radboy-0.0.378.dist-info → radboy-0.0.380.dist-info}/WHEEL +0 -0
- {radboy-0.0.378.dist-info → radboy-0.0.380.dist-info}/top_level.txt +0 -0
radboy/DB/DatePicker.py
CHANGED
|
@@ -8,7 +8,7 @@ from datetime import datetime,timedelta
|
|
|
8
8
|
import pint
|
|
9
9
|
from colored import Fore,Style
|
|
10
10
|
from pathlib import Path
|
|
11
|
-
|
|
11
|
+
NOTINT=f"{Fore.light_red}Text provided is not an integer, attempting to evaluate it to one.{Style.reset}"
|
|
12
12
|
def mkint(text,TYPE):
|
|
13
13
|
try:
|
|
14
14
|
if text.lower() in ['sun_we','sat_we','mon_ws','sun_ws','sat_ws','fri_we']:
|
|
@@ -22,25 +22,58 @@ def mkint(text,TYPE):
|
|
|
22
22
|
elif text not in ['',]:
|
|
23
23
|
drange=(0,calendar.monthrange(date.today().year,date.today().month)[-1])
|
|
24
24
|
if TYPE == 'day':
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
try:
|
|
26
|
+
if int(text) not in [i+1 for i in range(*drange)]:
|
|
27
|
+
raise Exception(f"Not in {drange}")
|
|
28
|
+
except Exception as e:
|
|
29
|
+
print(NOTINT,e)
|
|
30
|
+
if int(eval(text)) not in [i+1 for i in range(*drange)]:
|
|
31
|
+
raise Exception(f"Not in {drange}")
|
|
27
32
|
elif TYPE == 'month':
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
try:
|
|
34
|
+
if int(text) not in [i for i in range(1,13)]:
|
|
35
|
+
raise Exception(f"Not in {[i for i in range(1,13)]}")
|
|
36
|
+
except Exception as e:
|
|
37
|
+
print(NOTINT,e)
|
|
38
|
+
if int(eval(text)) not in [i for i in range(1,13)]:
|
|
39
|
+
raise Exception(f"Not in {[i for i in range(1,13)]}")
|
|
30
40
|
elif TYPE == 'year':
|
|
31
41
|
pass
|
|
32
42
|
elif TYPE == 'hour':
|
|
33
|
-
|
|
34
|
-
|
|
43
|
+
try:
|
|
44
|
+
if int(text) not in [i for i in range(24)]:
|
|
45
|
+
raise Exception(f"Not in {[i for i in range(24)]}")
|
|
46
|
+
except Exception as e:
|
|
47
|
+
print(NOTINT,e)
|
|
48
|
+
if int(eval(text)) not in [i for i in range(24)]:
|
|
49
|
+
raise Exception(f"Not in {[i for i in range(24)]}")
|
|
35
50
|
elif TYPE == 'minute':
|
|
36
|
-
|
|
37
|
-
|
|
51
|
+
try:
|
|
52
|
+
if int(text) not in [i for i in range(60)]:
|
|
53
|
+
raise Exception(f"Not in {[i for i in range(60)]}")
|
|
54
|
+
except Exception as e:
|
|
55
|
+
print(NOTINT,e)
|
|
56
|
+
if int(eval(text)) not in [i for i in range(60)]:
|
|
57
|
+
raise Exception(f"Not in {[i for i in range(60)]}")
|
|
38
58
|
elif TYPE == 'second':
|
|
39
|
-
|
|
40
|
-
|
|
59
|
+
try:
|
|
60
|
+
if int(text) not in [i for i in range(60)]:
|
|
61
|
+
raise Exception(f"Not in {[i for i in range(60)]}")
|
|
62
|
+
except Exception as e:
|
|
63
|
+
print(NOTINT,e)
|
|
64
|
+
if int(eval(text)) not in [i for i in range(60)]:
|
|
65
|
+
raise Exception(f"Not in {[i for i in range(60)]}")
|
|
41
66
|
elif TYPE == 'float':
|
|
42
|
-
|
|
43
|
-
|
|
67
|
+
try:
|
|
68
|
+
return float(eval(text))
|
|
69
|
+
except Exception as e:
|
|
70
|
+
print(e)
|
|
71
|
+
return float(text)
|
|
72
|
+
try:
|
|
73
|
+
return int(eval(text))
|
|
74
|
+
except Exception as e:
|
|
75
|
+
print(e)
|
|
76
|
+
return int(text)
|
|
44
77
|
else:
|
|
45
78
|
if TYPE == 'day':
|
|
46
79
|
return datetime.now().day
|
|
Binary file
|
|
Binary file
|
radboy/DB/db.py
CHANGED
|
@@ -677,6 +677,10 @@ class EntryExtras:
|
|
|
677
677
|
return -self.Price
|
|
678
678
|
|
|
679
679
|
class Template:
|
|
680
|
+
def colorize(self,m,n,c):
|
|
681
|
+
msg=f'{Fore.cyan}{n}/{Fore.light_yellow}{n+1}{Fore.light_red} of {c} {Fore.dark_goldenrod}{m}{Style.reset}'
|
|
682
|
+
return msg
|
|
683
|
+
|
|
680
684
|
def cfmt(self,line,n=4):
|
|
681
685
|
if not line:
|
|
682
686
|
line='None'
|
|
@@ -706,10 +710,18 @@ class Template:
|
|
|
706
710
|
m.append(f"{cc}{self.__tablename__}{Style.reset}(")
|
|
707
711
|
fields=[i.name for i in self.__table__.columns]
|
|
708
712
|
for i in fields:
|
|
709
|
-
|
|
713
|
+
if isinstance(getattr(self,i),time):
|
|
714
|
+
m.append(f"\t{fc}{i}{Style.reset}={vg}{vc}{getattr(self,i).strftime(f"{Fore.deep_pink_4a}%I:%M %p(12H)/{Fore.dark_red_1}%H:%M(24H)")}{Style.reset}")
|
|
715
|
+
elif isinstance(getattr(self,i),datetime):
|
|
716
|
+
m.append(f"\t{fc}{i}{Style.reset}={vg}{vc}{getattr(self,i).strftime(f"{Fore.deep_sky_blue_4a}%m/%d/%Y @ {Fore.deep_pink_4a}%I:%M %p(12H) / {Fore.dark_red_1}%H:%M(24H){Style.reset}")}{Style.reset}")
|
|
717
|
+
else:
|
|
718
|
+
m.append(f"\t{fc}{i}{Style.reset}={vg}{vc}{getattr(self,i)}{Style.reset}")
|
|
710
719
|
m.append(")")
|
|
711
720
|
return '\n'.join(m)
|
|
712
721
|
|
|
722
|
+
def __repr__(self,vc=Fore.dark_blue+Style.bold,fc=Fore.light_green,cc=Fore.light_magenta,vg=Back.grey_50):
|
|
723
|
+
return self.str(self,vc,fc,cc,vg)
|
|
724
|
+
|
|
713
725
|
|
|
714
726
|
class EntryDataExtras(BASE,Template):
|
|
715
727
|
'''Stores extra fields not in the Entry Class.
|
|
@@ -4963,4 +4975,125 @@ class UniqueRecieptIdInfo(BASE,Template):
|
|
|
4963
4975
|
setattr(self,k,kwargs.get(k))
|
|
4964
4976
|
|
|
4965
4977
|
|
|
4966
|
-
UniqueRecieptIdInfo.metadata.create_all(ENGINE)
|
|
4978
|
+
UniqueRecieptIdInfo.metadata.create_all(ENGINE)
|
|
4979
|
+
|
|
4980
|
+
class TaxRates(BASE,Template):
|
|
4981
|
+
__tablename__='TaxRates'
|
|
4982
|
+
trid=Column(Integer,primary_key=True)
|
|
4983
|
+
|
|
4984
|
+
EstablishmentName=Column(String,default='N/A')
|
|
4985
|
+
EstablishmentNumber=Column(String,default="N/A")
|
|
4986
|
+
EstablishmentAddress=Column(String,default='N/A')
|
|
4987
|
+
Establishment_City=Column(String,default='N/A')
|
|
4988
|
+
Establishment_County=Column(String,default="N/A")
|
|
4989
|
+
Establishment_State=Column(String,default='NA')
|
|
4990
|
+
Establishment_ZIP_Code=Column(String,default="00000-0000")
|
|
4991
|
+
Establishment_Country=Column(String,default="Not Available")
|
|
4992
|
+
|
|
4993
|
+
TaxName=Column(String,default='Zero-Dollar Tax')
|
|
4994
|
+
TaxRatePercentString=Column(String,default='0%')
|
|
4995
|
+
TaxRateDecimal=Column(Float,default=0.000)
|
|
4996
|
+
TaxNote=Column(String,default='')
|
|
4997
|
+
TaxType=Column(String,default='')
|
|
4998
|
+
|
|
4999
|
+
DTOE=Column(DateTime,default=datetime.now())
|
|
5000
|
+
Comment=Column(String,default='N/A')
|
|
5001
|
+
|
|
5002
|
+
def as_json(self):
|
|
5003
|
+
excludes=['trid','DTOE']
|
|
5004
|
+
dd={str(d.name):self.__dict__[d.name] for d in self.__table__.columns if d.name not in excludes}
|
|
5005
|
+
return json.dumps(dd)
|
|
5006
|
+
|
|
5007
|
+
def asID(self):
|
|
5008
|
+
return f"TaxRates(trid={self.trid})"
|
|
5009
|
+
|
|
5010
|
+
def __init__(self,**kwargs):
|
|
5011
|
+
for k in kwargs.keys():
|
|
5012
|
+
if k in [s.name for s in self.__table__.columns]:
|
|
5013
|
+
setattr(self,k,kwargs.get(k))
|
|
5014
|
+
|
|
5015
|
+
TaxRates.metadata.create_all(ENGINE)
|
|
5016
|
+
|
|
5017
|
+
class BusinessHours(BASE,Template):
|
|
5018
|
+
__tablename__='BusinessHours'
|
|
5019
|
+
bhid=Column(Integer,primary_key=True)
|
|
5020
|
+
|
|
5021
|
+
EstablishmentName=Column(String,default='N/A')
|
|
5022
|
+
EstablishmentNumber=Column(String,default="N/A")
|
|
5023
|
+
EstablishmentAddress=Column(String,default='N/A')
|
|
5024
|
+
Establishment_City=Column(String,default='N/A')
|
|
5025
|
+
Establishment_County=Column(String,default="N/A")
|
|
5026
|
+
Establishment_State=Column(String,default='NA')
|
|
5027
|
+
Establishment_ZIP_Code=Column(String,default="00000-0000")
|
|
5028
|
+
Establishment_Country=Column(String,default="Not Available")
|
|
5029
|
+
|
|
5030
|
+
OpenTime=Column(Time,default=time(8,0))
|
|
5031
|
+
CloseTime=Column(Time,default=time(21,0))
|
|
5032
|
+
OpenDate=Column(Date,default=date(datetime.now().year,1,1))
|
|
5033
|
+
CloseDate=Column(Date,default=date(datetime.now().year,12,31))
|
|
5034
|
+
OpenDateTime=Column(DateTime,default=datetime(datetime.now().year,1,1))
|
|
5035
|
+
CloseDateTime=Column(DateTime,default=datetime(datetime.now().year,12,25))
|
|
5036
|
+
|
|
5037
|
+
DTOE=Column(DateTime,default=datetime.now())
|
|
5038
|
+
Comment=Column(String,default='N/A')
|
|
5039
|
+
|
|
5040
|
+
def as_json(self):
|
|
5041
|
+
excludes=['bhid','DTOE']
|
|
5042
|
+
dd={str(d.name):self.__dict__[d.name] for d in self.__table__.columns if d.name not in excludes}
|
|
5043
|
+
return json.dumps(dd)
|
|
5044
|
+
|
|
5045
|
+
def asID(self):
|
|
5046
|
+
return f"BusinessHours(bhid={self.trid})"
|
|
5047
|
+
|
|
5048
|
+
def __init__(self,**kwargs):
|
|
5049
|
+
for k in kwargs.keys():
|
|
5050
|
+
if k in [s.name for s in self.__table__.columns]:
|
|
5051
|
+
setattr(self,k,kwargs.get(k))
|
|
5052
|
+
|
|
5053
|
+
|
|
5054
|
+
BusinessHours.metadata.create_all(ENGINE)
|
|
5055
|
+
|
|
5056
|
+
class Scheduled_And_Appointments(BASE,Template):
|
|
5057
|
+
__tablename__='Scheduled_And_Appointments'
|
|
5058
|
+
saa_id=Column(Integer,primary_key=True)
|
|
5059
|
+
|
|
5060
|
+
EstablishmentName=Column(String,default='N/A')
|
|
5061
|
+
EstablishmentNumber=Column(String,default="N/A")
|
|
5062
|
+
EstablishmentAddress=Column(String,default='N/A')
|
|
5063
|
+
Establishment_City=Column(String,default='N/A')
|
|
5064
|
+
Establishment_County=Column(String,default="N/A")
|
|
5065
|
+
Establishment_State=Column(String,default='NA')
|
|
5066
|
+
Establishment_ZIP_Code=Column(String,default="00000-0000")
|
|
5067
|
+
Establishment_Country=Column(String,default="Not Available")
|
|
5068
|
+
|
|
5069
|
+
StartTime=Column(Time,default=time(8,0))
|
|
5070
|
+
EndTime=Column(Time,default=time(21,0))
|
|
5071
|
+
|
|
5072
|
+
StartDate=Column(Date,default=date(datetime.now().year,1,1))
|
|
5073
|
+
EndDate=Column(Date,default=date(datetime.now().year,12,31))
|
|
5074
|
+
|
|
5075
|
+
StartDateTime=Column(DateTime,default=datetime(datetime.now().year,1,1))
|
|
5076
|
+
EndDateTime=Column(DateTime,default=datetime(datetime.now().year,12,25))
|
|
5077
|
+
|
|
5078
|
+
TotalCost=Column(Float,default=0.000)
|
|
5079
|
+
CoPay=Column(Float,default=0.000)
|
|
5080
|
+
OutOfPocket=Column(Float,default=0.000)
|
|
5081
|
+
|
|
5082
|
+
DTOE=Column(DateTime,default=datetime.now())
|
|
5083
|
+
Comment=Column(String,default='N/A')
|
|
5084
|
+
|
|
5085
|
+
def as_json(self):
|
|
5086
|
+
excludes=['saa_id','DTOE']
|
|
5087
|
+
dd={str(d.name):self.__dict__[d.name] for d in self.__table__.columns if d.name not in excludes}
|
|
5088
|
+
return json.dumps(dd)
|
|
5089
|
+
|
|
5090
|
+
def asID(self):
|
|
5091
|
+
return f"Scheduled_And_Appointments(saa_id={self.saa_id})"
|
|
5092
|
+
|
|
5093
|
+
def __init__(self,**kwargs):
|
|
5094
|
+
for k in kwargs.keys():
|
|
5095
|
+
if k in [s.name for s in self.__table__.columns]:
|
|
5096
|
+
setattr(self,k,kwargs.get(k))
|
|
5097
|
+
|
|
5098
|
+
|
|
5099
|
+
Scheduled_And_Appointments.metadata.create_all(ENGINE)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from radboy.DB.db import *
|
|
2
|
+
#from radboy.DB.RandomStringUtil import *
|
|
3
|
+
#import radboy.Unified.Unified as unified
|
|
4
|
+
#import radboy.possibleCode as pc
|
|
5
|
+
from radboy.DB.Prompt import *
|
|
6
|
+
from radboy.DB.Prompt import prefix_text
|
|
7
|
+
#from radboy.TasksMode.ReFormula import *
|
|
8
|
+
#from radboy.TasksMode.SetEntryNEU import *
|
|
9
|
+
from radboy.FB.FormBuilder import *
|
|
10
|
+
from radboy.FB.FBMTXT import *
|
|
11
|
+
#from radboy.RNE.RNE import *
|
|
12
|
+
#from radboy.Lookup2.Lookup2 import Lookup as Lookup2
|
|
13
|
+
#from radboy.DayLog.DayLogger import *
|
|
14
|
+
#from radboy.DB.masterLookup import *
|
|
15
|
+
from collections import namedtuple,OrderedDict
|
|
16
|
+
import nanoid,qrcode,io
|
|
17
|
+
#from password_generator import PasswordGenerator
|
|
18
|
+
import random
|
|
19
|
+
from pint import UnitRegistry
|
|
20
|
+
import pandas as pd
|
|
21
|
+
import numpy as np
|
|
22
|
+
from datetime import *
|
|
23
|
+
from colored import Style,Fore
|
|
24
|
+
import json,sys,math,re,calendar,hashlib,haversine
|
|
25
|
+
from time import sleep
|
|
26
|
+
import itertools
|
|
27
|
+
|
|
28
|
+
MODULE_NAME=f"""
|
|
29
|
+
Business Hours
|
|
30
|
+
Tax Rates
|
|
31
|
+
Scheduled and Appointments
|
|
32
|
+
"""
|
|
33
|
+
from .bhtrsaa import *
|
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
from . import *
|
|
2
|
+
import uuid
|
|
3
|
+
class BhTrSa_Gui:
|
|
4
|
+
def search_saa(self,returnable=False):
|
|
5
|
+
stext=Prompt.__init2__(None,func=FormBuilderMkText,ptext="What are you looking for?",helpText="a textwise search",data="string")
|
|
6
|
+
if stext in [None,]:
|
|
7
|
+
return
|
|
8
|
+
lu_state=db.detectGetOrSet('list maker lookup order',False,setValue=False,literal=False)
|
|
9
|
+
includes=["varchar","string","str","text"]
|
|
10
|
+
sfields=[str(i.name) for i in BusinessHours.__table__.columns if str(i.type) in includes]
|
|
11
|
+
with Session(ENGINE) as session:
|
|
12
|
+
query=session.query(Scheduled_And_Appointments)
|
|
13
|
+
q=[]
|
|
14
|
+
if stext != 'd':
|
|
15
|
+
for i in sfields:
|
|
16
|
+
q.append([or_(getattr(Scheduled_And_Appointments,i).icontains(stext))])
|
|
17
|
+
squery=query.filter(*q)
|
|
18
|
+
else:
|
|
19
|
+
squery=query
|
|
20
|
+
if lu_state:
|
|
21
|
+
sorted_query=squery.order_by(Scheduled_And_Appointments.DTOE.asc())
|
|
22
|
+
else:
|
|
23
|
+
sorted_query=squery.order_by(Scheduled_And_Appointments.DTOE.desc())
|
|
24
|
+
|
|
25
|
+
results=sorted_query.all()
|
|
26
|
+
ct=len(results)
|
|
27
|
+
htext=[]
|
|
28
|
+
if ct == 0:
|
|
29
|
+
print("No Results were found")
|
|
30
|
+
return
|
|
31
|
+
for num,i in enumerate(results):
|
|
32
|
+
htext.append(i.colorize(i,num,ct))
|
|
33
|
+
htext='\n'.join(htext)
|
|
34
|
+
print(htext)
|
|
35
|
+
if returnable:
|
|
36
|
+
while True:
|
|
37
|
+
try:
|
|
38
|
+
which=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index(es) to yield?",helpText=htext,data="list")
|
|
39
|
+
if which in [None,'d']:
|
|
40
|
+
return
|
|
41
|
+
for i in which:
|
|
42
|
+
try:
|
|
43
|
+
index=int(i)
|
|
44
|
+
yield results[index].saa_id
|
|
45
|
+
except Exception as e:
|
|
46
|
+
print(e)
|
|
47
|
+
break
|
|
48
|
+
except Exception as e:
|
|
49
|
+
print(e)
|
|
50
|
+
|
|
51
|
+
def search_business_hours(self,returnable=False):
|
|
52
|
+
stext=Prompt.__init2__(None,func=FormBuilderMkText,ptext="What are you looking for?",helpText="a textwise search",data="string")
|
|
53
|
+
if stext in [None,]:
|
|
54
|
+
return
|
|
55
|
+
lu_state=db.detectGetOrSet('list maker lookup order',False,setValue=False,literal=False)
|
|
56
|
+
includes=["varchar","string","str","text"]
|
|
57
|
+
sfields=[str(i.name) for i in BusinessHours.__table__.columns if str(i.type) in includes]
|
|
58
|
+
with Session(ENGINE) as session:
|
|
59
|
+
query=session.query(BusinessHours)
|
|
60
|
+
q=[]
|
|
61
|
+
if stext != 'd':
|
|
62
|
+
for i in sfields:
|
|
63
|
+
q.append([or_(getattr(BusinessHours,i).icontains(stext)),])
|
|
64
|
+
squery=query.filter(*q)
|
|
65
|
+
else:
|
|
66
|
+
squery=query
|
|
67
|
+
if lu_state:
|
|
68
|
+
sorted_query=squery.order_by(BusinessHours.DTOE.asc())
|
|
69
|
+
else:
|
|
70
|
+
sorted_query=squery.order_by(BusinessHours.DTOE.desc())
|
|
71
|
+
|
|
72
|
+
results=sorted_query.all()
|
|
73
|
+
ct=len(results)
|
|
74
|
+
htext=[]
|
|
75
|
+
if ct == 0:
|
|
76
|
+
print("No Results were found")
|
|
77
|
+
return
|
|
78
|
+
for num,i in enumerate(results):
|
|
79
|
+
htext.append(i.colorize(i,num,ct))
|
|
80
|
+
htext='\n'.join(htext)
|
|
81
|
+
print(htext)
|
|
82
|
+
if returnable:
|
|
83
|
+
while True:
|
|
84
|
+
try:
|
|
85
|
+
which=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index(es) to yield?",helpText=htext,data="list")
|
|
86
|
+
if which in [None,'d']:
|
|
87
|
+
return
|
|
88
|
+
for i in which:
|
|
89
|
+
try:
|
|
90
|
+
index=int(i)
|
|
91
|
+
yield results[index].bhid
|
|
92
|
+
except Exception as e:
|
|
93
|
+
print(e)
|
|
94
|
+
break
|
|
95
|
+
except Exception as e:
|
|
96
|
+
print(e)
|
|
97
|
+
|
|
98
|
+
def search_taxrates(self,returnable=False):
|
|
99
|
+
stext=Prompt.__init2__(None,func=FormBuilderMkText,ptext="What are you looking for?",helpText="a textwise search",data="string")
|
|
100
|
+
if stext in [None,]:
|
|
101
|
+
return
|
|
102
|
+
lu_state=db.detectGetOrSet('list maker lookup order',False,setValue=False,literal=False)
|
|
103
|
+
includes=["varchar","string","str","text"]
|
|
104
|
+
sfields=[str(i.name) for i in TaxRates.__table__.columns if str(i.type) in includes]
|
|
105
|
+
with Session(ENGINE) as session:
|
|
106
|
+
query=session.query(TaxRates)
|
|
107
|
+
q=[]
|
|
108
|
+
if stext != 'd':
|
|
109
|
+
for i in sfields:
|
|
110
|
+
q.append([or_(getattr(TaxRates,i).icontains(stext)),])
|
|
111
|
+
squery=query.filter(*q)
|
|
112
|
+
else:
|
|
113
|
+
squery=query
|
|
114
|
+
if lu_state:
|
|
115
|
+
sorted_query=squery.order_by(TaxRates.DTOE.asc())
|
|
116
|
+
else:
|
|
117
|
+
sorted_query=squery.order_by(TaxRates.DTOE.desc())
|
|
118
|
+
|
|
119
|
+
results=sorted_query.all()
|
|
120
|
+
ct=len(results)
|
|
121
|
+
htext=[]
|
|
122
|
+
if ct == 0:
|
|
123
|
+
print("No Results were found")
|
|
124
|
+
return
|
|
125
|
+
for num,i in enumerate(results):
|
|
126
|
+
htext.append(i.colorize(i,num,ct))
|
|
127
|
+
htext='\n'.join(htext)
|
|
128
|
+
print(htext)
|
|
129
|
+
if returnable:
|
|
130
|
+
while True:
|
|
131
|
+
try:
|
|
132
|
+
which=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index(es) to yield?",helpText=htext,data="list")
|
|
133
|
+
if which in [None,'d']:
|
|
134
|
+
return
|
|
135
|
+
for i in which:
|
|
136
|
+
try:
|
|
137
|
+
index=int(i)
|
|
138
|
+
yield results[index].trid
|
|
139
|
+
except Exception as e:
|
|
140
|
+
print(e)
|
|
141
|
+
break
|
|
142
|
+
except Exception as e:
|
|
143
|
+
print(e)
|
|
144
|
+
|
|
145
|
+
def edit_taxrates(self):
|
|
146
|
+
excludes=['trid','DTOE']
|
|
147
|
+
with Session(ENGINE) as session:
|
|
148
|
+
ids=self.search_taxrates(returnable=True)
|
|
149
|
+
if ids is None:
|
|
150
|
+
return
|
|
151
|
+
for ID in ids:
|
|
152
|
+
newBH=session.query(TaxRates).filter(TaxRates.trid==ID).first()
|
|
153
|
+
fields={
|
|
154
|
+
i.name:{'default':getattr(newBH,i.name),'type':str(i.type).lower()} for i in newBH.__table__.columns if str(i.name) not in excludes
|
|
155
|
+
}
|
|
156
|
+
fd=FormBuilder(data=fields)
|
|
157
|
+
if fd is None:
|
|
158
|
+
return
|
|
159
|
+
for i in fd:
|
|
160
|
+
setattr(newBH,i,fd[i])
|
|
161
|
+
session.commit()
|
|
162
|
+
session.refresh(newBH)
|
|
163
|
+
print(newBH.colorize(newBH,0,1))
|
|
164
|
+
|
|
165
|
+
def edit_business_hours(self):
|
|
166
|
+
excludes=['bhid','DTOE']
|
|
167
|
+
with Session(ENGINE) as session:
|
|
168
|
+
ids=self.search_business_hours(returnable=True)
|
|
169
|
+
if ids is None:
|
|
170
|
+
return
|
|
171
|
+
for ID in ids:
|
|
172
|
+
newBH=session.query(BusinessHours).filter(BusinessHours.bhid==ID).first()
|
|
173
|
+
fields={
|
|
174
|
+
i.name:{'default':getattr(newBH,i.name),'type':str(i.type).lower()} for i in newBH.__table__.columns if str(i.name) not in excludes
|
|
175
|
+
}
|
|
176
|
+
fd=FormBuilder(data=fields)
|
|
177
|
+
if fd is None:
|
|
178
|
+
return
|
|
179
|
+
for i in fd:
|
|
180
|
+
setattr(newBH,i,fd[i])
|
|
181
|
+
session.commit()
|
|
182
|
+
session.refresh(newBH)
|
|
183
|
+
print(newBH.colorize(newBH,0,1))
|
|
184
|
+
|
|
185
|
+
def edit_saa(self):
|
|
186
|
+
excludes=['saa_id','DTOE']
|
|
187
|
+
with Session(ENGINE) as session:
|
|
188
|
+
ids=self.search_saa(returnable=True)
|
|
189
|
+
if ids is None:
|
|
190
|
+
return
|
|
191
|
+
for ID in ids:
|
|
192
|
+
newBH=session.query(Scheduled_And_Appointments).filter(Scheduled_And_Appointments.saa_id==ID).first()
|
|
193
|
+
fields={
|
|
194
|
+
i.name:{'default':getattr(newBH,i.name),'type':str(i.type).lower()} for i in newBH.__table__.columns if str(i.name) not in excludes
|
|
195
|
+
}
|
|
196
|
+
fd=FormBuilder(data=fields)
|
|
197
|
+
if fd is None:
|
|
198
|
+
return
|
|
199
|
+
for i in fd:
|
|
200
|
+
setattr(newBH,i,fd[i])
|
|
201
|
+
session.commit()
|
|
202
|
+
session.refresh(newBH)
|
|
203
|
+
print(newBH.colorize(newBH,0,1))
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
def protect(self):
|
|
207
|
+
h=self.__class__.__name__
|
|
208
|
+
code=''.join([str(random.randint(0,9)) for i in range(10)])
|
|
209
|
+
verification_protection=detectGetOrSet("Protect From Delete",code,setValue=False,literal=True)
|
|
210
|
+
while True:
|
|
211
|
+
try:
|
|
212
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{h}Really Delete this BusinessHours entry?",helpText="yes or no boolean,default is NO",data="boolean")
|
|
213
|
+
if really in [None,]:
|
|
214
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
215
|
+
return True
|
|
216
|
+
elif really in ['d',False]:
|
|
217
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
218
|
+
return True
|
|
219
|
+
else:
|
|
220
|
+
pass
|
|
221
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"To {Fore.orange_red_1}Delete it completely, {Fore.light_steel_blue}what is today's date?[{'.'.join([str(int(i)) for i in datetime.now().strftime("%m.%d.%y").split(".")])}]{Style.reset}",helpText="type y/yes for prompt or type as m.d.Y",data="datetime")
|
|
222
|
+
if really in [None,'d']:
|
|
223
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
224
|
+
return True
|
|
225
|
+
today=datetime.today()
|
|
226
|
+
if really.day == today.day and really.month == today.month and really.year == today.year:
|
|
227
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"Please type the verification code {Style.reset}'{Entry.cfmt(None,verification_protection)}'?",helpText=f"type '{Entry.cfmt(None,verification_protection)}' to finalize!",data="string")
|
|
228
|
+
if really in [None,]:
|
|
229
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
230
|
+
return True
|
|
231
|
+
elif really in ['d',False]:
|
|
232
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
233
|
+
return True
|
|
234
|
+
elif really == verification_protection:
|
|
235
|
+
break
|
|
236
|
+
else:
|
|
237
|
+
pass
|
|
238
|
+
except Exception as e:
|
|
239
|
+
print(e)
|
|
240
|
+
return True
|
|
241
|
+
|
|
242
|
+
def rm_business_hours(self):
|
|
243
|
+
excludes=['bhid','DTOE']
|
|
244
|
+
with Session(ENGINE) as session:
|
|
245
|
+
ids=self.search_business_hours(returnable=True)
|
|
246
|
+
if ids is None:
|
|
247
|
+
return
|
|
248
|
+
state=None
|
|
249
|
+
for ID in ids:
|
|
250
|
+
if state == None:
|
|
251
|
+
state=self.protect()
|
|
252
|
+
if state != True:
|
|
253
|
+
break
|
|
254
|
+
newBH=session.query(BusinessHours).filter(BusinessHours.bhid==ID).first()
|
|
255
|
+
session.delete(newBH)
|
|
256
|
+
session.commit()
|
|
257
|
+
|
|
258
|
+
def rm_taxrates(self):
|
|
259
|
+
excludes=['trid','DTOE']
|
|
260
|
+
with Session(ENGINE) as session:
|
|
261
|
+
ids=self.search_taxrates(returnable=True)
|
|
262
|
+
if ids is None:
|
|
263
|
+
return
|
|
264
|
+
state=None
|
|
265
|
+
for ID in ids:
|
|
266
|
+
if state == None:
|
|
267
|
+
state=self.protect()
|
|
268
|
+
if state != True:
|
|
269
|
+
break
|
|
270
|
+
newBH=session.query(TaxRates).filter(TaxRates.trid==ID).first()
|
|
271
|
+
session.delete(newBH)
|
|
272
|
+
session.commit()
|
|
273
|
+
|
|
274
|
+
def rm_saa(self):
|
|
275
|
+
excludes=['saa_id','DTOE']
|
|
276
|
+
with Session(ENGINE) as session:
|
|
277
|
+
ids=self.search_saa(returnable=True)
|
|
278
|
+
if ids is None:
|
|
279
|
+
return
|
|
280
|
+
state=None
|
|
281
|
+
for ID in ids:
|
|
282
|
+
if state == None:
|
|
283
|
+
state=self.protect()
|
|
284
|
+
if state != True:
|
|
285
|
+
break
|
|
286
|
+
newBH=session.query(Scheduled_And_Appointments).filter(Scheduled_And_Appointments.saa_id==ID).first()
|
|
287
|
+
session.delete(newBH)
|
|
288
|
+
session.commit()
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
def new_business_hours(self):
|
|
292
|
+
with Session(ENGINE) as session:
|
|
293
|
+
newBH=BusinessHours()
|
|
294
|
+
excludes=['bhid','DTOE']
|
|
295
|
+
fields={
|
|
296
|
+
i.name:{'default':getattr(newBH,i.name),'type':str(i.type).lower()} for i in newBH.__table__.columns if str(i.name) not in excludes
|
|
297
|
+
}
|
|
298
|
+
fd=FormBuilder(data=fields)
|
|
299
|
+
if fd is None:
|
|
300
|
+
return
|
|
301
|
+
for i in fd:
|
|
302
|
+
setattr(newBH,i,fd[i])
|
|
303
|
+
session.add(newBH)
|
|
304
|
+
session.commit()
|
|
305
|
+
session.refresh(newBH)
|
|
306
|
+
print(newBH.colorize(newBH,0,1))
|
|
307
|
+
|
|
308
|
+
def new_taxrates(self):
|
|
309
|
+
with Session(ENGINE) as session:
|
|
310
|
+
newBH=TaxRates()
|
|
311
|
+
excludes=['trid','DTOE']
|
|
312
|
+
fields={
|
|
313
|
+
i.name:{'default':getattr(newBH,i.name),'type':str(i.type).lower()} for i in newBH.__table__.columns if str(i.name) not in excludes
|
|
314
|
+
}
|
|
315
|
+
fd=FormBuilder(data=fields)
|
|
316
|
+
if fd is None:
|
|
317
|
+
return
|
|
318
|
+
for i in fd:
|
|
319
|
+
setattr(newBH,i,fd[i])
|
|
320
|
+
session.add(newBH)
|
|
321
|
+
session.commit()
|
|
322
|
+
session.refresh(newBH)
|
|
323
|
+
print(newBH.colorize(newBH,0,1))
|
|
324
|
+
|
|
325
|
+
def new_saa(self):
|
|
326
|
+
with Session(ENGINE) as session:
|
|
327
|
+
newBH=Scheduled_And_Appointments()
|
|
328
|
+
excludes=['saa_id','DTOE']
|
|
329
|
+
fields={
|
|
330
|
+
i.name:{'default':getattr(newBH,i.name),'type':str(i.type).lower()} for i in newBH.__table__.columns if str(i.name) not in excludes
|
|
331
|
+
}
|
|
332
|
+
fd=FormBuilder(data=fields)
|
|
333
|
+
if fd is None:
|
|
334
|
+
return
|
|
335
|
+
for i in fd:
|
|
336
|
+
setattr(newBH,i,fd[i])
|
|
337
|
+
session.add(newBH)
|
|
338
|
+
session.commit()
|
|
339
|
+
session.refresh(newBH)
|
|
340
|
+
print(newBH.colorize(newBH,0,1))
|
|
341
|
+
|
|
342
|
+
def saa_proxy(self):
|
|
343
|
+
for i in self.search_saa():
|
|
344
|
+
print(i)
|
|
345
|
+
|
|
346
|
+
def str_proxy(self):
|
|
347
|
+
for i in self.search_taxrates():
|
|
348
|
+
print(i)
|
|
349
|
+
|
|
350
|
+
def sbh_proxy(self):
|
|
351
|
+
for i in self.search_business_hours():
|
|
352
|
+
print(i)
|
|
353
|
+
|
|
354
|
+
def __init__(self):
|
|
355
|
+
print(Entry.cfmt(None,self.__class__.__name__))
|
|
356
|
+
cmds={
|
|
357
|
+
uuid.uuid1():{
|
|
358
|
+
'cmds':['sbh','search business hours'],
|
|
359
|
+
'exec':self.sbh_proxy,
|
|
360
|
+
'desc':"search and list business hours"
|
|
361
|
+
},
|
|
362
|
+
uuid.uuid1():{
|
|
363
|
+
'cmds':['nbh','new business hours'],
|
|
364
|
+
'exec':self.new_business_hours,
|
|
365
|
+
'desc':"create a business hours entry"
|
|
366
|
+
},
|
|
367
|
+
uuid.uuid1():{
|
|
368
|
+
'cmds':['ebh','edit business hours'],
|
|
369
|
+
'exec':self.edit_business_hours,
|
|
370
|
+
'desc':"edit a business hours entry"
|
|
371
|
+
},
|
|
372
|
+
uuid.uuid1():{
|
|
373
|
+
'cmds':['rmbh','rm business hours'],
|
|
374
|
+
'exec':self.rm_business_hours,
|
|
375
|
+
'desc':"remove a business hours entry"
|
|
376
|
+
},
|
|
377
|
+
|
|
378
|
+
uuid.uuid1():{
|
|
379
|
+
'cmds':['str','search tax rates'],
|
|
380
|
+
'exec':self.str_proxy,
|
|
381
|
+
'desc':"search and list tax rates "
|
|
382
|
+
},
|
|
383
|
+
uuid.uuid1():{
|
|
384
|
+
'cmds':['ntr','new tax rates'],
|
|
385
|
+
'exec':self.new_taxrates,
|
|
386
|
+
'desc':"create a tax rates entry"
|
|
387
|
+
},
|
|
388
|
+
uuid.uuid1():{
|
|
389
|
+
'cmds':['etr','edit '],
|
|
390
|
+
'exec':self.edit_taxrates,
|
|
391
|
+
'desc':"edit a tax rates entry"
|
|
392
|
+
},
|
|
393
|
+
uuid.uuid1():{
|
|
394
|
+
'cmds':['rmtr','rm '],
|
|
395
|
+
'exec':self.rm_taxrates,
|
|
396
|
+
'desc':"remove a tax rates entry"
|
|
397
|
+
},
|
|
398
|
+
|
|
399
|
+
uuid.uuid1():{
|
|
400
|
+
'cmds':['ssaa','search schedules and appointments'],
|
|
401
|
+
'exec':self.saa_proxy,
|
|
402
|
+
'desc':"search and list schedules and appointments "
|
|
403
|
+
},
|
|
404
|
+
uuid.uuid1():{
|
|
405
|
+
'cmds':['nsaa','new schedules and appointments'],
|
|
406
|
+
'exec':self.new_saa,
|
|
407
|
+
'desc':"create a schedules and appointments entry"
|
|
408
|
+
},
|
|
409
|
+
uuid.uuid1():{
|
|
410
|
+
'cmds':['esaa','edit '],
|
|
411
|
+
'exec':self.edit_saa,
|
|
412
|
+
'desc':"edit a schedules and appointments entry"
|
|
413
|
+
},
|
|
414
|
+
uuid.uuid1():{
|
|
415
|
+
'cmds':['rmsaa','rm '],
|
|
416
|
+
'exec':self.rm_saa,
|
|
417
|
+
'desc':"remove a schedules and appointments entry"
|
|
418
|
+
},
|
|
419
|
+
}
|
|
420
|
+
htext=[]
|
|
421
|
+
for cmd in cmds:
|
|
422
|
+
msg=f"{Fore.cornflower_blue}{','.join(cmds[cmd]['cmds'])} {Fore.grey_70}-{Fore.cyan} {cmds[cmd]['desc']}{Style.reset}"
|
|
423
|
+
htext.append(msg)
|
|
424
|
+
htext='\n'.join(htext)
|
|
425
|
+
while True:
|
|
426
|
+
doWhat=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{self.__class__.__name__}:Do What",helpText=htext,data="string")
|
|
427
|
+
if doWhat in [None,]:
|
|
428
|
+
return
|
|
429
|
+
elif doWhat.lower() in ['d',]:
|
|
430
|
+
print(htext)
|
|
431
|
+
continue
|
|
432
|
+
for cmd in cmds:
|
|
433
|
+
if doWhat.lower() in [i.lower() for i in cmds[cmd]['cmds']]:
|
|
434
|
+
if callable(cmds[cmd]['exec']):
|
|
435
|
+
cmds[cmd]['exec']()
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
|
radboy/DayLog/DayLogger.py
CHANGED
|
@@ -20,6 +20,7 @@ from radboy.DayLog.TaxiFares import TaxiFare
|
|
|
20
20
|
from radboy.Compare.Compare import *
|
|
21
21
|
from sqlalchemy.sql import functions as func
|
|
22
22
|
from collections import OrderedDict
|
|
23
|
+
from radboy.DayLog.BhTrSa.bhtrsaa import *
|
|
23
24
|
|
|
24
25
|
class DayLogger:
|
|
25
26
|
helpText=f"""
|
|
@@ -74,6 +75,7 @@ fxtbl - update table with correct columns
|
|
|
74
75
|
{Fore.light_sea_green}'epdc','estimated pay day calendar'{Fore.light_steel_blue}- review your estimated paydays{Style.reset}
|
|
75
76
|
{Fore.light_sea_green}'taxi fare','calc taxi fare','ctf','taxi'{Fore.light_steel_blue}- Calculate Taxi Fares{Style.reset}
|
|
76
77
|
{Fore.light_sea_green}'faraday','holesize','frdy hs'{Fore.light_steel_blue}- get wavelength needed for a frequency/for making a faraday cage {Fore.orange_red_1}[Indirectly Related]{Style.reset}
|
|
78
|
+
{Fore.light_sea_green}'bhtrsa','business hours tax rates scheduled and appointments'{Fore.light_steel_blue}- Business Hours, Tax Rates, Scheduled and Appointments {Fore.orange_red_1}[Indirectly Related]{Style.reset}
|
|
77
79
|
"""
|
|
78
80
|
def listAllDL(self):
|
|
79
81
|
with Session(self.engine) as session:
|
|
@@ -1938,6 +1940,8 @@ fxtbl - update table with correct columns
|
|
|
1938
1940
|
TaxiFare()
|
|
1939
1941
|
elif what.lower() in [f"compare product","p1==p2?","compare"]:
|
|
1940
1942
|
CompareUI()
|
|
1943
|
+
elif what.lower() in ['bhtrsa','business hours tax rates scheduled and appointments']:
|
|
1944
|
+
BhTrSa_Gui()
|
|
1941
1945
|
|
|
1942
1946
|
|
|
1943
1947
|
|
|
Binary file
|
radboy/FB/FBMTXT.py
CHANGED
|
@@ -8,6 +8,7 @@ import re
|
|
|
8
8
|
from datetime import timedelta
|
|
9
9
|
import calendar
|
|
10
10
|
from colored import Fore,Back,Style
|
|
11
|
+
|
|
11
12
|
fm_data={
|
|
12
13
|
'Decimal':{
|
|
13
14
|
'type':'decimal',
|
|
@@ -173,10 +174,10 @@ def FormBuilderMkText(text,data,passThru=[],PassThru=True,alternative_false=None
|
|
|
173
174
|
value=text
|
|
174
175
|
elif data.lower() == 'date':
|
|
175
176
|
if text.lower() in ['y','yes','1','t','true']:
|
|
176
|
-
value=DatePkr()
|
|
177
|
+
value=value=TM.Tasks.TasksMode(parent=None,engine=db.ENGINE,init_only=True).DatePkr()
|
|
177
178
|
elif data.lower() == 'time':
|
|
178
179
|
if text.lower() in ['y','yes','1','t','true']:
|
|
179
|
-
value=TimePkr()
|
|
180
|
+
value=value=TM.Tasks.TasksMode(parent=None,engine=db.ENGINE,init_only=True).TimePkr()
|
|
180
181
|
elif data.lower() in ['datetime','datetime-','datetime~']:
|
|
181
182
|
try:
|
|
182
183
|
|
|
Binary file
|
radboy/TasksMode/Tasks.py
CHANGED
|
@@ -4178,6 +4178,8 @@ where:
|
|
|
4178
4178
|
self.product_history=lambda self=self:DayLogger(engine=ENGINE)
|
|
4179
4179
|
self.reset_next_barcode()
|
|
4180
4180
|
self.DateTimePkr=DateTimePkr
|
|
4181
|
+
self.TimePkr=TimePkr
|
|
4182
|
+
self.DatePkr=DatePkr
|
|
4181
4183
|
of=Path("GeneratedString.txt")
|
|
4182
4184
|
if of.exists():
|
|
4183
4185
|
age=datetime.now()-datetime.fromtimestamp(of.stat().st_ctime)
|
|
@@ -4654,6 +4656,24 @@ where:
|
|
|
4654
4656
|
'exec':check_back_ups,
|
|
4655
4657
|
}
|
|
4656
4658
|
count+=1
|
|
4659
|
+
self.options["timepkr"]={
|
|
4660
|
+
'cmds':["#"+str(count),"timepkr",],
|
|
4661
|
+
'desc':f"test timepkr",
|
|
4662
|
+
'exec':lambda self=self: print(self.TimePkr()),
|
|
4663
|
+
}
|
|
4664
|
+
count+=1
|
|
4665
|
+
self.options["datepkr"]={
|
|
4666
|
+
'cmds':["#"+str(count),"datepkr",],
|
|
4667
|
+
'desc':f"test datepkr",
|
|
4668
|
+
'exec':lambda self=self: print(self.DatePkr()),
|
|
4669
|
+
}
|
|
4670
|
+
count+=1
|
|
4671
|
+
self.options["datetimepkr"]={
|
|
4672
|
+
'cmds':["#"+str(count),"datetimepkr",],
|
|
4673
|
+
'desc':f"test datetimepkr",
|
|
4674
|
+
'exec':lambda self=self: print(self.DateTimePkr()),
|
|
4675
|
+
}
|
|
4676
|
+
count+=1
|
|
4657
4677
|
#self.product_history=
|
|
4658
4678
|
|
|
4659
4679
|
'''
|
|
Binary file
|
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.380'
|
|
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=XXy-o5Z_yOgrgHNju4iqM3h7xhRBkNIoHG1qePtBnGY,41316
|
|
7
7
|
radboy/Run.py,sha256=JUoCTHnzQBv7n8PB2_i93ANdAC_iW__RkAge8esCnk4,76
|
|
8
|
-
radboy/__init__.py,sha256=
|
|
8
|
+
radboy/__init__.py,sha256=0__JNgejIJEDNEFHP_MCjMXpR_9eSbVtldf_UYfOkgw,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
|
|
@@ -76,7 +76,7 @@ radboy/ConvertCode/__pycache__/__init__.cpython-312.pyc,sha256=77LSCMdrPg91lbslo
|
|
|
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
78
|
radboy/DB/CoinCombo.py,sha256=NJfTmx3XYgS41zkAyyO2W6de1Mj3rWsCWqU4ikHfvJI,13604
|
|
79
|
-
radboy/DB/DatePicker.py,sha256=
|
|
79
|
+
radboy/DB/DatePicker.py,sha256=6eNjmryFWPpzrRYmI418UwSGin3XpJlL52h8cauanbY,18004
|
|
80
80
|
radboy/DB/DisplayItemDb.py,sha256=uVvrNyFyBuKvrw-BEPXKYvfa-QWyFN5ahESi2l6vUUA,52046
|
|
81
81
|
radboy/DB/EstimatedPayCalendarWorkSheet.txt,sha256=GOjRSmGxFoNTdAnpPe2kGv7CkXDrh0Mee01HslamGbo,17173
|
|
82
82
|
radboy/DB/ExerciseTracker.py,sha256=CZ8jdKJiAE_QTAiJTRXi8ZOnS1NUiSvWVSKLHLpYVGk,25661
|
|
@@ -90,7 +90,7 @@ radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,
|
|
|
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=PMNTlfGH4BFJJLOVXwHmm6MB8O3VIeS0D0aQ1roNCbg,234272
|
|
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
|
|
@@ -98,7 +98,7 @@ radboy/DB/renderText2Png.py,sha256=PWnTicLTfOPg9UlQYia3wMpjM9rh7MIyDVsmcsDRUBo,5
|
|
|
98
98
|
radboy/DB/testClass.py,sha256=t3zT1gbvReUncnPY8R9JUfKXQ5UEB2wmQx8DNeds0hI,310
|
|
99
99
|
radboy/DB/__pycache__/DatePicker.cpython-311.pyc,sha256=VMJnJ7scb4VHMQi1HDZCF67KVYfb9m-fZK96IAoJzTQ,19676
|
|
100
100
|
radboy/DB/__pycache__/DatePicker.cpython-312.pyc,sha256=cc5XWJ6Sbtcg0xWPz3SOP93VceIqr1pH42kjkLl5iYs,30294
|
|
101
|
-
radboy/DB/__pycache__/DatePicker.cpython-313.pyc,sha256=
|
|
101
|
+
radboy/DB/__pycache__/DatePicker.cpython-313.pyc,sha256=mvdR-dzPS3X6tMFBDaMUoxIVU_NPh-zSvBdVJB66TQg,33508
|
|
102
102
|
radboy/DB/__pycache__/DisplayItemDb.cpython-312.pyc,sha256=n2nRfavATZBSa7rBgH39pd11Ka-nUfGHVzr-R9KO7_Q,63121
|
|
103
103
|
radboy/DB/__pycache__/DisplayItemDb.cpython-313.pyc,sha256=M4jujGXKVqYObZKQipamkTpw68YhEWLqBmywtPgnG-A,63715
|
|
104
104
|
radboy/DB/__pycache__/ExerciseTracker.cpython-312.pyc,sha256=KzCmPhacS7t-70cpZM5tCnL8mBmRbA9dc4uuatdcQkI,34820
|
|
@@ -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=TzOvoadaFkdsLOoEi1vFsdXCzObzQMcRKeivoods7dM,370574
|
|
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
|
|
@@ -134,13 +134,15 @@ radboy/DB/__pycache__/renderText2Png.cpython-311.pyc,sha256=ivSzvyAeWhsS-a_RcFF8
|
|
|
134
134
|
radboy/DB/__pycache__/renderText2Png.cpython-312.pyc,sha256=1CUGjOhJw_vC4DNMQ-W5jBXEKp7HzDrq7--x9VyBTo8,8991
|
|
135
135
|
radboy/DB/__pycache__/renderText2Png.cpython-313.pyc,sha256=LDJOo7uFztlxw3ptN8QuHrLkr0GKiAArBu34QiE15iQ,9096
|
|
136
136
|
radboy/DB/__pycache__/testClass.cpython-311.pyc,sha256=nkWap8RuBsWWOB_ZhGbR3ELbnL1F1CHZCi0dpepqw-0,1225
|
|
137
|
-
radboy/DayLog/DayLogger.py,sha256=
|
|
137
|
+
radboy/DayLog/DayLogger.py,sha256=6GorKwyHib7aMJIisg2Sq_r5UmGOyuRfI5loQqlSPf8,102286
|
|
138
138
|
radboy/DayLog/TaxiFares.py,sha256=3slYjtBcTnRe8IeneJ-_iZJJ3E7alW09f6GWYXPxhOo,10882
|
|
139
139
|
radboy/DayLog/Wavelength4Freq.py,sha256=MfN2EATrN3bbEDgP1qOPjV1Fk8sVnkc_4tgX6sKfSE0,2054
|
|
140
140
|
radboy/DayLog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
|
+
radboy/DayLog/BhTrSa/__init__.py,sha256=q6xDsXAiWpQR2QWILKZKf--D3apR_KOE1CRbZaP7Vq4,976
|
|
142
|
+
radboy/DayLog/BhTrSa/bhtrsaa.py,sha256=sJGWFNug3cNeIvO6AFwQyynvW__S-r3OYZxB--iczjk,13473
|
|
141
143
|
radboy/DayLog/__pycache__/DayLogger.cpython-311.pyc,sha256=TmRnRZHp5tMTokSEB8hWTxnasi-iJdh6TmYcb_nXGoY,29557
|
|
142
144
|
radboy/DayLog/__pycache__/DayLogger.cpython-312.pyc,sha256=bfDCQZrIhgQYzoUle7roicRE_bhGPYZtIbCRIiDrsxU,68240
|
|
143
|
-
radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc,sha256=
|
|
145
|
+
radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc,sha256=L3BYIw7SMXTsTK64KnTRg0mn-CRZn2Eq-4rjh75JXcs,151046
|
|
144
146
|
radboy/DayLog/__pycache__/__init__.cpython-311.pyc,sha256=Z5Y4DdVF77LZf6-Of92MDGFdi-IXik1ASQd4AdLNNfQ,231
|
|
145
147
|
radboy/DayLog/__pycache__/__init__.cpython-312.pyc,sha256=lP_GHzSPt5JTrT1jLWiRMFGPmSdJYBn4eRV__OxgJ6s,269
|
|
146
148
|
radboy/DayLog/__pycache__/__init__.cpython-313.pyc,sha256=UQw5v4r7yismC9qcqP0dEme6h-lawbOA5pXYpkqUwFk,148
|
|
@@ -188,11 +190,11 @@ radboy/ExtractPkg/__pycache__/ExtractPkg2.cpython-313.pyc,sha256=bgw-00G_ouurOtO
|
|
|
188
190
|
radboy/ExtractPkg/__pycache__/__init__.cpython-311.pyc,sha256=62yPgrgPZffZFLr6FscOqCdo45vfhScJ8aZbLTbD7I4,235
|
|
189
191
|
radboy/ExtractPkg/__pycache__/__init__.cpython-312.pyc,sha256=Ll1iKcG0MDtoCIloQ_frcihvCSe1HPtyERzcAoXwQT0,273
|
|
190
192
|
radboy/ExtractPkg/__pycache__/__init__.cpython-313.pyc,sha256=kL3Y3KxCTaGNg3aq5fhf2fsnQHZolGfvniEUfsx2bwY,152
|
|
191
|
-
radboy/FB/FBMTXT.py,sha256=
|
|
193
|
+
radboy/FB/FBMTXT.py,sha256=UhD6DbKW9jaCuaw6Ju-mmi-Kgx2RipB1ysOITiZfsqw,19424
|
|
192
194
|
radboy/FB/FormBuilder.py,sha256=oOlGmvrUaAOVf0DpM_wlHKfIyz-Q8WU9pJRZ7XPzdQg,14275
|
|
193
195
|
radboy/FB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
194
196
|
radboy/FB/__pycache__/FBMTXT.cpython-312.pyc,sha256=XCVFa7Mo83LGIdRrTvcK73siUpcVIEQfXKCH2QHeViw,9626
|
|
195
|
-
radboy/FB/__pycache__/FBMTXT.cpython-313.pyc,sha256=
|
|
197
|
+
radboy/FB/__pycache__/FBMTXT.cpython-313.pyc,sha256=sF3WL-63m1AjAOTxhfwMlkRvz7Axag5gRv9Nqitcj1k,31133
|
|
196
198
|
radboy/FB/__pycache__/FormBuilder.cpython-312.pyc,sha256=lNQdB-zApsXM7OQF9MIi0zRZD1SAL6stKEN-AyQiIKg,18873
|
|
197
199
|
radboy/FB/__pycache__/FormBuilder.cpython-313.pyc,sha256=WOX7ndix3aTqTaF01w1x4X_b-DX15RAoBdH7_L5NPCc,19706
|
|
198
200
|
radboy/FB/__pycache__/__init__.cpython-312.pyc,sha256=ULEL8Au_CxcYpNAcSoSbI65M7-av1W6Zuy6kQJUu-Mw,265
|
|
@@ -330,7 +332,7 @@ radboy/SystemSettings/__pycache__/__init__.cpython-312.pyc,sha256=aIzp4Po0t8EhSA
|
|
|
330
332
|
radboy/SystemSettings/__pycache__/__init__.cpython-313.pyc,sha256=QFDuoidxMWsGVLsy5lN-rDs6TP8nKJ4yyCyiamNOhwo,156
|
|
331
333
|
radboy/TasksMode/ReFormula.py,sha256=REDRJYub-OEOE6g14oRQOLOQwv8pHqVJy4NQk3CCM90,2255
|
|
332
334
|
radboy/TasksMode/SetEntryNEU.py,sha256=3nUNDUNyxq4zeMtmUQ7aS1o23P7KhDIMdUPNqPnYbRk,17343
|
|
333
|
-
radboy/TasksMode/Tasks.py,sha256=
|
|
335
|
+
radboy/TasksMode/Tasks.py,sha256=EpKmiMnncIeAgFs-ASQeZLkYzQSdZ0I4fc1NU5f4JPY,306711
|
|
334
336
|
radboy/TasksMode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
335
337
|
radboy/TasksMode/__pycache__/ReFormula.cpython-311.pyc,sha256=QEG3PwVw-8HTd_Mf9XbVcxU56F1fC9yBqWXYPLC39DU,4865
|
|
336
338
|
radboy/TasksMode/__pycache__/ReFormula.cpython-312.pyc,sha256=aX7BWm2PPjCTnxsbGUitR-2h9hq4AjaBiHMrUXvIl0Y,3967
|
|
@@ -339,7 +341,7 @@ radboy/TasksMode/__pycache__/SetEntryNEU.cpython-312.pyc,sha256=pCdFj61aPKkHL6Sv
|
|
|
339
341
|
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=leIelDzPrZE_YgKs0B99osmhyENYtYgi3ErgS2XqSPs,20088
|
|
340
342
|
radboy/TasksMode/__pycache__/Tasks.cpython-311.pyc,sha256=6QOTJnLiXSKdF81hkhy3vyrz49PPhS20s5_0X52g3Hw,131120
|
|
341
343
|
radboy/TasksMode/__pycache__/Tasks.cpython-312.pyc,sha256=hyJwdaYaaRLdcrNxgg36diJ5iijX5_3I0UAORsj-6LU,310295
|
|
342
|
-
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=
|
|
344
|
+
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=wZMXV8PymeSdCUifCswDrURboDJH1W-vl8aqX6Av3YI,376569
|
|
343
345
|
radboy/TasksMode/__pycache__/__init__.cpython-311.pyc,sha256=PKV1JbihEacm639b53bZozRQvcllSkjGP3q8STVMxF4,234
|
|
344
346
|
radboy/TasksMode/__pycache__/__init__.cpython-312.pyc,sha256=ERgnEvRMiGSecWp1BpNzLdSq_SdKw7GvFWUvUM7bLVw,272
|
|
345
347
|
radboy/TasksMode/__pycache__/__init__.cpython-313.pyc,sha256=lvsTxukyvGKB3C0rdF9dQi_bvVh6ceDVINfwcuIsd0s,151
|
|
@@ -386,7 +388,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
386
388
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
387
389
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
388
390
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
389
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
391
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=MrAaEitcrgyuQPToBuM0nJvlm0PzFNUjkdfUMDSqg24,165
|
|
390
392
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
391
393
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
392
394
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -411,7 +413,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
411
413
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
412
414
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
413
415
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
414
|
-
radboy-0.0.
|
|
415
|
-
radboy-0.0.
|
|
416
|
-
radboy-0.0.
|
|
417
|
-
radboy-0.0.
|
|
416
|
+
radboy-0.0.380.dist-info/METADATA,sha256=IlahHGfQDZs4z_Cuxf4btCRShR9-s6egt04svOMsgSc,794
|
|
417
|
+
radboy-0.0.380.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
418
|
+
radboy-0.0.380.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
419
|
+
radboy-0.0.380.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|