Ë
    ª2Úi}P  ã                  ó¾  — d dl mZ d dlmZmZ d dlZd dlmZmZm	Z	m
Z
 d dlZd dlmZ d dlmZ d dlZd dlmZmZ erd dlmZ d d	lmZmZ dd
„Ze
	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„«       Ze
	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„«       Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 d	 	 	 	 	 dd„Zdd„Z ed«      	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d d„«       Z y)!é    )Úannotations)ÚabcÚdefaultdictN)ÚTYPE_CHECKINGÚAnyÚDefaultDictÚoverload©Úconvert_json_to_lines)Ú
set_module)Ú	DataFrameÚSeries)ÚIterable)ÚIgnoreRaiseÚScalarc                óF   — | d   dk(  s
| d   dk(  r| S | dd } t        | «      S )zJ
    Helper function that converts JSON lists to line delimited JSON.
    r   ú[éÿÿÿÿú]é   r
   )Úss    úP/var/www/html/acx/venv/lib/python3.12/site-packages/pandas/io/json/_normalize.pyÚconvert_to_line_delimitsr   %   s4   € ð ˆQ‰4�3Š;˜1˜R™5 Cš<ØˆØ	ˆ!ˆBˆ€Aä  Ó#Ð#ó    c                 ó   — y ©N© ©ÚdsÚprefixÚsepÚlevelÚ	max_levels        r   Únested_to_recordr$   2   s   € ð r   c                 ó   — y r   r   r   s        r   r$   r$   <   s   € ð r   c                óð  — d}t        | t        «      r| g} d}g }| D ]Ð  }t        j                  |«      }|j	                  «       D ]•  \  }	}
t        |	t
        «      st        |	«      }	|dk(  r|	}n||z   |	z   }t        |
t        «      r|�!||k\  r|dk7  r|j                  |	«      }
|
||<   Œd|j                  |	«      }
|j                  t        |
|||dz   |«      «       Œ— |j                  |«       ŒÒ |r|d   S |S )a�  
    A simplified json_normalize

    Converts a nested dict into a flat dict ("record"), unlike json_normalize,
    it does not attempt to extract a subset of the data.

    Parameters
    ----------
    ds : dict or list of dicts
    prefix: the prefix, optional, default: ""
    sep : str, default '.'
        Nested records will generate names separated by sep,
        e.g., for sep='.', { 'foo' : { 'bar' : 0 } } -> foo.bar
    level: int, optional, default: 0
        The number of levels in the json string.

    max_level: int, optional, default: None
        The max depth to normalize.

    Returns
    -------
    d - dict or list of dicts, matching `ds`

    Examples
    --------
    >>> nested_to_record(
    ...     dict(flat1=1, dict1=dict(c=1, d=2), nested=dict(e=dict(c=1, d=2), d=2))
    ... )
    {'flat1': 1, 'dict1.c': 1, 'dict1.d': 2, 'nested.e.c': 1, 'nested.e.d': 2, 'nested.d': 2}
    FTr   r   )
Ú
isinstanceÚdictÚcopyÚdeepcopyÚitemsÚstrÚpopÚupdater$   Úappend)r   r    r!   r"   r#   Ú	singletonÚnew_dsÚdÚnew_dÚkÚvÚnewkeys               r   r$   r$   F   s  € ðX €IÜ�"”dÔØˆTˆØˆ	Ø€FØò ˆÜ—‘˜aÓ ˆØ—G‘G“Iò 	Q‰DˆAˆqä˜a¤Ô%Ü˜“F�Ø˜ŠzØ‘à #™¨Ñ)�ô ˜a¤Ô&ØÐ%¨%°9Ò*<à˜A’:ØŸ	™	 !›�AØ$%�E˜&‘MØà—	‘	˜!“ˆAØ�L‰LÔ)¨!¨V°S¸%À!¹)ÀYÓOÕPð-	Qð. 	�‰�eÕð3ñ6 Ø�a‰yÐØ€Mr   c                ó¸   — t        | t        «      rD| j                  «       D ]/  \  }}|› |› |› �}|s|j                  |«      }t	        ||||¬«       Œ1 |S | ||<   |S )a3  
    Main recursive function
    Designed for the most basic use case of pd.json_normalize(data)
    intended as a performance improvement, see #15621

    Parameters
    ----------
    data : Any
        Type dependent on types contained within nested Json
    key_string : str
        New key (with separator(s) in) for data
    normalized_dict : dict
        The new normalized/flattened Json dict
    separator : str, default '.'
        Nested records will generate names separated by sep,
        e.g., for sep='.', { 'foo' : { 'bar' : 0 } } -> foo.bar
    ©ÚdataÚ
