§
    ¥˜ºh2J  ã                   óÒ   — d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	Z
ddlZddlmZ ddlmZ dd	lmZmZmZ d
ededefd„Zd
edede
j        fd„Zd„ Z	 dd„Z	 dd„Z	 	 dd„ZdS )z9Implementation of ARFF parsers: via LIAC-ARFF and pandas.é    N)ÚOrderedDict)Ú	Generator)ÚListé   )Ú_arff)ÚArffSparseDataType)Ú_chunk_generatorÚcheck_pandas_supportÚget_chunk_n_rowsÚ	arff_dataÚinclude_columnsÚreturnc                 ó”  — t          ¦   «         t          ¦   «         t          ¦   «         f}d„ t          |¦  «        D ¦   «         }t          | d         | d         | d         ¦  «        D ]a\  }}}||v rW|d                              |¦  «         |d                              |¦  «         |d                              ||         ¦  «         Œb|S )a™  Obtains several columns from sparse ARFF representation. Additionally,
    the column indices are re-labelled, given the columns that are not
    included. (e.g., when including [1, 2, 3], the columns will be relabelled
    to [0, 1, 2]).

    Parameters
    ----------
    arff_data : tuple
        A tuple of three lists of equal size; first list indicating the value,
        second the x coordinate and the third the y coordinate.

    include_columns : list
        A list of columns to include.

    Returns
    -------
    arff_data_new : tuple
        Subset of arff data with only the include columns indicated by the
        include_columns argument.
    c                 ó   — i | ]\  }}||“Œ	S © r   ©Ú.0Ú	array_idxÚ
column_idxs      úe/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/datasets/_arff_parser.pyú
<dictcomp>z)_split_sparse_columns.<locals>.<dictcomp>,   ó+   € ð ð ð Ù"7 )¨Zˆ
�Iðð ð ó    r   é   r   )ÚlistÚ	enumerateÚzipÚappend)r   r   Úarff_data_newÚreindexed_columnsÚvalÚrow_idxÚcol_idxs          r   Ú_split_sparse_columnsr$      sØ   € õ. *.©¬µ±´½¹¼Ð(@€Mðð Ý;DÀ_Ñ;UÔ;Uðñ ô Ðõ "% Y¨q¤\°9¸Q´<ÀÈ1ÄÑ!NÔ!Nð @ð @ÑˆˆW�gØ�oÐ%Ð%Ø˜!Ô×#Ò# CÑ(Ô(Ð(Ø˜!Ô×#Ò# GÑ,Ô,Ð,Ø˜!Ô×#Ò#Ð$5°gÔ$>Ñ?Ô?Ð?øØÐr   c                 ó@  — t          | d         ¦  «        dz   }|t          |¦  «        f}d„ t          |¦  «        D ¦   «         }t          j        |t          j        ¬¦  «        }t          | d         | d         | d         ¦  «        D ]\  }}}||v r|||||         f<   Œ|S )Nr   c                 ó   — i | ]\  }}||“Œ	S r   r   r   s      r   r   z)_sparse_data_to_array.<locals>.<dictcomp>>   r   r   ©Údtyper   r   )ÚmaxÚlenr   ÚnpÚemptyÚfloat64r   )	r   r   Únum_obsÚy_shaper    Úyr!   r"   r#   s	            r   Ú_sparse_data_to_arrayr1   7   s¿   € õ
 �)˜A”,ÑÔ !Ñ#€GØ�˜OÑ,Ô,Ð-€Gðð Ý;DÀ_Ñ;UÔ;Uðñ ô Ðõ 	Œ�¥¤
