
    hc(                     V    S r SSKJr  SSKJrJrJrJrJrJ	r	  SSK
Jr   " S S\5      rg)zParagraph-related proxy types.    )WD_LINE_SPACING)ElementProxyEmuLengthPtTwipslazyproperty)TabStopsc                      \ rS rSrSr\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r	\	R                  S 5       r	\S	 5       r
\
R                  S
 5       r
\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\S 5       r\R                  S 5       r\S 5       r\S 5       rSrg) ParagraphFormat   zProvides access to paragraph formatting such as justification, indentation, line
spacing, space before and after, and widow/orphan control.c                 N    U R                   R                  nUc  gUR                  $ )zA member of the :ref:`WdParagraphAlignment` enumeration specifying the
justification setting for this paragraph.

A value of |None| indicates paragraph alignment is inherited from the style
hierarchy.
N)_elementpPrjc_valselfr   s     B/var/www/html/env/lib/python3.13/site-packages/docx/text/parfmt.py	alignmentParagraphFormat.alignment   s%     mm;zz    c                 D    U R                   R                  5       nXl        g N)r   get_or_add_pPrr   r   valuer   s      r   r   r      s    mm**,
r   c                 N    U R                   R                  nUc  gUR                  $ )a  |Length| value specifying the relative difference in indentation for the
first line of the paragraph.

A positive value causes the first line to be indented. A negative value produces
a hanging indent. |None| indicates first line indentation is inherited from the
style hierarchy.
N)r   r   first_line_indentr   s     r   r   !ParagraphFormat.first_line_indent   s'     mm;$$$r   c                 D    U R                   R                  5       nXl        g r   )r   r   r   r   s      r   r   r   ,   s    mm**, %r   c                 N    U R                   R                  nUc  gUR                  $ )z|True| if the paragraph should be kept "in one piece" and not broken across a
page boundary when the document is rendered.

|None| indicates its effective value is inherited from the style hierarchy.
N)r   r   keepLines_valr   s     r   keep_togetherParagraphFormat.keep_together1   s'     mm;   r   c                 @    XR                   R                  5       l        g r   )r   r   r"   r   r   s     r   r#   r$   =       7<$$&4r   c                 N    U R                   R                  nUc  gUR                  $ )a,  |True| if the paragraph should be kept on the same page as the subsequent
paragraph when the document is rendered.

For example, this property could be used to keep a section heading on the same
page as its first paragraph. |None| indicates its effective value is inherited
from the style hierarchy.
N)r   r   keepNext_valr   s     r   keep_with_nextParagraphFormat.keep_with_nextA   s'     mm;r   c                 @    XR                   R                  5       l        g r   )r   r   r)   r&   s     r   r*   r+   O   s    6;$$&3r   c                 N    U R                   R                  nUc  gUR                  $ )a	  |Length| value specifying the space between the left margin and the left side
of the paragraph.

|None| indicates the left indent value is inherited from the style hierarchy.
Use an |Inches| value object as a convenient way to apply indentation in units
of inches.
N)r   r   ind_leftr   s     r   left_indentParagraphFormat.left_indentS   s%     mm;||r   c                 D    U R                   R                  5       nXl        g r   )r   r   r.   r   s      r   r/   r0   a   s    mm**,r   c                     U R                   R                  nUc  gU R                  UR                  UR                  5      $ )a  |float| or |Length| value specifying the space between baselines in
successive lines of the paragraph.