key_stringÚnormalized_dictÚ	separator)r'   r(   r+   ÚremoveprefixÚ_normalize_json)r9   r:   r;   r<   ÚkeyÚvalueÚnew_keys          r   r>   r>   —   sz   € ô. �$œÔØŸ*™*›,ò 	‰JˆC�Ø#˜ Y K°¨uÐ5ˆGáØ!×.Ñ.¨yÓ9�äØØ"Ø /Ø#ö	ð	ð Ðð '+ˆ˜
Ñ#ØÐr   c           
     ó  — | j                  «       D ��ci c]  \  }}t        |t        «      rŒ||“Œ }}}t        | j                  «       D ��ci c]  \  }}t        |t        «      sŒ||“Œ c}}di |¬«      }i |¥|¥S c c}}w c c}}w )aw  
    Order the top level keys and then recursively go to depth

    Parameters
    ----------
    data : dict or list of dicts
    separator : str, default '.'
        Nested records will generate names separated by sep,
        e.g., for sep='.', { 'foo' : { 'bar' : 0 } } -> foo.bar

    Returns
    -------
    dict or list of dicts, matching `normalized_json_object`
    Ú r8   )r+   r'   r(   r>   )r9   r<   r4   r5   Ú	top_dict_Únested_dict_s         r   Ú_normalize_json_orderedrF   À   s�   € ð #'§*¡*£,×J™$˜!˜Q´jÀÄDÕ6I��A‘ÐJ€IÑJÜ"Ø#Ÿz™z›|×C‘t�q˜!¬z¸!¼TÕ/Bˆa�‰dÓCØØØô	€Lð )ˆiÐ(˜<Ð(Ð(ùó KùãCs   ”A=­A=ÁB
Á&B
c                óª   — i }t        | t        «      rt        | |¬«      }|S t        | t        «      r| D �cg c]  }t	        ||¬«      ‘Œ }}|S |S c c}w )a™  
    An optimized basic json_normalize

    Converts a nested dict into a flat dict ("record"), unlike
    json_normalize and nested_to_record it doesn't do anything clever.
    But for the most basic use cases it enhances performance.
    E.g. pd.json_normalize(data)

    Parameters
    ----------
    ds : dict or list of dicts
    sep : str, default '.'
        Nested records will generate names separated by sep,
        e.g., for sep='.', { 'foo' : { 'bar' : 0 } } -> foo.bar

    Returns
    -------
    frame : DataFrame
    d - dict or list of dicts, matching `normalized_json_object`

    Examples
    --------
    >>> _simple_json_normalize(
    ...     {
    ...         "flat1": 1,
    ...         "dict1": {"c": 1, "d": 2},
    ...         "nested": {"e": {"c": 1, "d": 2}, "d": 2},
    ...     }
    ... )
    {'flat1': 1, 'dict1.c': 1, 'dict1.d': 2, 'nested.e.c': 1, 'nested.e.d': 2, 'nested.d': 2}

    )r9   r<   ©r!   )r'   r(   rF   ÚlistÚ_simple_json_normalize)r   r!   Únormalized_json_objectÚrowÚnormalized_json_lists        r   rJ   rJ   Ù   sd   € ðV  Ðä�"”dÔÜ!8¸bÈCÔ!PÐð "Ð!ô 
