Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
padding.cpython-313.pyc239 linesDownload Raw Back to __pycache__
1�

2��j�M��t�SSKJr SSKrSSKrSSKJrJr SSKJr SSK	J3r4 SSKJrJ
r
JrJrJrJrJrJr SSKJrJrJr \R0(aSS	KJr SS5KJr \R:"S5r"SS
\5r"SS\5r "SS\\\RB\5r"SSjr#g)�)�annotationsN)�CompositeCanvas�SolidCanvas)�remove_defaults)�	int_scale�)�RELATIVE_100�Align�Sizing�6WHSettings�normalize_align�normalize_width�simplify_align�simplify_width)�WidgetDecoration�WidgetError�
WidgetWarning)�Iterator)�Literal�
WrappedWidgetc��\rSrSrSrSrg)�PaddingError�zPadding related errors.�N��__name__�7__module__�__qualname__�__firstlineno__�__doc__�__static_attributes__r��ZD:\code\apps\devtools\python\user_packages\Python313\site-packages\urwid/widget/padding.pyrrs��!r"rc��\rSrSrSrSrg)�PaddingWarning�"zPadding related warnings.rNrrr"r#r%r%"s��#r"r%c��^�\rSrSr\R8\SSS4SU4SjjjrSSjrSU4Sjjr	SSjr9\SSj5r\RSS	j5r\SS10j5r\RSSj5rSSU4SjjjrS S!S
jjrSSjrS S"SjjrS#SjrS$SjrS%SjrS&SjrS'SjrSrU=r$)(�Padding�&Nrc��>�[TU]U5 [U[5(a=USS;a4USS:XaUSn[R11nOUSn[Rn[U[5(a#USS;aUSS:XaUSnOUSn[nUc[RnXPl12X`l[U[5uUlUl[!U[5uUlUlX@lg)u�13:param w: a box, flow or fixed widget to pad on the left and/or right14    this widget is stored as self.original_widget15:type w: Widget16 17:param align: one of: ``'left'``, ``'center'``, ``'right'``18    (``'relative'``, *percentage* 0=left 100=right)19 20:param width: one of:21 22    *given width*23      integer number of columns for self.original_widget24 25    ``'pack'``26      try to pack self.original_widget to its ideal size27 28    (``'relative'``, *percentage of total width*)29      make width depend on the container's width30 31    ``'clip'``32      to enable clipping mode for a fixed widget33 34:param min_width: the minimum number of columns for35    self.original_widget or ``None``36:type min_width: int | None37 38:param left: a fixed number of columns to pad on the left39:type left: int40 41:param right: a fixed number of columns to pad on the right42:type right: int43 44Clipping Mode: (width= ``'clip'``)45In clipping mode this padding widget will behave as a flow46widget and self.original_widget will be treated as a fixed widget.47self.original_widget will be clipped to fit the available number of columns.48For example if align is ``'left'`` then self.original_widget may be clipped on the right.49 50Pack Mode: (width= ``'pack'``)51In pack mode is supported FIXED operation if it is supported by the original widget.52 53>>> from urwid import Divider, Text, BigText, FontRegistry54>>> from urwid.util import set_temporary_encoding55>>> size = (7,)56>>> def pr(w):57...     with set_temporary_encoding("utf-8"):58...         for t in w.render(size).text:59...             print(f"|{t.decode('utf-8')}|")60>>> pr(Padding(Text("Head"), ("relative", 20), "pack"))61| Head  |62>>> pr(Padding(Divider("-"), left=2, right=1))63|  ---- |64>>> pr(Padding(Divider("*"), "center", 3))65|  ***  |66>>> p = Padding(Text("1234"), "left", 2, None, 1, 1)67>>> p68<Padding fixed/flow widget <Text fixed/flow widget '1234'> left=1 right=1 width=2>69>>> pr(p)  # align against left70| 12    |71| 34    |72>>> p.align = "right"73>>> pr(p)  # align against right74|    12 |75|    34 |76>>> pr(Padding(Text("hi\nthere"), "right", "pack"))  # pack text first77|  hi   |78|  there|79>>> pr(Padding(BigText("1,2,3", FontRegistry["Thin 3x3"]()), width="clip"))80| ┐  ┌─┐|81| │  ┌─┘|82| ┴ ,└─ |83r>�84fixed left�fixed rightr+rN)�super�__init__�85isinstance�tupler86�LEFT�RIGHTr	r�CLIP�left�rightr
r�_align_type�
_align_amountr�_width_type�
_width_amount�	min_width)�self�w�align�widthr:r4r5�	__class__s       �r#r.�Padding.__init__'s����r	������e�U�#�#��a��4Q�(Q��Q�x�<�'��Q�x���87�88���a��������e�U�#�#��a��4Q�(Q��Q�x�<�'��Q�x���a��� �E��=��O�O�E��	��89�/>�u�l�/S�,���$�,�/>�u�l�/S�,���$�,�"�r"c���UR[R:Xa[[R9045$[
URR55nUR[R:Xao[R91U;a UR[R5 O;[RU;a'[R"SUR3[SS9 [U5$)z�Widget sizing.92 93Rules:94* width == CLIP: only FLOW is supported, and wrapped widget should support FIXED95* width == GIVEN: FIXED is supported, and wrapped widget should support FLOW96* All other cases: use sizing of target widget97zDWHSettings.GIVEN expect BOX or FLOW widget to be used, but received ���98stacklevel)r8rr3�	frozensetr�FLOW�set�original_widget�sizing�GIVEN�add�FIXED�BOX�warnings�warnr%)r;rIs  r#rI�Padding.sizing�s������z���.��f�k�k�^�,�,��T�)�)�0�0�2�3�����z�/�/�/��{�{�f�$��99�100�6�<�<�(����6�)��
�
�Z�[_�[o�[o�Zp�q�"� ���� � r"c��>�0[TU]5EURURURUR101URS.En[U[R5$)N)r=r>r4r5r:)102r-�_repr_attrsr=r>r4r5r:rr(r.)r;�attrsr?s  �r#rR�Padding._repr_attrs�sW���103��g�!�#�104��Z�Z��Z�Z��I�I��Z�Z����
105���u�g�&6�&6�7�7r"c#��# �SUR4v� SUR4v� SUR4v� SUR4v� SUR4v� SUR1064v� g7f)Nr<r=r>r:r4r5)rHr=r>r:r4r5�r;s r#�
__rich_repr__�Padding.__rich_repr__�sa����4�'�'�'�'��t�z�z�!�!��t�z�z�!�!��4�>�>�)�)��d�i�i����t�z�z�!�!�s�A"A$c�B�[URUR5$)z'107Return the padding alignment setting.108)rr6r7rVs r#r=�
Padding.align�s���d�.�.��0B�0B�C�Cr"c�^�[U[5uUlUlUR	5 g)z109Set the padding alignment.110N)r
rr6r7�_invalidate)r;r=s  r#r=rZ�s'��0?�u�l�/S�,���$�,����r"c�B�[URUR5$)z111Return the padding width.112)rr8r9rVs r#r>�
Padding.width�s���d�.�.��0B�0B�C�Cr"c�^�[U[5uUlUlUR	5 g)z113Set the padding width.114N)rrr8r9r\)r;r>s  r#r>r^�s'��0?�u�l�/S�,���$�,����r"c�|>�U(a[TU]X5$UR[R:Xa[S5eURUR-nURR5nUR[R:Xa�[RU;a'[R"SUR3[SS9 [!UR"UR$=(d S5U-URR'UR"4U54$[R(U;a'[R"SUR3[SS9 URRX5upVUR[R*:Xa#[!XPR$=(d S5U-U4$UR[R,:Xa@[![/US-UR"-S-5UR$=(d S5U-U4$[S	URR15S11535e)N�.WHSettings.CLIP makes Padding FLOW-only widgetzSWHSettings.GIVEN expect FLOW widget to be used for FIXED pack/render, but received rBrCrzIPadded widget should support FIXED sizing for FIXED render, but received �d��?zUnexpected width type: �))r-�packr8rr3rr4r5rHrIrJrrFrNrOr%�maxr9r:�rowsrL�PACK�RELATIVE�int�upper)r;�size�focus�expand�w_sizingr>�heightr?s       �r#re�Padding.pack�s����116��7�<��,�,����z���.��O�P�P����T�Z�Z�'���'�'�.�.�0�����z�/�/�/��{�{�(�*��
�
�$�$(�$8�$8�#9�;�"� �	��D�&�&����(;�!�<�v�E��$�$�)�)�4�+=�+=�*?��G��
�117�<�<�x�'��M�M�[�\`�\p�\p�[q�r���
�118�,�,�1�1�$�>�
�����z���.��u�n�n�1��2�V�;�V�C�C����z�2�2�2��s�5�3�;��);�);�;�c�A�B�D�N�N�DW�VW�X�[a�a�ci�i�i��4�T�5E�5E�5K�5K�5M�4N�a�P�Q�Qr"c���URX5up4UR[R:XaURRSU5nO�U(a�USX4--119nUR[R:XaDX`R:a5[R"USUSUSU<SUR<S3120[SS	9 URRU/US121SQ7U5nOhUR[R:Xa.URRUR/US122SQ7U5nOURRSU5nUR5S:XaG[SUSUR55n[U5nURUR/5 U$[U5nURUR/5 US:wdUS:waUR!X45 U$)Nrrz
.render(size=z, focus=z): too narrow size (z < rdrBrCr� )�padding_valuesr8rr3�_original_widget�renderrJr9rNrOr%�colsrrgr�set_depends�pad_trim_left_right)r;rlrmr4r5�canv�maxcols       r#rv�Padding.render!s���123�)�)�$�6������z���.��(�(�/�/��E�:�D�
��!�W���-�F����:�#3�#3�3��AS�AS�8S��
�
��f�M�$��x��w�>R�SY�R\�\_�`d�`r�`r�_u�uv�w�"� ��124�(�(�/�/��0C�$�q�r�(�0C�U�K�D�
�
�
��!1�!1�
1��(�(�/�/��1C�1C�0O�d�1�2�h�0O�QV�W�D��(�(�/�/��E�:�D��9�9�;�!���s�D��G�T�Y�Y�[�9�D�"�4�(�D����d�3�3�4�5��K��t�$�����$�/�/�0�1��1�9���125��$�$�T�1��r"c126�^�UR[R:XayURR	SUS9up4U(d[S5e[
USURUR[RUSURUR5$UR[R:Xa�U(a[USn[XPR-127UR-128UR=(d S5nURR	U4US9up4O7URR	SUS9up4X0R-UR-n[
UURUR[RUURURUR5$U(aUSnO�UR[R:Xa'URUR-UR-nOd[URR	SUS9SS-UR-UR=(d S5UR-UR-n[
UURURURURURURUR5$)ztReturn the number of columns to pad on the left and right.129 130Override this method to define custom padding behaviour.r�rmrarNrbr)r8rr3rurer�calculate_left_right_paddingr6r7r4r5rhrfr:rJr9)r;rlrmr>�_ignorer{�maxwidths       r#rt�Padding.padding_valuesEsM�����z���.�!�2�2�7�7��%�7�H�N�E��"�#S�T�T�/��Q��� � ��"�"�������	�	��131�132�	�	
����z���.���a����v�	�	�1�D�J�J�>����@S�RS�T��#'�#8�#8�#=�#=�x�k�QV�#=�#W� ���#'�#8�#8�#=�#=�b��#=�#N� �����*�T�Z�Z�7��/��� � ��"�"�� � ������	�	��133�134�	�	
���!�W�F�
�
�
��!1�!1�
1��'�'�$�)�)�3�d�j�j�@�F��D�)�)�.�.�r��.�?��B�S�H�D�L^�L^�^�`d�`n�`n�`s�rs�t��)�)���*�*��
�,���������������N�N��I�I��J�J�	135�		136r"c�t�UunURX5upEUR[R:Xa&URRX4-137U-1384U5upgU$UR[R:Xa URRSU5up�U	$URRX4-139U-1404US9$)z0Return the rows needed for self.original_widget.rr~)rtr8rrhrurer3rg)141r;rlrmr{r4r5�_pcols�prows�_fcols�frowss142          r#rg�Padding.rows�s����	���)�)�$�6������z���.� �1�1�6�6��
��8M�7O�QV�W�M�F��L����z���.� �1�1�6�6�r�5�A�M�F��L��$�$�)�)�6�=�5�+@�*B�%�)�P�Pr"c���URUS5up4U(a-USU-143U-144/USSQ7nURRXR5$URRSU5$)z'Pass keypress to self._original_widget.TrrNr)rtru�keypress)r;rl�keyr4r5�maxvalss      r#r��Padding.keypress�si���)�)�$��5�����A�w��~��-�9��Q�R��9�G��(�(�1�1�'�?�?��$�$�-�-�b�#�6�6r"c��[URS5(dgURUS5up#U(aUSU-145U-146/USSQ7nUSS:XagOSnURRU5=nb147UupgXb-U4$g)zDReturn the (x,y) coordinates of cursor within self._original_widget.�get_cursor_coordsNTrrr)�hasattrrurtr�)r;rlr4r5r��coords�x�ys        r#r��Padding.get_cursor_coords�s����t�,�,�.A�B�B���)�)�$��5�����A�w��~��-�9��Q�R��9�G��q�z�Q�����G��+�+�=�=�g�F�F�F�S��D�A��8�Q�;��r"c�^�[URS5(dgURUS5upEU(aUSnXd-148U-149/USSQ7nOURSS5SnSn[	U[1505(aX$:aUnOX&U-151:�aXe-152S-153nX$-nURR
XrU5$)z{Set the cursor position with (x,y) coordinates of self._original_widget.154 155Returns True if move succeeded, False otherwise.156�move_cursor_to_coordsTrrNr)r�rurtrer/rjr�)r;rlr�r�r4r5r{r�s        r#r��Padding.move_cursor_to_coords�s����t�,�,�.E�F�F���)�)�$��5�����!�W�F��}�u�,�8�t�A�B�x�8�G��Y�Y�r�4�(��+�F��G��a�����x����u�n�$��N�Q�&��
�I�A��$�$�:�:�7�q�I�Ir"c���[URS5(dgURX5upxU(a"USn	XG:dXIU-157:�agX�-158U-159/USSQ7n160OSn161URRX�X4U-162XV5$)z=Send mouse event if position is within self._original_widget.�mouse_eventFrrNr)r�rurtr�)r;rl�event�button�col�rowrmr4r5r{r�s           r#r��Padding.mouse_event�s����t�,�,�m�<�<���)�)�$�6�����!�W�F��z�S�U�N�2���}�u�,�8�t�A�B�x�8�G��G��$�$�0�0���t��UX�`�`r"c��[URS5(dgURUS5up#U(aUSU-163U-164/USSQ7nOSnURRU5n[	U[1655(aXR-$U$)z@Return the preferred column from self._original_widget, or None.�get_pref_colNTrrr)r�rurtr�r/rj)r;rlr4r5r�r�s      r#r��Padding.get_pref_col�s����t�,�,�n�=�=���)�)�$��5�����A�w��~��-�9��Q�R��9�G��G��!�!�.�.�w�7���a�����8�O��r")r7r6r9r8r4r:r5)r<rr=z~Literal['left', 'center', 'right'] | Align | tuple[Literal['relative', WHSettings.RELATIVE, 'fixed left', 'fixed right'], int]r>z�int | Literal['pack', 'clip', WHSettings.PACK, WHSettings.CLIP] | tuple[Literal['relative', WHSettings.RELATIVE, 'fixed left', 'fixed right'], int]r:�166int | Noner4rjr5rj�return�None)r�zfrozenset[Sizing])r�zdict[str, typing.Any])r�z4Iterator[tuple[str | None, typing.Any] | typing.Any])r��aLiteral['left', 'center', 'right'] | Align | tuple[Literal['relative', WHSettings.RELATIVE], int])r=r�r�r�)r��vLiteral['clip', 'pack', WHSettings.CLIP, WHSettings.PACK] | int | tuple[Literal['relative', WHSettings.RELATIVE], int])r>r�r�r�)rF)rl�(tuple[()] | tuple[int] | tuple[int, int]rm�boolr��tuple[int, int])F)rlr�rmr�r�r)rlz167tuple[int]rmr�r�rj)rlr�r��strr�z168str | None)rlr�r�ztuple[int, int] | None)rlr�r�rjr�rjr�r�)rlr�r�r�r�rjr�rjr�rjrmr�r�zbool | None)rlr�r�r�)rrrrr169r1r	r.rIrRrW�propertyr=�setterr>rervrtrgr�r�r�r�r�r!�
__classcell__)r?s@r#r(r(&s0���
�J�J�170
� $���r#��r#�
`�	r#�
`�r#��r#��r#��r#� 171�!r#�r#�h!�2	8�"��D�	j�D��D��\�\��v��	
�����172D�	?�173D��174D��\�\��
C��175���� :<��)R�6�)R��)R�176�	)R�)R�\�"�6�"��"�177�	"�H?178�6�?179��?180�181�	?182�B183Q�7��&J�6�J��J��	J�184185�J�<a�6�a��a��	a�186�a��
a��a�187�a�0�r"r(c�l�U[R:Xa3[X-188U-189S5n[X�-S-S-5n	Ub[X�5n	OUn	[R190S[RS[RS0RX5n191X	-192U-193U-194nU[SU195-196SUS-5-
nX	-197U-198nUSs=:aU:aO O[Xg*5nXl-nX|-
nO$USs=:aU:aO O[Xv*5nX|-nXl-
nU[R:wa$US:dUS:a[US5n[US5nXg4$)a�199Return the amount of padding (or clipping) on the left and200right part of maxcol columns to satisfy the following:201 202align_type -- 'left', 'center', 'right', 'relative'203align_amount -- a percentage when align_type=='relative'204width_type -- 'fixed', 'relative', 'clip'205width_amount -- a percentage when width_type=='relative'206    otherwise equal to the width of the widget207min_width -- a desired minimum width for the widget or None208left -- a fixed number of columns to pad on the left209right -- a fixed number of columns to pad on the right210 211>>> clrp = calculate_left_right_padding212>>> clrp(15, "left", 0, "given", 10, None, 2, 0)213(2, 3)214>>> clrp(15, "relative", 0, "given", 10, None, 2, 0)215(2, 3)216>>> clrp(15, "relative", 100, "given", 10, None, 2, 0)217(5, 0)218>>> clrp(15, "center", 0, "given", 4, None, 2, 0)219(6, 5)220>>> clrp(15, "left", 0, "clip", 18, None, 0, 0)221(0, -3)222>>> clrp(15, "right", 0, "clip", 18, None, 0, -1)223(-2, -1)224>>> clrp(15, "center", 0, "given", 18, None, 2, 0)225(0, 0)226>>> clrp(20, "left", 0, "relative", 60, None, 0, 0)227(0, 8)228>>> clrp(20, "relative", 30, "relative", 60, None, 0, 0)229(2, 6)230>>> clrp(20, "relative", 30, "relative", 60, 14, 0, 0)231(2, 4)232rrbrc�2�er)rrirfrjr233r1�CENTERr2�getr�minr3)
r{�234align_type�align_amount�235width_type�width_amountr:r4r5r�r>r=�padding�shifts
             r#rr�s>��Z�Z�(�(�(��v�}�u�,�a�0���H�+�c�1�C�7�8��� ���)�E����
�Z�Z��E�L�L�"�e�k�k�3�?�C�C�J�]�E��n�t�#�e�+�G�	�Y�s�U�{�C��1��
5�5�E��>�E�!�D�
�q��4���D�&�!���
��
���	
��	�E�	��E�5�!��
����
���Z�_�_�$�$��(�e�a�i��4��|���E�1�
���;�r")r{rjr�z*Literal['left', 'center', 'right'] | Alignr�rjr�zeLiteral['fixed', 'relative', 'clip', 'given', WHSettings.RELATIVE, WHSettings.CLIP, WHSettings.GIVEN]r�rjr:r�r4rjr5rjr�r�)$�236__future__r�typingrN�urwid.canvasrr�urwid.split_reprr�237urwid.utilr�	constantsr	r238rrr
rrr�widget_decorationrrr�
TYPE_CHECKING�collections.abcr�typing_extensionsr�TypeVarrrr%�Genericr(rrr"r#�<module>r�s���"�
��5�,� �	�	�	�L�K�	���(�)�����/�
�"�;�"�$�]�$�K��}�-�v�~�~�m�/L�K�\K��K�:�K��K�v�	K�239�K��
K��K��K��Kr"
codekingpro/portable-devtools · Team Ai