A value of |None| indicates line spacing is inherited from the style hierarchy.
A float value, e.g. ``2.0`` or ``1.75``, indicates spacing is applied in
multiples of line heights. A |Length| value such as ``Pt(12)`` indicates spacing
is a fixed height. The |Pt| value class is a convenient way to apply line
spacing in units of points. Assigning |None| resets line spacing to inherit from
the style hierarchy.
N)r   r   _line_spacingspacing_linespacing_lineRuler   s     r   line_spacingParagraphFormat.line_spacingf   s:     mm;!!#"2"2C4H4HIIr   c                 ^   U R                   R                  5       nUc  S Ul        S Ul        g [	        U[
        5      (       a;  Xl        UR                  [        R                  :w  a  [        R                  Ul        g g [        U[        S5      -  5      Ul        [        R                  Ul        g )N   )r   r   r4   r5   
isinstancer   r   AT_LEASTEXACTLYr   r   MULTIPLEr   s      r   r6   r7   w   s    mm**,=#C#'C v&&$##'?'??'6'>'>$ @  #55:#56C#2#;#;C r   c                     U R                   R                  nUc  gU R                  UR                  UR                  5      $ )aL  A member of the :ref:`WdLineSpacing` enumeration indicating how the value of
:attr:`line_spacing` should be interpreted.

Assigning any of the :ref:`WdLineSpacing` members :attr:`SINGLE`,
:attr:`DOUBLE`, or :attr:`ONE_POINT_FIVE` will cause the value of
:attr:`line_spacing` to be updated to produce the corresponding line spacing.
N)r   r   _line_spacing_ruler4   r5   r   s     r   line_spacing_rule!ParagraphFormat.line_spacing_rule   s:     mm;&&s'7'79M9MNNr   c                    U R                   R                  5       nU[        R                  :X  a&  [	        S5      Ul        [        R                  Ul        g U[        R                  :X  a&  [	        S5      Ul        [        R                  Ul        g U[        R                  :X  a&  [	        S5      Ul        [        R                  Ul        g Xl        g )Nr9   h    )
r   r   r   SINGLEr   r4   r=   r5   ONE_POINT_FIVEDOUBLEr   s      r   r@   rA      s    mm**,O***$SzC#2#;#;C o444$SzC#2#;#;C o,,,$SzC#2#;#;C #( r   c                 N    U R                   R                  nUc  gUR                  $ )z|True| if the paragraph should appear at the top of the page following the
prior paragraph.

|None| indicates its effective value is inherited from the style hierarchy.
N)r   r   pageBreakBefore_valr   s     r   page_break_before!ParagraphFormat.page_break_before   s'     mm;&&&r   c                 @    XR                   R                  5       l        g r   )r   r   rI   r&   s     r   rJ   rK      s    =B$$&:r   c                 N    U R                   R                  nUc  gUR                  $ )a  |Length| value specifying the space between the right margin and the right
side of the paragraph.

|None| indicates the right indent value is inherited from the style hierarchy.
Use a |Cm| value object as a convenient way to apply indentation in units of
centimeters.
N)r   r   	ind_rightr   s     r   right_indentParagraphFormat.right_indent   s%     mm;}}r   c                 D    U R                   R                  5       nXl        g r   )r   r   rN   r   s      r   rO   rP      s    mm**,r   c                 N    U R                   R                  nUc  gUR                  $ )aG  |Length| value specifying the spacing to appear between this paragraph and
the subsequent paragraph.

|None| indicates this value is inherited from the style hierarchy. |Length|
objects provide convenience properties, such as :attr:`~.Length.pt` and
:attr:`~.Length.inches`, that allow easy conversion to various length units.
N)r   r   spacing_afterr   s     r   space_afterParagraphFormat.space_after   s'     mm;   r   c                 @    XR                   R                  5       l        g r   )r   r   rS   r&   s     r   rT   rU      r'   r   c                 N    U R                   R                  nUc  gUR                  $ )a>  |Length| value specifying the spacing to appear between this paragraph and
the prior paragraph.

|None| indicates this value is inherited from the style hierarchy. |Length|
objects provide convenience properties, such as :attr:`~.Length.pt` and
:attr:`~.Length.cm`, that allow easy conversion to various length units.
N)r   r   spacing_beforer   s     r   space_beforeParagraphFormat.space_before   s'     mm;!!!r   c                 @    XR                   R                  5       l        g r   )r   r   rX   r&   s     r   rY   rZ      s    8=$$&5r   c                 L    U R                   R                  5       n[        U5      $ )zV|TabStops| object providing access to the tab stops defined for this
paragraph format.)r   r   r
   r   s     r   	tab_stopsParagraphFormat.tab_stops   s      mm**,}r   c                 N    U R                   R                  nUc  gUR                  $ )z|True| if the first and last lines in the paragraph remain on the same page
as the rest of the paragraph when Word repaginates the document.

|None| indicates its effective value is inherited from the style hierarchy.
N)r   r   widowControl_valr   s     r   widow_controlParagraphFormat.widow_control   s'     mm;###r   c                 @    XR                   R                  5       l        g r   )r   r   r`   r&   s     r   ra   rb      s    :?$$&7r   c                 R    U c  gU[         R                  :X  a  U [        S5      -  $ U $ )a3  Return the line spacing value calculated from the combination of
`spacing_line` and `spacing_lineRule`.

Returns a |float| number of lines when `spacing_lineRule` is
``WD_LINE_SPACING.MULTIPLE``, otherwise a |Length| object of absolute line
height is returned. Returns |None| when `spacing_line` is |None|.
N   )r   r=   r   )r4   r5   s     r   r3   ParagraphFormat._line_spacing   s0     777"R&((r   c                     U[         R                  :X  a]  U [        S5      :X  a  [         R                  $ U [        S5      :X  a  [         R                  $ U [        S5      :X  a  [         R
                  $ U$ )zReturn the line spacing rule value calculated from the combination of `line`
and `lineRule`.

Returns special members of the :ref:`WdLineSpacing` enumeration when line
spacing is single, double, or 1.5 lines.
r9   rC   rD   )r   r=   r   rE   rF   rG   )linelineRules     r   r?   "ParagraphFormat._line_spacing_rule  s_     ///uSz!&---uSz!&555uSz!&---r    N)__name__
__module____qualname____firstlineno____doc__propertyr   setterr   r#   r*   r/   r6   r@   rJ   rO   rT   rY   r	   r]   ra   staticmethodr3   r?   __static_attributes__rk   r   r   r   r      st   B 
 
   % % & & 	! 	! = =     < <     J J  < < O O ) ) 	' 	' C C     ! ! = = " " > >   	$ 	$ @ @    r   r   N)rp   docx.enum.textr   docx.sharedr   r   r   r   r   r	   docx.text.tabstopsr
   r   rk   r   r   <module>rx      s"    $ * J J 'Vl Vr   