



"""simple docstring"""





import unittest

from transformers.testing_utils import require_bsa
from transformers.utils import is_bsa_available

from ...test_feature_extraction_common import FeatureExtractionSavingTestMixin


if is_bsa_available():
					from transformers import MarkupLMFeatureExtractor




class       lowercase__      (   unittest.TestCase     ):
							'''simple docstring'''







							def __init__(	self						,							snake_case    )      ->				Dict:
									_UpperCAmelCase							=		parent






							def 							lowerCamelCase_ (	self    )      ->				Union[str, Any]:
									return {}







def 						UpperCAmelCase  (		):

		'''simple docstring'''


		_UpperCAmelCase							=		'<HTML>\n\n    <HEAD>\n    <TITLE>sample document</TITLE>\n    </HEAD>\n\n    <BODY BGCOLOR="FFFFFF">\n    <HR>\n    <a href="http://google.com">Goog</a>\n    <H1>This is one header</H1>\n    <H2>This is a another Header</H2>\n    <P>Travel from\n        <P>\n        <B>SFO to JFK</B>\n        <BR>\n        <B><I>on May 2, 2015 at 2:00 pm. For details go to confirm.com </I></B>\n        <HR>\n        <div style="color:#0000FF">\n            <h3>Traveler <b> name </b> is\n            <p> John Doe </p>\n        </div>'

		_UpperCAmelCase							=		'\n    <!DOCTYPE html>\n    <html>\n    <body>\n\n    <h1>My First Heading</h1>\n    <p>My first paragraph.</p>\n\n    </body>\n    </html>\n    '

		return [html_string_a, html_string_a]






@require_bsa
class       lowercase__      (   __snake_case,       unittest.TestCase     ):
							'''simple docstring'''







							_UpperCAmelCase   					=       MarkupLMFeatureExtractor if is_bsa_available() else None






							def 							lowerCamelCase_ (	self    )      ->				List[Any]:
									_UpperCAmelCase							=		MarkupLMFeatureExtractionTester(self    )






							@property
							def 							lowerCamelCase_ (	self    )      ->				Tuple:
									return self.feature_extract_tester.prepare_feat_extract_dict()






							def 							lowerCamelCase_ (	self    )      ->				Union[str, Any]:
									_UpperCAmelCase							=		self.feature_extraction_class()

									# Test not batched input
									_UpperCAmelCase							=		get_html_strings()[0]
									_UpperCAmelCase							=		feature_extractor(__UpperCamelCase    )

									# fmt: off
									_UpperCAmelCase							=		[['sample document', 'Goog', 'This is one header', 'This is a another Header', 'Travel from', 'SFO to JFK', 'on May 2, 2015 at 2:00 pm. For details go to confirm.com', 'Traveler', 'name', 'is', 'John Doe']]
									_UpperCAmelCase							=		[['/html/head/title', '/html/body/a', '/html/body/h1', '/html/body/h2', '/html/body/p', '/html/body/p/p/b[1]', '/html/body/p/p/b[2]/i', '/html/body/p/p/div/h3', '/html/body/p/p/div/h3/b', '/html/body/p/p/div/h3', '/html/body/p/p/div/h3/p']]
									# fmt: on

									self.assertEqual(encoding.nodes						,							__UpperCamelCase    )
									self.assertEqual(encoding.xpaths						,							__UpperCamelCase    )

									# Test batched
									_UpperCAmelCase							=		get_html_strings()
									_UpperCAmelCase							=		feature_extractor(__UpperCamelCase    )

									# fmt: off
									_UpperCAmelCase							=		expected_nodes + [['My First Heading', 'My first paragraph.']]
									_UpperCAmelCase							=		expected_xpaths + [['/html/body/h1', '/html/body/p']]

									self.assertEqual(len(encoding.nodes    )						,							2    )
									self.assertEqual(len(encoding.xpaths    )						,							2    )

									self.assertEqual(encoding.nodes						,							__UpperCamelCase    )
									self.assertEqual(encoding.xpaths						,							__UpperCamelCase    )





from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_speech_available,
    is_tf_available,
    is_torch_available,
)


A									=  {
    'configuration_speech_to_text': ['SPEECH_TO_TEXT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'Speech2TextConfig'],
    'processing_speech_to_text': ['Speech2TextProcessor'],
}

try:
		if not is_sentencepiece_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		A									=  ['Speech2TextTokenizer']

try:
		if not is_speech_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		A									=  ['Speech2TextFeatureExtractor']

try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		A									=  [
		    'TF_SPEECH_TO_TEXT_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'TFSpeech2TextForConditionalGeneration',
		    'TFSpeech2TextModel',
		    'TFSpeech2TextPreTrainedModel',
		]

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		A									=  [
		    'SPEECH_TO_TEXT_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'Speech2TextForConditionalGeneration',
		    'Speech2TextModel',
		    'Speech2TextPreTrainedModel',
		]


if TYPE_CHECKING:
		from .configuration_speech_to_text import SPEECH_TO_TEXT_PRETRAINED_CONFIG_ARCHIVE_MAP, SpeechaTextConfig
		from .processing_speech_to_text import SpeechaTextProcessor

		try:
				if not is_sentencepiece_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .tokenization_speech_to_text import SpeechaTextTokenizer

		try:
				if not is_speech_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .feature_extraction_speech_to_text import SpeechaTextFeatureExtractor

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_speech_to_text import (
				    TF_SPEECH_TO_TEXT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TFSpeechaTextForConditionalGeneration,
				    TFSpeechaTextModel,
				    TFSpeechaTextPreTrainedModel,
				)

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_speech_to_text import (
				    SPEECH_TO_TEXT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    SpeechaTextForConditionalGeneration,
				    SpeechaTextModel,
				    SpeechaTextPreTrainedModel,
				)

else:
		import sys

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