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    _UpperCamelCase      (						unittest.TestCase ):


			"""simple docstring"""






			def __init__(   self      ,   lowerCAmelCase__						)     ->					Dict:

							'''simple docstring'''


							__lowercase 			=							parent





			def        _SCREAMING_SNAKE_CASE			(   self						)     ->					Union[str, Any]:

							'''simple docstring'''


							return {}





def 				UpperCAmelCase						(    ):







				"""simple docstring"""



				__lowercase 			=							'''<HTML>

    <HEAD>
    <TITLE>sample document</TITLE>
    </HEAD>

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

				__lowercase 			=							'''
    <!DOCTYPE html>
    <html>
    <body>

    <h1>My First Heading</h1>
    <p>My first paragraph.</p>

    </body>
    </html>
    '''

				return [html_string_a, html_string_a]




@require_bsa
class    _UpperCamelCase      (						_UpperCAmelCase						,unittest.TestCase ):


			"""simple docstring"""






			__a  : str			 =						MarkupLMFeatureExtractor if is_bsa_available() else None





			def        _SCREAMING_SNAKE_CASE			(   self						)     ->					List[str]:

							'''simple docstring'''


							__lowercase 			=							MarkupLMFeatureExtractionTester(self						)





			@property
			def        _SCREAMING_SNAKE_CASE			(   self						)     ->					List[str]:

							'''simple docstring'''


							return self.feature_extract_tester.prepare_feat_extract_dict()





			def        _SCREAMING_SNAKE_CASE			(   self						)     ->					Union[str, Any]:

							'''simple docstring'''


							__lowercase 			=							self.feature_extraction_class()

							# Test not batched input
							__lowercase 			=							get_html_strings()[0]
							__lowercase 			=							feature_extractor(lowerCAmelCase__						)

							# fmt: off
							__lowercase 			=							[['''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''']]
							__lowercase 			=							[['''/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      ,   lowerCAmelCase__						)
							self.assertEqual(encoding.xpaths      ,   lowerCAmelCase__						)

							# Test batched
							__lowercase 			=							get_html_strings()
							__lowercase 			=							feature_extractor(lowerCAmelCase__						)

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

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

							self.assertEqual(encoding.nodes      ,   lowerCAmelCase__						)
							self.assertEqual(encoding.xpaths      ,   lowerCAmelCase__						)
import requests





def 				UpperCAmelCase						(    lowercase							,			lowercase							):







				"""simple docstring"""



				__lowercase 			=							{'''Content-Type''': '''application/json'''}
				__lowercase 			=							requests.post(lowercase							,			json={'''text''': message_body}							,			headers=lowercase							)
				if response.status_code != 200:
								__lowercase 			=							(
								    '''Request to slack returned an error '''
								    F"{response.status_code}, the response is:\n{response.text}"
								)
								raise ValueError(lowercase							)


if __name__ == "__main__":
		# Set the slack url to the one provided by Slack when you create the webhook at
		# https://my.slack.com/services/new/incoming-webhook/
		send_slack_message("""<YOUR MESSAGE BODY>""", """<SLACK CHANNEL URL>""")