'''simple docstring'''
import unittest

from transformers import GPTSwaTokenizer
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


lowercase__	:   int										=       get_tests_dir("fixtures/test_sentencepiece_with_bytefallback.model")







@require_sentencepiece
@require_tokenizers
class lowerCamelCase				(						lowerCamelCase  ,		unittest.TestCase       ):




  '''simple docstring'''



  lowerCAmelCase__      				=						GPTSwaTokenizer
  lowerCAmelCase__      				=						False
  lowerCAmelCase__      				=						True
  lowerCAmelCase__      				=						False






  def 			lowerCAmelCase__			(   self      :							Any	)					->Optional[int]:
        super().setUp()

        # We have a SentencePiece fixture for testing
        UpperCAmelCase_      =	GPTSwaTokenizer(UpperCAmelCase__	,				eos_token='''<unk>'''	,				bos_token='''<unk>'''	,				pad_token='''<unk>'''	)

        tokenizer.save_pretrained(self.tmpdirname	)






  def 			lowerCAmelCase__			(   self      :							Optional[Any]	,				UpperCAmelCase__      :							Union[str, Any]	)					->Tuple:
        UpperCAmelCase_      =	'''This is a test'''
        UpperCAmelCase_      =	'''This is a test'''
        return input_text, output_text






  def 			lowerCAmelCase__			(   self      :							Any	)					->str:
        UpperCAmelCase_      =	'''<s>'''
        UpperCAmelCase_      =	1

        self.assertEqual(self.get_tokenizer()._convert_token_to_id(UpperCAmelCase__	)	,				UpperCAmelCase__	)
        self.assertEqual(self.get_tokenizer()._convert_id_to_token(UpperCAmelCase__	)	,				UpperCAmelCase__	)






  def 			lowerCAmelCase__			(   self      :							List[str]	)					->List[str]:
        UpperCAmelCase_      =	list(self.get_tokenizer().get_vocab().keys()	)

        self.assertEqual(vocab_keys[0]	,				'''<unk>'''	)
        self.assertEqual(vocab_keys[1]	,				'''<s>'''	)
        self.assertEqual(vocab_keys[-1]	,				'''j'''	)
        self.assertEqual(len(UpperCAmelCase__	)	,				2000	)






  def 			lowerCAmelCase__			(   self      :							Tuple	)					->int:
        self.assertEqual(self.get_tokenizer().vocab_size	,				2000	)






  def 			lowerCAmelCase__			(   self      :							Any	)					->Any:
        UpperCAmelCase_      =	GPTSwaTokenizer(UpperCAmelCase__	)

        UpperCAmelCase_      =	tokenizer.tokenize('''This is a test'''	)
        self.assertListEqual(UpperCAmelCase__	,				['''▁This''', '''▁is''', '''▁a''', '''▁t''', '''est''']	)

        self.assertListEqual(tokenizer.convert_tokens_to_ids(UpperCAmelCase__	)	,				[465, 287, 265, 631, 842]	)

        UpperCAmelCase_      =	tokenizer.tokenize('''I was born in 92000, and this is falsé.'''	)
        # fmt: off
        self.assertListEqual(
            UpperCAmelCase__	,				['''▁I''', '''▁was''', '''▁bor''', '''n''', '''▁in''', '''▁''', '''<0x39>''', '''2''', '''0''', '''0''', '''0''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁f''', '''al''', '''s''', '''<0xC3>''', '''<0xA9>''', '''.''']	,				)
        # fmt: on

        UpperCAmelCase_      =	tokenizer.convert_tokens_to_ids(UpperCAmelCase__	)
        self.assertListEqual(
            UpperCAmelCase__	,				[262, 272, 1525, 286, 271, 268, 60, 916, 633, 633, 633, 259, 266, 301, 287, 384, 367, 263, 198, 172, 260]	,				)

        UpperCAmelCase_      =	tokenizer.convert_ids_to_tokens(UpperCAmelCase__	)
        # fmt: off
        self.assertListEqual(
            UpperCAmelCase__	,				['''▁I''', '''▁was''', '''▁bor''', '''n''', '''▁in''', '''▁''', '''<0x39>''', '''2''', '''0''', '''0''', '''0''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁f''', '''al''', '''s''', '''<0xC3>''', '''<0xA9>''', '''.''']	)
        # fmt: on






  def 			lowerCAmelCase__			(   self      :							Tuple	)					->Union[str, Any]:
        UpperCAmelCase_      =	GPTSwaTokenizer(UpperCAmelCase__	)
        UpperCAmelCase_      =	['''This is a test''', '''I was born in 92000, and this is falsé.''']
        UpperCAmelCase_      =	[
            [465, 287, 265, 631, 842],
            [262, 272, 1525, 286, 271, 268, 60, 916, 633, 633, 633, 259, 266, 301, 287, 384, 367, 263, 198, 172, 260],
        ]

        # Test that encode_fast returns the same as tokenize + convert_tokens_to_ids
        for text, expected_ids in zip(UpperCAmelCase__	,				UpperCAmelCase__	):
              self.assertListEqual(tokenizer.encode_fast(UpperCAmelCase__	)	,				UpperCAmelCase__	)

        # Test that decode_fast returns the input text
        for text, token_ids in zip(UpperCAmelCase__	,				UpperCAmelCase__	):
              self.assertEqual(tokenizer.decode_fast(UpperCAmelCase__	)	,				UpperCAmelCase__	)






  @slow
  def 			lowerCAmelCase__			(   self      :							str	)					->Tuple:
        UpperCAmelCase_      =	[
            '''<|python|>def fibonacci(n)\n    if n < 0:\n        print(\'Incorrect input\')''',
            '''Hey there, how are you doing this fine day?''',
            '''This is a text with a trailing spaces followed by a dot     .''',
            '''Häj sväjs lillebrör! =)''',
            '''Det är inget fel på Mr. Cool''',
        ]

        # fmt: off
        UpperCAmelCase_      =	{'''input_ids''': [[6_3423, 5, 6811, 1_4954, 282, 816, 3821, 6_3466, 6_3425, 6_3462, 18, 6_3978, 678, 301, 1320, 6_3423, 6_3455, 6_3458, 18, 6_3982, 4246, 3940, 1901, 4_7789, 5547, 1_8994], [1_9630, 1100, 6_3446, 1342, 633, 544, 4488, 593, 5102, 2416, 6_3495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1652, 428, 268, 1936, 515, 268, 5_8593, 2_2413, 9106, 546, 268, 3_3213, 6_3979, 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [5_5130, 6_3450, 924, 6_3449, 2249, 4062, 1558, 318, 6_3504, 2_1498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [509, 377, 2827, 2559, 332, 6575, 6_3443, 2_6801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], '''token_type_ids''': [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], '''attention_mask''': [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]}
        # fmt: on
        self.tokenizer_integration_test_util(
            expected_encoding=UpperCAmelCase__	,				model_name='''AI-Sweden/gpt-sw3-126m'''	,				sequences=UpperCAmelCase__	,				)









import requests
from bsa import BeautifulSoup
def 							UpperCamelCase_(					_A :str = "AAPL"	)->		str:
			UpperCamelCase__       =							F'''https://in.finance.yahoo.com/quote/{symbol}?s={symbol}'''
			UpperCamelCase__       =							BeautifulSoup(requests.get(_A	).text					,  "html.parser"	)
			UpperCamelCase__       =							"My(6px) Pos(r) smartphone_Mt(6px)"
			return soup.find("div"					,  class_=class_	).find("span"	).text


if __name__ == "__main__":
						for symbol in "AAPL AMZN IBM GOOG MSFT ORCL".split():
												print(f'''Current {symbol:<4} stock price is {stock_price(symbol):>8}''')


