# tests directory-specific settings - this file is run automatically
# by pytest before any tests are run

import doctest
import sys
import warnings
from os.path import abspath, dirname, join

import _pytest

from transformers.testing_utils import HfDoctestModule, HfDocTestParser


# allow having multiple repository checkouts and not needing to remember to rerun
# 'pip install -e .[dev]' when switching between checkouts and running tests.
UpperCAmelCase_			    =							abspath(join(dirname(__file__), '''src'''))
sys.path.insert(1, git_repo_path)

# silence FutureWarning warnings in tests since often we can't act on them until
# they become normal warnings - i.e. the tests still need to test the current functionality
warnings.simplefilter(action='''ignore''', category=FutureWarning)




def       lowerCAmelCase_     (		lowercase:							List[Any]		)    ->				Any:







	'''simple docstring'''
	config.addinivalue_line(
	    '''markers'''  ,					'''is_pt_tf_cross_test: mark test to run only when PT and TF interactions are tested'''		)
	config.addinivalue_line(
	    '''markers'''  ,					'''is_pt_flax_cross_test: mark test to run only when PT and FLAX interactions are tested'''		)
	config.addinivalue_line('''markers'''  ,					'''is_pipeline_test: mark test to run only when pipelines are tested'''		)
	config.addinivalue_line('''markers'''  ,					'''is_staging_test: mark test to run only in the staging environment'''		)
	config.addinivalue_line('''markers'''  ,					'''accelerate_tests: mark test that require accelerate'''		)
	config.addinivalue_line('''markers'''  ,					'''tool_tests: mark the tool tests that are run on their specific schedule'''		)




def       lowerCAmelCase_     (		lowercase:							Any		)    ->				Dict:







	'''simple docstring'''
	from transformers.testing_utils import pytest_addoption_shared

	pytest_addoption_shared(lowercase		)




def       lowerCAmelCase_     (		lowercase:							Optional[Any]		)    ->				List[Any]:







	'''simple docstring'''
	from transformers.testing_utils import pytest_terminal_summary_main

	_UpperCamelCase:     List[str]							= terminalreporter.config.getoption('''--make-reports'''		)
	if make_reports:
		pytest_terminal_summary_main(lowercase  ,					id=lowercase		)




def       lowerCAmelCase_     (		lowercase:							Optional[Any]  ,					lowercase:							Dict		)    ->				Union[str, Any]:







	'''simple docstring'''



	if exitstatus == 5:
		_UpperCamelCase:     List[Any]							= 0


# Doctest custom flag to ignore output.
UpperCAmelCase_			    =							doctest.register_optionflag('''IGNORE_RESULT''')

UpperCAmelCase_			    =							doctest.OutputChecker




class  __magic_name__  (		__lowerCAmelCase    ):





			"""simple docstring"""




			def   lowerCAmelCase						(	self					:  Optional[int]		,  _lowercase					:  int		,  _lowercase					:  Union[str, Any]		,  _lowercase					:  Union[str, Any]							):



				"""simple docstring"""



				if IGNORE_RESULT & optionflags:
					return True
				return OutputChecker.check_output(self		,  lowerCamelCase__		,  lowerCamelCase__		,  lowerCamelCase__							)




UpperCAmelCase_			    =							CustomOutputChecker
UpperCAmelCase_			    =							HfDoctestModule





UpperCAmelCase_			    =							HfDocTestParser
from typing import TYPE_CHECKING

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


UpperCAmelCase_			    =							{
    '''configuration_blenderbot''': [
        '''BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BlenderbotConfig''',
        '''BlenderbotOnnxConfig''',
    ],
    '''tokenization_blenderbot''': ['''BlenderbotTokenizer'''],
}

try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							['''BlenderbotTokenizerFast''']

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							[
      '''BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST''',
      '''BlenderbotForCausalLM''',
      '''BlenderbotForConditionalGeneration''',
      '''BlenderbotModel''',
      '''BlenderbotPreTrainedModel''',
  ]


try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							[
      '''TFBlenderbotForConditionalGeneration''',
      '''TFBlenderbotModel''',
      '''TFBlenderbotPreTrainedModel''',
  ]


try:
  if not is_flax_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							[
      '''FlaxBlenderbotForConditionalGeneration''',
      '''FlaxBlenderbotModel''',
      '''FlaxBlenderbotPreTrainedModel''',
  ]


if TYPE_CHECKING:
  from .configuration_blenderbot import (
      BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP,
      BlenderbotConfig,
      BlenderbotOnnxConfig,
  )
  from .tokenization_blenderbot import BlenderbotTokenizer

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_blenderbot_fast import BlenderbotTokenizerFast

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_blenderbot import (
        BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST,
        BlenderbotForCausalLM,
        BlenderbotForConditionalGeneration,
        BlenderbotModel,
        BlenderbotPreTrainedModel,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_blenderbot import (
        TFBlenderbotForConditionalGeneration,
        TFBlenderbotModel,
        TFBlenderbotPreTrainedModel,
    )

  try:
    if not is_flax_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_flax_blenderbot import (
        FlaxBlenderbotForConditionalGeneration,
        FlaxBlenderbotModel,
        FlaxBlenderbotPreTrainedModel,
    )

else:
  import sys

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