"""simple docstring"""
from typing import TYPE_CHECKING

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


SCREAMING_SNAKE_CASE__   =					{
    "configuration_convbert": ["CONVBERT_PRETRAINED_CONFIG_ARCHIVE_MAP", "ConvBertConfig", "ConvBertOnnxConfig"],
    "tokenization_convbert": ["ConvBertTokenizer"],
}

try:
					if not is_tokenizers_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					SCREAMING_SNAKE_CASE__   =					["ConvBertTokenizerFast"]

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					SCREAMING_SNAKE_CASE__   =					[
					    "CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "ConvBertForMaskedLM",
					    "ConvBertForMultipleChoice",
					    "ConvBertForQuestionAnswering",
					    "ConvBertForSequenceClassification",
					    "ConvBertForTokenClassification",
					    "ConvBertLayer",
					    "ConvBertModel",
					    "ConvBertPreTrainedModel",
					    "load_tf_weights_in_convbert",
					]


try:
					if not is_tf_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					SCREAMING_SNAKE_CASE__   =					[
					    "TF_CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "TFConvBertForMaskedLM",
					    "TFConvBertForMultipleChoice",
					    "TFConvBertForQuestionAnswering",
					    "TFConvBertForSequenceClassification",
					    "TFConvBertForTokenClassification",
					    "TFConvBertLayer",
					    "TFConvBertModel",
					    "TFConvBertPreTrainedModel",
					]


if TYPE_CHECKING:
					from .configuration_convbert import CONVBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, ConvBertConfig, ConvBertOnnxConfig
					from .tokenization_convbert import ConvBertTokenizer

					try:
										if not is_tokenizers_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .tokenization_convbert_fast import ConvBertTokenizerFast

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_convbert import (
										    CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
										    ConvBertForMaskedLM,
										    ConvBertForMultipleChoice,
										    ConvBertForQuestionAnswering,
										    ConvBertForSequenceClassification,
										    ConvBertForTokenClassification,
										    ConvBertLayer,
										    ConvBertModel,
										    ConvBertPreTrainedModel,
										    load_tf_weights_in_convbert,
										)

					try:
										if not is_tf_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_tf_convbert import (
										    TF_CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
										    TFConvBertForMaskedLM,
										    TFConvBertForMultipleChoice,
										    TFConvBertForQuestionAnswering,
										    TFConvBertForSequenceClassification,
										    TFConvBertForTokenClassification,
										    TFConvBertLayer,
										    TFConvBertModel,
										    TFConvBertPreTrainedModel,
										)


else:
					import sys

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



"""simple docstring"""
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 					lowerCAmelCase_      (     unittest.TestCase   ):



				"""simple docstring"""

				def 						snake_case	(			self      ):






										"""simple docstring"""

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


