kumisbespassung/steuer/einkommenssteuer.py
2017-11-12 17:44:32 +01:00

52 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python3
import configparser
import argparse
class TaxRates:
def __init__(self, config = "einkommenssteuer.ini"):
self.rates = {}
if config:
self.read_file(config)
def read_file(self, config, replace = True):
if replace:
self.rates = {}
parser = configparser.ConfigParser()
parser.read(config)
levels = [level for level in parser.sections() if level.startswith("tax")]
for level in levels:
self.add_rate(parser[level]["above"], parser[level]["rate"])
def add_rate(self, above, rate):
self.rates[int(above)] = int(rate)
def get_rate(self, income):
rate = 0
for level in sorted(self.rates.items()):
if level[0] < income:
rate = level[1]
else:
break
return rate
def get_taxes(self, income):
return income / 100 * self.get_rate(income)
def get_taxes(income):
return TaxRates().get_taxes(income)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("income", help="income to calculate taxes for", type=float)
args = parser.parse_args()
print(get_taxes(args.income))