






"""simple docstring"""



import contextlib
import csv
import json
import os
import sqlitea
import tarfile
import textwrap
import zipfile

import pyarrow as pa
import pyarrow.parquet as pq
import pytest

import datasets
import datasets.config




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							)		->int:
						A__						:  Dict		  =  1_0
						A__						:  Union[str, Any]		  =  datasets.Features(
						    {
						        """tokens""": datasets.Sequence(datasets.Value("""string"""      )      ),
						        """labels""": datasets.Sequence(datasets.ClassLabel(names=["""negative""", """positive"""]      )      ),
						        """answers""": datasets.Sequence(
						            {
						                """text""": datasets.Value("""string"""      ),
						                """answer_start""": datasets.Value("""int32"""      ),
						            }      ),
						        """id""": datasets.Value("""int64"""      ),
						    }      )
						A__						:  Optional[Any]		  =  datasets.Dataset.from_dict(
						    {
						        """tokens""": [["""foo"""] * 5] * n,
						        """labels""": [[1] * 5] * n,
						        """answers""": [{"""answer_start""": [9_7], """text""": ["""1976"""]}] * 1_0,
						        """id""": list(range(UpperCAmelCase__      )      ),
						    },						features=UpperCAmelCase__,						)
						return dataset




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[Any],						UpperCAmelCase__       :					Dict      )		->List[str]:
						A__						:  str		  =  str(tmp_path_factory.mktemp("""data"""      ) / """file.arrow"""      )
						dataset.map(cache_file_name=UpperCAmelCase__      )
						return filename


# FILE_CONTENT + files


