from __future__ import annotations






def 				__lowerCamelCase		(						lowerCAmelCase__     ,  lowerCAmelCase__     ,  lowerCAmelCase__     ):
       if days_between_payments <= 0:
              raise ValueError('days_between_payments must be > 0'     )
       if daily_interest_rate < 0:
              raise ValueError('daily_interest_rate must be >= 0'     )
       if principal <= 0:
              raise ValueError('principal must be > 0'     )
       return principal * daily_interest_rate * days_between_payments






def 				__lowerCamelCase		(						lowerCAmelCase__     ,  lowerCAmelCase__     ,  lowerCAmelCase__     ,  ):
       if number_of_compounding_periods <= 0:
              raise ValueError('number_of_compounding_periods must be > 0'     )
       if nominal_annual_interest_rate_percentage < 0:
              raise ValueError('nominal_annual_interest_rate_percentage must be >= 0'     )
       if principal <= 0:
              raise ValueError('principal must be > 0'     )

       return principal * (
           (1 + nominal_annual_interest_rate_percentage) ** number_of_compounding_periods
           - 1
       )






def 				__lowerCamelCase		(						lowerCAmelCase__     ,  lowerCAmelCase__     ,  lowerCAmelCase__     ,  ):
       if number_of_years <= 0:
              raise ValueError('number_of_years must be > 0'     )
       if nominal_annual_percentage_rate < 0:
              raise ValueError('nominal_annual_percentage_rate must be >= 0'     )
       if principal <= 0:
              raise ValueError('principal must be > 0'     )

       return compound_interest(
           __lowerCamelCase     ,  nominal_annual_percentage_rate / 3_6_5     ,  number_of_years * 3_6_5     )


if __name__ == "__main__":
    import doctest

    doctest.testmod()


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCAmelCase__     						=			{
    'configuration_x_clip': [
        'XCLIP_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'XCLIPConfig',
        'XCLIPTextConfig',
        'XCLIPVisionConfig',
    ],
    'processing_x_clip': ['XCLIPProcessor'],
}

try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    lowerCAmelCase__     						=			[
        'XCLIP_PRETRAINED_MODEL_ARCHIVE_LIST',
        'XCLIPModel',
        'XCLIPPreTrainedModel',
        'XCLIPTextModel',
        'XCLIPVisionModel',
    ]

if TYPE_CHECKING:
    from .configuration_x_clip import (
        XCLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
        XCLIPConfig,
        XCLIPTextConfig,
        XCLIPVisionConfig,
    )
    from .processing_x_clip import XCLIPProcessor

    try:
        if not is_torch_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_x_clip import (
            XCLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
            XCLIPModel,
            XCLIPPreTrainedModel,
            XCLIPTextModel,
            XCLIPVisionModel,
        )

else:
    import sys

    lowerCAmelCase__     						=			_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)
