Ë
    *�£j=Q  ã                  óÊ  — 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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)Ú	is_scalar)Ú	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    ú;C:\FundamentalWorkbench\vendor\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%   4   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%   H   s  € ðX €IÜ�"”dÔØˆTˆØˆ	Ø€FÛˆÜ—‘˜aÓ ˆØ—G‘G–I‰DˆAˆqä˜a¤Ô%Ü˜“F�Ø˜ŠzØ‘à #™¨Ñ)�ô ˜a¤Ô&ØÐ%¨%°9Ò*<à˜A’:ØŸ	™	 !›�AØ$%�E˜&‘MØà—	‘	˜!“ˆAØ�L‰LÔ)¨!¨V°S¸%À!¹)ÀYÓOÕPð- ð. 	�‰�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)r:   r;   r<   r=   ÚkeyÚvalueÚnew_keys          r   r?   r?   ™   su   € ô. �$œÔØŸ*™*ž,‰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`
    Ú r9   )r,   r(   r)   r?   )r:   r=   r5   r6   Ú	top_dict_Únested_dict_s         r   Ú_normalize_json_orderedrG   Â   s†   € ð #'§*¡*¤,ÔJ¡,™$˜!˜Q´jÀÄDÕ6I��A‘ ,€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}

    )r:   r=   ©r"   )r(   r)   rG   ÚlistÚ_simple_json_normalize)r    r"   Únormalized_json_objectÚrowÚnormalized_json_lists        r   rK   rK   Û   sg   € ðV  Ðä�"”dÔÜ!8¸bÈCÔ!PÐð "Ð!ô 
�BœÔ	ÙPRÓSÑPRÈÔ 6°sÀÖ DÐPRÐÐ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-   rJ   Ú	TypeErrorÚtypeÚ__name__)ÚmetaÚitemÚsubitems      r   Ú_validate_metarV     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} n¨t        | t        j                  «      rˆt        | t        «      sxt	        | «      } t        | «      D ]^  \  }	}
t        |
t        «      rŒt        |
«      rt        j                  |
«      ri | |	<   Œ=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„¬
«      }‰j1                  «       D ]š  \  }}|�||z   }||v rt3        d|› d�«      ‚t5        j6                  |t8        ¬«      }|j:                  dkD  r=t5        j<                  t?        |«      ft8        ¬«      }t        |«      D ]
  \  }	}|||	<   Œ |jA                  ‰«      ||<   Œœ |�|jA                  ‰«      |_        |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(   rJ   Ú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(   rJ   ÚpdÚisnullrP   rQ   rR   )r^   r_   ra   re   s      €r   Ú_pull_recordsz%json_normalize.<locals>._pull_recordsø  sn   ø€ ñ ˜R °dÔ;ˆô ˜&¤$Ô'Ü�y‰y˜Ô Ø�ð ˆô	  ðÜ# F›|×4Ñ4Ð5°T¸$¸ðCóð ð ˆr   Nz9All items in data must be of type dict or NA-like, found rI   )Ú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>5  s0   è ø€ ÐGÁ$¸Q¨Q¯X©X¬ZÓ8©Z¨”
˜1œdÕ#¨ZÕ8Á$ùÒ8ùs   ‚=™8°=©r"   r$   c                ó   •— ‰› | › �S r   r   ©ro   Úrecord_prefixs    €r   Ú<lambda>z json_normalize.<locals>.<lambda>@  s   ø€ ¸°ÀqÀcÑ5Jr   )Ú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#   rq   )r(   r)   ÚlenÚzipr%   r0   Úextend)r:   ÚpathÚ	seen_metar#   ÚobjÚvalr@   ÚrecsÚrÚmeta_valÚ_metare   ri   Ú_recursive_extractÚlengthsr$   Ú	meta_keysÚ	meta_valsÚrecordsr"   s             €€€€€€€€€€r   r…   z*json_normalize.<locals>._recursive_extractS  sa  ø€ Ü�dœDÔ!Ø�6ˆDÜˆt‹9�qŠ=Û�Ü # E¨9¸T× B‘H�C˜Ø˜q‘y¤C¨£HÓ,Ù)4°S¸#¸b¹'Ó)B˜	 #šð !Cñ # 3 t¨A¡w¡<°°a°b°¸9ÈEÐTUÉIÖVñ ó �Ù$ S¨$¨q©'Ó2�ñ
 "ó	ñ "˜ô " !¤TÔ*ô % Q¨C¸9ÕEàñð "ð	 ð ð —‘œs 4›yÔ)Ü # E¨9¸T× B‘H�C˜Ø˜q‘y¤3 s£8Ò+Ø#,¨S¡>™á#.¨s°C¸¸°KÓ#@˜Ø˜c‘N×)Ñ)¨(Õ3ð !Cð —‘˜tÕ$ñ# ùòs   Â'D3ry   c                ó   •— ‰› | › �S r   r   rs   s    €r   ru   z json_normalize.<locals>.<lambda>v  s   ø€ °M°?À1À#Ñ1Fr   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�   rJ   )r   )r#   Úintr�   ÚNone)!rV   r(   r   rj   rJ   r   r)   r   r   r-   Ú	enumerater   rg   ÚisnarQ   rR   rP   ÚNotImplementedErrorrK   Úanyr%   Úrenamer   Újoinr,   Ú
