§
    ¨éUgˆJ  ã                   óæ   — 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 dd
lmZ ddl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Úget_chunk_n_rows)Úcheck_pandas_support)Ú	pd_fillnaÚ	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      ú\/var/www/surfInsights/venv3-11/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_arrayr2   6   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ÚXr1   s        r   Ú_post_process_framer8   H   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'          ||¦  «        }~~i }|j        D ]\}‰|         d         }|                     ¦   «         dk    rd||<   Œ.|                     ¦   «         dk    rd||<   ŒL|j        |         ||<   Œ]|                     |¦  «        }t-          |||¦  «        \  }Š$�n<|
d         }ˆfd„|D ¦   «         }ˆfd„|D ¦   «         }t/          |t0          ¦  «        rˆ|€t3          d¦  «        ‚|d         dk    rd}n|d         |d         z  }t5          j        t8          j                             |¦  «        d|¬¦  «        } |j        |Ž }|dd…|f         }|dd…|f         Š$nÔt/          |t@          ¦  «        r tC          ||¦  «        }tE          |d         ¦  «        dz   }|t          |¦  «        f} tF          j$         %                    |d         |d         |d         ff| t4          j&        ¬¦  «        }| '                    ¦   «         }tQ          ||¦  «        Š$nt3          dtS          |¦  «        › �¦  «        ‚ˆ"fd „|D ¦   «         }!|!sn\tU          |!¦  «        r/t5          j+        ˆ"ˆ$fd!„tY          |¦  «        D ¦   «         ¦  «        Š$nt[          |!¦  «        rt3          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   ÚcolrH   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Ú	data_typeÚintegerÚInt64ÚnominalÚcategoryc                 óF   •— g | ]}t          ‰|         d          ¦  «        ‘ŒS ©Úindex©Úint©r   Úcol_nameÚopenml_columns_infos     €r   rQ   z%_liac_arff_parser.<locals>.<listcomp>è   s<   ø€ ð %
ð %
ð %
àõ Ð# HÔ-¨gÔ6Ñ7Ô7ð%
ð %
ð %
r   c                 óF   •— g | ]}t          ‰|         d          ¦  «        ‘ŒS rY   r[   r]   s     €r   rQ   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)rL   )r,   ÚtakeÚasarrayÚpopÚastyper\   )r   Úir^   re   r1   s      €€r   rQ   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   )/r   ÚCOOÚ	DENSE_GENÚloadr   r   r   ÚkeysÚnextÚ	DataFrameÚmemory_usageÚsumr
   r	   r   r+   rl   ÚdtypesÚconcatr   rK   Úlowerr8   rE   r   Ú
ValueErrorr,   ÚfromiterÚ	itertoolsÚchainÚfrom_iterableÚreshapeÚtupler%   r*   Úspr@   Ú
coo_matrixr.   Útocsrr2   ÚtypeÚallÚhstackr   Úanyrc   )%r=   Úoutput_arrays_typer_   Úfeature_names_to_selectÚtarget_names_to_selectrc   r?   ÚstreamrB   rC   Úarff_containerÚpdÚcolumns_infoÚcolumns_namesÚ	first_rowÚfirst_dfÚ	row_bytesÚ	chunksizeÚcolumns_to_keepÚdfsrJ   r4   rv   rF   Úcolumn_dtyper7   r   Úfeature_indices_to_selectÚtarget_indices_to_selectrb   Úarff_data_Xr/   ÚX_shapeÚis_classificationre   rH   r1   s%     `                               @@@r   Ú_liac_arff_parserr›   h   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ˆØ˜Ô(Ð)ˆÝ# N°6Ô$:¸IÑFÔFð 	ð 	ˆDØ�JŠJØ—’˜T¨=¸u�ÑEÔEÀoÔVñô ð ð õ
 ˆs‰8Œ8�qŠ=ˆ=Ø˜”V—]’] 3 q¤6¤=Ñ1Ô1ˆC�‰Fð
 —	’	˜#¨D�	Ñ1Ô1ˆÝ˜"˜eÑ$Ô$ˆØ�ð ˆØ”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$   rF   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   rF   s     r   rQ   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   rO   s     €r   rQ   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   )rE   ÚCategoricalDtype©r   rF   r)   rŒ   s      €r   rQ   z'_pandas_arff_parser.<locals>.<listcomp>µ  s@   ø€ ð ð ð áˆD�%Ý�e˜RÔ0Ñ1Ô1ðØðð ð r   rA   c                 ót   •— i | ]4\  }}t          |‰j        ¦  «        ¯||j                             ¦   «         “Œ5S r   )rE   r¶   re   Útolistr·   s      €r   r   z'_pandas_arff_parser.<locals>.<dictcomp>Ä  sQ   ø€ ð ð ð áˆD�%Ý�e˜RÔ0Ñ1Ô1ðØˆeÔ×%Ò%Ñ'Ô'ðð ð r   )rA   r<   rx   Ú
startswithr   Úread_csvrK   ry   ÚerrorsÚParserErrorr®   Úcompilerv   ÚitemsrG   Úrename_categoriesr8   Úto_numpy)r=   r‡   r_   rˆ   r‰   Úread_csv_kwargsr>   rF   r•   Údtypes_positionalÚdefault_read_csv_kwargsr4   Úexcr“   r´   Úcategorical_columnsrP   r7   r1   re   rH   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-arffrA   zUnknown parser: 'z%'. Should be 'liac-arff' or 'pandas'.)r›   rÇ   ry   )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   Úutils._chunkingr	   r
   Úutils._optional_dependenciesr   Úutils.fixesr   r%   Úndarrayr2   r8   r›   rÇ   rË   r   r   r   ú<module>rØ      s¡  ðØ ?Ð ?à Ð Ð Ð Ø 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø #Ð #Ð #Ð #Ð #Ð #ð Ø!ð Ø48ð àð ð  ð  ð  ðFØ!ðØ48ðà„Zðð ð ð ð$ð ð ðL ðI"ð I"ð I"ð I"ðd ðU"ð U"ð U"ð U"ð~ ØðP
ð P
ð P
ð P
ð P
ð P
r   