
    $pj                        S r SSKJr  SSKJr  SSKJr   SSSSS.             SS	 jjjr SSSSS.             SS
 jjjr SSSSS.             SS jjjr	g)zBPython grapheme, emoji, and sequence-aware ljust, rjust, center().    )annotations)Literal   )widthparseFcontrol_codesambiguous_widthterm_programc                   U R                  5       (       a!  U R                  5       (       a  [        U 5      nO[        XUUS9n[	        SX-
  5      nXU-  -   $ )uQ  
Return text left-justified in a string of given display width.

:param text: String to justify, may contain terminal sequences.
:param dest_width: Total display width of result in terminal cells.
:param fillchar: Single character for padding (default space). Must have
    display width of 1 (not wide, not zero-width, not combining). Unicode
    characters like ``'·'`` are acceptable. The width is not validated.
:param control_codes: How to handle control sequences when measuring.
    Passed to :func:`width` for measurement.
:param ambiguous_width: Width to use for East Asian Ambiguous (A)
    characters. Default is ``1`` (narrow). Set to ``2`` for CJK contexts.
:param term_program: Terminal software identifier for table correction.
    ``False`` (default) disables override lookup.  ``True`` reads the
    ``TERM_PROGRAM`` or ``TERM`` environment variable for auto-detection.
    Accepts a canonical terminal name matching :func:`list_term_programs`,
    such as from XTVERSION_, ENQ_, or ``TERM_PROGRAM``.

    .. versionadded:: 0.8.0
:returns: Text padded on the right to reach ``dest_width``.

.. versionadded:: 0.3.0

Example::

    >>> wcwidth.ljust('hi', 5)
    'hi   '
    >>> wcwidth.ljust('\x1b[31mhi\x1b[0m', 5)
    '\x1b[31mhi\x1b[0m   '
    >>> wcwidth.ljust('\U0001F468\u200D\U0001F469\u200D\U0001F467', 6)
    '👨‍👩‍👧    '
r   r   isasciiisprintablelenr   maxtext
dest_widthfillcharr	   r
   r   
text_widthpadding_cellss           I/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/wcwidth/align.pyljustr   
   sU    R ||~~$**,,Y
4o(46
:23M]***    c                   U R                  5       (       a!  U R                  5       (       a  [        U 5      nO[        XUUS9n[	        SX-
  5      nX'-  U -   $ )uQ  
Return text right-justified in a string of given display width.

:param text: String to justify, may contain terminal sequences.
:param dest_width: Total display width of result in terminal cells.
:param fillchar: Single character for padding (default space). Must have
    display width of 1 (not wide, not zero-width, not combining). Unicode
    characters like ``'·'`` are acceptable. The width is not validated.
:param control_codes: How to handle control sequences when measuring.
    Passed to :func:`width` for measurement.
:param ambiguous_width: Width to use for East Asian Ambiguous (A)
    characters. Default is ``1`` (narrow). Set to ``2`` for CJK contexts.
:param term_program: Terminal software identifier for table correction.
    ``False`` (default) disables override lookup.  ``True`` reads the
    ``TERM_PROGRAM`` or ``TERM`` environment variable for auto-detection.
    Accepts a canonical terminal name matching :func:`list_term_programs`,
    such as from XTVERSION_, ENQ_, or ``TERM_PROGRAM``.

    .. versionadded:: 0.8.0
:returns: Text padded on the left to reach ``dest_width``.

.. versionadded:: 0.3.0

Example::

    >>> wcwidth.rjust('hi', 5)
    '   hi'
    >>> wcwidth.rjust('\x1b[31mhi\x1b[0m', 5)
    '   \x1b[31mhi\x1b[0m'
    >>> wcwidth.rjust('\U0001F468\u200D\U0001F469\u200D\U0001F467', 6)
    '    👨‍👩‍👧'
r   r   r   r   s           r   rjustr   <   sU    R ||~~$**,,Y
4o(46
:23M#d**r   c                   U R                  5       (       a!  U R                  5       (       a  [        U 5      nO[        XUUS9n[	        SX-
  5      nUS-  Xq-  S-  -   nXx-
  n	X(-  U -   X)-  -   $ )uv  
Return text centered in a string of given display width.

:param text: String to center, may contain terminal sequences.
:param dest_width: Total display width of result in terminal cells.
:param fillchar: Single character for padding (default space). Must have
    display width of 1 (not wide, not zero-width, not combining). Unicode
    characters like ``'·'`` are acceptable. The width is not validated.
:param control_codes: How to handle control sequences when measuring.
    Passed to :func:`width` for measurement.
:param ambiguous_width: Width to use for East Asian Ambiguous (A)
    characters. Default is ``1`` (narrow). Set to ``2`` for CJK contexts.
:param term_program: Terminal software identifier for table correction.
    ``False`` (default) disables override lookup.  ``True`` reads the
    ``TERM_PROGRAM`` or ``TERM`` environment variable for auto-detection.
    Accepts a canonical terminal name matching :func:`list_term_programs`,
    such as from XTVERSION_, ENQ_, or ``TERM_PROGRAM``.

    .. versionadded:: 0.8.0
:returns: Text padded on both sides to reach ``dest_width``.

For odd-width padding, the extra cell fills in the same cell position as
Python's :meth:`str.center` behavior (the left side when ``dest_width`` is
odd, the right side when ``dest_width`` is even).
See `the eccentric str.center <https://jazcap53.github.io/pythons-eccentric-strcenter.html>`_.

.. versionadded:: 0.3.0

Example::

    >>> wcwidth.center('hi', 6)
    '  hi  '
    >>> wcwidth.center('\x1b[31mhi\x1b[0m', 6)
    '  \x1b[31mhi\x1b[0m  '
    >>> wcwidth.center('\U0001F468\u200D\U0001F469\u200D\U0001F467', 6)
    '  👨‍👩‍👧  '
r   r      r   r   )
r   r   r   r	   r
   r   r   total_paddingleft_pad	right_pads
             r   centerr"   n   s|    \ ||~~$**,,Y
4o(46
:23M!]%?!%CDH(I%(<<<r   N) )r   strr   intr   r$   r	   z$Literal['parse', 'strict', 'ignore']r
   r%   r   z
bool | strreturnr$   )
__doc__
__future__r   typingr   _widthr   r   r   r"    r   r   <module>r,      s,   H "   /+
 ;B$/+
/+/+ /+
 8/+ /+ /+ 	/+j /+
 ;B$/+
/+/+ /+
 8/+ /+ /+ 	/+j 7=
 ;B$7=
7=7= 7=
 87= 7= 7= 	7=r   