+
    yȇi                        ^ RI Ht ^ RIHt ^ RIt^ RIHt ^ RIH	t	H
t
 ^ RIHt ]'       d   ^ RIHt ^ RIHt ^ R	IHtHt RR
 R lltR R ltR R ltR# )    )annotations)TYPE_CHECKINGN)remove_na_arraylike)
MultiIndexconcat)unpack_single_str_list)Hashable)
IndexLabel)	DataFrameSeriesc               $    V ^8  d   QhRRRRRR/# )   datar   kindstrreturnz"dict[Hashable, DataFrame | Series] )formats   "s/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/plotting/_matplotlib/groupby.py__annotate__r      s$     9 9
99'9    c           	         VR8X  d   ^ pM^p\        V P                  \        4      '       g   Q hV P                  P                  V,           Uu/ uF4  pW0P                  RV P                  P                  V4      V8H  3,          bK6  	  up# u upi )a  
Create data for iteration given `by` is assigned or not, and it is only
used in both hist and boxplot.

If `by` is assigned, return a dictionary of DataFrames in which the key of
dictionary is the values in groups.
If `by` is not assigned, return input as is, and this preserves current
status of iter_data.

Parameters
----------
data : reformatted grouped data from `_compute_plot_data` method.
kind : str, plot kind. This function is only used for `hist` and `box` plots.

Returns
-------
iter_data : DataFrame or Dictionary of DataFrames

Examples
--------
If `by` is assigned:

>>> import numpy as np
>>> tuples = [("h1", "a"), ("h1", "b"), ("h2", "a"), ("h2", "b")]
>>> mi = pd.MultiIndex.from_tuples(tuples)
>>> value = [[1, 3, np.nan, np.nan], [3, 4, np.nan, np.nan], [np.nan, np.nan, 5, 6]]
>>> data = pd.DataFrame(value, columns=mi)
>>> create_iter_data_given_by(data)
{'h1':     h1
     a    b
0  1.0  3.0
1  3.0  4.0
2  NaN  NaN, 'h2':     h2
     a    b
0  NaN  NaN
1  NaN  NaN
2  5.0  6.0}
hist:NNN)
isinstancecolumnsr   levelslocget_level_values)r   r   levelcols   &&  r   create_iter_data_given_byr!      s    \ v~ dllJ//// <<&&u--C 	XXa66u=DDEE-  s   :Bc               (    V ^8  d   QhRRRRRRRR/# )r   r   r   byr
   colsr   r   )r   s   "r   r   r   W   s,     + +
+#++5++r   c                    \        V4      pV P                  V4      p. pV F=  w  rg\        P                  ! V.V.4      pWr,          p	Wn        VP                  V	4       K?  	  \        V^R7      p V # )a  
Internal function to group data, and reassign multiindex column names onto the
result in order to let grouped data be used in _compute_plot_data method.

Parameters
----------
data : Original DataFrame to plot
by : grouped `by` parameter selected by users
cols : columns of data set (excluding columns used in `by`)

Returns
-------
Output is the reconstructed DataFrame with MultiIndex columns. The first level
of MI is unique values of groups, and second level of MI is the columns
selected by users.

Examples
--------
>>> d = {"h": ["h1", "h1", "h2"], "a": [1, 3, 5], "b": [3, 4, 6]}
>>> df = pd.DataFrame(d)
>>> reconstruct_data_with_by(df, by="h", cols=["a", "b"])
   h1      h2
   a     b     a     b
0  1.0   3.0   NaN   NaN
1  3.0   4.0   NaN   NaN
2  NaN   NaN   5.0   6.0
)axis)r   groupbyr   from_productr   appendr   )
r   r#   r$   by_modifiedgrouped	data_listkeygroupr   	sub_groups
   &&&       r   reconstruct_data_with_byr0   W   ss    < ),Kll;'GI
 ))C5$-8K	##  )!$DKr   c               $    V ^8  d   QhRRRRRR/# )r   yz
np.ndarrayr#   zIndexLabel | Noner   r   )r   s   "r   r   r      s"     " "
 "0A "j "r   c                    Ve^   \        V P                  4      ^8  dD   \        P                  ! V P                   Uu. uF  p\        V4      NK  	  up4      P                  # \        V 4      # u upi )zInternal function to reformat y given `by` is applied or not for hist plot.

If by is None, input y is 1-d with NaN removed; and if by is not None, groupby
will take place and input y is multi-dimensional array.
)lenshapenparrayTr   )r2   r#   r    s   && r   reformat_hist_y_given_byr9      sW     
~#agg,*xxQSSASc,S1SABDDDq!! Bs   A-)r   )
__future__r   typingr   numpyr6   pandas.core.dtypes.missingr   pandasr   r    pandas.plotting._matplotlib.miscr   collections.abcr	   pandas._typingr
   r   r   r!   r0   r9   r   r   r   <module>rB      s;    "    :
 D()9x+\"r   