





import json
import os
import shutil
import tempfile
import unittest

import numpy as np
import pytest

from transformers import CLIPTokenizer, CLIPTokenizerFast
from transformers.models.clip.tokenization_clip import VOCAB_FILES_NAMES
from transformers.testing_utils import require_vision
from transformers.utils import IMAGE_PROCESSOR_NAME, is_vision_available


if is_vision_available():
					from PIL import Image

					from transformers import CLIPImageProcessor, CLIPProcessor


@require_vision
class     A     (unittest.TestCase       ):
			'''simple docstring'''




			def   a_			(     self  :       Optional[int]  )      ->      Dict:







					"""simple docstring"""






					A__     =  tempfile.mkdtemp()

					# fmt: off
					A__     =  ["""l""", """o""", """w""", """e""", """r""", """s""", """t""", """i""", """d""", """n""", """lo""", """l</w>""", """w</w>""", """r</w>""", """t</w>""", """low</w>""", """er</w>""", """lowest</w>""", """newer</w>""", """wider""", """<unk>""", """<|startoftext|>""", """<|endoftext|>"""]
					# fmt: on
					A__     =  dict(zip(__lowerCAmelCase				,      range(len(__lowerCAmelCase  )  )  )  )
					A__     =  ["""#version: 0.2""", """l o""", """lo w</w>""", """e r</w>""", """"""]
					A__     =  {"""unk_token""": """<unk>"""}

					A__     =  os.path.join(self.tmpdirname				,      VOCAB_FILES_NAMES["""vocab_file"""]  )
					A__     =  os.path.join(self.tmpdirname				,      VOCAB_FILES_NAMES["""merges_file"""]  )
					with open(self.vocab_file				,      """w"""				,      encoding="""utf-8"""  ) as fp:
							fp.write(json.dumps(__lowerCAmelCase  ) + """\n"""  )
					with open(self.merges_file				,      """w"""				,      encoding="""utf-8"""  ) as fp:
							fp.write("""\n""".join(__lowerCAmelCase  )  )

					A__     =  {
					    """do_resize""": True,
					    """size""": 20,
					    """do_center_crop""": True,
					    """crop_size""": 18,
					    """do_normalize""": True,
					    """image_mean""": [0.4_8_1_4_5_4_6_6, 0.4_5_7_8_2_7_5, 0.4_0_8_2_1_0_7_3],
					    """image_std""": [0.2_6_8_6_2_9_5_4, 0.2_6_1_3_0_2_5_8, 0.2_7_5_7_7_7_1_1],
					}
					A__     =  os.path.join(self.tmpdirname				,      __lowerCAmelCase  )
					with open(self.image_processor_file				,      """w"""				,      encoding="""utf-8"""  ) as fp:
							json.dump(__lowerCAmelCase				,      __lowerCAmelCase  )






			def   a_			(     self  :       str				,      **__lowerCAmelCase  :       Optional[int]  )      ->      str:







					"""simple docstring"""






					return CLIPTokenizer.from_pretrained(self.tmpdirname				,      **__lowerCAmelCase  )






			def   a_			(     self  :       Dict				,      **__lowerCAmelCase  :       List[Any]  )      ->      Optional[int]:







					"""simple docstring"""






					return CLIPTokenizerFast.from_pretrained(self.tmpdirname				,      **__lowerCAmelCase  )






			def   a_			(     self  :       List[Any]				,      **__lowerCAmelCase  :       List[Any]  )      ->      Tuple:







					"""simple docstring"""






					return CLIPImageProcessor.from_pretrained(self.tmpdirname				,      **__lowerCAmelCase  )






			def   a_			(     self  :       Optional[Any]  )      ->      str:







					"""simple docstring"""






					shutil.rmtree(self.tmpdirname  )






			def   a_			(     self  :       int  )      ->      Tuple:







					"""simple docstring"""






					A__     =  [np.random.randint(2_55				,      size=(3, 30, 4_00)				,      dtype=np.uinta  )]

					A__     =  [Image.fromarray(np.moveaxis(__lowerCAmelCase				,      0				,      -1  )  ) for x in image_inputs]

					return image_inputs






			def   a_			(     self  :       List[str]  )      ->      Optional[int]:







					"""simple docstring"""






					A__     =  self.get_tokenizer()
					A__     =  self.get_rust_tokenizer()
					A__     =  self.get_image_processor()

					A__     =  CLIPProcessor(tokenizer=__lowerCAmelCase				,      image_processor=__lowerCAmelCase  )
					processor_slow.save_pretrained(self.tmpdirname  )
					A__     =  CLIPProcessor.from_pretrained(self.tmpdirname				,      use_fast=__lowerCAmelCase  )

					A__     =  CLIPProcessor(tokenizer=__lowerCAmelCase				,      image_processor=__lowerCAmelCase  )
					processor_fast.save_pretrained(self.tmpdirname  )
					A__     =  CLIPProcessor.from_pretrained(self.tmpdirname  )

					self.assertEqual(processor_slow.tokenizer.get_vocab()				,      tokenizer_slow.get_vocab()  )
					self.assertEqual(processor_fast.tokenizer.get_vocab()				,      tokenizer_fast.get_vocab()  )
					self.assertEqual(tokenizer_slow.get_vocab()				,      tokenizer_fast.get_vocab()  )
					self.assertIsInstance(processor_slow.tokenizer				,      __lowerCAmelCase  )
					self.assertIsInstance(processor_fast.tokenizer				,      __lowerCAmelCase  )

					self.assertEqual(processor_slow.image_processor.to_json_string()				,      image_processor.to_json_string()  )
					self.assertEqual(processor_fast.image_processor.to_json_string()				,      image_processor.to_json_string()  )
					self.assertIsInstance(processor_slow.image_processor				,      __lowerCAmelCase  )
					self.assertIsInstance(processor_fast.image_processor				,      __lowerCAmelCase  )






			def   a_			(     self  :       int  )      ->      Any:







					"""simple docstring"""






					A__     =  CLIPProcessor(tokenizer=self.get_tokenizer()				,      image_processor=self.get_image_processor()  )
					processor.save_pretrained(self.tmpdirname  )

					A__     =  self.get_tokenizer(bos_token="""(BOS)"""				,      eos_token="""(EOS)"""  )
					A__     =  self.get_image_processor(do_normalize=__lowerCAmelCase				,      padding_value=1.0  )

					A__     =  CLIPProcessor.from_pretrained(
					    self.tmpdirname				,      bos_token="""(BOS)"""				,      eos_token="""(EOS)"""				,      do_normalize=__lowerCAmelCase				,      padding_value=1.0  )

					self.assertEqual(processor.tokenizer.get_vocab()				,      tokenizer_add_kwargs.get_vocab()  )
					self.assertIsInstance(processor.tokenizer				,      __lowerCAmelCase  )

					self.assertEqual(processor.image_processor.to_json_string()				,      image_processor_add_kwargs.to_json_string()  )
					self.assertIsInstance(processor.image_processor				,      __lowerCAmelCase  )






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







					"""simple docstring"""






					A__     =  self.get_image_processor()
					A__     =  self.get_tokenizer()

					A__     =  CLIPProcessor(tokenizer=__lowerCAmelCase				,      image_processor=__lowerCAmelCase  )

					A__     =  self.prepare_image_inputs()

					A__     =  image_processor(__lowerCAmelCase				,      return_tensors="""np"""  )
					A__     =  processor(images=__lowerCAmelCase				,      return_tensors="""np"""  )

					for key in input_image_proc.keys():
							self.assertAlmostEqual(input_image_proc[key].sum()				,      input_processor[key].sum()				,      delta=1e-2  )






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







					"""simple docstring"""






					A__     =  self.get_image_processor()
					A__     =  self.get_tokenizer()

					A__     =  CLIPProcessor(tokenizer=__lowerCAmelCase				,      image_processor=__lowerCAmelCase  )

					A__     =  """lower newer"""

					A__     =  processor(text=__lowerCAmelCase  )

					A__     =  tokenizer(__lowerCAmelCase  )

					for key in encoded_tok.keys():
							self.assertListEqual(encoded_tok[key]				,      encoded_processor[key]  )






			def   a_			(     self  :       str  )      ->      Optional[Any]:







					"""simple docstring"""






					A__     =  self.get_image_processor()
					A__     =  self.get_tokenizer()

					A__     =  CLIPProcessor(tokenizer=__lowerCAmelCase				,      image_processor=__lowerCAmelCase  )

					A__     =  """lower newer"""
					A__     =  self.prepare_image_inputs()

					A__     =  processor(text=__lowerCAmelCase				,      images=__lowerCAmelCase  )

					self.assertListEqual(list(inputs.keys()  )				,      ["""input_ids""", """attention_mask""", """pixel_values"""]  )

					# test if it raises when no input is passed
					with pytest.raises(__lowerCAmelCase  ):
							processor()






			def   a_			(     self  :       Optional[int]  )      ->      Tuple:







					"""simple docstring"""






					A__     =  self.get_image_processor()
					A__     =  self.get_tokenizer()

					A__     =  CLIPProcessor(tokenizer=__lowerCAmelCase				,      image_processor=__lowerCAmelCase  )

					A__     =  [[1, 4, 5, 8, 1, 0, 8], [3, 4, 3, 1, 1, 8, 9]]

					A__     =  processor.batch_decode(__lowerCAmelCase  )
					A__     =  tokenizer.batch_decode(__lowerCAmelCase  )

					self.assertListEqual(__lowerCAmelCase				,      __lowerCAmelCase  )







			def   a_			(     self  :       Dict  )      ->      str:







					"""simple docstring"""






					A__     =  self.get_image_processor()
					A__     =  self.get_tokenizer()

					A__     =  CLIPProcessor(tokenizer=__lowerCAmelCase				,      image_processor=__lowerCAmelCase  )

					A__     =  """lower newer"""
					A__     =  self.prepare_image_inputs()

					A__     =  processor(text=__lowerCAmelCase				,      images=__lowerCAmelCase  )

					self.assertListEqual(list(inputs.keys()  )				,      processor.model_input_names  )