Ð+Ñ+Ô+€AÝ!$ Y¨q¤\°9¸Q´<ÀÈ1ÄÑ!NÔ!Nð 9ð 9ÑˆˆW�gØ�oÐ%Ð%Ø58ˆAˆgÐ(¨Ô1Ð1Ñ2øØ€Hr   c                 óš   — | |         }t          |¦  «        dk    r	| |         }n$t          |¦  «        dk    r| |d                  }nd}||fS )a  Post process a dataframe to select the desired columns in `X` and `y`.

    Parameters
    ----------
    frame : dataframe
        The dataframe to split into `X` and `y`.

    feature_names : list of str
        The list of feature names to populate `X`.

    target_names : list of str
        The list of target names to populate `y`.

    Returns
    -------
    X : dataframe
        The dataframe containing the features.

    y : {series, dataframe} or None
        The series or dataframe containing the target.
    r   r   r   N)r*   )ÚframeÚfeature_namesÚtarget_namesÚXr0   s        r   Ú_post_process_framer7   I   s^   € ð, 	ˆmÔ€AÝ
ˆ<ÑÔ˜AÒÐØ�,ÔˆˆÝ	ˆ\Ñ	Ô	˜aÒ	Ð	Ø�,˜q”/Ô"ˆˆàˆØˆaˆ4€Kr   c                 ó˜	  ‡‡"‡#‡$— d„ } || ¦  «        }|dk    rt           j        nt           j        }|dk     }	t          j        |||	¬¦  «        }
||z   Š#ˆ#fd„|
d         D ¦   «         Š"|dk    �rt	          d¦  «        }t          |
d         ¦  «        }t          |                     ¦   «         ¦  «        }t          |
d         ¦  «        }| 	                    |g|d	¬
¦  «        }| 
                    d¬¦  «                             ¦   «         }t          |¦  «        }ˆ#fd„|D ¦   «         }||         g}t          |
d         |¦  «        D ]3}|                     | 	                    ||d	¬
¦  «        |         ¦  «         Œ4t          |¦  «        dk    r)|d                              |d         j        ¦  «        |d<   |                     |d¬¦  «                             t(          j        ¬¦  «        }~~i }|j        D ]\}‰|         d         }|                     ¦   «         dk    rd||<   Œ.|                     ¦   «         dk    rd||<   ŒL|j        |         ||<   Œ]|                     |¦  «        }t1          |||¦  «        \  }Š$�n<|
d         }ˆfd„|D ¦   «         }ˆfd„|D ¦   «         }t3          |t4          ¦  «        rˆ|€t7          d¦  «        ‚|d         dk    rd}n|d         |d         z  }t)          j        t:          j                             |¦  «        d|¬¦  «        } |j         |Ž }|dd…|f         }|dd…|f         Š$nÔt3          |tB          ¦  «        r tE          ||¦  «        }tG          |d         ¦  «        dz   }|t          |¦  «        f} tH          j%         &                    |d         |d         |d         ff| t(          j'        ¬¦  «        }| (                    ¦   «         }tS          ||¦  «        Š$nt7          d tU          |¦  «        › �¦  «        ‚ˆ"fd!„|D ¦   «         }!|!sn\tW          |!¦  «        r/t)          j,        ˆ"ˆ$fd"„t[          |¦  «        D ¦   «         ¦  «        Š$nt]          |!¦  «        rt7          d#¦  «        ‚‰$j/        d         dk    r‰$                      d$¦  «        Š$n‰$j/        d         dk    rdŠ$|dk    r|‰$|dfS |‰$d‰"fS )%a  ARFF parser using the LIAC-ARFF library coded purely in Python.

    This parser is quite slow but consumes a generator. Currently it is needed
    to parse sparse datasets. For dense datasets, it is recommended to instead
    use the pandas-based parser, although it does not always handles the
    dtypes exactly the same.

    Parameters
    ----------
    gzip_file : GzipFile instance
        The file compressed to be read.

    output_arrays_type : {"numpy", "sparse", "pandas"}
        The type of the arrays that will be returned. The possibilities ara:

        - `"numpy"`: both `X` and `y` will be NumPy arrays;
        - `"sparse"`: `X` will be sparse matrix and `y` will be a NumPy array;
        - `"pandas"`: `X` will be a pandas DataFrame and `y` will be either a
          pandas Series or DataFrame.

    columns_info : dict
        The information provided by OpenML regarding the columns of the ARFF
        file.

    feature_names_to_select : list of str
        A list of the feature names to be selected.

    target_names_to_select : list of str
        A list of the target names to be selected.

    Returns
    -------
    X : {ndarray, sparse matrix, dataframe}
        The data matrix.

    y : {ndarray, dataframe, series}
        The target.

    frame : dataframe or None
        A dataframe containing both `X` and `y`. `None` if
        `output_array_type != "pandas"`.

    categories : list of str or None
        The names of the features that are categorical. `None` if
        `output_array_type == "pandas"`.
    c              3   óB   K  — | D ]}|                      d¦  «        V — Œd S )Núutf-8)Údecode)Ú	gzip_fileÚlines     r   Ú_io_to_generatorz+_liac_arff_parser.<locals>._io_to_generator    s:   è è € Øð 	'ð 	'ˆDØ—+’+˜gÑ&Ô&Ð&Ð&Ð&Ð&ð	'ð 	'r   ÚsparseÚpandas)Úreturn_typeÚencode_nominalc                 óN   •— i | ]!\  }}t          |t          ¦  «        r|‰v ¯||“Œ"S r   )Ú
