






'''simple docstring'''





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


_a    :   List[Any]        =			{
    """configuration_chinese_clip""": [
        """CHINESE_CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """ChineseCLIPConfig""",
        """ChineseCLIPOnnxConfig""",
        """ChineseCLIPTextConfig""",
        """ChineseCLIPVisionConfig""",
    ],
    """processing_chinese_clip""": ["""ChineseCLIPProcessor"""],
}

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _a    :   str        =			["""ChineseCLIPFeatureExtractor"""]
 _a    :   int        =			["""ChineseCLIPImageProcessor"""]

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _a    :   int        =			[
     """CHINESE_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST""",
     """ChineseCLIPModel""",
     """ChineseCLIPPreTrainedModel""",
     """ChineseCLIPTextModel""",
     """ChineseCLIPVisionModel""",
 ]

if TYPE_CHECKING:
 from .configuration_chinese_clip import (
     CHINESE_CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
     ChineseCLIPConfig,
     ChineseCLIPOnnxConfig,
     ChineseCLIPTextConfig,
     ChineseCLIPVisionConfig,
 )
 from .processing_chinese_clip import ChineseCLIPProcessor

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .feature_extraction_chinese_clip import ChineseCLIPFeatureExtractor, ChineseCLIPImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_chinese_clip import (
      CHINESE_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
      ChineseCLIPModel,
      ChineseCLIPPreTrainedModel,
      ChineseCLIPTextModel,
      ChineseCLIPVisionModel,
  )

else:
 import sys

 _a    :   str        =			_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)











def 				snake_case__							(							UpperCAmelCase							:  float    ,			UpperCAmelCase							:  list[float]       ):
    if discount_rate < 0:
        raise ValueError("Discount rate cannot be negative"       )
    if not cash_flows:
        raise ValueError("Cash flows list cannot be empty"       )
    lowerCAmelCase__   :List[Any]      							=				sum(
        cash_flow / ((1 + discount_rate) ** i) for i, cash_flow in enumerate(UpperCAmelCase       )       )
    return round(UpperCAmelCase    ,			ndigits=2       )


if __name__ == "__main__":
 import doctest

 doctest.testmod()