import re
import tempfile
from pathlib import Path

import pytest
import yaml

from datasets.utils.readme import ReadMe


# @pytest.fixture
# def example_yaml_structure():

A       :   Dict					= yaml.safe_load(
    '''\
name: ""
allow_empty: false
allow_empty_text: true
subsections:
  - name: "Dataset Card for X" # First-level markdown heading
    allow_empty: false
    allow_empty_text: true
    subsections:
      - name: "Table of Contents"
        allow_empty: false
        allow_empty_text: false
        subsections: null
      - name: "Dataset Description"
        allow_empty: false
        allow_empty_text: false
        subsections:
          - name: "Dataset Summary"
            allow_empty: false
            allow_empty_text: false
            subsections: null
          - name: "Supported Tasks and Leaderboards"
            allow_empty: true
            allow_empty_text: true
            subsections: null
          - name: Languages
            allow_empty: false
            allow_empty_text: true
            subsections: null
'''
)


A       :   str					= {
    '''name''': '''root''',
    '''text''': '''''',
    '''is_empty_text''': True,
    '''subsections''': [
        {
            '''name''': '''Dataset Card for My Dataset''',
            '''text''': '''''',
            '''is_empty_text''': True,
            '''subsections''': [
                {'''name''': '''Table of Contents''', '''text''': '''Some text here.''', '''is_empty_text''': False, '''subsections''': []},
                {
                    '''name''': '''Dataset Description''',
                    '''text''': '''Some text here.''',
                    '''is_empty_text''': False,
                    '''subsections''': [
                        {
                            '''name''': '''Dataset Summary''',
                            '''text''': '''Some text here.''',
                            '''is_empty_text''': False,
                            '''subsections''': [],
                        },
                        {
                            '''name''': '''Supported Tasks and Leaderboards''',
                            '''text''': '''''',
                            '''is_empty_text''': True,
                            '''subsections''': [],
                        },
                        {'''name''': '''Languages''', '''text''': '''Language Text''', '''is_empty_text''': False, '''subsections''': []},
                    ],
                },
            ],
        }
    ],
}


