
from typing import TYPE_CHECKING

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


_UpperCAmelCase					: Optional[int]      =       {
    "configuration_lxmert": ["LXMERT_PRETRAINED_CONFIG_ARCHIVE_MAP", "LxmertConfig"],
    "tokenization_lxmert": ["LxmertTokenizer"],
}

try:
					if not is_tokenizers_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					_UpperCAmelCase					: int      =       ["LxmertTokenizerFast"]

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					_UpperCAmelCase					: List[str]      =       [
					    "LxmertEncoder",
					    "LxmertForPreTraining",
					    "LxmertForQuestionAnswering",
					    "LxmertModel",
					    "LxmertPreTrainedModel",
					    "LxmertVisualFeatureEncoder",
					    "LxmertXLayer",
					]

try:
					if not is_tf_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					_UpperCAmelCase					: Optional[Any]      =       [
					    "TF_LXMERT_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "TFLxmertForPreTraining",
					    "TFLxmertMainLayer",
					    "TFLxmertModel",
					    "TFLxmertPreTrainedModel",
					    "TFLxmertVisualFeatureEncoder",
					]


if TYPE_CHECKING:
					from .configuration_lxmert import LXMERT_PRETRAINED_CONFIG_ARCHIVE_MAP, LxmertConfig
					from .tokenization_lxmert import LxmertTokenizer

					try:
										if not is_tokenizers_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .tokenization_lxmert_fast import LxmertTokenizerFast

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_lxmert import (
										    LxmertEncoder,
										    LxmertForPreTraining,
										    LxmertForQuestionAnswering,
										    LxmertModel,
										    LxmertPreTrainedModel,
										    LxmertVisualFeatureEncoder,
										    LxmertXLayer,
										)

					try:
										if not is_tf_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_tf_lxmert import (
										    TF_LXMERT_PRETRAINED_MODEL_ARCHIVE_LIST,
										    TFLxmertForPreTraining,
										    TFLxmertMainLayer,
										    TFLxmertModel,
										    TFLxmertPreTrainedModel,
										    TFLxmertVisualFeatureEncoder,
										)

else:
					import sys

					_UpperCAmelCase					: int      =       _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)


import os

from huggingface_hub.constants import HUGGINGFACE_HUB_CACHE, hf_cache_home


_UpperCAmelCase					: Optional[int]      =       HUGGINGFACE_HUB_CACHE


_UpperCAmelCase					: List[str]      =       "config.json"
_UpperCAmelCase					: Union[str, Any]      =       "diffusion_pytorch_model.bin"
_UpperCAmelCase					: List[Any]      =       "diffusion_flax_model.msgpack"
_UpperCAmelCase					: Optional[Any]      =       "model.onnx"
_UpperCAmelCase					: int      =       "diffusion_pytorch_model.safetensors"
_UpperCAmelCase					: Optional[Any]      =       "weights.pb"
_UpperCAmelCase					: Tuple      =       "https://huggingface.co"
_UpperCAmelCase					: Union[str, Any]      =       default_cache_path
_UpperCAmelCase					: Optional[Any]      =       "diffusers_modules"
_UpperCAmelCase					: List[Any]      =       os.getenv("HF_MODULES_CACHE", os.path.join(hf_cache_home, "modules"))
_UpperCAmelCase					: Tuple      =       ["fp16", "non-ema"]
_UpperCAmelCase					: Any      =       ".self_attn"