�BœÔ	ØPRÖSÈÔ 6°sÀÖ DÐSÐÐSØ#Ð#Ø!Ð!ùò  Ts   ¶Ac                ó:  — | €yt        | t        «      ry| D ]‚  }t        |t        «      r<|D ]6  }t        |t        «      rŒt        dt	        |«      j
                  › d|›�«      ‚ ŒOt        |t        «      rŒ`t        dt	        |«      j
                  › d|›�«      ‚ y)aD  
    Validate that meta parameter contains only strings or lists of strings.
    Parameters
    ----------
    meta : str or list of str or list of list of str or None
        The meta parameter to validate.
    Raises
    ------
    TypeError
        If meta contains elements that are not strings or lists of strings.
    Nz9All elements in nested meta paths must be strings. Found z: zBAll elements in 'meta' must be strings or lists of strings. Found )r'   r,   rI   Ú	TypeErrorÚtypeÚ__name__)ÚmetaÚitemÚsubitems      r   Ú_validate_metarU     s²   € ð €|ØÜ�$œÔØØò ˆÜ�dœDÔ!Øò �Ü! '¬3Õ/Ü#ð!Ü!% g£×!7Ñ!7Ð 8¸¸7¸+ðGóð ñô ˜D¤#Õ&ÜðÜ˜d›×,Ñ,Ð-¨R°¨xð9óð ñr   Úpandasc                óÖ  ‡‡‡‡‡‡‡‡‡‡‡‡— t        |«       	 d	 	 	 	 	 	 	 dˆfd„Šdˆfd„Št        | t        «      r| j                  }nd}t        | t        «      r| s
t        «       S t        | t        «      r| g} nvt        | t        j                  «      rVt        | t        «      sFt	        | «      } | D ]5  }	t        |	t        «      rŒdt        |	«      j                  › �}
t        |
«      ‚ nt        ‚|€ |€|€‰€‰€t        t        | ‰¬«      |¬«      S |€Ft        d„ | D «       «      rt!        | ‰‰¬«      } t        | |¬«      }‰�|j#                  ˆfd	„¬
«      }|S t        |t        «      s|g}|€g }nt        |t        «      s|g}|D �cg c]  }t        |t        «      r|n|g‘Œ c}Šg Šg Št%        t        «      Š‰D �cg c]  }‰j'                  |«      ‘Œ c}Šddˆˆˆˆˆˆˆˆˆˆf
d„Š ‰| |i d¬«       t        ‰«      }‰�|j#                  ˆfd„¬
«      }‰j)                  «       D ]š  \  }}|�||z   }||v rt+        d|› d�«      ‚t-        j.                  |t0        ¬«      }|j2                  dkD  r=t-        j4                  t7        |«      ft0        ¬«      }t9        |«      D ]
  \  }}|||<   Œ |j;                  ‰«      ||<   Œœ |�|j;                  ‰«      |_        |S c c}w c c}w )a>  
    Normalize semi-structured JSON data into a flat table.

    This method is designed to transform semi-structured JSON data, such as nested
    dictionaries or lists, into a flat table. This is particularly useful when
    handling JSON-like data structures that contain deeply nested fields.

    Parameters
    ----------
    data : dict, list of dicts, or Series of dicts
        Unserialized JSON objects.
    record_path : str or list of str, default None
        Path in each object to list of records. If not passed, data will be
        assumed to be an array of records.
    meta : list of paths (str or list of str), default None
        Fields to use as metadata for each record in resulting table.
    meta_prefix : str, default None
        String to prefix records with dotted path, e.g. foo.bar.field if
        meta is ['foo', 'bar'].
    record_prefix : str, default None
        String to prefix records with dotted path, e.g. foo.bar.field if
        path to records is ['foo', 'bar'].
    errors : {'raise', 'ignore'}, default 'raise'
        Configures error handling.

        * 'ignore' : will ignore KeyError if keys listed in meta are not
          always present.
        * 'raise' : will raise KeyError if keys listed in meta are not
          always present.
    sep : str, default '.'
        Nested records will generate names separated by sep.
        e.g., for sep='.', {'foo': {'bar': 0}} -> foo.bar.
    max_level : int, default None
        Max number of levels(depth of dict) to normalize.
        if None, normalizes all levels.

    Returns
    -------
    DataFrame
        The normalized data, represented as a pandas DataFrame.

    See Also
    --------
    DataFrame : Two-dimensional, size-mutable, potentially heterogeneous tabular data.
    Series : One-dimensional ndarray with axis labels (including time series).

    Examples
    --------
    >>> data = [
    ...     {"id": 1, "name": {"first": "Coleen", "last": "Volk"}},
    ...     {"name": {"given": "Mark", "family": "Regner"}},
    ...     {"id": 2, "name": "Faye Raker"},
    ... ]
    >>> pd.json_normalize(data)
        id name.first name.last name.given name.family        name
    0  1.0     Coleen      Volk        NaN         NaN         NaN
    1  NaN        NaN       NaN       Mark      Regner         NaN
    2  2.0        NaN       NaN        NaN         NaN  Faye Raker

    >>> data = [
    ...     {
    ...         "id": 1,
    ...         "name": "Cole Volk",
    ...         "fitness": {"height": 130, "weight": 60},
    ...     },
    ...     {"name": "Mark Reg", "fitness": {"height": 130, "weight": 60}},
    ...     {
    ...         "id": 2,
    ...         "name": "Faye Raker",
    ...         "fitness": {"height": 130, "weight": 60},
    ...     },
    ... ]
    >>> pd.json_normalize(data, max_level=0)
        id        name                        fitness
    0  1.0   Cole Volk  {'height': 130, 'weight': 60}
    1  NaN    Mark Reg  {'height': 130, 'weight': 60}
    2  2.0  Faye Raker  {'height': 130, 'weight': 60}

    Normalizes nested data up to level 1.

    >>> data = [
    ...     {
    ...         "id": 1,
    ...         "name": "Cole Volk",
    ...         "fitness": {"height": 130, "weight": 60},
    ...     },
    ...     {"name": "Mark Reg", "fitness": {"height": 130, "weight": 60}},
    ...     {
    ...         "id": 2,
    ...         "name": "Faye Raker",
    ...         "fitness": {"height": 130, "weight": 60},
    ...     },
    ... ]
    >>> pd.json_normalize(data, max_level=1)
        id        name  fitness.height  fitness.weight
    0  1.0   Cole Volk             130              60
    1  NaN    Mark Reg             130              60
    2  2.0  Faye Raker             130              60

    >>> data = [
    ...     {
    ...         "id": 1,
    ...         "name": "Cole Volk",
    ...         "fitness": {"height": 130, "weight": 60},
    ...     },
    ...     {"name": "Mark Reg", "fitness": {"height": 130, "weight": 60}},
    ...     {
    ...         "id": 2,
    ...         "name": "Faye Raker",
    ...         "fitness": {"height": 130, "weight": 60},
    ...     },
    ... ]
    >>> series = pd.Series(data, index=pd.Index(["a", "b", "c"]))
    >>> pd.json_normalize(series)
        id        name  fitness.height  fitness.weight
    a  1.0   Cole Volk             130              60
    b  NaN    Mark Reg             130              60
    c  2.0  Faye Raker             130              60

    >>> data = [
    ...     {
    ...         "state": "Florida",
    ...         "shortname": "FL",
    ...         "info": {"governor": "Rick Scott"},
    ...         "counties": [
    ...             {"name": "Dade", "population": 12345},
    ...             {"name": "Broward", "population": 40000},
    ...             {"name": "Palm Beach", "population": 60000},
    ...         ],
    ...     },
    ...     {
    ...         "state": "Ohio",
    ...         "shortname": "OH",
    ...         "info": {"governor": "John Kasich"},
    ...         "counties": [
    ...             {"name": "Summit", "population": 1234},
    ...             {"name": "Cuyahoga", "population": 1337},
    ...         ],
    ...     },
    ... ]
    >>> result = pd.json_normalize(
    ...     data, "counties", ["state", "shortname", ["info", "governor"]]
    ... )
    >>> result
             name  population    state shortname info.governor
    0        Dade       12345   Florida    FL    Rick Scott
    1     Broward       40000   Florida    FL    Rick Scott
    2  Palm Beach       60000   Florida    FL    Rick Scott
    3      Summit        1234   Ohio       OH    John Kasich
    4    Cuyahoga        1337   Ohio       OH    John Kasich

    >>> data = {"A": [1, 2]}
    >>> pd.json_normalize(data, "A", record_prefix="Prefix.")
        Prefix.0
    0          1
    1          2

    Returns normalized data with columns prefixed with the given string.
    c                ó  •— | }	 t        |t        «      r|D ]  }|€t        |«      ‚||   }Œ 	 |S ||   }	 |S # t        $ rD}|rt        d|› d�«      |‚‰dk(  rt        j                  cY d}~S t        d|› d|› d�«      |‚d}~ww xY w)zInternal function to pull fieldNzKey zS not found. If specifying a record_path, all elements of data should have the path.Úignorez) not found. To replace missing values of z% with np.nan, pass in errors='ignore')r'   rI   ÚKeyErrorÚnpÚnan)ÚjsÚspecÚextract_recordÚresultÚfieldÚeÚerrorss         €r   Ú_pull_fieldz#json_normalize.<locals>._pull_fieldÙ  sÏ   ø€ ð ˆð	Ü˜$¤Ô%Ø!ò +�EØ�~Ü& u›oÐ-Ø# E™]‘Fñ+ð( ˆð   ™‘ð ˆøô ò 	ÙÜØ˜1˜#ð 1ð 2óð ðð ˜Ò!Ü—v‘v•äØ˜1˜#ÐFÀqÀcð J6ð 7óð ðûð	ús%   …)9 ±9 ¹	BÁ&BÁ(BÁ.BÂBc                ó¸   •—  ‰| |d¬«      }t        |t        «      s=t        j                  |«      rg }|S t	        dt        |«      j                  › d|›�«      ‚|S )z¶
        Internal function to pull field for records, and similar to
        _pull_field, but require to return list. And will raise error
        if has non iterable value.
        T)r_   z(Path must contain list or null, but got z at )r'   rI   ÚpdÚisnullrO   rP   rQ   )r]   r^   r`   rd   s      €r   Ú_pull_recordsz%json_normalize.<locals>._pull_recordsö  sn   ø€ ñ ˜R °dÔ;ˆô ˜&¤$Ô'Ü�y‰y˜Ô Ø�ð ˆô	  ðÜ# F›|×4Ñ4Ð5°T¸$¸ðCóð ð ˆr   Nz.All items in data must be of type dict, found rH   )Úindexc              3  ó~   K  — | ]0  }|j                  «       D �cg c]  }t        |t        «      ‘Œ c}–— Œ2 y c c}w ­wr   )Úvaluesr'   r(   )Ú.0ÚyÚxs      r   ú	<genexpr>z!json_normalize.<locals>.<genexpr>/  s+   è ø€ ÒG¸Q¨Q¯X©X«ZÖ8¨”