isinstancer   )r   ÚnameÚcatÚcolumns_to_selects      €r   r   z%_liac_arff_parser.<locals>.<dictcomp>°   sI   ø€ ð ð ð áˆD�#Ý�c�4Ñ Ô ðð &*Ð->Ð%>Ð%>ð 	ˆcà%>Ð%>Ð%>r   Ú
attributeszfetch_openml with as_frame=TrueÚdataF)ÚcolumnsÚcopyT)Údeepc                 ó   •— g | ]}|‰v ¯|‘Œ	S r   r   ©r   ÚcolrG   s     €r   ú
<listcomp>z%_liac_arff_parser.<locals>.<listcomp>Ã   s$   ø€ ÐTÐTÐT 3¸3ÐBSÐ;SÐ;S˜3Ð;SÐ;SÐ;Sr   r   r   r   )Úignore_index)ÚvalueÚ	data_typeÚintegerÚInt64ÚnominalÚcategoryc                 óF   •— g | ]}t          ‰|         d          ¦  «        ‘ŒS ©Úindex©Úint©r   Úcol_nameÚopenml_columns_infos     €r   rP   z%_liac_arff_parser.<locals>.<listcomp>è   s<   ø€ ð %
ð %
ð %
àõ Ð# HÔ-¨gÔ6Ñ7Ô7ð%
ð %
ð %
r   c                 óF   •— g | ]}t          ‰|         d          ¦  «        ‘ŒS rY   r[   r]   s     €r   rP   z%_liac_arff_parser.<locals>.<listcomp>ì   s<   ø€ ð $
ð $
ð $
àõ Ð# HÔ-¨gÔ6Ñ7Ô7ð$
ð $
ð $
r   Nz6shape must be provided when arr['data'] is a Generatoréÿÿÿÿr-   )r(   Úcount)Úshaper(   z-Unexpected type for data obtained from arff: c                 ó   •— h | ]}|‰v ’ŒS r   r   )r   r^   Ú
categoriess     €r   ú	<setcomp>z$_liac_arff_parser.<locals>.<setcomp>  s+   ø€ ð 
ð 
ð 
Ø'/ˆH˜
Ð"ð
ð 
ð 
r   c           
      óà   •— g | ]j\  }}t          j        t          j        ‰                     |¦  «        d ¬¦  «        ‰dd…||dz   …f                              t
          d¬¦  «        ¦  «        ‘ŒkS )ÚOr'   Nr   F)rK   )r+   ÚtakeÚasarrayÚpopÚastyper\   )r   Úir^   re   r0   s      €€r   rP   z%_liac_arff_parser.<locals>.<listcomp>  sƒ   ø€ ð ð ð ñ
 $˜˜8õ	 ”GÝœ
 :§>¢>°(Ñ#;Ô#;À3ÐGÑGÔGØ˜!˜!˜!˜Q  Q¡˜Y˜,œ×.Ò.­s¸Ð.Ñ?Ô?ñô ðð ð r   zAMix of nominal and non-nominal targets is not currently supported)ra   )0r   ÚCOOÚ	DENSE_GENÚloadr
   r   r   ÚkeysÚnextÚ	DataFrameÚmemory_usageÚsumr   r	   r   r*   rl   ÚdtypesÚconcatÚfillnar+   ÚnanrJ   Úlowerr7   rD   r   Ú
ValueErrorÚfromiterÚ	itertoolsÚchainÚfrom_iterableÚreshapeÚtupler$   r)   Úspr?   Ú
coo_matrixr-   Útocsrr1   ÚtypeÚallÚhstackr   Úanyrc   )%r<   Úoutput_arrays_typer_   Úfeature_names_to_selectÚtarget_names_to_selectrc   r>   ÚstreamrA   rB   Úarff_containerÚpdÚcolumns_infoÚcolumns_namesÚ	first_rowÚfirst_dfÚ	row_bytesÚ	chunksizeÚcolumns_to_keepÚdfsrI   r3   rv   rE   Úcolumn_dtyper6   r   Úfeature_indices_to_selectÚtarget_indices_to_selectrb   Úarff_data_Xr.   ÚX_shapeÚis_classificationre   rG   r0   s%     `                               @@@r   Ú_liac_arff_parserr�   i   s×  øøøø€ ðn'ð 'ð 'ð Ð˜iÑ(Ô(€Fð  2°XÒ=Ð=•%”)�)Å5Ä?€Kð -°Ò8Ð9€NÝ”ZØ˜K¸ðñ ô €Nð 0Ð2HÑHÐðð ð ð à'¨Ô5ðñ ô €Jð
 ˜XÒ%Ñ%Ý!Ð"CÑDÔDˆå" >°,Ô#?Ñ@Ô@ˆÝ˜\×.Ò.Ñ0Ô0Ñ1Ô1ˆõ ˜¨Ô/Ñ0Ô0ˆ	Ø—<’<  °]È�<ÑOÔOˆà×)Ò)¨tÐ)Ñ4Ô4×8Ò8Ñ:Ô:ˆ	Ý$ YÑ/Ô/ˆ	ð UÐTÐTÐT¨-ÐTÑTÔTˆØ˜Ô(Ð)ˆÝ$ ^°FÔ%;¸YÑGÔGð 	ð 	ˆDØ�JŠJØ—’˜T¨=¸u�ÑEÔEÀoÔVñô ð ð õ
 ˆs‰8Œ8�qŠ=ˆ=Ø˜”V—]’] 3 q¤6¤=Ñ1Ô1ˆC�‰Fð
 —	’	˜#¨D�	Ñ1Ô1×8Ò8½r¼vÐ8ÑFÔFˆØ�ð ˆØ”Mð 		2ð 		2ˆDØ.¨tÔ4°[ÔAˆLØ×!Ò!Ñ#Ô# yÒ0Ð0ð  '��t‘�Ø×#Ò#Ñ%Ô%¨Ò2Ð2Ø)��t‘�à$œ|¨DÔ1��t‘�Ø—’˜VÑ$Ô$ˆå"ØÐ*Ð,Bñ
ô 
‰ˆˆ1‰1ð # 6Ô*ˆ	ð%
ð %
ð %
ð %
à3ð%
ñ %
ô %
Ð!ð$
ð $
ð $
ð $
à2ð$
ñ $
ô $
Ð õ
 �i¥Ñ+Ô+ð  	Øˆ}Ý ØLñô ð ð �QŒx˜2Š~ˆ~Ø��à˜aœ 5¨¤8Ñ+�Ý”;Ý”×-Ò-¨iÑ8Ô8ØØðñ ô ˆDð
  �4”< Ð'ˆDØ�Q�Q�QÐ1Ð1Ô2ˆAØ�Q�Q�QÐ0Ð0Ô1ˆAˆAÝ˜	¥5Ñ)Ô)ð 	Ý/°	Ð;TÑUÔUˆKÝ˜) Aœ,Ñ'Ô'¨!Ñ+ˆGØ¥Ð$=Ñ >Ô >Ð?ˆGÝ”	×$Ò$Ø˜Q” +¨a¤.°+¸a´.Ð!AÐBØÝ”jð %ñ ô ˆAð
 —’‘	”	ˆAÝ% iÐ1IÑJÔJˆAˆAõ ØQÅÀYÁÄÐQÐQñô ð ð
ð 
ð 
ð 
Ø3Ið
ñ 
ô 
Ðð !ð 	àÝÐ"Ñ#Ô#ð 	Ý”	ðð ð ð ð õ
 (1Ð1GÑ'HÔ'Hðñ ô ñô ˆAˆAõ Ð"Ñ#Ô#ð 	ÝØSñô ð ð Œ7�1Œ:˜Š?ˆ?Ø—	’	˜%Ñ Ô ˆAˆAØŒW�QŒZ˜1Š_ˆ_ØˆAà˜XÒ%Ð%Ø�!�U˜DÐ Ð Øˆa��zÐ!Ð!r   c           
      ó"  ‡‡‡‡— ddl Š| D ]>}|                     d¦  «                             ¦   «                              d¦  «        r nŒ?i Š|D ]K}||         d         }|                     ¦   «         dk    rd‰|<   Œ.|                     ¦   «         dk    rd	‰|<   ŒLˆfd
„t	          |¦  «        D ¦   «         }	dddgddddd|	dœ	}
i |
¥|pi ¥} ‰j        | fi |¤Ž}	 d„ |D ¦   «         |_        n-# t          $ r }‰j         	                    d¦  «        |‚d}~ww xY w||z   Šˆfd„|j        D ¦   «         }||         }t          j        d¦  «        Šˆfd„}ˆfd„|j                             ¦   «         D ¦   «         }|D ]%}||         j                             |¦  «        ||<   Œ&t!          |||¦  «        \  }}|dk    r|||dfS |                     ¦   «         |                     ¦   «         }}ˆfd„|j                             ¦   «         D ¦   «         }||d|fS )a^  ARFF parser using `pandas.read_csv`.

    This parser uses the metadata fetched directly from OpenML and skips the metadata
    headers of ARFF file itself. The data is loaded as a CSV file.

    Parameters
    ----------
    gzip_file : GzipFile instance
        The GZip compressed file with the ARFF formatted payload.

    output_arrays_type : {"numpy", "sparse", "pandas"}
        The type of the arrays that will be returned. The possibilities are:

        - `"numpy"`: both `X` and `y` will be NumPy arrays;
        - `"sparse"`: `X` will be sparse matrix and `y` will be a NumPy array;
        - `"pandas"`: `X` will be a pandas DataFrame and `y` will be either a
          pandas Series or DataFrame.

    openml_columns_info : dict
        The information provided by OpenML regarding the columns of the ARFF
        file.

    feature_names_to_select : list of str
        A list of the feature names to be selected to build `X`.

    target_names_to_select : list of str
        A list of the target names to be selected to build `y`.

    read_csv_kwargs : dict, default=None
        Keyword arguments to pass to `pandas.read_csv`. It allows to overwrite
        the default options.

    Returns
    -------
    X : {ndarray, sparse matrix, dataframe}
        The data matrix.

    y : {ndarray, dataframe, series}
        The target.

    frame : dataframe or None
        A dataframe containing both `X` and `y`. `None` if
        `output_array_type != "pandas"`.

    categories : list of str or None
        The names of the features that are categorical. `None` if
        `output_array_type == "pandas"`.
    r   Nr:   z@datarS   rT   rU   rV   rW   c                 ó0   •— i | ]\  }}|‰v ¯	|‰|         “ŒS r   r   )r   r#   rE   rv   s      €r   r   z'_pandas_arff_parser.<locals>.<dictcomp>~  s4   ø€ ð ð ð áˆG�TØ�6ˆ>ˆ>ð 	�˜”àˆ>ˆ>r   Fú?ú%ú"Tú\)	ÚheaderÚ	index_colÚ	na_valuesÚkeep_default_naÚcommentÚ	quotecharÚskipinitialspaceÚ
escapecharr(   c                 ó   — g | ]}|‘ŒS r   r   )r   rE   s     r   rP   z'_pandas_arff_parser.<locals>.<listcomp>–  s   € Ð>Ð>Ð> $˜Ð>Ð>Ð>r   zwThe number of columns provided by OpenML does not match the number of columns inferred by pandas when reading the file.c                 ó   •— g | ]}|‰v ¯|‘Œ	S r   r   rN   s     €r   rP   z'_pandas_arff_parser.<locals>.<listcomp>ž  s$   ø€ ÐPÐPÐP˜s°sÐ>OÐ7OÐ7O�sÐ7OÐ7OÐ7Or   z^'(?P<contents>.*)'$c                 ó`   •— t          j        ‰| ¦  «        }|€| S |                     d¦  «        S )NÚcontents)ÚreÚsearchÚgroup)Úinput_stringÚmatchÚsingle_quote_patterns     €r   Ústrip_single_quotesz0_pandas_arff_parser.<locals>.strip_single_quotes®  s2   ø€ Ý”	Ð.°Ñ=Ô=ˆØˆ=ØÐà�{Š{˜:Ñ&Ô&Ð&r   c                 óD   •— g | ]\  }}t          |‰j        ¦  «        ¯|‘ŒS r   )rD   ÚCategoricalDtype©r   rE   r(   rŽ   s      €r   rP   z'_pandas_arff_parser.<locals>.<listcomp>µ  s@   ø€ ð ð ð áˆD�%Ý�e˜RÔ0Ñ1Ô1ðØðð ð r   r@   c                 ót   •— i | ]4\  }}t          |‰j        ¦  «        ¯||j                             ¦   «         “Œ5S r   )rD   r¸   re   Útolistr¹   s      €r   r   z'_pandas_arff_parser.<locals>.<dictcomp>Ä  sQ   ø€ ð ð ð áˆD�%Ý�e˜RÔ0Ñ1Ô1ðØˆeÔ×%Ò%Ñ'Ô'ðð ð r   )r@   r;   rz   Ú
startswithr   Úread_csvrJ   r{   ÚerrorsÚParserErrorr°   Úcompilerv   ÚitemsrF   Úrename_categoriesr7   Úto_numpy)r<   r‰   r_   rŠ   r‹   Úread_csv_kwargsr=   rE   r—   Údtypes_positionalÚdefault_read_csv_kwargsr3   Úexcr•   r¶   Úcategorical_columnsrO   r6   r0   re   rG   rv   rŽ   rµ   s                       @@@@r   Ú_pandas_arff_parserrÉ   4  s  øøøø€ ðp ÐÐÐð ð ð ˆØ�;Š;�wÑÔ×%Ò%Ñ'Ô'×2Ò2°7Ñ;Ô;ð 	ØˆEð	ð €FØ#ð &ð &ˆØ*¨4Ô0°Ô=ˆØ×ÒÑÔ 9Ò,Ð,ð #ˆF�4‰LˆLØ×ÒÑ!Ô! YÒ.Ð.Ø%ˆF�4‰Løðð ð ð å&Ð':Ñ;Ô;ðñ ô Ðð ØØ�UØ ØØØ ØØ"ð
ð 
Ðð MÐ0ÐL°_Ð5JÈÐL€OØˆBŒK˜	Ð5Ð5 _Ð5Ð5€Eð
ð
 ?Ð>Ð*=Ð>Ñ>Ô>ˆŒˆøÝð ð ð ØŒi×#Ò#ð@ñ
