





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowercase				:	Union[str, Any]      						=  {
    "configuration_bigbird_pegasus": [
        "BIGBIRD_PEGASUS_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "BigBirdPegasusConfig",
        "BigBirdPegasusOnnxConfig",
    ],
}

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				lowercase				:	Optional[int]      						=  [
				    "BIGBIRD_PEGASUS_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "BigBirdPegasusForCausalLM",
				    "BigBirdPegasusForConditionalGeneration",
				    "BigBirdPegasusForQuestionAnswering",
				    "BigBirdPegasusForSequenceClassification",
				    "BigBirdPegasusModel",
				    "BigBirdPegasusPreTrainedModel",
				]


if TYPE_CHECKING:
				from .configuration_bigbird_pegasus import (
				    BIGBIRD_PEGASUS_PRETRAINED_CONFIG_ARCHIVE_MAP,
				    BigBirdPegasusConfig,
				    BigBirdPegasusOnnxConfig,
				)

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_bigbird_pegasus import (
								    BIGBIRD_PEGASUS_PRETRAINED_MODEL_ARCHIVE_LIST,
								    BigBirdPegasusForCausalLM,
								    BigBirdPegasusForConditionalGeneration,
								    BigBirdPegasusForQuestionAnswering,
								    BigBirdPegasusForSequenceClassification,
								    BigBirdPegasusModel,
								    BigBirdPegasusPreTrainedModel,
								)


else:
				import sys

				lowercase				:	Any      						=  _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)









def A_     (		A__		,				A__		,				A__    )  ->		float:
       if principal <= 0:
              raise Exception('Principal borrowed must be > 0'    )
       if rate_per_annum < 0:
              raise Exception('Rate of interest must be >= 0'    )
       if years_to_repay <= 0 or not isinstance(A__		,				A__    ):
              raise Exception('Years to repay must be an integer > 0'    )

       # Yearly rate is divided by 12 to get monthly rate
       a__						:     str			=    rate_per_annum / 12

       # Years to repay is multiplied by 12 to get number of payments as payment is monthly
       a__						:     List[Any]			=    years_to_repay * 12

       return (
           principal
           * rate_per_month
           * (1 + rate_per_month) ** number_of_payments
           / ((1 + rate_per_month) ** number_of_payments - 1)
       )


if __name__ == "__main__":
    import doctest

    doctest.testmod()


