§
    qŠtj>K  ã                   óò   — 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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)Ú_align_api_if_sparse)Ú	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/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/datasets/_arff_parser.pyú
<dictcomp>z)_split_sparse_columns.<locals>.<dictcomp>/   ó+   € ð ð ð Ù"7 )¨Zˆ
�Iðð ð ó    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>A   r   r   ©Údtyper   r   )ÚmaxÚlenr   ÚnpÚemptyÚfloat64r   )	r   r   Únum_obsÚy_shaper"   Úyr#   r$   r%   s	            r   Ú_sparse_data_to_arrayr3   :   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ÚXr2   s        r   Ú_post_process_framer9   L   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-          |||¦  «        \  }Š$�nI|
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&        ¬¦  «        }tO          | (                    ¦   «         ¦  «        }tS          ||¦  «        Š$nt3          dtU          |¦  «        › �¦  «        ‚ˆ"fd „|D ¦   «         }!|!sn\tW          |!¦  «        r/t5          j,        ˆ"ˆ$fd!„t[          |¦  «        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   ÚcolrI   s     €r   ú
<listcomp>z%_liac_arff_parser.<locals>.<listcomp>Æ   s$   ø€ ÐSÐSÐS 3¸#ÐARÐ:RÐ:R˜3Ð:RÐ:RÐ:Rr   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   rR   z%_liac_arff_parser.<locals>.<listcomp>ì   s<   ø€ ð %
ð %
ð %
àõ Ð# HÔ-¨gÔ6Ñ7Ô7ð%
ð %
ð %
r   c                 óF   •— g | ]}t          ‰|         d          ¦  «        ‘ŒS rZ   r\   r^   s     €r   rR   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)rM   )r-   ÚtakeÚasarrayÚpopÚastyper]   )r   Úir_   rf   r2   s      €€r   rR   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)rb   )0r   ÚCOOÚ	DENSE_GENÚloadr
   r   r   ÚkeysÚnextÚ	DataFrameÚmemory_usageÚsumr	   r   r    r,   rm   ÚdtypesÚconcatr   rL   Úlowerr9   rF   r   Ú
ValueErrorr-   ÚfromiterÚ	itertoolsÚchainÚfrom_iterableÚreshapeÚtupler&   r+   ÚsprA   Ú	coo_arrayr/   r   Útocsrr3   ÚtypeÚallÚhstackr   Úanyrd   )%r>   Úoutput_arrays_typer`   Úfeature_names_to_selectÚtarget_names_to_selectrd   r@   ÚstreamrC   rD   Úarff_containerÚpdÚcolumns_infoÚcolumn_namesÚ	first_rowÚfirst_dfÚ	row_bytesÚ	chunksizeÚcolumns_to_keepÚdfsrK   r5   rw   rG   Úcolumn_dtyper8   r   Úfeature_indices_to_selectÚtarget_indices_to_selectrc   Úarff_data_Xr0   ÚX_shapeÚis_classificationrf   rI   r2   s%     `                               @@@r   Ú_liac_arff_parserrœ   l   sÛ  øøøø€ ðn'ð 'ð 'ð Ð˜iÑ(Ô(€Fð  2°XÒ=Ð=•%”)�)Å5Ä?€Kð -°Ò8Ð9€NÝ”ZØ˜K¸ðñ ô €Nð 0Ð2HÑHÐðð ð ð à'¨Ô5ðñ ô €Jð
 ˜XÒ%Ñ%Ý!Ð"CÑDÔDˆå" >°,Ô#?Ñ@Ô@ˆÝ˜L×-Ò-Ñ/Ô/Ñ0Ô0ˆõ ˜¨Ô/Ñ0Ô0ˆ	Ø—<’<  °\È�<ÑNÔNˆà×)Ò)¨tÐ)Ñ4Ô4×8Ò8Ñ:Ô:ˆ	Ý$ YÑ/Ô/ˆ	ð TÐSÐSÐS¨,ÐSÑSÔSˆØ˜Ô(Ð)ˆÝ# N°6Ô$:¸IÑFÔFð 	ð 	ˆDØ�JŠJØ—’˜T¨<¸e�ÑDÔDÀ_ÔUñô ð ð õ
 ˆ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õ
 % Q§W¢W¡Y¤YÑ/Ô/ˆ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@datarT   rU   rV   rW   rX   c                 ó0   •— i | ]\  }}|‰v ¯	|‰|         “ŒS r   r   )r   r%   rG   rw   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   rG   s     r   rR   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   rP   s     €r   rR   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   )rF   ÚCategoricalDtype©r   rG   r*   r�   s      €r   rR   z'_pandas_arff_parser.<locals>.<listcomp>¹  s@   ø€ ð ð ð áˆD�%Ý�e˜RÔ0Ñ1Ô1ðØðð ð r   rB   c                 ót   •— i | ]4\  }}t          |‰j        ¦  «        ¯||j                             ¦   «         “Œ5S r   )rF   r·   rf   Útolistr¸   s      €r   r   z'_pandas_arff_parser.<locals>.<dictcomp>È  sQ   ø€ ð ð ð áˆD�%Ý�e˜RÔ0Ñ1Ô1ðØˆeÔ×%Ò%Ñ'Ô'ðð ð r   )rB   r=   ry   Ú
startswithr   Úread_csvrL   rz   ÚerrorsÚParserErrorr¯   Úcompilerw   ÚitemsrH   Úrename_categoriesr9   Úto_numpy)r>   rˆ   r`   r‰   rŠ   Úread_csv_kwargsr?   rG   r–   Údtypes_positionalÚdefault_read_csv_kwargsr5   Úexcr”   rµ   Úcategorical_columnsrQ   r8   r2   rf   rI   rw   r�   r´   s                       @@@@r   Ú_pandas_arff_parserrÈ   8  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-arffrB   zUnknown parser: 'z%'. Should be 'liac-arff' or 'pandas'.)rœ   rÈ   rz   )r>   ÚparserÚoutput_typer`   r‰   rŠ   rd   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�   Úsklearn.externalsr   Úsklearn.externals._arffr   Úsklearn.utils._chunkingr   r	   Ú$sklearn.utils._optional_dependenciesr
   Úsklearn.utils._sparser   Úsklearn.utils.fixesr   r&   Úndarrayr3   r9   rœ   rÈ   rÌ   r   r   r   ú<module>rÚ      sµ  ðØ ?Ð ?ð
 Ð Ð Ð Ø 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð à #Ð #Ð #Ð #Ð #Ð #Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ EÐ EÐ EÐ EÐ EÐ EØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø )Ð )Ð )Ð )Ð )Ð )ð Ø!ð Ø48ð àð ð  ð  ð  ðFØ!ðØ48ðà„Zðð ð ð ð$ð ð ðL ðI"ð I"ð I"ð I"ðd ðU"ð U"ð U"ð U"ð~ ØðP
ð P
ð P
ð P
ð P
ð P
r   