netto.main ========== .. py:module:: netto.main Functions --------- .. autoapisummary:: netto.main.calc_netto netto.main.calc_inverse_netto Module Contents --------------- .. py:function:: calc_netto(salary: float, deductibles: float = 0, verbose: bool = False, config: netto.config.TaxConfig | None = None) -> float Calculate net income from gross salary. :param salary: Yearly gross salary :type salary: float :param deductibles: Additional deductibles that reduce taxable income :type deductibles: float, optional :param verbose: Print detailed calculation breakdown :type verbose: bool, optional :param config: Tax configuration (uses defaults if not provided) :type config: TaxConfig, optional :returns: Net income :rtype: float .. rubric:: Examples >>> calc_netto(50000) >>> calc_netto(50000, deductibles=10000) >>> calc_netto(50000, verbose=True) >>> config = TaxConfig(year=2025, is_married=True) >>> calc_netto(50000, config=config) .. py:function:: calc_inverse_netto(desired_netto: float, deductibles: float = 0, config: netto.config.TaxConfig | None = None) -> float Calculate required gross salary to reach desired net income. :param desired_netto: Desired net income :type desired_netto: float :param deductibles: Additional deductibles that reduce taxable income :type deductibles: float, optional :param config: Tax configuration (uses defaults if not provided) :type config: TaxConfig, optional :returns: Required gross salary :rtype: float .. rubric:: Examples >>> calc_inverse_netto(50000) >>> calc_inverse_netto(50000, deductibles=5000) >>> config = TaxConfig(year=2025, is_married=True) >>> calc_inverse_netto(50000, config=config)