ValueErrorr\   ÚarrayÚobjectÚndimÚemptyrz   Úrepeat)r:   Úrecord_pathrS   Úmeta_prefixrt   rd   r"   r$   rj   ÚirT   Úmsgra   Úmr€   r5   r6   rl   r„   re   ri   r…   r†   r‡   rˆ   r‰   s       ````          @@@@@@@@r   Újson_normalizer£   /  s  ÿû€ ôT �4Ôð FKðØðØ",ðØ>Bðà	õõ:ô( �$œÔØ—
‘
‰àˆä�$œÔ¡dÜ‹{ÐÜ	�Dœ$Ô	àˆv‰Ü	�Dœ#Ÿ,™,Ô	'´
¸4ÄÔ0Eô �D‹zˆÜ  –‰GˆAˆtÜ˜$¤Ô%ØÜ˜Œ¤2§7¡7¨4¤=Ø��Q’ðÜ! $›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   Æ=LÇ3L)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]])rD   Ú.r   N)r    údict | list[dict]r!   r-   r"   r-   r#   r�   r$   r¤   r�   z%dict[str, Any] | list[dict[str, Any]])
r:   r   r;   r-   r<   rŒ   r=   r-   r�   rŒ   )r:   rŒ   r=   r-   r�   rŒ   )r¥   )r    r¦   r"   r-   r�   zdict | list[dict] | Any)rS   ú"str | list[str | list[str]] | Noner�   r‘   )NNNNÚraiser¥   N)r:   zdict | list[dict] | Seriesrž   zstr | list | NonerS   r§   rŸ   ú
str | Nonert   r©   rd   r   r"   r-   r$   r¤   r�   r   )#Ú
__future__r   Úcollectionsr   r   r*   Útypingr   r   r   r	   Únumpyr\   Úpandas._libs.writersr   Úpandas.util._decoratorsr   Úpandas.core.dtypes.commonr   rW   rg   r   r   Úcollections.abcr   Úpandas._typingr   r   r   r%   r?   rG   rK   rV   r£   r   r   r   Ú<module>r³      sA  ðõ #÷ó ÷ó ó å 6Ý .å /ã ÷ñ
 Ý(÷ó
$ð 
ð ØØØðØðàðð 
ðð ð	ð
 ðð òó 
ðð 
ð ØØØðØðàðð 
ðð ð	ð
 ðð òó 
ðð ØØØ ðNØðNàðNð 
ðNð ð	Nð
 ðNð +óNðb&Ø
ð&àð&ð $ð&ð ð	&ð
 ó&óR)ð6 ð2"Øð2"à	ð2"ð ó2"ójñ> ˆHÓð &*Ø/3Ø"Ø $Ø!ØØ ð^Ø
$ð^à"ð^ð -ð^ð ð	^ð
 ð^ð ð^ð 
ð^ð ð^ð ò^ó ñ^r   