from typing import TYPE_CHECKING

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


__lowerCamelCase    :				Tuple							     =	{
    '''configuration_falcon''': ['''FALCON_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''FalconConfig'''],
}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   __lowerCamelCase    :				Tuple							     =	[
       '''FALCON_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''FalconForCausalLM''',
       '''FalconModel''',
       '''FalconPreTrainedModel''',
       '''FalconForSequenceClassification''',
       '''FalconForTokenClassification''',
       '''FalconForQuestionAnswering''',
   ]


if TYPE_CHECKING:
   from .configuration_falcon import FALCON_PRETRAINED_CONFIG_ARCHIVE_MAP, FalconConfig

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_falcon import (
          FALCON_PRETRAINED_MODEL_ARCHIVE_LIST,
          FalconForCausalLM,
          FalconForQuestionAnswering,
          FalconForSequenceClassification,
          FalconForTokenClassification,
          FalconModel,
          FalconPreTrainedModel,
      )


else:
   import sys

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

import pickle
import unittest

import torch

from accelerate import Accelerator
from accelerate.state import AcceleratorState
from accelerate.test_utils import require_cpu







@require_cpu
class __snake_case       (		unittest.TestCase	):




   def 			__a		(					self    :       Any   ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__    							=   torch.nn.Linear(10 ,			10   )
     SCREAMING_SNAKE_CASE__    							=   torch.optim.SGD(model.parameters() ,			0.1   )
     SCREAMING_SNAKE_CASE__    							=   Accelerator()
     SCREAMING_SNAKE_CASE__    							=   accelerator.prepare(_lowercase   )
     try:
       pickle.loads(pickle.dumps(_lowercase   )   )
     except Exception as e:
       self.fail(f"""Accelerated optimizer pickling failed with {e}"""   )
     AcceleratorState._reset_state()
