radboy 0.0.707__py3-none-any.whl → 0.0.709__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.
- radboy/DB/NW/NetWorth.py +766 -0
- radboy/DB/NW/__init__.py +28 -0
- radboy/DB/SimpleScanner/SimpleScanner.py +10 -0
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +1 -1
- radboy/DayLog/DayLogger.py +2 -0
- radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc +0 -0
- radboy/FB/FormBuilder.py +2 -1
- radboy/FB/__pycache__/FormBuilder.cpython-313.pyc +0 -0
- radboy/RNE/__pycache__/RNE.cpython-313.pyc +0 -0
- radboy/TasksMode/Tasks.py +4 -1
- radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc +0 -0
- radboy/__init__.py +1 -1
- radboy/__pycache__/__init__.cpython-313.pyc +0 -0
- radboy/preloader/preloader_func.py +2 -1
- {radboy-0.0.707.dist-info → radboy-0.0.709.dist-info}/METADATA +1 -1
- {radboy-0.0.707.dist-info → radboy-0.0.709.dist-info}/RECORD +19 -17
- {radboy-0.0.707.dist-info → radboy-0.0.709.dist-info}/WHEEL +0 -0
- {radboy-0.0.707.dist-info → radboy-0.0.709.dist-info}/top_level.txt +0 -0
radboy/DB/NW/NetWorth.py
ADDED
|
@@ -0,0 +1,766 @@
|
|
|
1
|
+
from . import *
|
|
2
|
+
from decimal import Decimal as float
|
|
3
|
+
@dataclass
|
|
4
|
+
class NetWorth(BASE,Template):
|
|
5
|
+
__tablename__="NetWorth"
|
|
6
|
+
nwid=Column(Integer,primary_key=True)
|
|
7
|
+
|
|
8
|
+
Name=Column(String,default=None)
|
|
9
|
+
ForWhom=Column(String,default=None)
|
|
10
|
+
NetWorth=Column(Float,default=None)
|
|
11
|
+
DTOE=Column(DateTime,default=datetime.now())
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
'''liabilities ; if balance in name it is a liability'''
|
|
15
|
+
Morgage_balance=Column(Float,default=0)
|
|
16
|
+
Loan_balance=Column(Float,default=0)
|
|
17
|
+
Credit_card_balance=Column(Float,default=0)
|
|
18
|
+
Unlisted_balance=Column(Float,default=0)
|
|
19
|
+
|
|
20
|
+
'''current liabilities'''
|
|
21
|
+
Accounts_payable_balance=Column(Float,default=0)
|
|
22
|
+
#Money a company owes to its suppliers for goods or services purchased on credit.
|
|
23
|
+
Accrued_expenses_balance=Column(Float,default=0)
|
|
24
|
+
#Expenses that have been incurred but not yet paid, such as employee wages and utility bills.
|
|
25
|
+
ShortTerm_notes_or_loans_payable_balance=Column(Float,default=0)
|
|
26
|
+
#Debts from a bank or other lender that must be repaid within the year.
|
|
27
|
+
Taxes_payable_balance=Column(Float,default=0)
|
|
28
|
+
#Sales, income, or payroll taxes collected or owed but not yet paid to the government.
|
|
29
|
+
Unearned_revenue_balance=Column(Float,default=0)
|
|
30
|
+
#Cash received from customers for a product or service that has not yet been delivered. The company has a liability to provide the good or service in the future.
|
|
31
|
+
Dividends_payable_balance=Column(Float,default=0)
|
|
32
|
+
#Dividends that have been declared by a company's board of directors but have not yet been paid to shareholders.
|
|
33
|
+
Current_portion_of_LongTerm_debt_balance=Column(Float,default=0)
|
|
34
|
+
#The portion of a long-term loan or mortgage that is due within the next year.
|
|
35
|
+
LongTerm_NonCurrent_liabilities_balance=Column(Float,default=0)
|
|
36
|
+
LongTerm_notes_payable_or_loans_balance=Column(Float,default=0)
|
|
37
|
+
# Debts with a maturity date extending beyond one year.
|
|
38
|
+
Mortgages_payable_balance=Column(Float,default=0)
|
|
39
|
+
# Long-term loans used to purchase property, such as an office building.
|
|
40
|
+
Bonds_payable_balance=Column(Float,default=0)
|
|
41
|
+
# Debt issued by a company to raise capital from investors, with repayment typically scheduled over a fixed period.
|
|
42
|
+
Deferred_tax_liabilities_balance=Column(Float,default=0)
|
|
43
|
+
# A tax a business owes that is not payable in the current period, often resulting from differences between tax rules and accounting rules for revenue or expenses.
|
|
44
|
+
Lease_obligations_balance=Column(Float,default=0)
|
|
45
|
+
# Payments owed under long-term capital lease agreements for assets like equipment or vehicles.
|
|
46
|
+
Pension_liabilities_balance=Column(Float,default=0)
|
|
47
|
+
# The obligation a company has to pay future retirement benefits to its employees.
|
|
48
|
+
Contingent_liabilities_balance=Column(Float,default=0)
|
|
49
|
+
Pending_lawsuits_balance=Column(Float,default=0)
|
|
50
|
+
# If a company is being sued, it may face a liability if the lawsuit is successful.
|
|
51
|
+
Product_warranties_balance=Column(Float,default=0)
|
|
52
|
+
# The estimated cost to repair or replace products under a warranty.
|
|
53
|
+
Environmental_cleanup_costs_balance=Column(Float,default=0)
|
|
54
|
+
# A potential liability for environmental damage caused by the business.
|
|
55
|
+
Student_loans_balance=Column(Float,default=0)
|
|
56
|
+
''' The total amount owed for educational debt.'''
|
|
57
|
+
Vehicle_loans_balance=Column(Float,default=0)
|
|
58
|
+
''' Debt for a car, boat, or other vehicle.'''
|
|
59
|
+
Personal_loans_balance=Column(Float,default=0)
|
|
60
|
+
''' Unsecured loans from a bank or other lender.'''
|
|
61
|
+
Lines_of_credit_balance=Column(Float,default=0)
|
|
62
|
+
''' Revolving credit accounts.'''
|
|
63
|
+
Unpaid_bills_balance=Column(Float,default=0)
|
|
64
|
+
''' Obligations such as utility bills, medical bills, or taxes.
|
|
65
|
+
Loans from family and friends: Money owed to individuals rather than a commercial lender'''
|
|
66
|
+
|
|
67
|
+
'''liabilities notes'''
|
|
68
|
+
liabilities_notes=Column(String,default='')
|
|
69
|
+
'''assets'''
|
|
70
|
+
Real_Estate_assets=Column(Float,default=0)
|
|
71
|
+
Personal_Property_assets=Column(Float,default=0)
|
|
72
|
+
|
|
73
|
+
Retirement_assets=Column(Float,default=0)
|
|
74
|
+
plan_401K_assets=Column(Float,default=0)
|
|
75
|
+
Individual_Retirement_Accounts_IRA_assets=Column(Float,default=0)
|
|
76
|
+
Pension_plans_assets=Column(Float,default=0)
|
|
77
|
+
Keogh_plans_assets=Column(Float,default=0)
|
|
78
|
+
college_savings_plans_529_assets=Column(Float,default=0)
|
|
79
|
+
|
|
80
|
+
Investments_assets=Column(Float,default=0)
|
|
81
|
+
Stocks_and_bonds_assets=Column(Float,default=0)
|
|
82
|
+
Mutual_funds_and_ExchangeTraded_Funds_EFT_assets=Column(Float,default=0)
|
|
83
|
+
Brokerage_accounts_assets=Column(Float,default=0)
|
|
84
|
+
Investment_properties_and_rental_real_estate_assets=Column(Float,default=0)
|
|
85
|
+
Digital_assets_like_cryptocurrency_and_NFTs_assets=Column(Float,default=0)
|
|
86
|
+
Annuities_assets=Column(Float,default=0)
|
|
87
|
+
Liquid_assets=Column(Float,default=0)
|
|
88
|
+
Cash_assets=Column(Float,default=0)
|
|
89
|
+
Checking_account_assets=Column(Float,default=0)
|
|
90
|
+
Savings_account_assets=Column(Float,default=0)
|
|
91
|
+
Certificates_of_deposit_assets=Column(Float,default=0)
|
|
92
|
+
Treasury_bills_assets=Column(Float,default=0)
|
|
93
|
+
Intangible_assets=Column(Float,default=0)
|
|
94
|
+
Patents_assets=Column(Float,default=0)
|
|
95
|
+
trademarks_assets=Column(Float,default=0)
|
|
96
|
+
copyrights_assets=Column(Float,default=0)
|
|
97
|
+
Royalties_assets=Column(Float,default=0)
|
|
98
|
+
Intellectual_property_assets=Column(Float,default=0)
|
|
99
|
+
business_interests_assets=Column(Float,default=0)
|
|
100
|
+
Equity_in_a_business_assets=Column(Float,default=0)
|
|
101
|
+
Ownership_shares_assets=Column(Float,default=0)
|
|
102
|
+
Business_equipment_and_inventory_assets=Column(Float,default=0)
|
|
103
|
+
Unlisted_assets=Column(Float,default=0)
|
|
104
|
+
assets_notes=Column(String,default='')
|
|
105
|
+
|
|
106
|
+
Comments=Column(String,default='')
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def __init__(self,*arg,**kwargs):
|
|
110
|
+
for k in kwargs.keys():
|
|
111
|
+
if k in [s.name for s in self.__table__.columns]:
|
|
112
|
+
setattr(self,k,kwargs.get(k))
|
|
113
|
+
if 'NetWorth' in kwargs.keys():
|
|
114
|
+
if kwargs['NetWorth'] not in [None,0]:
|
|
115
|
+
print(kwargs['NetWorth'])
|
|
116
|
+
return
|
|
117
|
+
else:
|
|
118
|
+
kwargs.pop('NetWorth')
|
|
119
|
+
#print('NetWorth' in kwargs.keys())
|
|
120
|
+
if not 'NetWorth' in kwargs.keys():
|
|
121
|
+
asset_fields=[x.name for x in __class__.__table__.columns if 'assets' in x.name and str(x.type).lower() in ['float','int','integer',]]
|
|
122
|
+
self.asset_fields=tuple(asset_fields)
|
|
123
|
+
print(asset_fields)
|
|
124
|
+
assTTL=0
|
|
125
|
+
for num,i in enumerate(asset_fields):
|
|
126
|
+
try:
|
|
127
|
+
old=self.NetWorth
|
|
128
|
+
except Exception as e:
|
|
129
|
+
self.NetWorth=float(0)
|
|
130
|
+
old=self.NetWorth
|
|
131
|
+
print(e)
|
|
132
|
+
try:
|
|
133
|
+
current=float(getattr(self,i))
|
|
134
|
+
except Exception as e:
|
|
135
|
+
current=0
|
|
136
|
+
|
|
137
|
+
print(i,old,current,getattr(self,i))
|
|
138
|
+
if old is None:
|
|
139
|
+
old=float(0)
|
|
140
|
+
if current is None:
|
|
141
|
+
current=float(0)
|
|
142
|
+
assTTL+=current
|
|
143
|
+
self.NetWorth=assTTL
|
|
144
|
+
|
|
145
|
+
liabilities_fields=[x.name for x in __class__.__table__.columns if 'balance' in x.name and str(x.type).lower() in ['float','int','integer',]]
|
|
146
|
+
self.liabilities_fields=tuple(liabilities_fields)
|
|
147
|
+
lblTTL=0
|
|
148
|
+
for num,i in enumerate(liabilities_fields):
|
|
149
|
+
|
|
150
|
+
try:
|
|
151
|
+
old=self.NetWorth
|
|
152
|
+
except Exception as e:
|
|
153
|
+
self.NetWorth=float(0)
|
|
154
|
+
old=self.NetWorth
|
|
155
|
+
print(e)
|
|
156
|
+
try:
|
|
157
|
+
current=float(getattr(self,i))
|
|
158
|
+
except Exception as e:
|
|
159
|
+
current=0
|
|
160
|
+
if old is None:
|
|
161
|
+
old=float(0)
|
|
162
|
+
if current is None:
|
|
163
|
+
current=float(0)
|
|
164
|
+
lblTTL-=current
|
|
165
|
+
print(i,old,current,getattr(self,i))
|
|
166
|
+
|
|
167
|
+
self.NetWorth+=lblTTL
|
|
168
|
+
print(self.NetWorth)
|
|
169
|
+
|
|
170
|
+
try:
|
|
171
|
+
NetWorth.metadata.create_all(ENGINE)
|
|
172
|
+
except Exception as e:
|
|
173
|
+
NetWorth.__table__.drop(ENGINE)
|
|
174
|
+
NetWorth.metadata.create_all(ENGINE)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
class NetWorthUi:
|
|
178
|
+
def fix_table(self):
|
|
179
|
+
NetWorth.__table__.drop(ENGINE)
|
|
180
|
+
NetWorth.metadata.create_all(ENGINE)
|
|
181
|
+
|
|
182
|
+
def add(self):
|
|
183
|
+
with Session(ENGINE) as session:
|
|
184
|
+
nw=NetWorth()
|
|
185
|
+
session.add(nw)
|
|
186
|
+
session.commit()
|
|
187
|
+
session.refresh(nw)
|
|
188
|
+
excludes=['nwid',]
|
|
189
|
+
fields={i.name:{'default':getattr(nw,i.name),'type':str(i.type).lower()} for i in nw.__table__.columns if i.name not in excludes}
|
|
190
|
+
fd=FormBuilder(data=fields,passThruText="Add a New NetWorth Log")
|
|
191
|
+
if fd is None:
|
|
192
|
+
session.delete(nw)
|
|
193
|
+
session.commit()
|
|
194
|
+
return
|
|
195
|
+
nw.__init__(**fd)
|
|
196
|
+
#session.query(NetWorth).filter(NetWorth.nwid==nw.nwid).update(fd)
|
|
197
|
+
session.commit()
|
|
198
|
+
session.refresh(nw)
|
|
199
|
+
print(nw)
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
def findAndUse2(self):
|
|
203
|
+
with Session(ENGINE) as session:
|
|
204
|
+
cmd=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{Fore.light_red}[FindAndUse2]{Fore.light_yellow}what cmd are your looking for?",helpText="type the cmd",data="string")
|
|
205
|
+
if cmd in ['d',None]:
|
|
206
|
+
return
|
|
207
|
+
else:
|
|
208
|
+
options=copy(self.options)
|
|
209
|
+
|
|
210
|
+
session.query(FindCmd).delete()
|
|
211
|
+
session.commit()
|
|
212
|
+
for num,k in enumerate(options):
|
|
213
|
+
stage=0
|
|
214
|
+
cmds=options[k]['cmds']
|
|
215
|
+
l=[]
|
|
216
|
+
l.extend(cmds)
|
|
217
|
+
l.append(options[k]['desc'])
|
|
218
|
+
cmdStr=' '.join(l)
|
|
219
|
+
cmd_string=FindCmd(CmdString=cmdStr,CmdKey=k)
|
|
220
|
+
session.add(cmd_string)
|
|
221
|
+
if num % 50 == 0:
|
|
222
|
+
session.commit()
|
|
223
|
+
session.commit()
|
|
224
|
+
session.flush()
|
|
225
|
+
|
|
226
|
+
results=session.query(FindCmd).filter(FindCmd.CmdString.icontains(cmd)).all()
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
ct=len(results)
|
|
230
|
+
if ct == 0:
|
|
231
|
+
print(f"No Cmd was found by {Fore.light_red}{cmd}{Style.reset}")
|
|
232
|
+
return
|
|
233
|
+
for num,x in enumerate(results):
|
|
234
|
+
msg=f"{Fore.light_yellow}{num}/{Fore.light_steel_blue}{num+1} of {Fore.light_red}{ct} -> {Fore.turquoise_4}{f'{Fore.light_yellow},{Style.reset}{Fore.turquoise_4}'.join(options[x.CmdKey]['cmds'])} - {Fore.green_yellow}{options[x.CmdKey]['desc']}"
|
|
235
|
+
print(msg)
|
|
236
|
+
select=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index?",helpText="the number farthest to the left before the /",data="integer")
|
|
237
|
+
if select in [None,'d']:
|
|
238
|
+
return
|
|
239
|
+
try:
|
|
240
|
+
ee=options[results[select].CmdKey]['exec']
|
|
241
|
+
if callable(ee):
|
|
242
|
+
ee()
|
|
243
|
+
except Exception as e:
|
|
244
|
+
print(e)
|
|
245
|
+
|
|
246
|
+
def delete_all(self):
|
|
247
|
+
fieldname=f'{__class__.__name__}'
|
|
248
|
+
mode=f'DeleteAll'
|
|
249
|
+
h=f'{Prompt.header.format(Fore=Fore,mode=mode,fieldname=fieldname,Style=Style)}'
|
|
250
|
+
|
|
251
|
+
code=''.join([str(random.randint(0,9)) for i in range(10)])
|
|
252
|
+
verification_protection=detectGetOrSet("Protect From Delete",code,setValue=False,literal=True)
|
|
253
|
+
while True:
|
|
254
|
+
try:
|
|
255
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{h}Really delete All NetWorth's?",helpText="yes or no boolean,default is NO",data="boolean")
|
|
256
|
+
if really in [None,]:
|
|
257
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
258
|
+
return True
|
|
259
|
+
elif really in ['d',False]:
|
|
260
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
261
|
+
return True
|
|
262
|
+
else:
|
|
263
|
+
pass
|
|
264
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"To {Fore.orange_red_1}Delete everything 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")
|
|
265
|
+
if really in [None,'d']:
|
|
266
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
267
|
+
return True
|
|
268
|
+
today=datetime.today()
|
|
269
|
+
if really.day == today.day and really.month == today.month and really.year == today.year:
|
|
270
|
+
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")
|
|
271
|
+
if really in [None,]:
|
|
272
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
273
|
+
return True
|
|
274
|
+
elif really in ['d',False]:
|
|
275
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
276
|
+
return True
|
|
277
|
+
elif really == verification_protection:
|
|
278
|
+
break
|
|
279
|
+
else:
|
|
280
|
+
pass
|
|
281
|
+
except Exception as e:
|
|
282
|
+
print(e)
|
|
283
|
+
with Session(ENGINE) as session:
|
|
284
|
+
session.query(NetWorth).delete()
|
|
285
|
+
session.commit()
|
|
286
|
+
|
|
287
|
+
def clear_all(self):
|
|
288
|
+
fieldname=f'{__class__.__name__}'
|
|
289
|
+
mode=f'ClearAll'
|
|
290
|
+
h=f'{Prompt.header.format(Fore=Fore,mode=mode,fieldname=fieldname,Style=Style)}'
|
|
291
|
+
|
|
292
|
+
code=''.join([str(random.randint(0,9)) for i in range(10)])
|
|
293
|
+
verification_protection=detectGetOrSet("Protect From Delete",code,setValue=False,literal=True)
|
|
294
|
+
while True:
|
|
295
|
+
try:
|
|
296
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{h}Really Clear All NetWorth's to NetWorth=0?",helpText="yes or no boolean,default is NO",data="boolean")
|
|
297
|
+
if really in [None,]:
|
|
298
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Cleared!{Style.reset}")
|
|
299
|
+
return True
|
|
300
|
+
elif really in ['d',False]:
|
|
301
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Cleared!{Style.reset}")
|
|
302
|
+
return True
|
|
303
|
+
else:
|
|
304
|
+
pass
|
|
305
|
+
really=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"To {Fore.orange_red_1}Clear everything 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")
|
|
306
|
+
if really in [None,'d']:
|
|
307
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Deleted!{Style.reset}")
|
|
308
|
+
return True
|
|
309
|
+
today=datetime.today()
|
|
310
|
+
if really.day == today.day and really.month == today.month and really.year == today.year:
|
|
311
|
+
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")
|
|
312
|
+
if really in [None,]:
|
|
313
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Cleared!{Style.reset}")
|
|
314
|
+
return True
|
|
315
|
+
elif really in ['d',False]:
|
|
316
|
+
print(f"{Fore.light_steel_blue}Nothing was {Fore.orange_red_1}{Style.bold}Cleared!{Style.reset}")
|
|
317
|
+
return True
|
|
318
|
+
elif really == verification_protection:
|
|
319
|
+
break
|
|
320
|
+
else:
|
|
321
|
+
pass
|
|
322
|
+
except Exception as e:
|
|
323
|
+
print(e)
|
|
324
|
+
with Session(ENGINE) as session:
|
|
325
|
+
session.query(NetWorth).update({'NetWorth':0,'DTOE':datetime.now(),'Note':''})
|
|
326
|
+
session.commit()
|
|
327
|
+
|
|
328
|
+
def list_scan(self,sch=False,dated=False,menu=False):
|
|
329
|
+
default=True
|
|
330
|
+
FORMAT=self.FORMAT()
|
|
331
|
+
terse=Control(func=FormBuilderMkText,ptext="Terse output [False/True] ",helpText=FORMAT,data="boolean")
|
|
332
|
+
if terse is None:
|
|
333
|
+
return
|
|
334
|
+
elif terse in ['NaN',]:
|
|
335
|
+
terse=False
|
|
336
|
+
elif terse in ['d',]:
|
|
337
|
+
terse=default
|
|
338
|
+
writeToFile=Control(func=FormBuilderMkText,ptext="writeToFile output [False/True] ",helpText=str(Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True))),data="boolean")
|
|
339
|
+
if writeToFile is None:
|
|
340
|
+
return
|
|
341
|
+
elif writeToFile in ['NaN',]:
|
|
342
|
+
writeToFile=False
|
|
343
|
+
elif writeToFile in ['d',]:
|
|
344
|
+
writeToFile=default
|
|
345
|
+
|
|
346
|
+
if writeToFile:
|
|
347
|
+
outfile=Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True))
|
|
348
|
+
outfile.open('w').write('')
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
with Session(ENGINE) as session:
|
|
352
|
+
query=session.query(NetWorth)
|
|
353
|
+
|
|
354
|
+
if dated:
|
|
355
|
+
start_date=Control(func=FormBuilderMkText,ptext="Start Date:",helpText="start date",data="datetime")
|
|
356
|
+
if start_date in [None,'NaN']:
|
|
357
|
+
return
|
|
358
|
+
elif start_date in ['d',]:
|
|
359
|
+
start_date=datetime.today()
|
|
360
|
+
|
|
361
|
+
end_date=Control(func=FormBuilderMkText,ptext="end Date:",helpText="end date",data="datetime")
|
|
362
|
+
if end_date in [None,'NaN']:
|
|
363
|
+
return
|
|
364
|
+
elif end_date in ['d',]:
|
|
365
|
+
end_date=datetime.today()
|
|
366
|
+
query=query.filter(and_(NetWorth.DTOE<end_date,NetWorth.DTOE>start_date))
|
|
367
|
+
|
|
368
|
+
if sch:
|
|
369
|
+
term=Control(func=FormBuilderMkText,ptext="What are you looking for? ",helpText="a string of text",data="string")
|
|
370
|
+
if term is None:
|
|
371
|
+
return
|
|
372
|
+
elif term in ['d','NaN']:
|
|
373
|
+
term=''
|
|
374
|
+
query=query.filter(or_(NetWorth.Name.icontains(term),NetWorth.ForWhom.icontains(term),NetWorth.Comments.icontains(term)))
|
|
375
|
+
|
|
376
|
+
query=orderQuery(query,NetWorth.DTOE,inverse=True)
|
|
377
|
+
results=query.all()
|
|
378
|
+
cta=len(results)
|
|
379
|
+
if cta < 1:
|
|
380
|
+
print("There are no results!")
|
|
381
|
+
return
|
|
382
|
+
for num, i in enumerate(results):
|
|
383
|
+
|
|
384
|
+
if not terse:
|
|
385
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
386
|
+
else:
|
|
387
|
+
msg=self.terse(i,num,cta)
|
|
388
|
+
print(msg)
|
|
389
|
+
if writeToFile:
|
|
390
|
+
self.save2file_write(msg)
|
|
391
|
+
if menu:
|
|
392
|
+
doWhat=Control(func=FormBuilderMkText,ptext="clear/clr, reset/rst, edit/e/ed, or delete/del/remove/rm (<Enter> Continues)?",helpText="clear/clr, reset/rst, edit/e/ed or delete/del/remove/rm?",data="string")
|
|
393
|
+
if doWhat in [None,'NaN']:
|
|
394
|
+
return
|
|
395
|
+
elif doWhat.lower() in "edit/e/ed".split("/"):
|
|
396
|
+
self.edit(i)
|
|
397
|
+
session.refresh(i)
|
|
398
|
+
if not terse:
|
|
399
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
400
|
+
else:
|
|
401
|
+
msg=std_colorize(f"{Fore.light_magenta}{i.Name}:{Fore.light_red}{i.nwid}[{Fore.green_yellow}{i.DTOE}] = {Fore.cyan}{i.NetWorth} {Fore.dark_goldenrod}",num,cta)
|
|
402
|
+
print(msg)
|
|
403
|
+
elif doWhat.lower() in "delete/del/remove/rm".split("/"):
|
|
404
|
+
session.delete(i)
|
|
405
|
+
session.commit()
|
|
406
|
+
elif doWhat.lower() in "clear/clr".split("/"):
|
|
407
|
+
self.edit(i,clear=True)
|
|
408
|
+
session.refresh(i)
|
|
409
|
+
if not terse:
|
|
410
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
411
|
+
else:
|
|
412
|
+
msg=self.tersed(i,num,cta)
|
|
413
|
+
print(msg)
|
|
414
|
+
elif doWhat.lower() in "reset/rst".split("/"):
|
|
415
|
+
self.edit(i,reset=True)
|
|
416
|
+
session.refresh(i)
|
|
417
|
+
if not terse:
|
|
418
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
419
|
+
else:
|
|
420
|
+
msg=self.tersed(i,num,cta)
|
|
421
|
+
print(msg)
|
|
422
|
+
if (num % 15) == 0 and num > 0:
|
|
423
|
+
print(f"{Fore.grey_70}{'*'*os.get_terminal_size().columns}")
|
|
424
|
+
if writeToFile:
|
|
425
|
+
self.save2file_write(f"{Fore.grey_70}{'*'*os.get_terminal_size().columns}")
|
|
426
|
+
|
|
427
|
+
print(FORMAT)
|
|
428
|
+
if writeToFile:
|
|
429
|
+
print(f"Written to {str(Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True)))}")
|
|
430
|
+
self.save2file_write(strip_colors(FORMAT))
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
def FORMAT(self):
|
|
434
|
+
return f"{Fore.light_magenta}Name:{Fore.light_red}nwID[{Fore.green_yellow}DTOE] = {Fore.cyan}$NETWORTH {Fore.dark_goldenrod}"
|
|
435
|
+
|
|
436
|
+
def terse(self,i,num,cta):
|
|
437
|
+
return std_colorize(f"{Fore.light_magenta}{i.Name}:{Fore.light_red}{i.nwid}[{Fore.green_yellow}{i.DTOE}] = {Fore.cyan}{i.NetWorth} {Fore.dark_goldenrod}",num,cta)
|
|
438
|
+
|
|
439
|
+
def edit(self,i:NetWorth,excludes=['nwid',],reset=False,clear=False):
|
|
440
|
+
if reset:
|
|
441
|
+
with Session(ENGINE) as session:
|
|
442
|
+
r=session.query(NetWorth).filter(NetWorth.nwid==i.nwid).first()
|
|
443
|
+
r.Name=''
|
|
444
|
+
r.DTOE=datetime.now()
|
|
445
|
+
r.Note=''
|
|
446
|
+
r.NetWorth=0
|
|
447
|
+
session.commit()
|
|
448
|
+
return
|
|
449
|
+
|
|
450
|
+
if clear:
|
|
451
|
+
with Session(ENGINE) as session:
|
|
452
|
+
r=session.query(NetWorth).filter(NetWorth.nwid==i.nwid).first()
|
|
453
|
+
r.DTOE=datetime.now()
|
|
454
|
+
r.Note=''
|
|
455
|
+
r.NetWorth=0
|
|
456
|
+
session.commit()
|
|
457
|
+
return
|
|
458
|
+
fields={
|
|
459
|
+
x.name:{
|
|
460
|
+
'default':getattr(i,x.name),
|
|
461
|
+
'type':str(x.type).lower()
|
|
462
|
+
} for x in i.__table__.columns if x.name not in excludes
|
|
463
|
+
}
|
|
464
|
+
fd=FormBuilder(data=fields)
|
|
465
|
+
if fd is None:
|
|
466
|
+
return
|
|
467
|
+
with Session(ENGINE) as session:
|
|
468
|
+
r=session.query(NetWorth).filter(NetWorth.nwid==i.nwid).first()
|
|
469
|
+
r.__init__(**fd)
|
|
470
|
+
|
|
471
|
+
session.commit()
|
|
472
|
+
|
|
473
|
+
def last_NetWorth(self):
|
|
474
|
+
'''print hight times scanned w/ prompt for how many and offset'''
|
|
475
|
+
default=True
|
|
476
|
+
FORMAT=self.FORMAT()
|
|
477
|
+
terse=Control(func=FormBuilderMkText,ptext="Terse output [False/True] ",helpText=FORMAT,data="boolean")
|
|
478
|
+
if terse is None:
|
|
479
|
+
return
|
|
480
|
+
elif terse in ['NaN',]:
|
|
481
|
+
terse=False
|
|
482
|
+
elif terse in ['d',]:
|
|
483
|
+
terse=default
|
|
484
|
+
'''print the newest scan'''
|
|
485
|
+
writeToFile=Control(func=FormBuilderMkText,ptext="writeToFile output [False/True] ",helpText=str(Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True))),data="boolean")
|
|
486
|
+
if writeToFile is None:
|
|
487
|
+
return
|
|
488
|
+
elif writeToFile in ['NaN',]:
|
|
489
|
+
writeToFile=False
|
|
490
|
+
elif writeToFile in ['d',]:
|
|
491
|
+
writeToFile=default
|
|
492
|
+
|
|
493
|
+
if writeToFile:
|
|
494
|
+
outfile=Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True))
|
|
495
|
+
outfile.open('w').write('')
|
|
496
|
+
with Session(ENGINE) as session:
|
|
497
|
+
|
|
498
|
+
query=session.query(NetWorth)
|
|
499
|
+
query=orderQuery(query,NetWorth.NetWorth)
|
|
500
|
+
limit=Control(func=FormBuilderMkText,ptext="max to display?",helpText="an integer",data="integer")
|
|
501
|
+
if limit in [None,'NaN']:
|
|
502
|
+
return
|
|
503
|
+
elif limit in ['d',]:
|
|
504
|
+
limit=10
|
|
505
|
+
|
|
506
|
+
offset=Control(func=FormBuilderMkText,ptext="what is the offset from 0?",helpText="what is 0/start+offset",data="integer")
|
|
507
|
+
if offset in [None,'NaN']:
|
|
508
|
+
return
|
|
509
|
+
elif offset in ['d',]:
|
|
510
|
+
offset=0
|
|
511
|
+
query=limitOffset(query,limit,offset)
|
|
512
|
+
|
|
513
|
+
results=query.all()
|
|
514
|
+
cta=len(results)
|
|
515
|
+
|
|
516
|
+
for num,i in enumerate(results):
|
|
517
|
+
|
|
518
|
+
if terse:
|
|
519
|
+
msg=self.terse(i,num,cta)
|
|
520
|
+
else:
|
|
521
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
522
|
+
if writeToFile:
|
|
523
|
+
self.save2file_write(strip_colors(msg))
|
|
524
|
+
print(msg)
|
|
525
|
+
if (num % 15) == 0 and num > 0:
|
|
526
|
+
print(f"{Fore.grey_70}{'*'*os.get_terminal_size().columns}")
|
|
527
|
+
if writeToFile:
|
|
528
|
+
self.save2file_write(strip_colors(f"{Fore.grey_70}{'*'*os.get_terminal_size().columns}"))
|
|
529
|
+
print(FORMAT)
|
|
530
|
+
if writeToFile:
|
|
531
|
+
print(f"Written to {str(Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True)))}")
|
|
532
|
+
self.save2file_write(strip_colors(FORMAT))
|
|
533
|
+
|
|
534
|
+
def clear_file(self):
|
|
535
|
+
with Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True)).open('w') as out:
|
|
536
|
+
out.write('')
|
|
537
|
+
print("Cleared!")
|
|
538
|
+
|
|
539
|
+
def last_DTOE(self):
|
|
540
|
+
default=True
|
|
541
|
+
FORMAT=self.FORMAT()
|
|
542
|
+
terse=Control(func=FormBuilderMkText,ptext="Terse output [False/True] ",helpText=FORMAT,data="boolean")
|
|
543
|
+
if terse is None:
|
|
544
|
+
return
|
|
545
|
+
elif terse in ['NaN',]:
|
|
546
|
+
terse=False
|
|
547
|
+
elif terse in ['d',]:
|
|
548
|
+
terse=default
|
|
549
|
+
writeToFile=Control(func=FormBuilderMkText,ptext="writeToFile output [False/True] ",helpText=str(Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True))),data="boolean")
|
|
550
|
+
if writeToFile is None:
|
|
551
|
+
return
|
|
552
|
+
elif writeToFile in ['NaN',]:
|
|
553
|
+
writeToFile=False
|
|
554
|
+
elif writeToFile in ['d',]:
|
|
555
|
+
writeToFile=default
|
|
556
|
+
|
|
557
|
+
if writeToFile:
|
|
558
|
+
outfile=Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True))
|
|
559
|
+
outfile.open('w').write('')
|
|
560
|
+
|
|
561
|
+
'''print the newest scan'''
|
|
562
|
+
with Session(ENGINE) as session:
|
|
563
|
+
|
|
564
|
+
query=session.query(NetWorth)
|
|
565
|
+
query=orderQuery(query,NetWorth.DTOE)
|
|
566
|
+
limit=Control(func=FormBuilderMkText,ptext="max to display?",helpText="an integer",data="integer")
|
|
567
|
+
if limit in [None,'NaN']:
|
|
568
|
+
return
|
|
569
|
+
elif limit in ['d',]:
|
|
570
|
+
limit=10
|
|
571
|
+
|
|
572
|
+
offset=Control(func=FormBuilderMkText,ptext="what is the offset from 0?",helpText="what is 0/start+offset",data="integer")
|
|
573
|
+
if offset in [None,'NaN']:
|
|
574
|
+
return
|
|
575
|
+
elif offset in ['d',]:
|
|
576
|
+
offset=0
|
|
577
|
+
query=limitOffset(query,limit,offset)
|
|
578
|
+
|
|
579
|
+
results=query.all()
|
|
580
|
+
cta=len(results)
|
|
581
|
+
|
|
582
|
+
for num,i in enumerate(results):
|
|
583
|
+
|
|
584
|
+
if terse:
|
|
585
|
+
msg=self.terse(i,num,cta)
|
|
586
|
+
else:
|
|
587
|
+
msg=std_colorize(f"{Fore.light_magenta}{__class__.__name__}{Fore.dark_goldenrod}{i}",num,cta)
|
|
588
|
+
|
|
589
|
+
print(msg)
|
|
590
|
+
if writeToFile:
|
|
591
|
+
self.save2file_write(strip_colors(msg))
|
|
592
|
+
if (num % 15) == 0 and num > 0:
|
|
593
|
+
if writeToFile:
|
|
594
|
+
self.save2file_write(strip_colors(f"{Fore.grey_70}{'*'*os.get_terminal_size().columns}"))
|
|
595
|
+
print(f"{Fore.grey_70}{'*'*os.get_terminal_size().columns}")
|
|
596
|
+
if writeToFile:
|
|
597
|
+
print(f"Written to {str(Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True)))}")
|
|
598
|
+
self.save2file_write(strip_colors(FORMAT))
|
|
599
|
+
print(FORMAT)
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
def save2file_write(self,text):
|
|
603
|
+
outfile=Path(db.detectGetOrSet('text2file','TextOut.txt',setValue=False,literal=True))
|
|
604
|
+
with open(outfile,'a') as x:
|
|
605
|
+
otext=strip_colors(text+"\n")
|
|
606
|
+
if otext in [None,'d','']:
|
|
607
|
+
print("nothing was saved!")
|
|
608
|
+
if otext is None:
|
|
609
|
+
return
|
|
610
|
+
x.write(otext)
|
|
611
|
+
#print(f"wrote '{otext}' to '{outfile}'")
|
|
612
|
+
def fields(self):
|
|
613
|
+
print("assets -------- ")
|
|
614
|
+
zz=NetWorth().asset_fields
|
|
615
|
+
ct=len(zz)
|
|
616
|
+
for num,i in enumerate(zz):
|
|
617
|
+
print(std_colorize(i,num,ct))
|
|
618
|
+
zz=NetWorth().liabilities_fields
|
|
619
|
+
print("liabilities -------- ")
|
|
620
|
+
ct=len(zz)
|
|
621
|
+
for num,i in enumerate(zz):
|
|
622
|
+
print(std_colorize(i,num,ct))
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
def __init__(self):
|
|
627
|
+
MENUDO="edit,delete, clear count,reset all fields"
|
|
628
|
+
self.options={}
|
|
629
|
+
self.options[str(uuid1())]={
|
|
630
|
+
'cmds':generate_cmds(startcmd=["fix","fx"],endCmd=['tbl','table']),
|
|
631
|
+
'desc':'''
|
|
632
|
+
drop and regenerate NetWorth Table
|
|
633
|
+
''',
|
|
634
|
+
'exec':self.fix_table
|
|
635
|
+
}
|
|
636
|
+
self.options[str(uuid1())]={
|
|
637
|
+
'cmds':['ca','clearall','clear all','clear-all','clear.all'],
|
|
638
|
+
'desc':f'clear networth of all NetWorths',
|
|
639
|
+
'exec':self.clear_all
|
|
640
|
+
}
|
|
641
|
+
self.options[str(uuid1())]={
|
|
642
|
+
'cmds':['fields','flds'],
|
|
643
|
+
'desc':f'clear networth of all NetWorths',
|
|
644
|
+
'exec':self.fields
|
|
645
|
+
}
|
|
646
|
+
self.options[str(uuid1())]={
|
|
647
|
+
'cmds':['add','new','a'],
|
|
648
|
+
'desc':f'add a new networth',
|
|
649
|
+
'exec':self.add
|
|
650
|
+
}
|
|
651
|
+
self.options[str(uuid1())]={
|
|
652
|
+
'cmds':['da','deleteall','delete all','delete-all','delete.all'],
|
|
653
|
+
'desc':f'delete all of NetWorth\'s',
|
|
654
|
+
'exec':self.delete_all
|
|
655
|
+
}
|
|
656
|
+
self.options[str(uuid1())]={
|
|
657
|
+
'cmds':['list networth','lst nw',],
|
|
658
|
+
'desc':f'List Scans',
|
|
659
|
+
'exec':self.list_scan
|
|
660
|
+
}
|
|
661
|
+
self.options[str(uuid1())]={
|
|
662
|
+
'cmds':['clear file','clr fl',],
|
|
663
|
+
'desc':f'clear outfile',
|
|
664
|
+
'exec':self.clear_file
|
|
665
|
+
}
|
|
666
|
+
self.options[str(uuid1())]={
|
|
667
|
+
'cmds':['list networth search','lst nw sch','lst nw','list find','lst fnd'],
|
|
668
|
+
'desc':f'List NetWorth\'s with search by text',
|
|
669
|
+
'exec':lambda self=self:self.list_scan(sch=True)
|
|
670
|
+
}
|
|
671
|
+
self.options[str(uuid1())]={
|
|
672
|
+
'cmds':['last by dtoe','lst dtoe'],
|
|
673
|
+
'desc':f'List NetWorth with limit and offset using rllo/vllo for ordering by dtoe',
|
|
674
|
+
'exec':lambda self=self:self.last_DTOE()
|
|
675
|
+
}
|
|
676
|
+
self.options[str(uuid1())]={
|
|
677
|
+
'cmds':['last by timesscanned','lst ts'],
|
|
678
|
+
'desc':f'List NetWorth with limit and offset using rllo/vllo for ordering by NetWorth',
|
|
679
|
+
'exec':lambda self=self:self.last_NetWorth()
|
|
680
|
+
}
|
|
681
|
+
self.options[str(uuid1())]={
|
|
682
|
+
'cmds':['list networth dated','lst nw dt','lst dt','list dtd','lst d'],
|
|
683
|
+
'desc':f'List networth within start and end dates',
|
|
684
|
+
'exec':lambda self=self:self.list_scan(dated=True)
|
|
685
|
+
}
|
|
686
|
+
self.options[str(uuid1())]={
|
|
687
|
+
'cmds':['list networth search date','lst nw sch dt','lst sch dt','list find dt','lst fnd dt'],
|
|
688
|
+
'desc':f'List networth with search by scanned text between start and end dates',
|
|
689
|
+
'exec':lambda self=self:self.list_scan(sch=True,dated=True)
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
self.options[str(uuid1())]={
|
|
693
|
+
'cmds':['list networth menu','lst nw m',],
|
|
694
|
+
'desc':f'List NetWorth\'s with menu to {MENUDO}',
|
|
695
|
+
'exec':lambda self=self:self.list_scan(menu=True)
|
|
696
|
+
}
|
|
697
|
+
self.options[str(uuid1())]={
|
|
698
|
+
'cmds':['list networth search menu','lst nw sch m','lst sch m','list find menu','lst fnd m'],
|
|
699
|
+
'desc':f'List networth with search by scanned text with menu to {MENUDO}',
|
|
700
|
+
'exec':lambda self=self:self.list_scan(sch=True,menu=True)
|
|
701
|
+
}
|
|
702
|
+
self.options[str(uuid1())]={
|
|
703
|
+
'cmds':['list networth dated menu','lst nw dt m','lst dt m','list dtd m','lst d m'],
|
|
704
|
+
'desc':f'List Scans within start and end dates with menu to {MENUDO}',
|
|
705
|
+
'exec':lambda self=self:self.list_scan(dated=True,menu=True)
|
|
706
|
+
}
|
|
707
|
+
self.options[str(uuid1())]={
|
|
708
|
+
'cmds':['list networth search date menu','lst nw sch dt m','lst sch dt m','list find dt m','lst fnd dt m'],
|
|
709
|
+
'desc':f'List networth with search by scanned text between start and end dates with menu to {MENUDO}',
|
|
710
|
+
'exec':lambda self=self:self.list_scan(sch=True,dated=True,menu=True)
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
#new methods() start
|
|
714
|
+
|
|
715
|
+
#new methods() end
|
|
716
|
+
self.options[str(uuid1())]={
|
|
717
|
+
'cmds':['fcmd','findcmd','find cmd'],
|
|
718
|
+
'desc':f'Find {Fore.light_yellow}cmd{Fore.medium_violet_red} and excute for return{Style.reset}',
|
|
719
|
+
'exec':self.findAndUse2
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
|
|
723
|
+
self.DESCRIPTION=f'''
|
|
724
|
+
record/list your networth logs
|
|
725
|
+
'Add' NetWorth or Calculate it?
|
|
726
|
+
if you already know it and just enter your networth, then the calculations are not performed, but the liabilities
|
|
727
|
+
and assets are still stored.
|
|
728
|
+
|
|
729
|
+
if you don't, then leave networth as None using 'NAN', or as 0, and follow the prompts to enter your
|
|
730
|
+
liabilities and assets. Once you are finished adding your information type one of below:
|
|
731
|
+
'f','<enter>','f'
|
|
732
|
+
'ff' the first time
|
|
733
|
+
|
|
734
|
+
to save your log.
|
|
735
|
+
|
|
736
|
+
This allows you to keep track of your NetWorth.
|
|
737
|
+
'''
|
|
738
|
+
|
|
739
|
+
self.options[str(uuid1())]={
|
|
740
|
+
'cmds':['desciption','describe me','what am i','help me','?+'],
|
|
741
|
+
'desc':f'print the module description',
|
|
742
|
+
'exec':lambda self=self:print(self.DESCRIPTION)
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
for num,i in enumerate(self.options):
|
|
746
|
+
if str(num) not in self.options[i]['cmds']:
|
|
747
|
+
self.options[i]['cmds'].append(str(num))
|
|
748
|
+
options=copy(self.options)
|
|
749
|
+
|
|
750
|
+
while True:
|
|
751
|
+
helpText=[]
|
|
752
|
+
for i in options:
|
|
753
|
+
msg=f"{Fore.light_green}{options[i]['cmds']}{Fore.light_red} -> {options[i]['desc']}{Style.reset}"
|
|
754
|
+
helpText.append(msg)
|
|
755
|
+
helpText='\n'.join(helpText)
|
|
756
|
+
|
|
757
|
+
cmd=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"{__class__.__name__}|Do What?:",helpText=helpText,data="string")
|
|
758
|
+
if cmd is None:
|
|
759
|
+
return None
|
|
760
|
+
result=None
|
|
761
|
+
for i in options:
|
|
762
|
+
els=[ii.lower() for ii in options[i]['cmds']]
|
|
763
|
+
if cmd.lower() in els:
|
|
764
|
+
options[i]['exec']()
|
|
765
|
+
break
|
|
766
|
+
|
radboy/DB/NW/__init__.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from radboy.DB.db import *
|
|
2
|
+
from radboy.DB.RandomStringUtil import *
|
|
3
|
+
import radboy.Unified.Unified as unified
|
|
4
|
+
import radboy.possibleCode as pc
|
|
5
|
+
from radboy.DB.Prompt import *
|
|
6
|
+
from radboy.DB.Prompt import prefix_text
|
|
7
|
+
from radboy.TasksMode.ReFormula import *
|
|
8
|
+
from radboy.TasksMode.SetEntryNEU import *
|
|
9
|
+
from radboy.FB.FormBuilder import *
|
|
10
|
+
from radboy.FB.FBMTXT import *
|
|
11
|
+
from radboy.RNE.RNE import *
|
|
12
|
+
from radboy.Lookup2.Lookup2 import Lookup as Lookup2
|
|
13
|
+
from radboy.DayLog.DayLogger import *
|
|
14
|
+
from radboy.DB.masterLookup import *
|
|
15
|
+
from collections import namedtuple,OrderedDict
|
|
16
|
+
import nanoid,qrcode,io
|
|
17
|
+
from password_generator import PasswordGenerator
|
|
18
|
+
import random
|
|
19
|
+
from pint import UnitRegistry
|
|
20
|
+
import pandas as pd
|
|
21
|
+
import numpy as np
|
|
22
|
+
from datetime import *
|
|
23
|
+
from colored import Style,Fore
|
|
24
|
+
import json,sys,math,re,calendar,hashlib,haversine
|
|
25
|
+
from time import sleep
|
|
26
|
+
import itertools
|
|
27
|
+
|
|
28
|
+
from .NetWorth import *
|
|
@@ -631,6 +631,16 @@ drop and regenerate SimpleScan Table
|
|
|
631
631
|
'desc':f'Find {Fore.light_yellow}cmd{Fore.medium_violet_red} and excute for return{Style.reset}',
|
|
632
632
|
'exec':self.findAndUse2
|
|
633
633
|
}
|
|
634
|
+
self.DESCRIPTION=f'''
|
|
635
|
+
A Scanner software that prompts for text, and if a duplicate is found, select the duplicate, and increments a counter TimesScanned.
|
|
636
|
+
This is made for making lists, where a name tied to a barcode is not necessary, but keeping qty is.
|
|
637
|
+
'''
|
|
638
|
+
|
|
639
|
+
self.options[str(uuid1())]={
|
|
640
|
+
'cmds':['desciption','describe me','what am i','help me','?+'],
|
|
641
|
+
'desc':f'print the module description',
|
|
642
|
+
'exec':lambda self=self:print(self.DESCRIPTION)
|
|
643
|
+
}
|
|
634
644
|
|
|
635
645
|
for num,i in enumerate(self.options):
|
|
636
646
|
if str(num) not in self.options[i]['cmds']:
|
|
Binary file
|
radboy/DB/db.py
CHANGED
radboy/DayLog/DayLogger.py
CHANGED
|
@@ -1961,6 +1961,8 @@ fxtbl - update table with correct columns
|
|
|
1961
1961
|
CompareUI()
|
|
1962
1962
|
elif what.lower() in ['bhtrsa','business hours tax rates scheduled and appointments']:
|
|
1963
1963
|
BhTrSa_Gui()
|
|
1964
|
+
elif what.lower() in ['networth ui','nwui']:
|
|
1965
|
+
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).networth_ui()
|
|
1964
1966
|
elif what.lower() in ["#"+str(0),*[i for i in generate_cmds(startcmd=["phonebook","phnbk"],endCmd=["",])]]:
|
|
1965
1967
|
TM.Tasks.TasksMode(parent=self,engine=db.ENGINE,init_only=True).phonebook()
|
|
1966
1968
|
|
|
Binary file
|
radboy/FB/FormBuilder.py
CHANGED
|
@@ -285,7 +285,8 @@ def FormBuilder(data,extra_tooling=False,passThruText=None):
|
|
|
285
285
|
GOTOK=findAndSelectKey(options=DATA)
|
|
286
286
|
print(GOTOK)
|
|
287
287
|
while GOTOK not in list(data.keys()):
|
|
288
|
-
GOTOK=
|
|
288
|
+
GOTOK=findAndSelectKey(options=DATA)
|
|
289
|
+
#GOTOK=setGOTOK_str(GOTOK)
|
|
289
290
|
if GOTOK in [None,]:
|
|
290
291
|
return
|
|
291
292
|
if_continue=True
|
|
Binary file
|
|
Binary file
|
radboy/TasksMode/Tasks.py
CHANGED
|
@@ -48,7 +48,8 @@ import radboy.DB.OrderedAndRxd as OAR
|
|
|
48
48
|
import radboy.DB.LetterWriter as LW
|
|
49
49
|
from scipy.io.wavfile import write
|
|
50
50
|
from radboy.DB.SimpleScanner import SimpleScanner
|
|
51
|
-
|
|
51
|
+
from radboy.DB.NW.NetWorth import *
|
|
52
|
+
from decimal import Decimal as DEC
|
|
52
53
|
def today():
|
|
53
54
|
dt=datetime.now()
|
|
54
55
|
return date(dt.year,dt.month,dt.day)
|
|
@@ -1160,6 +1161,8 @@ def generateWhiteNoise():
|
|
|
1160
1161
|
|
|
1161
1162
|
|
|
1162
1163
|
class TasksMode:
|
|
1164
|
+
def networth_ui(self):
|
|
1165
|
+
NetWorthUi()
|
|
1163
1166
|
def simple_scanner(self):
|
|
1164
1167
|
SimpleScanner.SimpleScanUi()
|
|
1165
1168
|
def white_noise(self):
|
|
Binary file
|
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.709'
|
|
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=KI7Jmf3MX0Zng_YUvcjVKN2siyUOhaMAHQGzpPuX8KQ,41373
|
|
7
7
|
radboy/Run.py,sha256=JUoCTHnzQBv7n8PB2_i93ANdAC_iW__RkAge8esCnk4,76
|
|
8
|
-
radboy/__init__.py,sha256=
|
|
8
|
+
radboy/__init__.py,sha256=RshdZX4TcHFM4LEiUEqryhr0rncEkoYr6A1HcBenw04,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
|
|
@@ -95,14 +95,16 @@ radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,
|
|
|
95
95
|
radboy/DB/__init__.py,sha256=JiigA9B7GalP7YuRdcwyGDu5PDSBahoi0lLjtScxlN8,49
|
|
96
96
|
radboy/DB/blankDataFile.py,sha256=YX_05Usi71UpDkZN9UTMYwUipbTndTAtEgqzBEga0kE,9285
|
|
97
97
|
radboy/DB/config.py,sha256=bvu43dUl1_yO3Zq3gsLuenGUgJSiS3S9Cs6ppFEvZbg,239
|
|
98
|
-
radboy/DB/db.py,sha256=
|
|
98
|
+
radboy/DB/db.py,sha256=gLO0VoKZroEcuRc-nIM7eyRi8csAjyed7wIFiguB8vQ,262821
|
|
99
99
|
radboy/DB/glossary_db.py,sha256=1_qxeEpjjEtpWB_eDjsgJisimLv7OBm75MuqM-Lt6zg,28218
|
|
100
100
|
radboy/DB/masterLookup.py,sha256=DBaM2uscG3_X5dek49wjdnOzhrjWhKgvOEz_umdz0mY,4566
|
|
101
101
|
radboy/DB/msg.txt,sha256=YxWed6A6tuP1djJ5QPS2Rz3ING4TKKf8kUiCCPtzHXE,7937
|
|
102
102
|
radboy/DB/rad_types.py,sha256=mtZpBMIFPcw1IhmO7UQ7nV_1gNNURs4INwx3x40hLUU,4725
|
|
103
103
|
radboy/DB/renderText2Png.py,sha256=PWnTicLTfOPg9UlQYia3wMpjM9rh7MIyDVsmcsDRUBo,5678
|
|
104
104
|
radboy/DB/testClass.py,sha256=t3zT1gbvReUncnPY8R9JUfKXQ5UEB2wmQx8DNeds0hI,310
|
|
105
|
-
radboy/DB/
|
|
105
|
+
radboy/DB/NW/NetWorth.py,sha256=mf8txYjZUHYRUU-USczgxIpQ7y_QW0W4aW_Gkjtm6mA,35367
|
|
106
|
+
radboy/DB/NW/__init__.py,sha256=L_47uRH17B4CKrJWYEmisZw_-Ch2zYQj5WollHeP2ZM,894
|
|
107
|
+
radboy/DB/SimpleScanner/SimpleScanner.py,sha256=TOjBD4RgvKPL7isPVuhmrbBzlrA8YHozZJyYo0mMxOk,32477
|
|
106
108
|
radboy/DB/SimpleScanner/__init__.py,sha256=BknbeGbEv48sqoCWwCQbKbgbqLUuBAyeeIh4EFerJ0g,899
|
|
107
109
|
radboy/DB/__pycache__/DatePicker.cpython-311.pyc,sha256=VMJnJ7scb4VHMQi1HDZCF67KVYfb9m-fZK96IAoJzTQ,19676
|
|
108
110
|
radboy/DB/__pycache__/DatePicker.cpython-312.pyc,sha256=cc5XWJ6Sbtcg0xWPz3SOP93VceIqr1pH42kjkLl5iYs,30294
|
|
@@ -133,7 +135,7 @@ radboy/DB/__pycache__/config.cpython-312.pyc,sha256=Qo7E6MHrF6yqvKgepNFyCoekZXiv
|
|
|
133
135
|
radboy/DB/__pycache__/config.cpython-313.pyc,sha256=_8wCIg_3jhyJjxnExD2Sm6aY-uZTw036p7Ki5znL7dc,376
|
|
134
136
|
radboy/DB/__pycache__/db.cpython-311.pyc,sha256=rNgigyBd0D-cg1JxKAS8t0B_k0IEJivgVlRaZE10Xis,210105
|
|
135
137
|
radboy/DB/__pycache__/db.cpython-312.pyc,sha256=ANDJPC0RoavbmSKFxG15vC7B4rEGyVt7xRJt7XGY3OA,334609
|
|
136
|
-
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=
|
|
138
|
+
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=k5JfIueDOECa9ufjsn9MboeBUezDUbwx6Ris3Vaf71E,411900
|
|
137
139
|
radboy/DB/__pycache__/glossary_db.cpython-312.pyc,sha256=8UL-29cKqtKovx0BANm6kzKKteef1BW_2qF3wumzst4,36023
|
|
138
140
|
radboy/DB/__pycache__/glossary_db.cpython-313.pyc,sha256=Ke9bkvllGv5CK0JdT9DRvQ3MOdrXxoYv7TVLNkqLux0,36582
|
|
139
141
|
radboy/DB/__pycache__/masterLookup.cpython-312.pyc,sha256=bQiOkmMwwHgcO18tYSWGQ-YUff4GQlKVhBMp1GoWAqY,6324
|
|
@@ -142,7 +144,7 @@ radboy/DB/__pycache__/renderText2Png.cpython-311.pyc,sha256=ivSzvyAeWhsS-a_RcFF8
|
|
|
142
144
|
radboy/DB/__pycache__/renderText2Png.cpython-312.pyc,sha256=1CUGjOhJw_vC4DNMQ-W5jBXEKp7HzDrq7--x9VyBTo8,8991
|
|
143
145
|
radboy/DB/__pycache__/renderText2Png.cpython-313.pyc,sha256=LDJOo7uFztlxw3ptN8QuHrLkr0GKiAArBu34QiE15iQ,9096
|
|
144
146
|
radboy/DB/__pycache__/testClass.cpython-311.pyc,sha256=nkWap8RuBsWWOB_ZhGbR3ELbnL1F1CHZCi0dpepqw-0,1225
|
|
145
|
-
radboy/DayLog/DayLogger.py,sha256=
|
|
147
|
+
radboy/DayLog/DayLogger.py,sha256=xC7rT2sBx74w_bnWx2moXhy1PX6zwT--UZ2Qq1d6wic,104284
|
|
146
148
|
radboy/DayLog/TaxiFares.py,sha256=3slYjtBcTnRe8IeneJ-_iZJJ3E7alW09f6GWYXPxhOo,10882
|
|
147
149
|
radboy/DayLog/Wavelength4Freq.py,sha256=MfN2EATrN3bbEDgP1qOPjV1Fk8sVnkc_4tgX6sKfSE0,2054
|
|
148
150
|
radboy/DayLog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -150,7 +152,7 @@ radboy/DayLog/BhTrSa/__init__.py,sha256=q6xDsXAiWpQR2QWILKZKf--D3apR_KOE1CRbZaP7
|
|
|
150
152
|
radboy/DayLog/BhTrSa/bhtrsaa.py,sha256=3ECYU_2yMNS_zsN0ZD6BbiIwbWcJ9mokUwOt_hkTAYs,18233
|
|
151
153
|
radboy/DayLog/__pycache__/DayLogger.cpython-311.pyc,sha256=TmRnRZHp5tMTokSEB8hWTxnasi-iJdh6TmYcb_nXGoY,29557
|
|
152
154
|
radboy/DayLog/__pycache__/DayLogger.cpython-312.pyc,sha256=bfDCQZrIhgQYzoUle7roicRE_bhGPYZtIbCRIiDrsxU,68240
|
|
153
|
-
radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc,sha256=
|
|
155
|
+
radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc,sha256=nQpq8kScaAF1PknJECfix1GZPrEv2QAbaI57ne9kn7Y,154773
|
|
154
156
|
radboy/DayLog/__pycache__/__init__.cpython-311.pyc,sha256=Z5Y4DdVF77LZf6-Of92MDGFdi-IXik1ASQd4AdLNNfQ,231
|
|
155
157
|
radboy/DayLog/__pycache__/__init__.cpython-312.pyc,sha256=lP_GHzSPt5JTrT1jLWiRMFGPmSdJYBn4eRV__OxgJ6s,269
|
|
156
158
|
radboy/DayLog/__pycache__/__init__.cpython-313.pyc,sha256=UQw5v4r7yismC9qcqP0dEme6h-lawbOA5pXYpkqUwFk,148
|
|
@@ -199,12 +201,12 @@ radboy/ExtractPkg/__pycache__/__init__.cpython-311.pyc,sha256=62yPgrgPZffZFLr6Fs
|
|
|
199
201
|
radboy/ExtractPkg/__pycache__/__init__.cpython-312.pyc,sha256=Ll1iKcG0MDtoCIloQ_frcihvCSe1HPtyERzcAoXwQT0,273
|
|
200
202
|
radboy/ExtractPkg/__pycache__/__init__.cpython-313.pyc,sha256=kL3Y3KxCTaGNg3aq5fhf2fsnQHZolGfvniEUfsx2bwY,152
|
|
201
203
|
radboy/FB/FBMTXT.py,sha256=6PodraQPmIsEcbvYv-AR0AIoK630kjF50raPgqiCuvI,42230
|
|
202
|
-
radboy/FB/FormBuilder.py,sha256=
|
|
204
|
+
radboy/FB/FormBuilder.py,sha256=ByPBfmxRL4Xb9JSCl7-ciwJgYK9LT249alw0M7MZavQ,18800
|
|
203
205
|
radboy/FB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
204
206
|
radboy/FB/__pycache__/FBMTXT.cpython-312.pyc,sha256=XCVFa7Mo83LGIdRrTvcK73siUpcVIEQfXKCH2QHeViw,9626
|
|
205
207
|
radboy/FB/__pycache__/FBMTXT.cpython-313.pyc,sha256=lPsj5ps9SqSccQuZKFuaAVkQT-3uma68J3FSPKHA_cc,56574
|
|
206
208
|
radboy/FB/__pycache__/FormBuilder.cpython-312.pyc,sha256=lNQdB-zApsXM7OQF9MIi0zRZD1SAL6stKEN-AyQiIKg,18873
|
|
207
|
-
radboy/FB/__pycache__/FormBuilder.cpython-313.pyc,sha256=
|
|
209
|
+
radboy/FB/__pycache__/FormBuilder.cpython-313.pyc,sha256=mGkAw_sTf1VisaBhK8I5gp-L2ndP137VxZe5WVpFK3c,25044
|
|
208
210
|
radboy/FB/__pycache__/__init__.cpython-312.pyc,sha256=ULEL8Au_CxcYpNAcSoSbI65M7-av1W6Zuy6kQJUu-Mw,265
|
|
209
211
|
radboy/FB/__pycache__/__init__.cpython-313.pyc,sha256=Mp4kqFJa86-gyUu1vr9rubcUHUDr-O75hevV5IQdSFw,144
|
|
210
212
|
radboy/GDOWN/GDOWN.py,sha256=Z5q6TR92I4eQpxhsJpOwhH__f1tK2IcGctPRw8OAEr8,798
|
|
@@ -308,7 +310,7 @@ radboy/RNE/RNE.py,sha256=CVvdGbmfGHwhafGSxtSBq2hgRCMqVj0tmurS0xwwQao,39014
|
|
|
308
310
|
radboy/RNE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
309
311
|
radboy/RNE/dateAhead.py,sha256=g5pp84vteEkYlxRi5rgo6p2Z6PyoBmozljlnWx8twMs,1594
|
|
310
312
|
radboy/RNE/__pycache__/RNE.cpython-312.pyc,sha256=TCmgh08Ac9MDZgJZwb-_cpCATcLu04wp_HPNtXBrwFw,54377
|
|
311
|
-
radboy/RNE/__pycache__/RNE.cpython-313.pyc,sha256=
|
|
313
|
+
radboy/RNE/__pycache__/RNE.cpython-313.pyc,sha256=LImIKDDPVB_WvYYSnGIgVg3r54BwHK4tea4PVnHUAI4,75540
|
|
312
314
|
radboy/RNE/__pycache__/__init__.cpython-312.pyc,sha256=uV2pHPbmeCebUp_7Fx1oOhe0ccQGsOtaCzVRFmj6IAg,266
|
|
313
315
|
radboy/RNE/__pycache__/__init__.cpython-313.pyc,sha256=7J11knluwp7WjdVRcd4526_Y1LJo_nH4Kg3rNKIc77U,145
|
|
314
316
|
radboy/Repack/Repack.py,sha256=JmGpsVWUIW71dwARwcuG_L2PP6puYbwRjVy1NJ9tYH8,42593
|
|
@@ -348,7 +350,7 @@ radboy/SystemSettings/__pycache__/__init__.cpython-312.pyc,sha256=aIzp4Po0t8EhSA
|
|
|
348
350
|
radboy/SystemSettings/__pycache__/__init__.cpython-313.pyc,sha256=QFDuoidxMWsGVLsy5lN-rDs6TP8nKJ4yyCyiamNOhwo,156
|
|
349
351
|
radboy/TasksMode/ReFormula.py,sha256=REDRJYub-OEOE6g14oRQOLOQwv8pHqVJy4NQk3CCM90,2255
|
|
350
352
|
radboy/TasksMode/SetEntryNEU.py,sha256=mkV9zAZe0lfpu_3coMuIILEzh6PgCNi7g9lJ4yDUpYM,20596
|
|
351
|
-
radboy/TasksMode/Tasks.py,sha256=
|
|
353
|
+
radboy/TasksMode/Tasks.py,sha256=Y3m1shP3WktAtnsFGQicd6RcC4pzX5EvlOsfI61XRDY,355386
|
|
352
354
|
radboy/TasksMode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
353
355
|
radboy/TasksMode/__pycache__/ReFormula.cpython-311.pyc,sha256=QEG3PwVw-8HTd_Mf9XbVcxU56F1fC9yBqWXYPLC39DU,4865
|
|
354
356
|
radboy/TasksMode/__pycache__/ReFormula.cpython-312.pyc,sha256=aX7BWm2PPjCTnxsbGUitR-2h9hq4AjaBiHMrUXvIl0Y,3967
|
|
@@ -357,7 +359,7 @@ radboy/TasksMode/__pycache__/SetEntryNEU.cpython-312.pyc,sha256=pCdFj61aPKkHL6Sv
|
|
|
357
359
|
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=jMSrUX9pvEhf67uVwrPE2ZlBCems8V7tHJ1LcC15ovU,24603
|
|
358
360
|
radboy/TasksMode/__pycache__/Tasks.cpython-311.pyc,sha256=6QOTJnLiXSKdF81hkhy3vyrz49PPhS20s5_0X52g3Hw,131120
|
|
359
361
|
radboy/TasksMode/__pycache__/Tasks.cpython-312.pyc,sha256=hyJwdaYaaRLdcrNxgg36diJ5iijX5_3I0UAORsj-6LU,310295
|
|
360
|
-
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=
|
|
362
|
+
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=kj9bwteY6u3ETBsO74c-aPcq1B2n9uqENEv8NwaLTEI,430033
|
|
361
363
|
radboy/TasksMode/__pycache__/__init__.cpython-311.pyc,sha256=PKV1JbihEacm639b53bZozRQvcllSkjGP3q8STVMxF4,234
|
|
362
364
|
radboy/TasksMode/__pycache__/__init__.cpython-312.pyc,sha256=ERgnEvRMiGSecWp1BpNzLdSq_SdKw7GvFWUvUM7bLVw,272
|
|
363
365
|
radboy/TasksMode/__pycache__/__init__.cpython-313.pyc,sha256=lvsTxukyvGKB3C0rdF9dQi_bvVh6ceDVINfwcuIsd0s,151
|
|
@@ -404,7 +406,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
404
406
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
405
407
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
406
408
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
407
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
409
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=Ph1LJ2JKrSZBtdIgQqBCEfNWigEnAwyyxfF2okfpXok,165
|
|
408
410
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
409
411
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
410
412
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -415,7 +417,7 @@ radboy/__pycache__/te.cpython-311.pyc,sha256=vI8eNUE5VVrfCQvnrJ7WuWpoKcLz-vVK3if
|
|
|
415
417
|
radboy/__pycache__/x.cpython-311.pyc,sha256=3jIvWoO5y5WqrL_hRmXNK8O0vO7DwJ4gufjm2b0V7VI,1963
|
|
416
418
|
radboy/preloader/__init__.py,sha256=lrGR0JF0dkDM8N9ORGUKH_MucUFx1-PI38YsvqS-wgA,926
|
|
417
419
|
radboy/preloader/preloader.py,sha256=vLZfFehbndvkV5O6TPlaZZRqOG-RpMQ5DseCpQpU4C8,14513
|
|
418
|
-
radboy/preloader/preloader_func.py,sha256
|
|
420
|
+
radboy/preloader/preloader_func.py,sha256=gWvdLrcM03hctD3yPH8kK5gGhvWss15OfQd1jZ4gbW8,12503
|
|
419
421
|
radboy/setCode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
420
422
|
radboy/setCode/setCode.py,sha256=8UOf4okbx-Zane99odeoLAS_lfIt8pIaFomN7EtnnVA,5202
|
|
421
423
|
radboy/setCode/__pycache__/__init__.cpython-311.pyc,sha256=cJuP5rve6Wn7ZO789tixyOlyrHZQWsBxDn9oZGoG5WE,232
|
|
@@ -432,7 +434,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
432
434
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
433
435
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
434
436
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
435
|
-
radboy-0.0.
|
|
436
|
-
radboy-0.0.
|
|
437
|
-
radboy-0.0.
|
|
438
|
-
radboy-0.0.
|
|
437
|
+
radboy-0.0.709.dist-info/METADATA,sha256=kF1p-S82mTkq2lwjFkddjcBo1GWzdRX-f3ndSp9TlZk,1891
|
|
438
|
+
radboy-0.0.709.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
439
|
+
radboy-0.0.709.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
440
|
+
radboy-0.0.709.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|