§
    ‹Ÿj[  ã                  ó~   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
mZmZmZ ddlmZ dd	lmZ 	 	 	 ddd„Zd
S )z.This is a python implementation of wcswidth().é    )Úannotations)ÚOptionalé   ©Úwcwidth)Úbisearch)Ú_EMOJI_ZWJ_SETÚ_ISC_VIRAMA_SETÚ_CATEGORY_MC_TABLEÚ_FITZPATRICK_RANGEÚ_REGIONAL_INDICATOR_SET)ÚVS16_NARROW_TO_WIDE)ÚISC_CONSONANTNÚautoÚpwcsÚstrÚnúOptional[int]Úunicode_versionÚambiguous_widthÚintÚreturnc                óv  ‡— |€7|                       ¦   «         r#|                      ¦   «         rt          | ¦  «        S ‰dk    rt          nˆfd„}|€t          | ¦  «        n|}d}d}d}d}	d}
d}||k     �r¿| |         }t	          |¦  «        }|dk    r!|
r|dz  }n|dz   |k     rd}
|d	z  }nd}
|dz  }ŒE|d
k    r?|dk    r9|t          t	          | |         ¦  «        t          d         ¦  «        z  }d}|dz  }ŒŠ|dk    r¦|t          v rgd}|dz
  }|dk    rHt	          | |         ¦  «        t          v r,|dz  }|dz  }|dk    rt	          | |         ¦  «        t          v °,|d	z  dk    r|}	|dz  }Œÿn6t          d         |cxk    rt          d         k    rn n|	t          v r|dz  }�Œ6|
r$t          |t          ¦  «        r|}|}	d}
d}|dz  }�Œ\ ||¦  «        }|dk     rdS |dk    r|r|dz  }d}||z  }|}|}	d}
n0|dk    r!t          |t          ¦  «        r|dz  }d}d}
d}n	|t          v }
|dz  }||k     �°¿|r|dz  }|S )aï  
    Given a unicode string, return its printable length on a terminal.

    See :ref:`Specification` for details of cell measurement.

    This implementation differs from Markus Khun's original POSIX C implementation, in that this
    ``wcswidth()`` processes graphemes strings yielded by :func:`wcwidth.iter_graphemes` defined by
    `Unicode Standard Annex #29`_. POSIX wcswidth(3) is not grapheme-aware and does not measure many
    kinds of Emojis or complex scripts correctly.

    :param pwcs: Measure width of given unicode string.
    :param n: When ``n`` is None (default), return the length of the entire
        string, otherwise only the first ``n`` characters are measured.

    :param unicode_version: Ignored. Retained for backwards compatibility.

        .. deprecated:: 0.3.0
           Only the latest Unicode version is now shipped.

    :param ambiguous_width: Width to use for East Asian Ambiguous (A)
        characters. Default is ``1`` (narrow). Set to ``2`` for CJK contexts.
    :returns: The width, in cells, needed to display the first ``n`` characters
        of the unicode string ``pwcs``.  Returns ``-1`` for C0 and C1 control
        characters!

    .. _`Unicode Standard Annex #29`: https://www.unicode.org/reports/tr29/
    Nr   c                ó&   •— t          | d‰¦  «        S )Nr   r   )Úcr   s    €ú^/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/wcwidth/_wcswidth.pyú<lambda>zwcswidth.<locals>.<lambda>=   s   ø€ ½gÀaÈÐQ`Ñ>aÔ>a€ ó    r   éþÿÿÿéÿÿÿÿFi   é   iþ  z9.0.0iÿÿ  T)ÚisasciiÚisprintableÚlenr   Úordr   r   r   r   r	   r   r   r
   )r   r   r   r   Ú_wcwidthÚendÚtotal_widthÚidxÚlast_measured_idxÚlast_measured_ucsÚlast_was_viramaÚconjunct_pendingÚcharÚucsÚ	ri_beforeÚjÚws      `             r   Úwcswidthr3      s9  ø€ ðL 	€y�T—\’\‘^”^€y¨×(8Ò(8Ñ(:Ô(:€yÝ�4‰yŒyÐð *¨QÒ.Ð.�wˆwÐ4aÐ4aÐ4aÐ4a€Hà�y�#ˆd‰)Œ)ˆ) a€CØ€KØ
€Cð ÐØÐØ€OØÐà
�Š)‰)Ø�CŒyˆÝ�$‰iŒiˆð �&Š=ˆ=Øð Ø�q‘��Ø�q‘˜3’�Ø"'�Ø�q‘��à"'�Ø�q‘�Øð �&Š=ˆ=Ð.°!Ò3Ð3Ø�8Ý�DÐ*Ô+Ñ,Ô,Ý# GÔ,ñô ñ ˆKð !#ÐØ�1‰HˆCØð �Š<ˆ<ØÕ-Ð-Ð-Ø�	Ø˜!‘G�Ø˜1’f�f¥ T¨!¤W¡¤Õ1HÐ!HÐ!HØ ‘N�IØ˜‘F�Að ˜1’f�f¥ T¨!¤W¡¤Õ1HÐ!HÐ!Hð ˜q‘= AÒ%Ð%Ø(+Ð%Ø˜1‘H�CØð &õ % QÔ'¨3ÐGÐGÒGÐGÕ2DÀQÔ2GÒGÐGÐGÐGÐGØ'­>Ð9Ð9Ø�q‘�Ùð ð 	�x¨­]Ñ;Ô;ð 	Ø #ÐØ #ÐØ#ˆOØ#ÐØ�1‰HˆCÙð ˆH�T‰NŒNˆØˆqŠ5ˆ5à�2ØˆqŠ5ˆ5Øð )Ø˜qÑ �Ø#(Ð Ø˜1ÑˆKØ #ÐØ #ÐØ#ˆOˆOØ !Ò#Ð#­°Õ6HÑ(IÔ(IÐ#à˜1ÑˆKØ "ÐØ#ˆOØ$ÐÐà!¥_Ð4ˆOØˆq‰ˆðS �Š)‰)ðV ð Ø�qÑˆØÐr   )Nr   r   )
r   r   r   r   r   r   r   r   r   r   )Ú__doc__Ú
__future__r   Útypingr   r&   r   r   Ú
_constantsr	   r
   r   r   r   Ú
table_vs16r   Útable_graphemer   r3   © r   r   ú<module>r;      sö   ðØ 4Ð 4à "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð
 ,Ð +Ð +Ð +Ð +Ð +Ø )Ð )Ð )Ð )Ð )Ð )ð
 Ø!Øð	Cð Cð Cð Cð Cð Cð Cr   