A       :   Union[str, Any]					= '''\
---
language:
- zh
- en
---

# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
Language Text
'''


A       :   int					= '''\
---
language:
- zh
- en
---

# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
#### Extra Ignored Subsection
### Supported Tasks and Leaderboards
### Languages
Language Text
'''

A       :   Optional[int]					= {
    '''name''': '''root''',
    '''text''': '''''',
    '''is_empty_text''': True,
    '''subsections''': [
        {
            '''name''': '''Dataset Card for My Dataset''',
            '''text''': '''''',
            '''is_empty_text''': True,
            '''subsections''': [
                {'''name''': '''Table of Contents''', '''text''': '''Some text here.''', '''is_empty_text''': False, '''subsections''': []},
                {
                    '''name''': '''Dataset Description''',
                    '''text''': '''Some text here.''',
                    '''is_empty_text''': False,
                    '''subsections''': [
                        {
                            '''name''': '''Dataset Summary''',
                            '''text''': '''Some text here.''',
                            '''is_empty_text''': False,
                            '''subsections''': [
                                {
                                    '''name''': '''Extra Ignored Subsection''',
                                    '''text''': '''''',
                                    '''is_empty_text''': True,
                                    '''subsections''': [],
                                }
                            ],
                        },
                        {
                            '''name''': '''Supported Tasks and Leaderboards''',
                            '''text''': '''''',
                            '''is_empty_text''': True,
                            '''subsections''': [],
                        },
                        {'''name''': '''Languages''', '''text''': '''Language Text''', '''is_empty_text''': False, '''subsections''': []},
                    ],
                },
            ],
        }
    ],
}

