






'''simple docstring'''







from __future__ import annotations






def  lowerCAmelCase__		(					a_  :     Optional[Any]			)   -> Optional[int]:
       UpperCAmelCase__	:   int
       UpperCAmelCase__	:   list[str]												=	list(a_			)
       UpperCAmelCase__	:   Any												=	_vector[:-1], int(_vector[-1]			)
       UpperCAmelCase__	:   list[int]												=	[int(a_			) for digit in __vector]

       vector.reverse()
       for i, digit in enumerate(a_			):
              if i & 1 == 0:
                     UpperCAmelCase__	:   int												=	digit * 2
                     if doubled > 9:
                            doubled -= 9
                     check_digit += doubled
              else:
                     check_digit += digit

       return check_digit % 1_0 == 0


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  assert is_luhn("79927398713")
  assert not is_luhn("79927398714")






from typing import TYPE_CHECKING

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


__lowerCAmelCase			:Optional[int]	 =     {
    'configuration_mobilenet_v1': [
        'MOBILENET_V1_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'MobileNetV1Config',
        'MobileNetV1OnnxConfig',
    ],
}

try:
							if not is_vision_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							__lowerCAmelCase			:Dict	 =     ['MobileNetV1FeatureExtractor']
							__lowerCAmelCase			:List[Any]	 =     ['MobileNetV1ImageProcessor']

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							__lowerCAmelCase			:Optional[int]	 =     [
							    'MOBILENET_V1_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'MobileNetV1ForImageClassification',
							    'MobileNetV1Model',
							    'MobileNetV1PreTrainedModel',
							    'load_tf_weights_in_mobilenet_v1',
							]


if TYPE_CHECKING:
							from .configuration_mobilenet_va import (
							    MOBILENET_V1_PRETRAINED_CONFIG_ARCHIVE_MAP,
							    MobileNetVaConfig,
							    MobileNetVaOnnxConfig,
							)

							try:
														if not is_vision_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .feature_extraction_mobilenet_va import MobileNetVaFeatureExtractor
														from .image_processing_mobilenet_va import MobileNetVaImageProcessor

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_mobilenet_va import (
														    MOBILENET_V1_PRETRAINED_MODEL_ARCHIVE_LIST,
														    MobileNetVaForImageClassification,
														    MobileNetVaModel,
														    MobileNetVaPreTrainedModel,
														    load_tf_weights_in_mobilenet_va,
														)


else:
							import sys

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