Sindbad~EG File Manager
�
Mٜg� � �r � d dl mZ d dlmZ d dlZd dlZerd dlm Z G d� d� Z
d d�Zedk( r e� yy)
� )�annotations)�
TYPE_CHECKINGN)�Iterablec �^ � e Zd ZdZ d
dd�Zdd�Zd
d�Zddd�Zd� Zd� Z ddd �Z
y)�TablePlotterzg
Layout some DataFrames in vertical/horizontal layout for explanation.
Used in merging.rst
c �. � || _ || _ || _ y �N)�
cell_width�cell_height� font_size)�selfr
r r s �@/usr/local/lib/python3.12/site-packages/pandas/util/_doctools.py�__init__zTablePlotter.__init__ s � � %���&���"��� c � � |j \ }}||j j z ||j j z fS )zA
Calculate table shape considering index levels.
)�shape�columns�nlevels�index)r
�df�row�cols r �_shapezTablePlotter._shape s: � � �8�8���S��R�Z�Z�'�'�'��r�x�x�/?�/?�)?�?�?r c �� � � |r]t t � fd�|D � � � j |� d � }t � fd�|D � � � j |� d z }||fS t |D �cg c] }� j |� d �� c}� j |� d gz � }t |D �cg c] }� j |� d �� c}� j |� d gz � }||fS c c}w c c}w )zQ
Calculate appropriate figure size based on left and right data.
c 3 �F �K � | ] }�j |� d �� � y�w�r N�r ��.0r r
s �r � <genexpr>z*TablePlotter._get_cells.<locals>.<genexpr>* s �� �� �?�$�B�T�[�[��_�Q�/�$�� �!r c 3 �F �K � | ] }�j |� d �� � y�w�� Nr r s �r r z*TablePlotter._get_cells.<locals>.<genexpr>+ s �� �� �;�d�����R���+�d�r! r$ )�max�sumr )r
�left�right�vertical�vcells�hcellsr s ` r �
_get_cellszTablePlotter._get_cells$ s� �� � ���?�$�?�?����U�AS�TU�AV�W�F��;�d�;�;�d�k�k�%�>P�QR�>S�S�F� �v�~�� �t�<�t��$�+�+�b�/�!�,�t�<����E�@R�ST�@U�?V�V�W�F��t�<�t��$�+�+�b�/�!�,�t�<����E�@R�ST�@U�?V�V�W�F��v�~��� =��<s �*C'�+C,c � � � ddl m} ddlm} t |t
� s|g}|D �cg c] }� j
|� �� }}� j
|� }� j |||� \ }} |r� j |z � j | z f}
n� j |z � j | z f}
|j |
�� }|r�|j t |� |� }t � fd�|D � � }
t � fd�|D � � }t t ||� � D ]8 \ }\ }}|j! ||d|
�f � }� j# |||d|z �� �: |j% |dd�|
d�f � }� j# ||d d
| z �� |j'