A       :   str					= '''\
---
---
# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
Language Text
'''

A       :   Optional[Any]					= (
    '''The following issues were found for the README at `{path}`:\n-\tEmpty YAML markers are present in the README.'''
)

A       :   List[Any]					= '''\
# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
Language Text
'''

A       :   Union[str, Any]					= (
    '''The following issues were found for the README at `{path}`:\n-\tNo YAML markers are present in the README.'''
)

A       :   int					= '''\
---
# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
Language Text
'''

A       :   Dict					= '''The following issues were found for the README at `{path}`:\n-\tOnly the start of YAML tags present in the README.'''

A       :   List[Any]					= '''\
---
language:
- zh
- en
---

# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
### Supported Tasks and Leaderboards
### Languages
Language Text
'''
A       :   str					= '''The following issues were found for the README at `{path}`:\n-\tExpected some content in section `Dataset Summary` but it is empty.\n-\tExpected some text in section `Dataset Summary` but it is empty (text in subsections are ignored).'''


A       :   Optional[int]					= '''\
---
language:
- zh
- en
---

# Dataset Card for My Dataset
'''
A       :   Optional[int]					= '''The following issues were found for the README at `{path}`:\n-\tExpected some content in section `Dataset Card for My Dataset` but it is empty.\n-\tSection `Dataset Card for My Dataset` expected the following subsections: `Table of Contents`, `Dataset Description`. Found \'None\'.'''

A       :   Optional[int]					= '''\
---
language:
- zh
- en
---

# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Languages
Language Text
'''

A       :   List[str]					= '''The following issues were found for the README at `{path}`:\n-\tSection `Dataset Description` is missing subsection: `Supported Tasks and Leaderboards`.'''


A       :   Optional[int]					= '''\
---
language:
- zh
- en
---

# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
'''

A       :   Optional[Any]					= '''The following issues were found for the README at `{path}`:\n-\tExpected some content in section `Languages` but it is empty.'''

A       :   List[Any]					= '''\
---
language:
- zh
- en
---

## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
Language Text
'''
A       :   Optional[Any]					= '''The following issues were found for the README at `{path}`:\n-\tThe README has no first-level headings. One heading is expected. Skipping further validation for this README.'''

A       :   int					= '''\
---
language:
- zh
- en
---

# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
Language Text
# Dataset Card My Dataset
'''

A       :   Dict					= '''The following issues were found for the README at `{path}`:\n-\tThe README has several first-level headings: `Dataset Card for My Dataset`, `Dataset Card My Dataset`. Only one heading is expected. Skipping further validation for this README.'''

