radboy 0.0.712__py3-none-any.whl → 0.0.714__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/OrderedAndRxd.py +6 -0
- radboy/DB/Prompt.py +63 -46
- radboy/DB/__pycache__/Prompt.cpython-313.pyc +0 -0
- radboy/FB/FormBuilder.py +257 -254
- radboy/FB/__pycache__/FormBuilder.cpython-313.pyc +0 -0
- radboy/__init__.py +1 -1
- radboy/__pycache__/__init__.cpython-313.pyc +0 -0
- radboy/preloader/preloader.py +34 -0
- radboy/preloader/preloader_func.py +298 -164
- {radboy-0.0.712.dist-info → radboy-0.0.714.dist-info}/METADATA +1 -1
- {radboy-0.0.712.dist-info → radboy-0.0.714.dist-info}/RECORD +13 -13
- {radboy-0.0.712.dist-info → radboy-0.0.714.dist-info}/WHEEL +0 -0
- {radboy-0.0.712.dist-info → radboy-0.0.714.dist-info}/top_level.txt +0 -0
|
@@ -25,65 +25,69 @@ import json,sys,math,re,calendar,hashlib,haversine
|
|
|
25
25
|
from time import sleep
|
|
26
26
|
import itertools
|
|
27
27
|
import decimal
|
|
28
|
+
from decimal import localcontext,Decimal
|
|
28
29
|
unit_registry=pint.UnitRegistry()
|
|
30
|
+
import math
|
|
29
31
|
def area_triangle():
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if base is None:
|
|
39
|
-
return
|
|
40
|
-
elif base in ['d',]:
|
|
41
|
-
base=unit_registry.Quantity('1')
|
|
42
|
-
else:
|
|
43
|
-
base=unit_registry.Quantity(base)
|
|
44
|
-
break
|
|
45
|
-
except Exception as e:
|
|
46
|
-
print(e)
|
|
32
|
+
with localcontext() as ctx:
|
|
33
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
34
|
+
height=None
|
|
35
|
+
base=None
|
|
36
|
+
'''
|
|
37
|
+
A=hbb/2
|
|
38
|
+
'''
|
|
39
|
+
while True:
|
|
47
40
|
try:
|
|
48
|
-
base=Control(func=FormBuilderMkText,ptext="base
|
|
41
|
+
base=Control(func=FormBuilderMkText,ptext="base",helpText="base width",data="string")
|
|
49
42
|
if base is None:
|
|
50
43
|
return
|
|
51
44
|
elif base in ['d',]:
|
|
52
|
-
base=
|
|
45
|
+
base=unit_registry.Quantity('1')
|
|
46
|
+
else:
|
|
47
|
+
base=unit_registry.Quantity(base)
|
|
53
48
|
break
|
|
54
49
|
except Exception as e:
|
|
55
|
-
|
|
50
|
+
print(e)
|
|
51
|
+
try:
|
|
52
|
+
base=Control(func=FormBuilderMkText,ptext="base no units",helpText="base width,do not include units",data="dec.dec")
|
|
53
|
+
if base is None:
|
|
54
|
+
return
|
|
55
|
+
elif base in ['d',]:
|
|
56
|
+
base=decc(1)
|
|
57
|
+
break
|
|
58
|
+
except Exception as e:
|
|
59
|
+
continue
|
|
56
60
|
|
|
57
|
-
|
|
58
|
-
try:
|
|
59
|
-
height=Control(func=FormBuilderMkText,ptext="height",helpText="height width",data="string")
|
|
60
|
-
if height is None:
|
|
61
|
-
return
|
|
62
|
-
elif height in ['d',]:
|
|
63
|
-
height=unit_registry.Quantity('1')
|
|
64
|
-
else:
|
|
65
|
-
height=unit_registry.Quantity(height)
|
|
66
|
-
break
|
|
67
|
-
except Exception as e:
|
|
68
|
-
print(e)
|
|
61
|
+
while True:
|
|
69
62
|
try:
|
|
70
|
-
height=Control(func=FormBuilderMkText,ptext="height
|
|
63
|
+
height=Control(func=FormBuilderMkText,ptext="height",helpText="height width",data="string")
|
|
71
64
|
if height is None:
|
|
72
65
|
return
|
|
73
66
|
elif height in ['d',]:
|
|
74
|
-
height=
|
|
67
|
+
height=unit_registry.Quantity('1')
|
|
68
|
+
else:
|
|
69
|
+
height=unit_registry.Quantity(height)
|
|
75
70
|
break
|
|
76
71
|
except Exception as e:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
72
|
+
print(e)
|
|
73
|
+
try:
|
|
74
|
+
height=Control(func=FormBuilderMkText,ptext="height no units",helpText="height width, do not include units",data="dec.dec")
|
|
75
|
+
if height is None:
|
|
76
|
+
return
|
|
77
|
+
elif height in ['d',]:
|
|
78
|
+
height=decc(1)
|
|
79
|
+
break
|
|
80
|
+
except Exception as e:
|
|
81
|
+
continue
|
|
82
|
+
print(type(height),height,type(base))
|
|
83
|
+
if isinstance(height,decimal.Decimal) and isinstance(base,decimal.Decimal):
|
|
84
|
+
return decc((height*base)/decc(2))
|
|
85
|
+
elif isinstance(height,pint.Quantity) and isinstance(base,pint.Quantity):
|
|
86
|
+
return ((height.to(base)*base)/2)
|
|
87
|
+
elif isinstance(height,pint.Quantity) and isinstance(base,decimal.Decimal):
|
|
88
|
+
return ((height*unit_registry.Quantity(base,height.units))/2)
|
|
89
|
+
elif isinstance(height,decimal.Decimal) and isinstance(base,pint.Quantity):
|
|
90
|
+
return ((unit_registry.Quantity(height,base.units)*base)/2)
|
|
87
91
|
|
|
88
92
|
class Taxable:
|
|
89
93
|
def general_taxable(self):
|
|
@@ -196,144 +200,152 @@ juices)''',
|
|
|
196
200
|
|
|
197
201
|
#tax rate tools go here
|
|
198
202
|
def AddNewTaxRate(excludes=['txrt_id','DTOE']):
|
|
199
|
-
with
|
|
200
|
-
|
|
203
|
+
with localcontext() as ctx:
|
|
204
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
205
|
+
with Session(ENGINE) as session:
|
|
206
|
+
'''AddNewTaxRate() -> None
|
|
201
207
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
208
|
+
add a new taxrate to db.'''
|
|
209
|
+
tr=TaxRate()
|
|
210
|
+
session.add(tr)
|
|
211
|
+
session.commit()
|
|
212
|
+
session.refresh(tr)
|
|
213
|
+
fields={i.name:{
|
|
214
|
+
'default':getattr(tr,i.name),
|
|
215
|
+
'type':str(i.type).lower()} for i in tr.__table__.columns if i.name not in excludes
|
|
216
|
+
}
|
|
211
217
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
+
fd=FormBuilder(data=fields)
|
|
219
|
+
if fd is None:
|
|
220
|
+
session.delete(tr)
|
|
221
|
+
return
|
|
222
|
+
for k in fd:
|
|
223
|
+
setattr(tr,k,fd[k])
|
|
218
224
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
+
|
|
226
|
+
session.add(tr)
|
|
227
|
+
session.commit()
|
|
228
|
+
session.refresh(tr)
|
|
229
|
+
print(tr)
|
|
230
|
+
return tr.TaxRate
|
|
225
231
|
|
|
226
232
|
def GetTaxRate(excludes=['txrt_id','DTOE']):
|
|
227
|
-
with
|
|
228
|
-
|
|
233
|
+
with localcontext() as ctx:
|
|
234
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
235
|
+
with Session(ENGINE) as session:
|
|
236
|
+
'''GetTaxRate() -> TaxRate:Decimal
|
|
229
237
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
+
search for and return a Decimal/decc
|
|
239
|
+
taxrate for use by prompt.
|
|
240
|
+
'''
|
|
241
|
+
tr=TaxRate()
|
|
242
|
+
fields={i.name:{
|
|
243
|
+
'default':getattr(tr,i.name),
|
|
244
|
+
'type':str(i.type).lower()} for i in tr.__table__.columns if i.name not in excludes
|
|
245
|
+
}
|
|
238
246
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
return
|
|
242
|
-
for k in fd:
|
|
243
|
-
setattr(tr,k,fd[k])
|
|
244
|
-
#and_
|
|
245
|
-
filte=[]
|
|
246
|
-
for k in fd:
|
|
247
|
-
if fd[k] is not None:
|
|
248
|
-
if isinstance(fd[k],str):
|
|
249
|
-
filte.append(getattr(TaxRate,k).icontains(fd[k]))
|
|
250
|
-
else:
|
|
251
|
-
filte.append(getattr(tr,k)==fd[k])
|
|
252
|
-
|
|
253
|
-
results=session.query(TaxRate).filter(and_(*filte)).all()
|
|
254
|
-
ct=len(results)
|
|
255
|
-
htext=[]
|
|
256
|
-
for num,i in enumerate(results):
|
|
257
|
-
m=std_colorize(i,num,ct)
|
|
258
|
-
print(m)
|
|
259
|
-
htext.append(m)
|
|
260
|
-
htext='\n'.join(htext)
|
|
261
|
-
if ct < 1:
|
|
262
|
-
print(f"{Fore.light_red}There is nothing to work on in TaxRates that match your criteria.{Style.reset}")
|
|
263
|
-
return
|
|
264
|
-
while True:
|
|
265
|
-
select=Control(func=FormBuilderMkText,ptext="Which index to return for tax rate[NAN=0.0000]?",helpText=htext,data="integer")
|
|
266
|
-
print(select)
|
|
267
|
-
if select is None:
|
|
247
|
+
fd=FormBuilder(data=fields,passThruText="GetTaxRate Search -> ")
|
|
248
|
+
if fd is None:
|
|
268
249
|
return
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if
|
|
275
|
-
|
|
250
|
+
for k in fd:
|
|
251
|
+
setattr(tr,k,fd[k])
|
|
252
|
+
#and_
|
|
253
|
+
filte=[]
|
|
254
|
+
for k in fd:
|
|
255
|
+
if fd[k] is not None:
|
|
256
|
+
if isinstance(fd[k],str):
|
|
257
|
+
filte.append(getattr(TaxRate,k).icontains(fd[k]))
|
|
258
|
+
else:
|
|
259
|
+
filte.append(getattr(tr,k)==fd[k])
|
|
260
|
+
|
|
261
|
+
results=session.query(TaxRate).filter(and_(*filte)).all()
|
|
262
|
+
ct=len(results)
|
|
263
|
+
htext=[]
|
|
264
|
+
for num,i in enumerate(results):
|
|
265
|
+
m=std_colorize(i,num,ct)
|
|
266
|
+
print(m)
|
|
267
|
+
htext.append(m)
|
|
268
|
+
htext='\n'.join(htext)
|
|
269
|
+
if ct < 1:
|
|
270
|
+
print(f"{Fore.light_red}There is nothing to work on in TaxRates that match your criteria.{Style.reset}")
|
|
271
|
+
return
|
|
272
|
+
while True:
|
|
273
|
+
select=Control(func=FormBuilderMkText,ptext="Which index to return for tax rate[NAN=0.0000]?",helpText=htext,data="integer")
|
|
274
|
+
print(select)
|
|
275
|
+
if select is None:
|
|
276
|
+
return
|
|
277
|
+
elif isinstance(select,str) and select.upper() in ['NAN',]:
|
|
278
|
+
return 0
|
|
279
|
+
elif select in ['d',]:
|
|
280
|
+
return results[0].TaxRate
|
|
276
281
|
else:
|
|
277
|
-
|
|
282
|
+
if index_inList(select,results):
|
|
283
|
+
return results[select].TaxRate
|
|
284
|
+
else:
|
|
285
|
+
continue
|
|
278
286
|
|
|
279
287
|
def price_by_tax(total=False):
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
'
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
'
|
|
288
|
+
with localcontext() as ctx:
|
|
289
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
290
|
+
fields={
|
|
291
|
+
'price':{
|
|
292
|
+
'default':0,
|
|
293
|
+
'type':'dec.dec'
|
|
294
|
+
},
|
|
295
|
+
'rate':{
|
|
296
|
+
'default':GetTaxRate(),
|
|
297
|
+
'type':'dec.dec'
|
|
298
|
+
}
|
|
288
299
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
return
|
|
293
|
-
else:
|
|
294
|
-
price=fd['price']
|
|
295
|
-
rate=fd['rate']
|
|
296
|
-
if price is None:
|
|
297
|
-
price=0
|
|
298
|
-
if fd['rate'] is None:
|
|
299
|
-
rate=0
|
|
300
|
-
if total == False:
|
|
301
|
-
return decc(price,cf=4)*decc(rate,cf=4)
|
|
300
|
+
fd=FormBuilder(data=fields,passThruText="Tax on Price ->")
|
|
301
|
+
if fd is None:
|
|
302
|
+
return
|
|
302
303
|
else:
|
|
303
|
-
|
|
304
|
+
price=fd['price']
|
|
305
|
+
rate=fd['rate']
|
|
306
|
+
if price is None:
|
|
307
|
+
price=0
|
|
308
|
+
if fd['rate'] is None:
|
|
309
|
+
rate=0
|
|
310
|
+
if total == False:
|
|
311
|
+
return decc(price,cf=4)*decc(rate,cf=4)
|
|
312
|
+
else:
|
|
313
|
+
return (decc(price,cf=4)*decc(rate,cf=4))+decc(price,cf=4)
|
|
304
314
|
|
|
305
315
|
def price_plus_crv_by_tax(total=False):
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
'
|
|
316
|
+
with localcontext() as ctx:
|
|
317
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
318
|
+
fields={
|
|
319
|
+
'price':{
|
|
320
|
+
'default':0,
|
|
321
|
+
'type':'dec.dec'
|
|
322
|
+
},
|
|
323
|
+
'crv_total_for_pkg':{
|
|
324
|
+
'default':0,
|
|
325
|
+
'type':'dec.dec',
|
|
310
326
|
},
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
'rate':{
|
|
316
|
-
'default':GetTaxRate(),
|
|
317
|
-
'type':'dec.dec'
|
|
327
|
+
'rate':{
|
|
328
|
+
'default':GetTaxRate(),
|
|
329
|
+
'type':'dec.dec'
|
|
330
|
+
}
|
|
318
331
|
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
return
|
|
323
|
-
else:
|
|
324
|
-
price=fd['price']
|
|
325
|
-
rate=fd['rate']
|
|
326
|
-
crv=fd['crv_total_for_pkg']
|
|
327
|
-
if price is None:
|
|
328
|
-
price=0
|
|
329
|
-
if crv is None:
|
|
330
|
-
crv=0
|
|
331
|
-
if fd['rate'] is None:
|
|
332
|
-
rate=0
|
|
333
|
-
if total == False:
|
|
334
|
-
return (decc(price,cf=4)+decc(crv,cf=4))*decc(rate,cf=4)
|
|
332
|
+
fd=FormBuilder(data=fields,passThruText="Tax on (Price+CRV)")
|
|
333
|
+
if fd is None:
|
|
334
|
+
return
|
|
335
335
|
else:
|
|
336
|
-
|
|
336
|
+
price=fd['price']
|
|
337
|
+
rate=fd['rate']
|
|
338
|
+
crv=fd['crv_total_for_pkg']
|
|
339
|
+
if price is None:
|
|
340
|
+
price=0
|
|
341
|
+
if crv is None:
|
|
342
|
+
crv=0
|
|
343
|
+
if fd['rate'] is None:
|
|
344
|
+
rate=0
|
|
345
|
+
if total == False:
|
|
346
|
+
return (decc(price,cf=4)+decc(crv,cf=4))*decc(rate,cf=4)
|
|
347
|
+
else:
|
|
348
|
+
return (price+crv)+((decc(price,cf=4)+decc(crv,cf=4))*decc(rate,cf=4))
|
|
337
349
|
|
|
338
350
|
def DeleteTaxRate(excludes=['txrt_id','DTOE']):
|
|
339
351
|
with Session(ENGINE) as session:
|
|
@@ -460,3 +472,125 @@ def EditTaxRate(excludes=['txrt_id','DTOE']):
|
|
|
460
472
|
else:
|
|
461
473
|
continue
|
|
462
474
|
|
|
475
|
+
def heronsFormula():
|
|
476
|
+
with localcontext() as ctx:
|
|
477
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
478
|
+
'''
|
|
479
|
+
Calculate the semi-perimeter (s): Add the lengths of the three sides and divide by 2.
|
|
480
|
+
s = (a + b + c) / 2
|
|
481
|
+
'''
|
|
482
|
+
fields={
|
|
483
|
+
'side 1':{
|
|
484
|
+
'default':1,
|
|
485
|
+
'type':'dec.dec'
|
|
486
|
+
},
|
|
487
|
+
'side 2':{
|
|
488
|
+
'default':1,
|
|
489
|
+
'type':'dec.dec'
|
|
490
|
+
},
|
|
491
|
+
'side 3':{
|
|
492
|
+
'default':1,
|
|
493
|
+
'type':'dec.dec'
|
|
494
|
+
},
|
|
495
|
+
}
|
|
496
|
+
fd=FormBuilder(data=fields)
|
|
497
|
+
if fd is None:
|
|
498
|
+
return
|
|
499
|
+
|
|
500
|
+
s=(fd['side 1']+fd['side 2']+fd['side 3'])/2
|
|
501
|
+
'''Apply Heron's formula: Substitute the semi-perimeter (s) and the side lengths (a, b, and c) into the formula:
|
|
502
|
+
Area = √(s(s-a)(s-b)(s-c))'''
|
|
503
|
+
Area=math.sqrt(s*(s-fd['side 1'])*(s-fd['side 2'])*(s-fd['side 3']))
|
|
504
|
+
return Area
|
|
505
|
+
|
|
506
|
+
def volumeCylinderRadius():
|
|
507
|
+
with localcontext() as ctx:
|
|
508
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
509
|
+
'''
|
|
510
|
+
Volume of a cylinder: Used for cylindrical storage bins, silos, or tanks.(V=pi r^{2}h)
|
|
511
|
+
'''
|
|
512
|
+
fields={
|
|
513
|
+
'height':{
|
|
514
|
+
'default':1,
|
|
515
|
+
'type':'dec.dec'
|
|
516
|
+
},
|
|
517
|
+
'radius':{
|
|
518
|
+
'default':1,
|
|
519
|
+
'type':'dec.dec'
|
|
520
|
+
},
|
|
521
|
+
}
|
|
522
|
+
fd=FormBuilder(data=fields)
|
|
523
|
+
if fd is None:
|
|
524
|
+
return
|
|
525
|
+
|
|
526
|
+
volume=Decimal(math.pi)*(fd['radius']**2)*fd['height']
|
|
527
|
+
return volume
|
|
528
|
+
|
|
529
|
+
def volumeCylinderDiameter():
|
|
530
|
+
with localcontext() as ctx:
|
|
531
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
532
|
+
'''
|
|
533
|
+
Volume of a cylinder: Used for cylindrical storage bins, silos, or tanks.(V=pi r^{2}h)
|
|
534
|
+
'''
|
|
535
|
+
fields={
|
|
536
|
+
'height':{
|
|
537
|
+
'default':1,
|
|
538
|
+
'type':'dec.dec'
|
|
539
|
+
},
|
|
540
|
+
'diameter':{
|
|
541
|
+
'default':1,
|
|
542
|
+
'type':'dec.dec'
|
|
543
|
+
},
|
|
544
|
+
}
|
|
545
|
+
fd=FormBuilder(data=fields)
|
|
546
|
+
if fd is None:
|
|
547
|
+
return
|
|
548
|
+
|
|
549
|
+
volume=Decimal(math.pi)*((fd['diameter']/2)**2)*fd['height']
|
|
550
|
+
return volume
|
|
551
|
+
|
|
552
|
+
def volumeConeRadius():
|
|
553
|
+
with localcontext() as ctx:
|
|
554
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
555
|
+
'''
|
|
556
|
+
Volume of a cylinder: Used for cylindrical storage bins, silos, or tanks.(V=pi r^{2}h)
|
|
557
|
+
'''
|
|
558
|
+
fields={
|
|
559
|
+
'height':{
|
|
560
|
+
'default':1,
|
|
561
|
+
'type':'dec.dec'
|
|
562
|
+
},
|
|
563
|
+
'radius':{
|
|
564
|
+
'default':1,
|
|
565
|
+
'type':'dec.dec'
|
|
566
|
+
},
|
|
567
|
+
}
|
|
568
|
+
fd=FormBuilder(data=fields)
|
|
569
|
+
if fd is None:
|
|
570
|
+
return
|
|
571
|
+
|
|
572
|
+
volume=Decimal(1/3)*(Decimal(math.pi)*(fd['radius']**2)*fd['height'])
|
|
573
|
+
return volume
|
|
574
|
+
|
|
575
|
+
def volumeConeDiameter():
|
|
576
|
+
with localcontext() as ctx:
|
|
577
|
+
ctx.prec=int(db.detectGetOrSet("lsbld ROUNDTO default",4,setValue=False,literal=True))
|
|
578
|
+
'''
|
|
579
|
+
Volume of a cylinder: Used for cylindrical storage bins, silos, or tanks.(V=pi r^{2}h)
|
|
580
|
+
'''
|
|
581
|
+
fields={
|
|
582
|
+
'height':{
|
|
583
|
+
'default':1,
|
|
584
|
+
'type':'dec.dec'
|
|
585
|
+
},
|
|
586
|
+
'diameter':{
|
|
587
|
+
'default':1,
|
|
588
|
+
'type':'dec.dec'
|
|
589
|
+
},
|
|
590
|
+
}
|
|
591
|
+
fd=FormBuilder(data=fields)
|
|
592
|
+
if fd is None:
|
|
593
|
+
return
|
|
594
|
+
|
|
595
|
+
volume=Decimal(1/3)*(Decimal(math.pi)*((fd['diameter']/2)**2)*fd['height'])
|
|
596
|
+
return volume
|
|
@@ -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=knF7756I5eX5wXmKdi4xUHUZw_nwtlS7rvIbRRLbI7E,17
|
|
9
9
|
radboy/api_key,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
radboy/case-export-2024-05-14-13-10-00.672971.xlsx,sha256=Wd592d_VLFmfUI9KKKSVjNwjV91euc1T7ATyvwvUhlg,5431
|
|
11
11
|
radboy/case-export-2024-05-14-13-13-22.540614.xlsx,sha256=OnGrhmScHfGp_mVaWW-LNMsqrQgyZDpiU3wV-2s3U5Q,5556
|
|
@@ -84,11 +84,11 @@ radboy/DB/DisplayItemDb.py,sha256=uVvrNyFyBuKvrw-BEPXKYvfa-QWyFN5ahESi2l6vUUA,52
|
|
|
84
84
|
radboy/DB/EstimatedPayCalendarWorkSheet.txt,sha256=GOjRSmGxFoNTdAnpPe2kGv7CkXDrh0Mee01HslamGbo,17173
|
|
85
85
|
radboy/DB/ExerciseTracker.py,sha256=OS9i8jGIZPj-6m1bB0-eKNHQ6vf2iv_AYPEc0s4bkBM,27809
|
|
86
86
|
radboy/DB/LetterWriter.py,sha256=0B14GB-hJK2Xf_TFASriOELFygiI1LwkSb__R3tUiU0,2631
|
|
87
|
-
radboy/DB/OrderedAndRxd.py,sha256=
|
|
87
|
+
radboy/DB/OrderedAndRxd.py,sha256=gdOTxia6b6RN2h99e4uF87G7Rmujem1F0kr4Uuxy6dw,23166
|
|
88
88
|
radboy/DB/PayDay.py,sha256=H2kPGvBCDkMOz7lbxQhYtUt_oAInpxi37Q6MFrah98I,8710
|
|
89
89
|
radboy/DB/PayModels.py,sha256=hjwWxP7PL33hmfzQl5YTf0HqzaMxXJxFknPdxFJXJc8,3499
|
|
90
90
|
radboy/DB/PrintLogging.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
-
radboy/DB/Prompt.py,sha256=
|
|
91
|
+
radboy/DB/Prompt.py,sha256=wdf8bH2huJNQzN80sKopPD7AWz_wFhZ67CbhQbGiJus,185475
|
|
92
92
|
radboy/DB/RandomStringUtil.py,sha256=eZCpR907WStgfbk4Evcghjv9hOkUDXH-iMXIq0-kXq8,24386
|
|
93
93
|
radboy/DB/ResetTools.py,sha256=RbI-Ua7UlsN0S9qLqtEkTWvzyTZ6R-hHR3CW4NHlUPE,6660
|
|
94
94
|
radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,4013
|
|
@@ -117,7 +117,7 @@ radboy/DB/__pycache__/FormBuilder.cpython-312.pyc,sha256=p1o-5SMRL8OXP_XQ5liUpf-
|
|
|
117
117
|
radboy/DB/__pycache__/PrintLogging.cpython-312.pyc,sha256=pIAFqTi6OiQQORSc-oMH1zAbsdH7sY1TifxrN_QOvnU,148
|
|
118
118
|
radboy/DB/__pycache__/Prompt.cpython-311.pyc,sha256=P2uPRpeqfLFtxieZ0JHBG3X_HZzWUCsFSLb_fpRqky0,6407
|
|
119
119
|
radboy/DB/__pycache__/Prompt.cpython-312.pyc,sha256=6CcQ1gE2hcz3cKPjo4f6d7xNM2PTDnl8NzQG0Pme5BE,142886
|
|
120
|
-
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=
|
|
120
|
+
radboy/DB/__pycache__/Prompt.cpython-313.pyc,sha256=CoQNDnFr2_B_4nJ7nKTxzi_bU7u13Sugnqb6Tg0fAQg,263833
|
|
121
121
|
radboy/DB/__pycache__/RandomStringUtil.cpython-312.pyc,sha256=TrbEY89MuLmNlvoo5d8vOE6Dyshh5_EMlTZvk8MDVN4,48597
|
|
122
122
|
radboy/DB/__pycache__/RandomStringUtil.cpython-313.pyc,sha256=MCcgVwV2Y-9rAY2FVaJZCKcou3HDX70EZudoiCigT0o,49217
|
|
123
123
|
radboy/DB/__pycache__/ResetTools.cpython-311.pyc,sha256=4Vyc57iAAF0yRPjjglnVKovnTn8OoFIi6Zok3Wpj_YM,9292
|
|
@@ -201,12 +201,12 @@ radboy/ExtractPkg/__pycache__/__init__.cpython-311.pyc,sha256=62yPgrgPZffZFLr6Fs
|
|
|
201
201
|
radboy/ExtractPkg/__pycache__/__init__.cpython-312.pyc,sha256=Ll1iKcG0MDtoCIloQ_frcihvCSe1HPtyERzcAoXwQT0,273
|
|
202
202
|
radboy/ExtractPkg/__pycache__/__init__.cpython-313.pyc,sha256=kL3Y3KxCTaGNg3aq5fhf2fsnQHZolGfvniEUfsx2bwY,152
|
|
203
203
|
radboy/FB/FBMTXT.py,sha256=6PodraQPmIsEcbvYv-AR0AIoK630kjF50raPgqiCuvI,42230
|
|
204
|
-
radboy/FB/FormBuilder.py,sha256=
|
|
204
|
+
radboy/FB/FormBuilder.py,sha256=gbpzLcjL292aAHGimQFvrhnhMnMpDCwKQ0L3jio7FG8,20156
|
|
205
205
|
radboy/FB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
206
206
|
radboy/FB/__pycache__/FBMTXT.cpython-312.pyc,sha256=XCVFa7Mo83LGIdRrTvcK73siUpcVIEQfXKCH2QHeViw,9626
|
|
207
207
|
radboy/FB/__pycache__/FBMTXT.cpython-313.pyc,sha256=lPsj5ps9SqSccQuZKFuaAVkQT-3uma68J3FSPKHA_cc,56574
|
|
208
208
|
radboy/FB/__pycache__/FormBuilder.cpython-312.pyc,sha256=lNQdB-zApsXM7OQF9MIi0zRZD1SAL6stKEN-AyQiIKg,18873
|
|
209
|
-
radboy/FB/__pycache__/FormBuilder.cpython-313.pyc,sha256=
|
|
209
|
+
radboy/FB/__pycache__/FormBuilder.cpython-313.pyc,sha256=Ydb7h_VUHhKWhF8eJHnkm3TNMoL5Da1BysxN0CWCMA0,26069
|
|
210
210
|
radboy/FB/__pycache__/__init__.cpython-312.pyc,sha256=ULEL8Au_CxcYpNAcSoSbI65M7-av1W6Zuy6kQJUu-Mw,265
|
|
211
211
|
radboy/FB/__pycache__/__init__.cpython-313.pyc,sha256=Mp4kqFJa86-gyUu1vr9rubcUHUDr-O75hevV5IQdSFw,144
|
|
212
212
|
radboy/GDOWN/GDOWN.py,sha256=Z5q6TR92I4eQpxhsJpOwhH__f1tK2IcGctPRw8OAEr8,798
|
|
@@ -406,7 +406,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
406
406
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
407
407
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
408
408
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
409
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
409
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=Wc4FIDuyxBS5yhhY9PanTJSoIj6ai3CEhqcOmyRLPtU,165
|
|
410
410
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
411
411
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
412
412
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -416,8 +416,8 @@ radboy/__pycache__/t.cpython-311.pyc,sha256=bVszNkmfiyoNLd0WUc8aBJc2geGseW4O28cq
|
|
|
416
416
|
radboy/__pycache__/te.cpython-311.pyc,sha256=vI8eNUE5VVrfCQvnrJ7WuWpoKcLz-vVK3ifdUZ4UNhk,592
|
|
417
417
|
radboy/__pycache__/x.cpython-311.pyc,sha256=3jIvWoO5y5WqrL_hRmXNK8O0vO7DwJ4gufjm2b0V7VI,1963
|
|
418
418
|
radboy/preloader/__init__.py,sha256=lrGR0JF0dkDM8N9ORGUKH_MucUFx1-PI38YsvqS-wgA,926
|
|
419
|
-
radboy/preloader/preloader.py,sha256=
|
|
420
|
-
radboy/preloader/preloader_func.py,sha256=
|
|
419
|
+
radboy/preloader/preloader.py,sha256=b66i5CTmUiPzfd3XRO1ydJqFF53eQiqnBeVZlDOpTIY,15898
|
|
420
|
+
radboy/preloader/preloader_func.py,sha256=3aBCkvEROsefwbhiuxTYg1EnklE3odQ6see-N-DLSyQ,16177
|
|
421
421
|
radboy/setCode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
422
422
|
radboy/setCode/setCode.py,sha256=8UOf4okbx-Zane99odeoLAS_lfIt8pIaFomN7EtnnVA,5202
|
|
423
423
|
radboy/setCode/__pycache__/__init__.cpython-311.pyc,sha256=cJuP5rve6Wn7ZO789tixyOlyrHZQWsBxDn9oZGoG5WE,232
|
|
@@ -434,7 +434,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
434
434
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
435
435
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
436
436
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
437
|
-
radboy-0.0.
|
|
438
|
-
radboy-0.0.
|
|
439
|
-
radboy-0.0.
|
|
440
|
-
radboy-0.0.
|
|
437
|
+
radboy-0.0.714.dist-info/METADATA,sha256=pxSTz6MKgS6tFbz18xZ570ZRqBg5rnYx6T8oH_rD5f8,1891
|
|
438
|
+
radboy-0.0.714.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
439
|
+
radboy-0.0.714.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
440
|
+
radboy-0.0.714.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|