˜1œdÕ#Ö8ÑGùÒ8ùs   ‚=™8°=©r!   r#   c                ó   •— ‰› | › �S r   r   ©rn   Úrecord_prefixs    €r   ú<lambda>z json_normalize.<locals>.<lambda>:  s   ø€ ¸°ÀqÀcÐ5J€ r   )Úcolumnsr   c           	     óp  •
— t        | t        «      r| g} t        |«      dkD  rW| D ]Q  }t        ‰
‰d¬«      D ]&  \  }}|dz   t        |«      k(  sŒ ‰||d   «      ||<   Œ(  ‰||d      |dd  ||dz   ¬«       ŒS y | D ]³  } ‰||d   «      }|D �cg c]"  }t        |t        «      rt	        |‰‰¬«      n|‘Œ$ }}‰j                  t        |«      «       t        ‰
‰d¬«      D ]<  \  }}|dz   t        |«      kD  r||   }	n ‰|||d  «      }	‰|   j                  |	«       Œ> ‰j                  |«       Œµ y c c}w )Nr   T)Ústrictr   r   ©r"   rp   )r'   r(   ÚlenÚzipr$   r/   Úextend)r9   ÚpathÚ	seen_metar"   ÚobjÚvalr?   ÚrecsÚrÚmeta_valÚ_metard   rh   Ú_recursive_extractÚlengthsr#   Ú	meta_keysÚ	meta_valsÚrecordsr!   s             €€€€€€€€€€r   r„   z*json_normalize.<locals>._recursive_extractM  sr  ø€ Ü�dœDÔ!Ø�6ˆDÜˆt‹9�qŠ=Øò W�Ü # E¨9¸TÔ Bò C‘H�C˜Ø˜q‘y¤C¨£HÓ,Ù)4°S¸#¸b¹'Ó)B˜	 #šðCñ # 3 t¨A¡w¡<°°a°b°¸9ÈEÐTUÉIÖVñWð ò %�Ù$ S¨$¨q©'Ó2�ð
 "ö	ð ô " !¤TÔ*ô % Q¨C¸9ÕEàñð�ð ð —‘œs 4›yÔ)Ü # E¨9¸TÔ Bò 4‘H�C˜Ø˜q‘y¤3 s£8Ò+Ø#,¨S¡>™á#.¨s°C¸¸°KÓ#@˜Ø˜c‘N×)Ñ)¨(Õ3ð4ð —‘˜tÕ$ñ#%ùòs   Â'D3rx   c                ó   •— ‰› | › �S r   r   rr   s    €r   rt   z json_normalize.<locals>.<lambda>p  s   ø€ °M°?À1À#Ð1F€ r   zConflicting metadata name z, need distinguishing prefix )Údtyper   )F)r]   údict[str, Any]r^   ú
