Team Ai
Datasetpublic

codekingpro/portable-devtools

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

2��j�_��H�SSKJr SSKrSSKrSSKrSSKJrJrJr SSK	J3r4Jr \R(aSSK
Jr SSKJr SSKJrJr SS	KJr S5r\R."SSS
9r"SS\5rSrSrSrSrSrSrSr Sr!"SS\"\RF5r$\RJ"SS\RL55r'\RJ"SS\'\RL55r(\RJ"SS\'\RL55r)S$Sjr*"S S!\6\5r+"S"S#\7\5r,g)%�)�annotationsN�)�BOX_SYMBOLS�
SHADE_SYMBOLS�Sizing)�WidgetDecoration�WidgetError)�Iterator)�Literal)�Canvas�CompositeCanvas)�Widget)�	ScrollBar�8Scrollable�ScrollableError�ScrollbarSymbols�
WrappedWidget�SupportsScroll)�boundc��\rSrSrSrSrg)r�/z"Scrollable specific widget errors.�N)�__name__�9__module__�__qualname__�__firstlineno__�__doc__�__static_attributes__r��]D:\code\apps\devtools\python\user_packages\Python313\site-packages\urwid/widget/scrollable.pyrr/s��,rrzline upz	line downzpage upz	page downzto topzto end�left�rightc��\rSrSrSr\Rr\Rr\Rr\Rr	\10RRr
\11RRr\12RR r\13RR$r\14R(Rr\15R(Rr\16R(R r\17R(R$r\18R2RrSrg)r�@z&Common symbols suitable for scrollbar.rN)rrrrrr�19FULL_BLOCK�20DARK_SHADE�MEDIUM_SHADE�21LITE_SHADEr�LIGHT�VERTICAL�
DRAWING_LIGHT�VERTICAL_2_DASH�DRAWING_LIGHT_2_DASH�VERTICAL_3_DASH�DRAWING_LIGHT_3_DASH�VERTICAL_4_DASH�DRAWING_LIGHT_4_DASH�HEAVY�
DRAWING_HEAVY�DRAWING_HEAVY_2_DASH�DRAWING_HEAVY_3_DASH�DRAWING_HEAVY_4_DASH�DOUBLE�DRAWING_DOUBLErrrr rr@s���0��)�)�J��)�)�J� �-�-�L��)�)�J��%�%�.�.�M�&�,�,�<�<��&�,�,�<�<��&�,�,�<�<���%�%�.�.�M�&�,�,�<�<��&�,�,�<�<��&�,�,�<�<�� �'�'�0�0�Nrrc��\rSrSrSrSSjrS
SjrSSSjjr\SSj5r	SSjr22SSjrSSS	jjrS23r
g)�WidgetProto�UzsProtocol for widget.24 25Due to protocol cannot inherit non-protocol bases, define several obligatory Widget methods.26c��g�Nr��selfs r �sizing�WidgetProto.sizing]s��3rc��gr=rr>s r �27selectable�WidgetProto.selectable_s��#rc��gr=r�r?�size�focuss   r �pack�WidgetProto.packas��SVrc��[er=)�NotImplementedErrorr>s r �base_widget�WidgetProto.base_widgetcs��!�!rc��gr=r�r?rG�keys   r �keypress�WidgetProto.keypressgs��src��gr=r)r?rG�event�button�col�rowrHs       r �mouse_event�WidgetProto.mouse_eventis��rc��gr=rrFs   r �render�WidgetProto.renderss��CrrN��returnzfrozenset[Sizing]�r_�bool�F)rG�tuple[int, int]rHrar_rc)r_r�rGrcrQ�strr_z28str | None�rGrcrUrerV�intrWrgrXrgrHrar_zbool | None�rGrcrHrar_r)rrrrrr@rCrI�propertyrMrRrYr\rrrr r:r:Us|���/�%�V�
�"��"�K�������	�29���
���30��P�Orr:c�4�\rSrSrSrSSSjjrS	S31SjjrSrg)r�vzScroll specific methods.c��gr=rrFs   r �
get_scrollpos�SupportsScroll.get_scrollposzs��PSrNc��gr=rrFs   r �rows_max�SupportsScroll.rows_max|s��Y\rrrb�rGrcrHrar_rg�NF�rGztuple[int, int] | NonerHrar_rg)rrrrrrmrprrrr rrvs��"�S�\�\rc�B�\rSrSrSrSS	SjjrSS32SjjrSS33SjjrSrg)�SupportsRelativeScroll�z!Relative scroll-specific methods.c��gr=rrFs   r �require_relative_scroll�.SupportsRelativeScroll.require_relative_scroll�s��[^rc��gr=rrFs   r �get_first_visible_pos�,SupportsRelativeScroll.get_first_visible_pos�s��X[rc��gr=rrFs   r �get_visible_amount�)SupportsRelativeScroll.get_visible_amount�s��UXrrNrb)rGrcrHrar_rarr)	rrrrrryr|rrrrr rvrvs��+�^�[�X�Xrrvc#�# �U1nUv� [USU5=o;a*URU5 Uv� [USU5=o;aM)gg7f)N�original_widget)�getattr�add)�w�visiteds  r �	orig_iterr��sM����c�G�34�G���,�a�0�0�1�35@����A������,�a�0�0�1�36@�s�AA�Ac��^�\rSrSrSSjrSSjrSSU4SjjjrSSSjjrSSjrSSjr	SSjr37SS	jrSSS38jjrSSjr
SSSjjrS
rU=r$)r�c�6�[[R45$r=��	frozensetr�BOXr>s r r@�Scrollable.sizing�����&�*�*��'�'rc��g�NTrr>s r rC�Scrollable.selectable����rc�>�UR5[[R[R45-(d[SU<35eSUlSUlSUlSUl	SUl39X l[TU]5U5 g)a$Box widget that makes a fixed or flow widget vertically scrollable40 41.. note::42    Focusable widgets are handled, including switching focus, but possibly not intuitively,43    depending on the arrangement of widgets.44 45    When switching focus to a widget that is ouside of the visible part of the original widget,46    the canvas scrolls up/down to the focused widget.47 48    It would be better to scroll until the next focusable widget is in sight first.49    But for that to work we must somehow obtain a list of focusable rows in the original canvas.50zNot a fixed or flow widget: rN)r@r�r�FIXED�FLOW�51ValueError�	_trim_top�_scroll_action�_forward_keypress�_old_cursor_coords�_rows_max_cached�force_forward_keypress�super�__init__)r?�widgetr��	__class__s   �r r��Scrollable.__init__�sr����}�}���F�L�L�&�+�+�+F�!G�G��;�F�:�F�G�G����"���!%���"&��� !���&<�#�
���� rc��^^^�SSKJn UumnSUUU4SjjnTRmTRU5nTR	Xb5nURU5nUR
5UR5p�U	T::aTU	-52=nS:�aURSU5 X�::aXJ-53=nS:�aURSU5 U	T::aX�::aU$TRX�5 TRn
X�-54U
-55nU	T-56nU
S:�aURU
5 US:�aURU5 US:�aURSU*5 URb"URunnUU:�dUS:aSUlURb	STlU$URbHSTl[!TSS5(a,["R$"[&5 U"5 SSS5 U$U$TR)5TlU$!,(df   U$=f)Nr��canvasc�>�SnSnSn[TR5GH9unupEURT45nUR5=n(aX-
nU(dUT
R:�aSnMQU(dMZU(dSnUR5(dMzUTlSnTR5n	[U	S5(aU	nON[U	S5(a=U	Rn57[U58S5(a
U59RnO[U60S5(aU61nU(a>[US5(a-[[USS55(aURSS5  g g)NrFT�key_timeoutr�rR)
�	enumerate�contentsr\�rowsr�rC�62focus_item�	get_focus�hasattrr��callabler�rR)�ch�last_hidden�
first_visible�pwir��_o�wcanv�wh�st�nf�no�maxcol�owr?s           ���r �automove_cursor�*Scrollable.render.<locals>.automove_cursor�s$����B��K�!�M� )�"�+�+� 6���W�a����&��+������%�2�%��H�B�"�r�T�^�^�';�"&�K� �[�(�(,�
��<�<�>�>� �$'�B�M��B�����B��r�=�1�1��� ��%6�7�7��/�/��"�2�'8�9�9�!#�!3�!3�B�$�R��7�7�!#�B��g�b�-�8�8�X�g�b�R\�^b�Fc�=d�=d����D�$�/��A!7rTF�automove_cursor_on_scroll)r_�None)�urwidr��_original_widget�_get_original_widget_sizer\r
�colsr��pad_trim_left_right�pad_trim_top_bottom�_adjust_trim_topr��trim�trim_end�cursorr�r��63contextlib�suppress�	ExceptionrC)r?rGrHr��maxrowr��ow_size�	canv_full�canv�	canv_cols�	canv_rows�	pad_width�fill_height�trim_topr��64trim_right�_curscol�cursrowr�r�s`                 @@r r\�Scrollable.render�s����65	!�����$	�$	�N�
"�
"���0�0��6���I�I�g�-�	��%�%�i�0��#�y�y�{�D�I�I�K�9�����)�1C�$C�I�q�#H��$�$�Q�	�2���6�3E�$E�K��#J��$�$�Q��4����9�#6��K����d�)��>�>���%��0����'�66��a�<��I�I�h���a�<��M�M�(�#���>��$�$�Q���4��;�;�"� $����H�g��&� �G�a�K�"����;�;�"�%)�D�"�0��/�
�
�
)�%*�D�"��r�6��>�>��(�(��3�#�%�4�"��%?�$��&(�]�]�_�D�"���#4�3�"��s�=G)�)67G8c��SSKJn UR(dUR(aYURnURU5n[
US5(aURU5UlURXR5nUcgURnXbUR:Xa[Ul
O�XbUR:Xa[Ul
OzXbUR :Xa["Ul
O\XbUR$:Xa[&Ul
O>XbUR(:Xa[*Ul
O XbUR,:Xa[.Ul
OU$UR15 g)Nr)�Command�get_cursor_coords)�urwid.command_mapr�r�r�r�r�r�r�r�rR�_command_map�UP�SCROLL_LINE_UPr��DOWN�SCROLL_LINE_DOWN�PAGE_UP�SCROLL_PAGE_UP�	PAGE_DOWN�SCROLL_PAGE_DOWN�MAX_LEFT�
SCROLL_TO_TOP�	MAX_RIGHT�
SCROLL_TO_END�_invalidate)r?rGrQr�r�r��command_maps       r rR�Scrollable.keypress&s!��68	.��!�!�T�%@�%@��&�&�B��4�4�T�:�G��r�.�/�/�*,�*>�*>�w�*G��'��+�+�g�+�C��{���'�'����w�z�z�)�"0�D��
�
����
-�"2�D��
�
����
0�"0�D��
�
��!2�!2�
2�"2�D��
�
��!1�!1�
1�"/�D��
�
��!2�!2�
2�"/�D���J�����rc��URn[US5(a2URU5nXPR-
nUR	X�X4XV5$g)NrYF)r�r�r�r�rY)	r?rGrUrVrWrXrHr�r�s	         r rY�Scrollable.mouse_eventQsN���
"�
"���2�}�%�%��4�4�T�:�G��>�>�!�C��>�>�'�&�s�J�J�rc�$^	^69�URnSUlUunm70URnUR5m	US:aT	T71-72U-S-nT	T73::aSUlgSU	U744SjjnU[:XaU"US-755UlO�U[:XaU"US-5UlOpU[76:XaU"UT77-78S-5UlORU[:XaU"UT79-S-805UlO4U[:XaSUlO"U[:XaT	T81-82UlO
U"U5UlURbURUR:wadURbVSUl	URupxX�R:aX�lgX�RT83-:�a[SUT84-85S-5Ulggggg)z6Adjust self._trim_top according to self._scroll_actionNrrc�6>�[S[TT-86U55$)Nr)�max�min)�new_trim_topr�r�s ��r �
ensure_bounds�2Scrollable._adjust_trim_top.<locals>.ensure_boundsss����q�#�i�&�0�,�?�@�@r)r�rgr_rg)r�r�r�r�r�r�r�r�r�r�r�r�)r?r�rG�action�_maxcolr�r�r�r�r�r�s         @@r r��Scrollable._adjust_trim_topbs�����$�$��"��������>�>���I�I�K�	��a�<� �6�)�H�4�q�8�H�����D�N��	A�	A��^�#�*�8�a�<�8�D�N�
�'�
'�*�8�a�<�8�D�N�
�~�
%�*�8�f�+<�q�+@�A�D�N�
�'�
'�*�8�f�+<�q�+@�A�D�N�
�}�
$��D�N�
�}�
$�&��/�D�N�+�8�4�D�N�87�"�"�.�4�3J�3J�d�k�k�3Y�^b�^i�^i�^u�&*�D�#� $����H����'�!(���N�N�V�3�3�!$�Q��&�(8�1�(<�!=���4�_v�3Y�.rc��URnUR5n[RU;aUS4$[RU;ag[U<S35e)Nrrz sizing is not supported)r�r@rr�r�r)r?rGr�r@s    r r��$Scrollable._get_original_widget_size�sT���
"�
"��������;�;�&� ���G�:���<�<�6�!�����&>�?�@�@rc��UR$)z�Current scrolling position.88 89Lower limit is 0, upper limit is the maximum number of rows with the given maxcol minus maxrow.90 91..note::92    The returned value may be too low or too high if the position has93    changed but the widget wasn't rendered yet.94)r�rFs   r rm�Scrollable.get_scrollpos�s���~�~�rc�D�[U5UlUR5 g)z�Set scrolling position95 96If `position` is positive it is interpreted as lines from the top.97If `position` is negative it is interpreted as lines from the bottom.98 99Values that are too high or too low values are automatically adjusted during rendering.100N)rgr�r�)r?�positions  r �
set_scrollpos�Scrollable.set_scrollpos�s���X�������rc��Ub�URnURU5nUR5n[RU;a%URXB5SUlUR$[RU;a"URXB5UlUR$[SUR<35eUR$)zqReturn the number of rows for `size`101 102If `size` is not given, the currently rendered number of rows is returned.103rzNot a flow/box widget: )104r�r�r@rr�rIr�r�r�r)r?rGrHr�r�r@s      r rp�Scrollable.rows_max�s���105���&�&�B��4�4�T�:�G��Y�Y�[�F��|�|�v�%�(*����(?��(B��%�106�$�$�$�	����&�(*����(?��%��$�$�$�&�(?��@U�@U�?X�&Y�Z�Z��$�$�$r)r�r�r�r�r�r�r^r`rb)r�rr�rar_r�)rGrcrHrar_r
rdrf)r�rrGrcr_r�)rGrcr_ztuple[int] | tuple[()]rsrt)r��typing.SupportsIntr_r�)rrrrr@rCr�r\rRrYr�r�rmr�rpr�
__classcell__�r�s@r rr�s����(��!�!�6�s��s��s�107�	s�j)��)��)�108�	)�V������	�109���
���110��"/>�b111A��112A�113 �114A�	�	�%�%rrc�\^�\rSrSr\rSSjrSSjr\RS\	S4SU4Sjjjr115SSSjjr\SSj5r
\
RSS	j5r
\SS116j5r\RSSj5r\SSj5rSS
jrSSjrSrU=r$)ri�c�6�[[R45$r=r�r>s r r@�ScrollBar.sizing�r�rc��gr�rr>s r rC�ScrollBar.selectable�r�r� rc�8>�[RUR5;a[SU<35e[	S[U555(d[
SU<35e[TU]!U5 X l	X0l117X@l[SU5Ul
SUlg)azBox widget that adds a scrollbar to `widget`118 119`widget` must be a box widget with the following methods:120  - `get_scrollpos` takes the arguments `size` and `focus` and returns the index of the first visible row.121  - `set_scrollpos` (optional; needed for mouse click support) takes the index of the first visible row.122  - `rows_max` takes `size` and `focus` and returns the total number of rows `widget` can render.123 124`thumb_char` is the character used for the scrollbar handle.125`trough_char` is used for the space above and below the handle.126`side` must be 'left' or 'right'.127`width` specifies the number of columns the scrollbar uses.128zNot a box widget: c3�B# �UHn[U[5v� M g7fr=)�129isinstancer)�.0r�s  r �	<genexpr>�%ScrollBar.__init__.<locals>.<genexpr>�s���L�:K�Q�:�a��0�0�:K�s�zNot a scrollable widget: r)rrN)rr�r@r��anyr��	TypeErrorr�r��_thumb_char�_trough_char�scrollbar_sider��scrollbar_width�_original_widget_size)r?r��130thumb_char�trough_char�side�widthr�s      �r r��ScrollBar.__init__�s����(�:�:�V�]�]�_�,��1�&��<�=�=��L�)�F�:K�L�L�L��7��z�B�C�C�
���� �%��'��"��"�1�e�}���%+��"rc	��^^^^^^^^^�SSKJn SUUUU4SjjnSUUUU4SjjnTupg[SUTR-1315U4mUTS-132nTRmTR133m[
T[5=(a. [U4SjS55=(a TRTT5n	U	(a|[TS[TS[55"5n134U"5nTRTT5nTRTT5n
[X�U
5n135X�-136n[S	U[S137U1385-5nX�:XaSn	U	(dgTRTT5U:�aJU"5nTRTT5nTR!TT5n
UU-139n[S	U[S140U5-5nOU"5$[S141[#WU-55n[%W
5[S142W5-n[UU-143U-5nUS:XaUS:�a[S144UU-1455nUU-146U-147nUR'TR(US1485mUR'TR*US1495mUR'TR(US1505mUR-/U4Sj[/U55QU4S
j[/U55QU4Sj[/U55Q75nWSSTS4USSU4/nTR0[2:waUR5U5$UR5[7U55$)Nrr�c�6>�TTlTRTT5$r=�rr\)rHr�r?rGs����r �render_no_scrollbar�-ScrollBar.render.<locals>.render_no_scrollbar�s���)-�D�&��9�9�T�5�)�)rc�6>�TTlTRTT5$r=r )rHr�r�r?s����r �render_for_scrollbar�.ScrollBar.render.<locals>.render_for_scrollbar�s���)0�D�&��9�9�W�e�,�,rc3�<># �UHn[TU5v� M g7fr=)r�)r�attrib�ow_bases  �r r�#ScrollBar.render.<locals>.<genexpr>s����Z�;Y��G�G�V�,�,�;Y�s�)�__length_hint__�__len__r+r*g�?rFc3�.># �UH151nTSS4v� M g7frsr)r�_�tops  �r rr)Ds����@�.?��3��e�$�.?���c3�.># �UH152nTSS4v� M g7frsr)rr-�thumbs  �r rr)Es����D�0C�1�5�$��&�0C�r/c3�.># �UH153nTSS4v� M g7frsr)rr-�bottoms  �r rr)Fs����F�1E�A�6�4��'�1E�r/T)r_r)r�r�r��_scrollbar_widthr��scrolling_base_widgetrrvrryr�rgrr|r�rprm�round�float�SolidCanvasrr�
CanvasCombine�range�_scrollbar_side�SCROLLBAR_LEFT�154CanvasJoin�reversed)r?rGrHr�r!r$r�r��sb_width�use_relative�ow_len�ow_canv�visible_amount�pos�posmax�thumb_weight�ow_rows_max�thumb_height�155top_weight�156top_height�
bottom_height�sb_canv�combinelistr3r�r(r�r1r.s```                    @@@@@@r r\�ScrollBar.render�s����157	!�	*�	*�	-�	-�����q�&�4�#8�#8�8�9�6�B���G�A�J�&��
�
"�
"���,�,��158
�w� 6�7�
=��Z�;Y�Z�Z�
=��/�/��e�<�	���W�i���BS�UX�1Y�Z�\�F�*�,�G�$�7�7���G�N��/�/���?�C����5�F��,�F��s�N�S��F�^�$C�D�L��'�$�������e�,�v�5�.�0��%�.�.�w��>���+�+�G�U�;��$�v�-��"�3���Q��1D�(D�E��+�,�,��1�e�L�6�$9�:�;���3�Z�#�a��.�0�159��&�<�/�:�=�>�160���?�z�A�~��Q��� 5�6�J���-�161�:�
�� � ��!2�!2�H�a�@���"�"�4�#3�#3�X�q�A���#�#�D�$5�$5�x��C���&�&�
�@�e�J�.?�@�
�D��l�0C�D�
�G��}�1E�F�
�162���d�D�'�!�*�-�
�d�E�8�,�163��164���>�1��$�$�[�1�1�� � ��+�!6�7�7rc�.�[SUR5$)zColumns the scrollbar usesr)r�r4r>s r r�ScrollBar.scrollbar_widthTs���1�d�+�+�,�,rc�X�[S[U55UlUR5 g)Nr)r�rgr4r�)r?rs  r rrPYs!�� #�A�s�5�z� 2������rc��UR$)z9Where to display the scrollbar; must be 'left' or 'right')r;r>s r r�ScrollBar.scrollbar_side^s���#�#�#rc�n�U[[1;a[SU<35eXlUR	5 g)Nz.scrollbar_side must be "left" or "right", not )r<�SCROLLBAR_RIGHTr�r;r�)r?rs  r rrScs4�����8�8��M�d�X�V�W�W�#�����rc�z�Un[U5Hn[U[5(dMUs $ [SU<35e)zCNearest `original_widget` that is compatible with the scrolling APIz+Not compatible to be wrapped by ScrollBar: )r�rrr)r?r�s  r r5�ScrollBar.scrolling_base_widgetjs>��
���4��A��!�^�,�,���!�� K�A�5�Q�R�Rrc�N�URRURU5$r=)r�rRrrPs   r rR�ScrollBar.keypressvs#��165�$�$�-�-�d�.H�.H�#�N�Nrc�z�URnURnSn	[US5(aURX�X4XV5n	U	(du[US5(adUS:Xa2UR	U5n166[U167S-168S5nUR
U5 gUS:Xa&UR	U5n169UR
U170S-5 gU	$)	NFrYr��rrT�)r�rr�rYrmr�r�)r?rGrUrVrWrXrHr�r��handledrD�newposs            r rY�ScrollBar.mouse_event}s����
"�
"���,�,��$���2�}�%�%��n�n�W�V�#�M�G��7�2��7�7���{��&�&�w�/���S�1�W�a���� � ��(����{��&�&�w�/��� � ��q��)���r)rr;r4rrrrr^r`)r�rrrerrer�Literal['left', 'right']rrgr_r�rbrh)r_rg)rrr_r�)r_r`)rr`r_r�)r_z'SupportsScroll | SupportsRelativeScrollrdrf)rrrrr�Symbolsr@rCr%rUr�r\rir�setterrr5rRrYrrrs@r rr�s{����G�(��+�5�5��)8��
,��,��,��	,�171'�,��
,�172�,�,�H�a8��a8��a8�173�	a8�F�-��-��������$��$��������	S��	S�O��O��O�174�	O�������	�175���
���176��rr)r�rr_zIterator[Widget])-�177__future__rr��enum�typing�	constantsrrr�widget_decorationrr	�
TYPE_CHECKING�collections.abcr178�typing_extensionsrr�rr
r�r�__all__�TypeVarrrr�r�r�r�r�r�r<rUre�Enumr�runtime_checkable�Protocolr:rrvr�rrrrr �<module>rpsC��,#���
�9�9�<�	���(�)�-��M������6F�G�
�-�k�-�179���������
��
�����1�s�D�I�I�1�*���P�&�/�/�P��P�@���]�[�&�/�/�]��]����Y�[�&�/�/�Y��Y��r%�!�-�0�r%�j	P� ��/�Pr
codekingpro/portable-devtools · Team Ai