





from typing import TYPE_CHECKING

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


UpperCAmelCase		:  Any         =	{
    '''configuration_longt5''': ['''LONGT5_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''LongT5Config''', '''LongT5OnnxConfig'''],
}

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCAmelCase		:  Any         =	[
				    '''LONGT5_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''LongT5EncoderModel''',
				    '''LongT5ForConditionalGeneration''',
				    '''LongT5Model''',
				    '''LongT5PreTrainedModel''',
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCAmelCase		:  Optional[int]         =	[
				    '''FlaxLongT5ForConditionalGeneration''',
				    '''FlaxLongT5Model''',
				    '''FlaxLongT5PreTrainedModel''',
				]


if TYPE_CHECKING:
				from .configuration_longta import LONGT5_PRETRAINED_CONFIG_ARCHIVE_MAP, LongTaConfig, LongTaOnnxConfig

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_longta import (
								    LONGT5_PRETRAINED_MODEL_ARCHIVE_LIST,
								    LongTaEncoderModel,
								    LongTaForConditionalGeneration,
								    LongTaModel,
								    LongTaPreTrainedModel,
								)

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_flax_longta import (
								    FlaxLongTaForConditionalGeneration,
								    FlaxLongTaModel,
								    FlaxLongTaPreTrainedModel,
								)


else:
				import sys

				UpperCAmelCase		:  Dict         =	_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)












"""simple docstring"""





from typing import Union

import fire
import torch
from tqdm import tqdm



def   a    (     __UpperCAmelCase      :    str      ,   __UpperCAmelCase      :    str = "cpu"      ,   __UpperCAmelCase      :    Union[str, None] = None  )    ->							None:
						__magic_name__:	List[Any]							=       torch.load(__UpperCAmelCase      ,   map_location=__UpperCAmelCase  )
						for k, v in tqdm(state_dict.items()  ):
												if not isinstance(__UpperCAmelCase      ,   torch.Tensor  ):
																		raise TypeError("""FP16 conversion only works on paths that are saved state dicts, like pytorch_model.bin"""  )
												__magic_name__:	Any							=       v.half()
						if save_path is None:  # overwrite src_path
												__magic_name__:	List[str]							=       src_path
						torch.save(__UpperCAmelCase      ,   __UpperCAmelCase  )


if __name__ == "__main__":
							fire.Fire(convert)