ô 
ð ð	øøøøðøøøð 0Ð2HÑHÐØPÐPÐPÐP e¤mÐPÑPÔP€OØ�/Ô"€Eõ œ:Ð&=Ñ>Ô>Ðð'ð 'ð 'ð 'ð 'ðð ð ð à œ<×-Ò-Ñ/Ô/ðñ ô Ðð
 #ð Kð KˆØ˜3”Z”^×5Ò5Ð6IÑJÔJˆˆc‰
ˆ
å˜uÐ&=Ð?UÑVÔV�D€A€qà˜XÒ%Ð%Ø�!�U˜DÐ Ð à�zŠz‰|Œ|˜QŸZšZ™\œ\ˆ1ˆðð ð ð à œ<×-Ò-Ñ/Ô/ðñ ô €Jð
 ˆa��zÐ!Ð!s   ÃC+ Ã+
DÃ5DÄDc                 ó�   — |dk    rt          | |||||¦  «        S |dk    rt          | |||||¦  «        S t          d|› d�¦  «        ‚)a6  Load a compressed ARFF file using a given parser.

    Parameters
    ----------
    gzip_file : GzipFile instance
        The file compressed to be read.

    parser : {"pandas", "liac-arff"}
        The parser used to parse the ARFF file. "pandas" is recommended
        but only supports loading dense datasets.

    output_type : {"numpy", "sparse", "pandas"}
        The type of the arrays that will be returned. The possibilities ara:

        - `"numpy"`: both `X` and `y` will be NumPy arrays;
        - `"sparse"`: `X` will be sparse matrix and `y` will be a NumPy array;
        - `"pandas"`: `X` will be a pandas DataFrame and `y` will be either a
          pandas Series or DataFrame.

    openml_columns_info : dict
        The information provided by OpenML regarding the columns of the ARFF
        file.

    feature_names_to_select : list of str
        A list of the feature names to be selected.

    target_names_to_select : list of str
        A list of the target names to be selected.

    read_csv_kwargs : dict, default=None
        Keyword arguments to pass to `pandas.read_csv`. It allows to overwrite
        the default options.

    Returns
    -------
    X : {ndarray, sparse matrix, dataframe}
        The data matrix.

    y : {ndarray, dataframe, series}
        The target.

    frame : dataframe or None
        A dataframe containing both `X` and `y`. `None` if
        `output_array_type != "pandas"`.

    categories : list of str or None
        The names of the features that are categorical. `None` if
        `output_array_type == "pandas"`.
    z	liac-arffr@   zUnknown parser: 'z%'. Should be 'liac-arff' or 'pandas'.)r�   rÉ   r{   )r<   ÚparserÚoutput_typer_   rŠ   r‹   rc   rÄ   s           r   Úload_arff_from_gzip_filerÍ   Ì  s‡   € ðv �ÒÐÝ ØØØØ#Ø"Øñ
ô 
ð 	
ð 
�8Ò	Ð	Ý"ØØØØ#Ø"Øñ
ô 
ð 	
õ ØM ÐMÐMÐMñ
ô 
ð 	
r   )N)NN)Ú__doc__r}   r°   Úcollectionsr   Úcollections.abcr   Útypingr   Únumpyr+   Úscipyr‚   Ú	externalsr   Úexternals._arffr   Úutilsr	   r
   r   r$   Úndarrayr1   r7   r�   rÉ   rÍ   r   r   r   ú<module>rØ      s—  ðØ ?Ð ?Ø Ð Ð Ð Ø 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð Ø!ð Ø48ð àð ð  ð  ð  ðFØ!ðØ48ðà„Zðð ð ð ð$ð ð ðL ðH"ð H"ð H"ð H"ðb ðU"ð U"ð U"ð U"ð~ ØðP
ð P
ð P
ð P
ð P
ð P
r   