list | strr_   ÚboolÚreturnzScalar | Iterable)r]   r‹   r^   rŒ   rŽ   rI   )r   )r"   ÚintrŽ   ÚNone)rU   r'   r   ri   rI   r   r(   r   r   r,   rP   rQ   rO   ÚNotImplementedErrorrJ   Úanyr$   Úrenamer   Újoinr+   Ú
ValueErrorr[   ÚarrayÚobjectÚndimÚemptyry   Ú	enumerateÚrepeat)r9   Úrecord_pathrR   Úmeta_prefixrs   rc   r!   r#   ri   rS   Úmsgr`   Úmr   r4   r5   rk   Úirƒ   rd   rh   r„   r…   r†   r‡   rˆ   s       ````          @@@@@@@@r   Újson_normalizer¡   -  sý  ÿû€ ôT �4Ôð FKðØðØ",ðØ>Bðà	õõ:ô( �$œÔØ—
‘
‰àˆä�$œÔ¡dÜ‹{ÐÜ	�Dœ$Ô	àˆv‰Ü	�Dœ#Ÿ,™,Ô	'´
¸4ÄÔ0Eô �D‹zˆØò 	%ˆDÜ˜d¤DÕ)ðÜ! $›Z×0Ñ0Ð1ð3ð ô   “nÐ$ñ	%ô "Ð!ð 	ÐØˆLØÐØÐ!ØÐäÔ/°¸#Ô>ÀeÔLÐLàÐÜÑGÀ$ÔGÔGô $ D¨c¸YÔGˆDÜ˜4 uÔ-ˆØÐ$Ø—]‘]Ó+J�]ÓKˆFØˆÜ˜¤TÔ*Ø"�mˆà€|Ø‰Ü˜œdÔ#Øˆvˆà8<Ö=°1”*˜Q¤Ô%‰Q¨A¨3Ñ.Ò=€Eð €GØ€Gä(¬Ó.€IØ*/Ö0 3�—‘˜#•Ò0€I÷%÷ %ñ< �t˜[¨"°AÕ6ä�wÓ€FàÐ Ø—‘Ó'F�ÓGˆð —‘Ó!ò +‰ˆˆ1ØÐ"Ø˜a‘ˆAà�‰;ÜØ,¨Q¨CÐ/LÐMóð ô
 —‘˜!¤6Ô*ˆà�;‰;˜Š?ä—X‘Xœs 1›v˜i¬vÔ6ˆFÜ# A›,ò  ‘��3Ø��q’	ð ð —M‘M 'Ó*ˆˆqŠ	ð%+ð& ÐØ—|‘| GÓ,ˆŒØ€MùòI >ùò 1s   ÆK!ÇK&)r   r,   rŽ   r,   )....)r   r(   r    r,   r!   r,   r"   r�   r#   ú