A       :   str					= '''\
---
language:
- zh
- en
---

# Dataset Card My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
Language Text
'''

A       :   int					= '''The following issues were found for the README at `{path}`:\n-\tNo first-level heading starting with `Dataset Card for` found in README. Skipping further validation for this README.'''

A       :   str					= ''''''

A       :   Optional[Any]					= '''The following issues were found for the README at `{path}`:\n-\tThe README has no first-level headings. One heading is expected. Skipping further validation for this README.\n-\tNo YAML markers are present in the README.'''

A       :   int					= '''\
---
language:
- zh
- en
---

# Dataset Card for My Dataset
# Dataset Card for My Dataset
## Table of Contents
Some text here.
## Dataset Description
Some text here.
### Dataset Summary
Some text here.
### Supported Tasks and Leaderboards
### Languages
Language Text
'''

A       :   List[Any]					= '''The following issues were found while parsing the README at `{path}`:\n-\tMultiple sections with the same heading `Dataset Card for My Dataset` have been found. Please keep only one of these sections.'''







@pytest.mark.parametrize(
    """readme_md, expected_dict"""       ,	[
        (README_CORRECT, CORRECT_DICT),
        (README_CORRECT_FOUR_LEVEL, CORRECT_DICT_FOUR_LEVEL),
    ]       ,	)
def   __lowerCamelCase   (				__a  :Union[str, Any]       ,	__a  :List[Any]       )						->							List[Any]:






		"""simple docstring"""

		assert ReadMe.from_string(__a       ,	__a       ).to_dict() == expected_dict







@pytest.mark.parametrize(
    """readme_md, expected_error"""       ,	[
        (README_NO_YAML, EXPECTED_ERROR_README_NO_YAML),
        (README_EMPTY_YAML, EXPECTED_ERROR_README_EMPTY_YAML),
        (README_INCORRECT_YAML, EXPECTED_ERROR_README_INCORRECT_YAML),
        (README_EMPTY, EXPECTED_ERROR_README_EMPTY),
        (README_NONE_SUBSECTION, EXPECTED_ERROR_README_NONE_SUBSECTION),
        (README_MISSING_FIRST_LEVEL, EXPECTED_ERROR_README_MISSING_FIRST_LEVEL),
        (README_MISSING_SUBSECTION, EXPECTED_ERROR_README_MISSING_SUBSECTION),
        (README_MISSING_TEXT, EXPECTED_ERROR_README_MISSING_TEXT),
        (README_WRONG_FIRST_LEVEL, EXPECTED_ERROR_README_WRONG_FIRST_LEVEL),
        (README_MULTIPLE_WRONG_FIRST_LEVEL, EXPECTED_ERROR_README_MULTIPLE_WRONG_FIRST_LEVEL),
        (README_MISSING_CONTENT, EXPECTED_ERROR_README_MISSING_CONTENT),
    ]       ,	)
def   __lowerCamelCase   (				__a  :Any       ,	__a  :Union[str, Any]       )						->							Dict:






		"""simple docstring"""

		with pytest.raises(__a       ,	match=re.escape(expected_error.format(path="""root"""       )       )       ):
				A__     =  ReadMe.from_string(__a       ,	__a       )
				readme.validate()







@pytest.mark.parametrize(
    """readme_md, expected_error"""       ,	[
        (README_MULTIPLE_SAME_HEADING_1, EXPECTED_ERROR_README_MULTIPLE_SAME_HEADING_1),
    ]       ,	)
def   __lowerCamelCase   (				__a  :List[str]       ,	__a  :Tuple       )						->							Dict:






		"""simple docstring"""

		with pytest.raises(__a       ,	match=re.escape(expected_error.format(path="""root"""       )       )       ):
				ReadMe.from_string(__a       ,	__a       )







@pytest.mark.parametrize(
    """readme_md,"""       ,	[
        (README_MULTIPLE_SAME_HEADING_1),
    ]       ,	)
def   __lowerCamelCase   (				__a  :Any       )						->							List[str]:






		"""simple docstring"""

		ReadMe.from_string(__a       ,	__a       ,	suppress_parsing_errors=__a       )