A_    =							'''\
    Text data.
    Second line of data.'''




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					str      )		->str:
						A__						:  int		  =  tmp_path_factory.mktemp("""data"""      ) / """file.txt"""
						A__						:  str		  =  FILE_CONTENT
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__      )
						return filename




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Optional[Any]      )		->List[str]:
						import bza

						A__						:  Dict		  =  tmp_path_factory.mktemp("""data"""      ) / """file.txt.bz2"""
						A__						:  List[str]		  =  bytes(UpperCAmelCase__,						"""utf-8"""      )
						with bza.open(UpperCAmelCase__,						"""wb"""      ) as f:
												f.write(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					str      )		->Optional[Any]:
						import gzip

						A__						:  Tuple		  =  str(tmp_path_factory.mktemp("""data"""      ) / """file.txt.gz"""      )
						A__						:  Optional[Any]		  =  bytes(UpperCAmelCase__,						"""utf-8"""      )
						with gzip.open(UpperCAmelCase__,						"""wb"""      ) as f:
												f.write(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					int      )		->Optional[int]:
						if datasets.config.LZ4_AVAILABLE:
												import lza.frame

												A__						:  Any		  =  tmp_path_factory.mktemp("""data"""      ) / """file.txt.lz4"""
												A__						:  Tuple		  =  bytes(UpperCAmelCase__,						"""utf-8"""      )
												with lza.frame.open(UpperCAmelCase__,						"""wb"""      ) as f:
																		f.write(UpperCAmelCase__      )
												return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Dict,						UpperCAmelCase__       :					Optional[Any]      )		->Any:
						if datasets.config.PY7ZR_AVAILABLE:
												import pyazr

												A__						:  Dict		  =  tmp_path_factory.mktemp("""data"""      ) / """file.txt.7z"""
												with pyazr.SevenZipFile(UpperCAmelCase__,						"""w"""      ) as archive:
																		archive.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
												return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Tuple,						UpperCAmelCase__       :					List[Any]      )		->Dict:
						import tarfile

						A__						:  int		  =  tmp_path_factory.mktemp("""data"""      ) / """file.txt.tar"""
						with tarfile.TarFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.add(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[Any]      )		->int:
						import lzma

						A__						:  Tuple		  =  tmp_path_factory.mktemp("""data"""      ) / """file.txt.xz"""
						A__						:  List[str]		  =  bytes(UpperCAmelCase__,						"""utf-8"""      )
						with lzma.open(UpperCAmelCase__,						"""wb"""      ) as f:
												f.write(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					str,						UpperCAmelCase__       :					Dict      )		->int:
						import zipfile

						A__						:  Any		  =  tmp_path_factory.mktemp("""data"""      ) / """file.txt.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Tuple      )		->int:
						if datasets.config.ZSTANDARD_AVAILABLE:
												import zstandard as zstd

												A__						:  Optional[Any]		  =  tmp_path_factory.mktemp("""data"""      ) / """file.txt.zst"""
												A__						:  List[Any]		  =  bytes(UpperCAmelCase__,						"""utf-8"""      )
												with zstd.open(UpperCAmelCase__,						"""wb"""      ) as f:
																		f.write(UpperCAmelCase__      )
												return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Optional[int]      )		->List[Any]:
						A__						:  Dict		  =  tmp_path_factory.mktemp("""data"""      ) / """file.xml"""
						A__						:  Dict		  =  textwrap.dedent(
						    """\
    <?xml version=\"1.0\" encoding=\"UTF-8\" ?>
    <tmx version=\"1.4\">
      <header segtype=\"sentence\" srclang=\"ca\" />
      <body>
        <tu>
          <tuv xml:lang=\"ca\"><seg>Contingut 1</seg></tuv>
          <tuv xml:lang=\"en\"><seg>Content 1</seg></tuv>
        </tu>
        <tu>
          <tuv xml:lang=\"ca\"><seg>Contingut 2</seg></tuv>
          <tuv xml:lang=\"en\"><seg>Content 2</seg></tuv>
        </tu>
        <tu>
          <tuv xml:lang=\"ca\"><seg>Contingut 3</seg></tuv>
          <tuv xml:lang=\"en\"><seg>Content 3</seg></tuv>
        </tu>
        <tu>
          <tuv xml:lang=\"ca\"><seg>Contingut 4</seg></tuv>
          <tuv xml:lang=\"en\"><seg>Content 4</seg></tuv>
        </tu>
        <tu>
          <tuv xml:lang=\"ca\"><seg>Contingut 5</seg></tuv>
          <tuv xml:lang=\"en\"><seg>Content 5</seg></tuv>
        </tu>
      </body>
    </tmx>"""      )
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__      )
						return filename


A_    =							[
    {'''col_1''': '''0''', '''col_2''': 0, '''col_3''': 0.0},
    {'''col_1''': '''1''', '''col_2''': 1, '''col_3''': 1.0},
    {'''col_1''': '''2''', '''col_2''': 2, '''col_3''': 2.0},
    {'''col_1''': '''3''', '''col_2''': 3, '''col_3''': 3.0},
]
A_    =							[
    {'''col_1''': '''4''', '''col_2''': 4, '''col_3''': 4.0},
    {'''col_1''': '''5''', '''col_2''': 5, '''col_3''': 5.0},
]
A_    =							{
    '''col_1''': ['''0''', '''1''', '''2''', '''3'''],
    '''col_2''': [0, 1, 2, 3],
    '''col_3''': [0.0, 1.0, 2.0, 3.0],
}

A_    =							[
    {'''col_3''': 0.0, '''col_1''': '''0''', '''col_2''': 0},
    {'''col_3''': 1.0, '''col_1''': '''1''', '''col_2''': 1},
]

A_    =							[
    {'''col_1''': '''s0''', '''col_2''': 0, '''col_3''': 0.0},
    {'''col_1''': '''s1''', '''col_2''': 1, '''col_3''': 1.0},
    {'''col_1''': '''s2''', '''col_2''': 2, '''col_3''': 2.0},
    {'''col_1''': '''s3''', '''col_2''': 3, '''col_3''': 3.0},
]




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							)		->List[str]:
						return DATA_DICT_OF_LISTS




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[Any]      )		->Union[str, Any]:
						A__						:  int		  =  datasets.Dataset.from_dict(UpperCAmelCase__      )
						A__						:  Any		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.arrow"""      )
						dataset.map(cache_file_name=UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Tuple      )		->Optional[Any]:
						A__						:  Optional[int]		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.sqlite"""      )
						with contextlib.closing(sqlitea.connect(UpperCAmelCase__      )      ) as con:
												A__						:  Union[str, Any]		  =  con.cursor()
												cur.execute("""CREATE TABLE dataset(col_1 text, col_2 int, col_3 real)"""      )
												for item in DATA:
																		cur.execute("""INSERT INTO dataset(col_1, col_2, col_3) VALUES (?, ?, ?)""",						tuple(item.values()      )      )
												con.commit()
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Optional[int]      )		->Dict:
						A__						:  List[str]		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.csv"""      )
						with open(UpperCAmelCase__,						"""w""",						newline=""""""      ) as f:
												A__						:  Optional[int]		  =  csv.DictWriter(UpperCAmelCase__,						fieldnames=["""col_1""", """col_2""", """col_3"""]      )
												writer.writeheader()
												for item in DATA:
																		writer.writerow(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[str]      )		->Optional[int]:
						A__						:  Union[str, Any]		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset2.csv"""      )
						with open(UpperCAmelCase__,						"""w""",						newline=""""""      ) as f:
												A__						:  Optional[Any]		  =  csv.DictWriter(UpperCAmelCase__,						fieldnames=["""col_1""", """col_2""", """col_3"""]      )
												writer.writeheader()
												for item in DATA:
																		writer.writerow(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Optional[Any],						UpperCAmelCase__       :					List[Any]      )		->Any:
						import bza

						A__						:  Any		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.csv.bz2"""
						with open(UpperCAmelCase__,						"""rb"""      ) as f:
												A__						:  Any		  =  f.read()
						# data = bytes(FILE_CONTENT, "utf-8")
						with bza.open(UpperCAmelCase__,						"""wb"""      ) as f:
												f.write(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[str],						UpperCAmelCase__       :					Dict,						UpperCAmelCase__       :					Tuple      )		->Optional[Any]:
						A__						:  str		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.csv.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Tuple,						UpperCAmelCase__       :					Dict,						UpperCAmelCase__       :					Tuple      )		->Dict:
						A__						:  Tuple		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.csv.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.basename(csv_path.replace(""".csv""",						""".CSV"""      )      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.basename(csva_path.replace(""".csv""",						""".CSV"""      )      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					int,						UpperCAmelCase__       :					Optional[Any],						UpperCAmelCase__       :					Any      )		->int:
						A__						:  Any		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset_with_dir.csv.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.join("""main_dir""",						os.path.basename(UpperCAmelCase__      )      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.join("""main_dir""",						os.path.basename(UpperCAmelCase__      )      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[Any]      )		->List[str]:
						A__						:  Dict		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.parquet"""      )
						A__						:  int		  =  pa.schema(
						    {
						        """col_1""": pa.string(),
						        """col_2""": pa.intaa(),
						        """col_3""": pa.floataa(),
						    }      )
						with open(UpperCAmelCase__,						"""wb"""      ) as f:
												A__						:  List[Any]		  =  pq.ParquetWriter(UpperCAmelCase__,						schema=UpperCAmelCase__      )
												A__						:  Dict		  =  pa.Table.from_pydict({k: [DATA[i][k] for i in range(len(UpperCAmelCase__      )      )] for k in DATA[0]},						schema=UpperCAmelCase__      )
												writer.write_table(UpperCAmelCase__      )
												writer.close()
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Optional[Any]      )		->List[Any]:
						A__						:  Dict		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.json"""      )
						A__						:  Dict		  =  {"""data""": DATA}
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												json.dump(UpperCAmelCase__,						UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Dict      )		->Any:
						A__						:  str		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.json"""      )
						A__						:  Dict		  =  {"""data""": DATA_DICT_OF_LISTS}
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												json.dump(UpperCAmelCase__,						UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Dict      )		->Tuple:
						A__						:  Tuple		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.jsonl"""      )
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												for item in DATA:
																		f.write(json.dumps(UpperCAmelCase__      ) + """\n"""      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Any      )		->Tuple:
						A__						:  Union[str, Any]		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset2.jsonl"""      )
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												for item in DATA:
																		f.write(json.dumps(UpperCAmelCase__      ) + """\n"""      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Tuple      )		->Union[str, Any]:
						A__						:  Tuple		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset_312.jsonl"""      )
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												for item in DATA_312:
																		f.write(json.dumps(UpperCAmelCase__      ) + """\n"""      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					str      )		->Optional[Any]:
						A__						:  Optional[int]		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset-str.jsonl"""      )
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												for item in DATA_STR:
																		f.write(json.dumps(UpperCAmelCase__      ) + """\n"""      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					str,						UpperCAmelCase__       :					Any      )		->Union[str, Any]:
						import gzip

						A__						:  List[Any]		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.txt.gz"""      )
						with open(UpperCAmelCase__,						"""rb"""      ) as orig_file:
												with gzip.open(UpperCAmelCase__,						"""wb"""      ) as zipped_file:
																		zipped_file.writelines(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Any,						UpperCAmelCase__       :					List[Any]      )		->List[Any]:
						import gzip

						A__						:  Dict		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.jsonl.gz"""      )
						with open(UpperCAmelCase__,						"""rb"""      ) as orig_file:
												with gzip.open(UpperCAmelCase__,						"""wb"""      ) as zipped_file:
																		zipped_file.writelines(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Any,						UpperCAmelCase__       :					List[Any],						UpperCAmelCase__       :					str      )		->Optional[int]:
						A__						:  str		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.jsonl.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Any,						UpperCAmelCase__       :					Optional[Any],						UpperCAmelCase__       :					List[Any],						UpperCAmelCase__       :					Optional[int]      )		->Dict:
						A__						:  Optional[int]		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset_nested.jsonl.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.join("""nested""",						os.path.basename(UpperCAmelCase__      )      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					int,						UpperCAmelCase__       :					Dict,						UpperCAmelCase__       :					str      )		->Union[str, Any]:
						A__						:  Optional[Any]		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset_with_dir.jsonl.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.join("""main_dir""",						os.path.basename(UpperCAmelCase__      )      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.join("""main_dir""",						os.path.basename(UpperCAmelCase__      )      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[str],						UpperCAmelCase__       :					int,						UpperCAmelCase__       :					Tuple      )		->Union[str, Any]:
						A__						:  str		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.jsonl.tar"""
						with tarfile.TarFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.add(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
												f.add(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Dict,						UpperCAmelCase__       :					Optional[Any],						UpperCAmelCase__       :					List[Any],						UpperCAmelCase__       :					Optional[int]      )		->str:
						A__						:  List[str]		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset_nested.jsonl.tar"""
						with tarfile.TarFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.add(UpperCAmelCase__,						arcname=os.path.join("""nested""",						os.path.basename(UpperCAmelCase__      )      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Any      )		->Any:
						A__						:  List[str]		  =  ["""0""", """1""", """2""", """3"""]
						A__						:  int		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset.txt"""      )
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												for item in data:
																		f.write(item + """\n"""      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Tuple      )		->List[Any]:
						A__						:  Any		  =  ["""0""", """1""", """2""", """3"""]
						A__						:  Tuple		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset2.txt"""      )
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												for item in data:
																		f.write(item + """\n"""      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[Any]      )		->List[str]:
						A__						:  Dict		  =  ["""0""", """1""", """2""", """3"""]
						A__						:  int		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.abc"""
						with open(UpperCAmelCase__,						"""w"""      ) as f:
												for item in data:
																		f.write(item + """\n"""      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					int,						UpperCAmelCase__       :					Optional[int],						UpperCAmelCase__       :					List[Any]      )		->str:
						A__						:  Any		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.text.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Any,						UpperCAmelCase__       :					List[Any],						UpperCAmelCase__       :					Dict      )		->Union[str, Any]:
						A__						:  int		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset_with_dir.text.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.join("""main_dir""",						os.path.basename(UpperCAmelCase__      )      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.join("""main_dir""",						os.path.basename(UpperCAmelCase__      )      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					List[Any],						UpperCAmelCase__       :					str,						UpperCAmelCase__       :					Union[str, Any]      )		->str:
						A__						:  Optional[int]		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.ext.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.basename("""unsupported.ext"""      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.basename("""unsupported_2.ext"""      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Tuple      )		->Union[str, Any]:
						A__						:  Dict		  =  """\n""".join(["""First""", """Second\u2029with Unicode new line""", """Third"""]      )
						A__						:  List[Any]		  =  str(tmp_path_factory.mktemp("""data"""      ) / """dataset_with_unicode_new_lines.txt"""      )
						with open(UpperCAmelCase__,						"""w""",						encoding="""utf-8"""      ) as f:
												f.write(UpperCAmelCase__      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							)		->List[Any]:
						return os.path.join("""tests""",						"""features""",						"""data""",						"""test_image_rgb.jpg"""      )




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							)		->str:
						return os.path.join("""tests""",						"""features""",						"""data""",						"""test_audio_44100.wav"""      )




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					int,						UpperCAmelCase__       :					int      )		->List[Any]:
						A__						:  List[Any]		  =  tmp_path_factory.mktemp("""data"""      ) / """dataset.img.zip"""
						with zipfile.ZipFile(UpperCAmelCase__,						"""w"""      ) as f:
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      )      )
												f.write(UpperCAmelCase__,						arcname=os.path.basename(UpperCAmelCase__      ).replace(""".jpg""",						"""2.jpg"""      )      )
						return path




