






from typing import TYPE_CHECKING

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


UpperCAmelCase_ :						str      =      {'''configuration_opt''': ['''OPT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''OPTConfig''']}

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	UpperCAmelCase_ :						Tuple      =      [
	    '''OPT_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''OPTForCausalLM''',
	    '''OPTModel''',
	    '''OPTPreTrainedModel''',
	    '''OPTForSequenceClassification''',
	    '''OPTForQuestionAnswering''',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	UpperCAmelCase_ :						Any      =      ['''TFOPTForCausalLM''', '''TFOPTModel''', '''TFOPTPreTrainedModel''']

try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	UpperCAmelCase_ :						Optional[Any]      =      [
	    '''FlaxOPTForCausalLM''',
	    '''FlaxOPTModel''',
	    '''FlaxOPTPreTrainedModel''',
	]


if TYPE_CHECKING:
	from .configuration_opt import OPT_PRETRAINED_CONFIG_ARCHIVE_MAP, OPTConfig

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_opt import (
		    OPT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    OPTForCausalLM,
		    OPTForQuestionAnswering,
		    OPTForSequenceClassification,
		    OPTModel,
		    OPTPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_opt import TFOPTForCausalLM, TFOPTModel, TFOPTPreTrainedModel

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_opt import FlaxOPTForCausalLM, FlaxOPTModel, FlaxOPTPreTrainedModel

else:
	import sys

	UpperCAmelCase_ :						List[Any]      =      _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)








from ...utils import (
    OptionalDependencyNotAvailable,
    is_torch_available,
    is_transformers_available,
    is_transformers_version,
)


try:
	if not (is_transformers_available() and is_torch_available()):
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	from ...utils.dummy_torch_and_transformers_objects import ShapEPipeline
else:
	from .camera import create_pan_cameras
	from .pipeline_shap_e import ShapEPipeline
	from .pipeline_shap_e_img2img import ShapEImgaImgPipeline
	from .renderer import (
	    BoundingBoxVolume,
	    ImportanceRaySampler,
	    MLPNeRFModelOutput,
	    MLPNeRSTFModel,
	    ShapEParamsProjModel,
	    ShapERenderer,
	    StratifiedRaySampler,
	    VoidNeRFModel,
	)
