




import textwrap

import pyarrow as pa
import pytest

from datasets import Features, Value
from datasets.packaged_modules.json.json import Json







@pytest.fixture
def 			lowerCAmelCase  (     UpperCAmelCase	)  ->List[str]:






					"""simple docstring"""






					__magic_name__ :							List[Any]		       =							tmp_path / '''file.jsonl'''
					__magic_name__ :							str		       =							textwrap.dedent(
					    '''\
        {"col_1": -1}
        {"col_1": 1, "col_2": 2}
        {"col_1": 10, "col_2": 20}
        '''	)
					with open(UpperCAmelCase,     '''w'''	) as f:
										f.write(UpperCAmelCase	)
					return str(UpperCAmelCase	)







@pytest.fixture
def 			lowerCAmelCase  (     UpperCAmelCase	)  ->int:






					"""simple docstring"""






					__magic_name__ :							Optional[Any]		       =							tmp_path / '''file_utf16_encoded.jsonl'''
					__magic_name__ :							List[str]		       =							textwrap.dedent(
					    '''\
        {"col_1": -1}
        {"col_1": 1, "col_2": 2}
        {"col_1": 10, "col_2": 20}
        '''	)
					with open(UpperCAmelCase,     '''w''',     encoding='''utf-16'''	) as f:
										f.write(UpperCAmelCase	)
					return str(UpperCAmelCase	)







@pytest.fixture
def 			lowerCAmelCase  (     UpperCAmelCase	)  ->Dict:






					"""simple docstring"""






					__magic_name__ :							Tuple		       =							tmp_path / '''file_with_list_of_dicts.json'''
					__magic_name__ :							int		       =							textwrap.dedent(
					    '''\
        [
            {"col_1": -1},
            {"col_1": 1, "col_2": 2},
            {"col_1": 10, "col_2": 20}
        ]
        '''	)
					with open(UpperCAmelCase,     '''w'''	) as f:
										f.write(UpperCAmelCase	)
					return str(UpperCAmelCase	)







@pytest.fixture
def 			lowerCAmelCase  (     UpperCAmelCase	)  ->Any:






					"""simple docstring"""






					__magic_name__ :							Tuple		       =							tmp_path / '''file_with_list_of_dicts_field.json'''
					__magic_name__ :							int		       =							textwrap.dedent(
					    '''\
        {
            "field1": 1,
            "field2": "aabb",
            "field3": [
                {"col_1": -1},
                {"col_1": 1, "col_2": 2},
                {"col_1": 10, "col_2": 20}
            ]
        }
        '''	)
					with open(UpperCAmelCase,     '''w'''	) as f:
										f.write(UpperCAmelCase	)
					return str(UpperCAmelCase	)







@pytest.mark.parametrize(
    '''file_fixture, config_kwargs''',     [
        ('''jsonl_file''', {}),
        ('''jsonl_file_utf16_encoded''', {'''encoding''': '''utf-16'''}),
        ('''json_file_with_list_of_dicts''', {}),
        ('''json_file_with_list_of_dicts_field''', {'''field''': '''field3'''}),
    ],     )
def 			lowerCAmelCase  (     UpperCAmelCase,     UpperCAmelCase,     UpperCAmelCase	)  ->Optional[Any]:






					"""simple docstring"""






					__magic_name__ :							int		       =							Json(**UpperCAmelCase	)
					__magic_name__ :							List[str]		       =							json._generate_tables([[request.getfixturevalue(UpperCAmelCase	)]]	)
					__magic_name__ :							str		       =							pa.concat_tables([table for _, table in generator]	)
					assert pa_table.to_pydict() == {"col_1": [-1, 1, 10], "col_2": [None, 2, 20]}







@pytest.mark.parametrize(
    '''file_fixture, config_kwargs''',     [
        (
            '''jsonl_file''',
            {'''features''': Features({'''col_1''': Value('''int64'''	), '''col_2''': Value('''int64'''	), '''missing_col''': Value('''string'''	)}	)},
        ),
        (
            '''json_file_with_list_of_dicts''',
            {'''features''': Features({'''col_1''': Value('''int64'''	), '''col_2''': Value('''int64'''	), '''missing_col''': Value('''string'''	)}	)},
        ),
        (
            '''json_file_with_list_of_dicts_field''',
            {
                '''field''': '''field3''',
                '''features''': Features(
                    {'''col_1''': Value('''int64'''	), '''col_2''': Value('''int64'''	), '''missing_col''': Value('''string'''	)}	),
            },
        ),
    ],     )
def 			lowerCAmelCase  (     UpperCAmelCase,     UpperCAmelCase,     UpperCAmelCase	)  ->Optional[Any]:






					"""simple docstring"""






					__magic_name__ :							Tuple		       =							Json(**UpperCAmelCase	)
					__magic_name__ :							List[Any]		       =							json._generate_tables([[request.getfixturevalue(UpperCAmelCase	)]]	)
					__magic_name__ :							Tuple		       =							pa.concat_tables([table for _, table in generator]	)
					assert pa_table.to_pydict() == {"col_1": [-1, 1, 10], "col_2": [None, 2, 20], "missing_col": [None, None, None]}









from ..utils import requires_backends


lowercase_		=							None





class 		A__    :






	def __init__(     self    ,					*lowerCamelCase    ,					**lowerCamelCase						)				->       Optional[Any]:




						"""simple docstring"""






						requires_backends(self    ,					['''detectron2''']						)






	@classmethod
	def 			lowercase				(     cls    ,					*lowerCamelCase    ,					**lowerCamelCase						)				->       List[Any]:




						"""simple docstring"""






						requires_backends(cls    ,					['''detectron2''']						)