@pytest.mark.parametrize(
    """readme_md, expected_dict"""       ,	[
        (README_CORRECT, CORRECT_DICT),
        (README_CORRECT_FOUR_LEVEL, CORRECT_DICT_FOUR_LEVEL),
    ]       ,	)
def   __lowerCamelCase   (				__a  :List[Any]       ,	__a  :Optional[int]       )						->							Optional[int]:






		"""simple docstring"""

		with tempfile.TemporaryDirectory() as tmp_dir:
				A__     =  Path(__a       ) / """README.md"""
				with open(__a       ,	"""w+"""       ) as readme_file:
						readme_file.write(__a       )
				A__     =  ReadMe.from_readme(__a       ,	__a       ).to_dict()
				assert out["name"] == path
				assert out["text"] == ""
				assert out["is_empty_text"]
				assert out["subsections"] == expected_dict["subsections"]







@pytest.mark.parametrize(
    """readme_md, expected_error"""       ,	[
        (README_NO_YAML, EXPECTED_ERROR_README_NO_YAML),
        (README_EMPTY_YAML, EXPECTED_ERROR_README_EMPTY_YAML),
        (README_INCORRECT_YAML, EXPECTED_ERROR_README_INCORRECT_YAML),
        (README_EMPTY, EXPECTED_ERROR_README_EMPTY),
        (README_NONE_SUBSECTION, EXPECTED_ERROR_README_NONE_SUBSECTION),
        (README_MISSING_FIRST_LEVEL, EXPECTED_ERROR_README_MISSING_FIRST_LEVEL),
        (README_MISSING_SUBSECTION, EXPECTED_ERROR_README_MISSING_SUBSECTION),
        (README_MISSING_TEXT, EXPECTED_ERROR_README_MISSING_TEXT),
        (README_WRONG_FIRST_LEVEL, EXPECTED_ERROR_README_WRONG_FIRST_LEVEL),
        (README_MULTIPLE_WRONG_FIRST_LEVEL, EXPECTED_ERROR_README_MULTIPLE_WRONG_FIRST_LEVEL),
        (README_MISSING_CONTENT, EXPECTED_ERROR_README_MISSING_CONTENT),
    ]       ,	)
def   __lowerCamelCase   (				__a  :List[str]       ,	__a  :Union[str, Any]       )						->							List[str]:






		"""simple docstring"""

		with tempfile.TemporaryDirectory() as tmp_dir:
				A__     =  Path(__a       ) / """README.md"""
				with open(__a       ,	"""w+"""       ) as readme_file:
						readme_file.write(__a       )
				A__     =  expected_error.format(path=__a       )
				with pytest.raises(__a       ,	match=re.escape(__a       )       ):
						A__     =  ReadMe.from_readme(__a       ,	__a       )
						readme.validate()







@pytest.mark.parametrize(
    """readme_md, expected_error"""       ,	[
        (README_MULTIPLE_SAME_HEADING_1, EXPECTED_ERROR_README_MULTIPLE_SAME_HEADING_1),
    ]       ,	)
def   __lowerCamelCase   (				__a  :List[Any]       ,	__a  :Any       )						->							int:






		"""simple docstring"""

		with tempfile.TemporaryDirectory() as tmp_dir:
				A__     =  Path(__a       ) / """README.md"""
				with open(__a       ,	"""w+"""       ) as readme_file:
						readme_file.write(__a       )
				A__     =  expected_error.format(path=__a       )
				with pytest.raises(__a       ,	match=re.escape(__a       )       ):
						ReadMe.from_readme(__a       ,	__a       )







@pytest.mark.parametrize(
    """readme_md,"""       ,	[
        (README_MULTIPLE_SAME_HEADING_1),
    ]       ,	)
def   __lowerCamelCase   (				__a  :Union[str, Any]       )						->							Optional[Any]:






		"""simple docstring"""

		with tempfile.TemporaryDirectory() as tmp_dir:
				A__     =  Path(__a       ) / """README.md"""
				with open(__a       ,	"""w+"""       ) as readme_file:
						readme_file.write(__a       )
				ReadMe.from_readme(__a       ,	__a       ,	suppress_parsing_errors=__a       )



