






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				: List[str]						    =	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        lowercase_			(     __snake_case  :				List[Any]   )  ->			Optional[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        lowercase_			(     __snake_case  :				Any   )  ->			Optional[int]:





				'''simple docstring'''


				from transformers.testing_utils import pytest_addoption_shared

				pytest_addoption_shared(_UpperCamelCase   )





def        lowercase_			(     __snake_case  :				Tuple   )  ->			int:





				'''simple docstring'''


				from transformers.testing_utils import pytest_terminal_summary_main

				snake_case__   :int       = terminalreporter.config.getoption("--make-reports"   )
				if make_reports:
								pytest_terminal_summary_main(_UpperCamelCase						,						id=_UpperCamelCase   )





def        lowercase_			(     __snake_case  :				List[Any]						,						__snake_case  :				Dict   )  ->			Union[str, Any]:





				'''simple docstring'''


				if exitstatus == 5:
								snake_case__   :int       = 0


# Doctest custom flag to ignore output.
__UpperCAmelCase				: Dict						    =	doctest.register_optionflag("IGNORE_RESULT")

__UpperCAmelCase				: Optional[Any]						    =	doctest.OutputChecker


class        _snake_case    (      __lowerCAmelCase			):






	def  lowerCAmelCase_				(		self       ,UpperCamelCase       ,UpperCamelCase       ,UpperCamelCase							)    ->     str:
					if IGNORE_RESULT & optionflags:
									return True
					return OutputChecker.check_output(self       ,_SCREAMING_SNAKE_CASE       ,_SCREAMING_SNAKE_CASE       ,_SCREAMING_SNAKE_CASE							)




__UpperCAmelCase				: List[Any]						    =	CustomOutputChecker
__UpperCAmelCase				: Tuple						    =	HfDoctestModule
__UpperCAmelCase				: Tuple						    =	HfDocTestParser





'''simple docstring'''





from typing import Optional
from urllib.parse import quote

import huggingface_hub as hfh
from packaging import version





def       __a      (  _UpperCamelCase:       str   ,		_UpperCamelCase:       str   ,		_UpperCamelCase:       Optional[str] = None       )		->					str:

     """simple docstring"""




     if version.parse(hfh.__version__       ).release < version.parse("0.11.0"       ).release:
          # old versions of hfh don't url-encode the file path
          _snake_case				= quote(_UpperCamelCase       )
     return hfh.hf_hub_url(_UpperCamelCase   ,		_UpperCamelCase   ,		repo_type="dataset"   ,		revision=_UpperCamelCase       )