@pytest.fixture(scope="""session"""      )
def      _lowerCAmelCase		(							UpperCAmelCase__       :					Optional[int]      )		->Tuple:
						A__						:  List[Any]		  =  tmp_path_factory.mktemp("""data_dir"""      )

						(data_dir / "subdir").mkdir()
						with open(data_dir / """subdir""" / """train.txt""",						"""w"""      ) as f:
												f.write("""foo\n""" * 1_0      )
						with open(data_dir / """subdir""" / """test.txt""",						"""w"""      ) as f:
												f.write("""bar\n""" * 1_0      )
						# hidden file
						with open(data_dir / """subdir""" / """.test.txt""",						"""w"""      ) as f:
												f.write("""bar\n""" * 1_0      )

						# hidden directory
						(data_dir / ".subdir").mkdir()
						with open(data_dir / """.subdir""" / """train.txt""",						"""w"""      ) as f:
												f.write("""foo\n""" * 1_0      )
						with open(data_dir / """.subdir""" / """test.txt""",						"""w"""      ) as f:
												f.write("""bar\n""" * 1_0      )

						return data_dir














"""simple docstring"""



import unittest

from transformers import (
    MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
    TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
    TextClassificationPipeline,
    pipeline,
)
from transformers.testing_utils import is_pipeline_test, nested_simplify, require_tf, require_torch, slow

