
'''simple docstring'''
def 		A_(     A						:		float		,     A						:		float		,     A						:		int):
							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
							UpperCamelCase   			=     rate_per_annum / 12

							# Years to repay is multiplied by 12 to get number of payments as payment is monthly
							UpperCamelCase   			=     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()






'''simple docstring'''
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCAmelCase					:    Union[str, Any]           = {
    'configuration_git': ['GIT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'GitConfig', 'GitVisionConfig'],
    'processing_git': ['GitProcessor'],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase					:    List[Any]           = [
						    'GIT_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'GitForCausalLM',
						    'GitModel',
						    'GitPreTrainedModel',
						    'GitVisionModel',
						]

if TYPE_CHECKING:
						from .configuration_git import GIT_PRETRAINED_CONFIG_ARCHIVE_MAP, GitConfig, GitVisionConfig
						from .processing_git import GitProcessor

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_git import (
												    GIT_PRETRAINED_MODEL_ARCHIVE_LIST,
												    GitForCausalLM,
												    GitModel,
												    GitPreTrainedModel,
												    GitVisionModel,
												)

else:
						import sys

						lowerCAmelCase					:    Optional[Any]           = _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)




