



'''simple docstring'''





from typing import TYPE_CHECKING

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


__a          =		{"configuration_vit": ["VIT_PRETRAINED_CONFIG_ARCHIVE_MAP", "ViTConfig", "ViTOnnxConfig"]}

try:
       if not is_vision_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __a          =		["ViTFeatureExtractor"]
       __a          =		["ViTImageProcessor"]

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __a          =		[
           "VIT_PRETRAINED_MODEL_ARCHIVE_LIST",
           "ViTForImageClassification",
           "ViTForMaskedImageModeling",
           "ViTModel",
           "ViTPreTrainedModel",
       ]

try:
       if not is_tf_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __a          =		[
           "TFViTForImageClassification",
           "TFViTModel",
           "TFViTPreTrainedModel",
       ]

try:
       if not is_flax_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __a          =		[
           "FlaxViTForImageClassification",
           "FlaxViTModel",
           "FlaxViTPreTrainedModel",
       ]

if TYPE_CHECKING:
       from .configuration_vit import VIT_PRETRAINED_CONFIG_ARCHIVE_MAP, ViTConfig, ViTOnnxConfig

       try:
              if not is_vision_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .feature_extraction_vit import ViTFeatureExtractor
              from .image_processing_vit import ViTImageProcessor

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_vit import (
                  VIT_PRETRAINED_MODEL_ARCHIVE_LIST,
                  ViTForImageClassification,
                  ViTForMaskedImageModeling,
                  ViTModel,
                  ViTPreTrainedModel,
              )

       try:
              if not is_tf_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_tf_vit import TFViTForImageClassification, TFViTModel, TFViTPreTrainedModel

       try:
              if not is_flax_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_flax_vit import FlaxViTForImageClassification, FlaxViTModel, FlaxViTPreTrainedModel


else:
       import sys

       __a          =		_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





'''simple docstring'''





import string
from math import logaa





def 						__snake_case(				_lowerCAmelCase     ,   _lowerCAmelCase		)		-> int:
      snake_case__  :    List[str]    						=      document.translate(
          str.maketrans(""""""     ,   """"""     ,   string.punctuation		)		).replace("""\n"""     ,   """"""		)
      snake_case__  :    List[str]    						=      document_without_punctuation.split(""" """		)  # word tokenization
      return len([word for word in tokenize_document if word.lower() == term.lower()]		)





def 						__snake_case(				_lowerCAmelCase     ,   _lowerCAmelCase		)		-> tuple[int, int]:
      snake_case__  :    Dict    						=      corpus.lower().translate(
          str.maketrans(""""""     ,   """"""     ,   string.punctuation		)		)  # strip all punctuation and replace it with ''
      snake_case__  :    Any    						=      corpus_without_punctuation.split("""\n"""		)
      snake_case__  :    int    						=      term.lower()
      return (len([doc for doc in docs if term in doc]		), len(_lowerCAmelCase		))





def 						__snake_case(				_lowerCAmelCase     ,   _lowerCAmelCase     ,   _lowerCAmelCase=False		)		-> float:
      if smoothing:
            if n == 0:
                  raise ValueError("""log10(0) is undefined."""		)
            return round(1 + logaa(n / (1 + df)		)     ,   3		)

      if df == 0:
            raise ZeroDivisionError("""df must be > 0"""		)
      elif n == 0:
            raise ValueError("""log10(0) is undefined."""		)
      return round(logaa(n / df		)     ,   3		)





def 						__snake_case(				_lowerCAmelCase     ,   _lowerCAmelCase		)		-> float:
      return round(tf * idf     ,   3		)