int | NonerŽ   r‹   )r   z
list[dict]r    r,   r!   r,   r"   r�   r#   r¢   rŽ   zlist[dict[str, Any]])rC   ú.r   N)r   údict | list[dict]r    r,   r!   r,   r"   r�   r#   r¢   rŽ   z%dict[str, Any] | list[dict[str, Any]])
r9   r   r:   r,   r;   r‹   r<   r,   rŽ   r‹   )r9   r‹   r<   r,   rŽ   r‹   )r£   )r   r¤   r!   r,   rŽ   zdict | list[dict] | Any)rR   ú"str | list[str | list[str]] | NonerŽ   r�   )NNNNÚraiser£   N)r9   zdict | list[dict] | Seriesrœ   zstr | list | NonerR   r¥   r�   ú
str | Noners   r§   rc   r   r!   r,   r#   r¢   rŽ   r   )!Ú
__future__r   Úcollectionsr   r   r)   Útypingr   r   r   r	   Únumpyr[   Úpandas._libs.writersr   Úpandas.util._decoratorsr   rV   rf   r   r   Úcollections.abcr   Úpandas._typingr   r   r   r$   r>   rF   rJ   rU   r¡   r   r   r   ú<module>r°      s>  ðõ #÷ó ÷ó ó å 6Ý .ã ÷ñ
 Ý(÷ó
$ð 
ð ØØØðØðàðð 
ðð ð	ð
 ðð òó 
ðð 
ð ØØØðØðàðð 
ðð ð	ð
 ðð òó 
ðð ØØØ ðNØðNàðNð 
ðNð ð	Nð
 ðNð +óNðb&Ø
ð&àð&ð $ð&ð ð	&ð
 ó&óR)ð6 ð2"Øð2"à	ð2"ð ó2"ójñ> ˆHÓð &*Ø/3Ø"Ø $Ø!ØØ ðZØ
$ðZà"ðZð -ðZð ð	Zð
 ðZð ðZð 
ðZð ðZð òZó ñZr   