



from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_torch_available,
    is_vision_available,
)


snake_case     :    Any						=    {
    'configuration_sam': [
        'SAM_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'SamConfig',
        'SamMaskDecoderConfig',
        'SamPromptEncoderConfig',
        'SamVisionConfig',
    ],
    'processing_sam': ['SamProcessor'],
}


try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		snake_case     :    List[str]						=    [
		    'SAM_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'SamModel',
		    'SamPreTrainedModel',
		]
try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		snake_case     :    List[str]						=    [
		    'TF_SAM_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'TFSamModel',
		    'TFSamPreTrainedModel',
		]
try:
		if not is_vision_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		snake_case     :    List[Any]						=    ['SamImageProcessor']


if TYPE_CHECKING:
		from .configuration_sam import (
		    SAM_PRETRAINED_CONFIG_ARCHIVE_MAP,
		    SamConfig,
		    SamMaskDecoderConfig,
		    SamPromptEncoderConfig,
		    SamVisionConfig,
		)
		from .processing_sam import SamProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_sam import SAM_PRETRAINED_MODEL_ARCHIVE_LIST, SamModel, SamPreTrainedModel

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_sam import TF_SAM_PRETRAINED_MODEL_ARCHIVE_LIST, TFSamModel, TFSamPreTrainedModel

		try:
				if not is_vision_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .image_processing_sam import SamImageProcessor

else:
		import sys

		snake_case     :    Tuple						=    _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)

'''simple docstring'''
A__ :		dict[str, float]					={
    "kilogram": 1,
    "gram": pow(10, 3),
    "milligram": pow(10, 6),
    "metric-ton": pow(10, -3),
    "long-ton": 0.0_0_0_9_8_4_2_0_7_3,
    "short-ton": 0.0_0_1_1_0_2_3_1_2_2,
    "pound": 2.2_0_4_6_2_4_4_2_0_2,
    "stone": 0.1_5_7_4_7_3_1_7_2_8,
    "ounce": 3_5.2_7_3_9_9_0_7_2_3,
    "carrat": 5_000,
    "atomic-mass-unit": 6.0_2_2_1_3_6_6_5_2E2_6,
}

A__ :		dict[str, float]					={
    "kilogram": 1,
    "gram": pow(10, -3),
    "milligram": pow(10, -6),
    "metric-ton": pow(10, 3),
    "long-ton": 1_0_1_6.0_4_6_0_8,
    "short-ton": 9_0_7.1_8_4,
    "pound": 0.4_5_3_5_9_2,
    "stone": 6.3_5_0_2_9,
    "ounce": 0.0_2_8_3_4_9_5,
    "carrat": 0.0_0_0_2,
    "atomic-mass-unit": 1.6_6_0_5_4_0_1_9_9E-2_7,
}







def 							A_  (    __SCREAMING_SNAKE_CASE    :	str      ,  __SCREAMING_SNAKE_CASE    :	str      ,  __SCREAMING_SNAKE_CASE    :	float			)					->							float:





  """simple docstring"""

  if to_type not in KILOGRAM_CHART or from_type not in WEIGHT_TYPE_CHART:
    __A		:  Tuple       				=		(
        F"Invalid 'from_type' or 'to_type' value: {from_type!r}, {to_type!r}\n"
        F"Supported values are: {', '.join(__SCREAMING_SNAKE_CASE			)}"
    )
    raise ValueError(__SCREAMING_SNAKE_CASE			)
  return value * KILOGRAM_CHART[to_type] * WEIGHT_TYPE_CHART[from_type]


if __name__ == "__main__":
     import doctest

     doctest.testmod()