from .test_pipelines_common import ANY


# These 2 model types require different inputs than those of the usual text models.
A_    =							{'''LayoutLMv2Config''', '''LayoutLMv3Config'''}






@is_pipeline_test
class 							__SCREAMING_SNAKE_CASE						(				unittest.TestCase		):
							snake_case_     =							MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING
							snake_case_     =							TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING

							if model_mapping is not None:
														snake_case_     =							{config: model for config, model in model_mapping.items() if config.__name__ not in _TO_SKIP}
							if tf_model_mapping is not None:
														snake_case_     =							{
														    config: model for config, model in tf_model_mapping.items() if config.__name__ not in _TO_SKIP
														}


							@require_torch
							def 						_UpperCamelCase       (			self      :						Tuple							):
													'''simple docstring'''





													A__						:  Tuple		  =  pipeline(
													    task="""text-classification"""			,    model="""hf-internal-testing/tiny-random-distilbert"""			,    framework="""pt"""							)

													A__						:  Dict		  =  text_classifier("""This is great !"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """LABEL_0""", """score""": 0.504}]							)

													A__						:  Optional[int]		  =  text_classifier("""This is great !"""			,    top_k=2							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    [{"""label""": """LABEL_0""", """score""": 0.504}, {"""label""": """LABEL_1""", """score""": 0.496}]							)

													A__						:  Any		  =  text_classifier(["""This is great !""", """This is bad"""]			,    top_k=2							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    [
													        [{"""label""": """LABEL_0""", """score""": 0.504}, {"""label""": """LABEL_1""", """score""": 0.496}],
													        [{"""label""": """LABEL_0""", """score""": 0.504}, {"""label""": """LABEL_1""", """score""": 0.496}],
													    ]			,    )

													A__						:  Optional[Any]		  =  text_classifier("""This is great !"""			,    top_k=1							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """LABEL_0""", """score""": 0.504}]							)

													# Legacy behavior
													A__						:  str		  =  text_classifier("""This is great !"""			,    return_all_scores=snake_case							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """LABEL_0""", """score""": 0.504}]							)

													A__						:  int		  =  text_classifier("""This is great !"""			,    return_all_scores=snake_case							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    [[{"""label""": """LABEL_0""", """score""": 0.504}, {"""label""": """LABEL_1""", """score""": 0.496}]]							)

													A__						:  str		  =  text_classifier(["""This is great !""", """Something else"""]			,    return_all_scores=snake_case							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    [
													        [{"""label""": """LABEL_0""", """score""": 0.504}, {"""label""": """LABEL_1""", """score""": 0.496}],
													        [{"""label""": """LABEL_0""", """score""": 0.504}, {"""label""": """LABEL_1""", """score""": 0.496}],
													    ]			,    )

													A__						:  Optional[int]		  =  text_classifier(["""This is great !""", """Something else"""]			,    return_all_scores=snake_case							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    [
													        {"""label""": """LABEL_0""", """score""": 0.504},
													        {"""label""": """LABEL_0""", """score""": 0.504},
													    ]			,    )


							@require_torch
							def 						_UpperCamelCase       (			self      :						int							):
													'''simple docstring'''





													import torch

													A__						:  Tuple		  =  pipeline(
													    task="""text-classification"""			,    model="""hf-internal-testing/tiny-random-distilbert"""			,    framework="""pt"""			,    device=torch.device("""cpu"""							)			,    )

													A__						:  List[str]		  =  text_classifier("""This is great !"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """LABEL_0""", """score""": 0.504}]							)


							@require_tf
							def 						_UpperCamelCase       (			self      :						List[str]							):
													'''simple docstring'''





													A__						:  str		  =  pipeline(
													    task="""text-classification"""			,    model="""hf-internal-testing/tiny-random-distilbert"""			,    framework="""tf"""							)

													A__						:  Optional[Any]		  =  text_classifier("""This is great !"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """LABEL_0""", """score""": 0.504}]							)


							@slow
							@require_torch
							def 						_UpperCamelCase       (			self      :						List[Any]							):
													'''simple docstring'''





													A__						:  Optional[int]		  =  pipeline("""text-classification"""							)

													A__						:  Optional[int]		  =  text_classifier("""This is great !"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """POSITIVE""", """score""": 1.0}]							)
													A__						:  Optional[Any]		  =  text_classifier("""This is bad !"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """NEGATIVE""", """score""": 1.0}]							)
													A__						:  Dict		  =  text_classifier("""Birds are a type of animal"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """POSITIVE""", """score""": 0.988}]							)


							@slow
							@require_tf
							def 						_UpperCamelCase       (			self      :						Any							):
													'''simple docstring'''





													A__						:  Union[str, Any]		  =  pipeline("""text-classification"""			,    framework="""tf"""							)

													A__						:  Dict		  =  text_classifier("""This is great !"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """POSITIVE""", """score""": 1.0}]							)
													A__						:  Optional[int]		  =  text_classifier("""This is bad !"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """NEGATIVE""", """score""": 1.0}]							)
													A__						:  Tuple		  =  text_classifier("""Birds are a type of animal"""							)
													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": """POSITIVE""", """score""": 0.988}]							)


							def 						_UpperCamelCase       (			self      :						Optional[Any]			,    snake_case      :						Any			,    snake_case      :						List[Any]			,    snake_case      :						Any							):
													'''simple docstring'''





													A__						:  Union[str, Any]		  =  TextClassificationPipeline(model=snake_case			,    tokenizer=snake_case							)
													return text_classifier, ["HuggingFace is in", "This is another test"]


							def 						_UpperCamelCase       (			self      :						int			,    snake_case      :						Union[str, Any]			,    snake_case      :						Dict							):
													'''simple docstring'''





													A__						:  List[str]		  =  text_classifier.model
													# Small inputs because BartTokenizer tiny has maximum position embeddings = 22
													A__						:  int		  =  """HuggingFace is in"""
													A__						:  List[Any]		  =  text_classifier(snake_case							)

													self.assertEqual(nested_simplify(snake_case							)			,    [{"""label""": ANY(snake_case							), """score""": ANY(snake_case							)}]							)
													self.assertTrue(outputs[0]["""label"""] in model.config.idalabel.values()							)

													A__						:  Any		  =  ["""HuggingFace is in """, """Paris is in France"""]
													A__						:  Any		  =  text_classifier(snake_case							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    [{"""label""": ANY(snake_case							), """score""": ANY(snake_case							)}, {"""label""": ANY(snake_case							), """score""": ANY(snake_case							)}]			,    )
													self.assertTrue(outputs[0]["""label"""] in model.config.idalabel.values()							)
													self.assertTrue(outputs[1]["""label"""] in model.config.idalabel.values()							)

													# Forcing to get all results with `top_k=None`
													# This is NOT the legacy format
													A__						:  List[Any]		  =  text_classifier(snake_case			,    top_k=snake_case							)
													A__						:  Tuple		  =  len(model.config.idalabel.values()							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    [[{"""label""": ANY(snake_case							), """score""": ANY(snake_case							)}] * N, [{"""label""": ANY(snake_case							), """score""": ANY(snake_case							)}] * N]			,    )

													A__						:  Optional[Any]		  =  {"""text""": """HuggingFace is in """, """text_pair""": """Paris is in France"""}
													A__						:  Union[str, Any]		  =  text_classifier(snake_case							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    {"""label""": ANY(snake_case							), """score""": ANY(snake_case							)}			,    )
													self.assertTrue(outputs["""label"""] in model.config.idalabel.values()							)

													# This might be used a text pair, but tokenizer + pipe interaction
													# makes it hard to understand that it's not using the pair properly
													# https://github.com/huggingface/transformers/issues/17305
													# We disabled this usage instead as it was outputting wrong outputs.
													A__						:  Tuple		  =  [["""HuggingFace is in """, """Paris is in France"""]]
													with self.assertRaises(snake_case							):
																			text_classifier(snake_case							)

													# This used to be valid for doing text pairs
													# We're keeping it working because of backward compatibility
													A__						:  List[Any]		  =  text_classifier([[["""HuggingFace is in """, """Paris is in France"""]]]							)
													self.assertEqual(
													    nested_simplify(snake_case							)			,    [{"""label""": ANY(snake_case							), """score""": ANY(snake_case							)}]			,    )
													self.assertTrue(outputs[0]["""label"""] in model.config.idalabel.values()							)






