Mini Shell

Direktori : /lib/python3.6/site-packages/simpleline/render/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/simpleline/render/__pycache__/screen_stack.cpython-36.pyc

3

<�Zc*�@sPddlmZGdd�de�ZGdd�de�ZGdd�de�ZGdd	�d	e�Zd
S)�)�SimplelineErrorc@seZdZdZdS)�ScreenStackExceptionzGeneral screen stack exception.N)�__name__�
__module__�__qualname__�__doc__�rr�"/usr/lib/python3.6/screen_stack.pyrsrc@seZdZdZdS)�ScreenStackEmptyExceptionz+Screen stack exception when stack is empty.N)rrrrrrrr	r
sr
c@sJeZdZdZdd�Zdd�Zdd�Zdd	�Zddd�Zd
d�Z	dd�Z
dS)�ScreenStackz0Managing screen stack used in `ScreenScheduler`.cCs
g|_dS)N)�_screens)�selfrrr	�__init__%szScreenStack.__init__cCs|jS)z]Test if screen stack is empty.

        :return: True if empty.
        :rtype: bool
        )r)r
rrr	�empty(szScreenStack.emptycCs
t|j�S)zDGet size of the stack.

        :return: Size of the stack.
        )�lenr)r
rrr	�size0szScreenStack.sizecCs|jj|�dS)z�Add new screen to the top of the stack.

        :param screen: Screen for the future rendering.
        :type screen: Class based on `simpleline.render.ui_screen.UIScreen`.
        N)r�append)r
�screenrrr	r7szScreenStack.appendTcCsLy|r|jj�S|jdSWn*tk
rF}zt|��WYdd}~XnXdS)z�Return top item from the stack.

        :param remove: If True (default) also remove this items from the stack.
        :return: The top screen on the stack.
        �N���)r�pop�
IndexErrorr
)r
�remove�errr	r?s
zScreenStack.popcCs|jjd|�dS)z�Add `screen` to the bottom of the stack.

        :param screen: Add the `screen` to the bottom of the stack.
        :type screen: Class based on `simpleline.render.ui_screen.UIScreen`.
        rN)r�insert)r
rrrr	�	add_firstMszScreenStack.add_firstcCs@d}|d7}x&t|j�D]}|t|�7}|d7}qW|d7}|S)ziDump screen stack structure.

        :returns: Screen stack representation.
        :rtype: str
        z======= Screen stack =======
z----------- TOP ------------
�
z============================
)�reversedr�str)r
�msgrrrr	�
dump_stackUszScreenStack.dump_stackN)T)rrrrrrrrrrr rrrr	r"s
rc@s"eZdZdZddd�Zdd�ZdS)	�
ScreenDataz&Inner data class to store screen data.NFcCs||_||_||_dS)N)�	ui_screen�args�execute_new_loop)r
r"r#r$rrr	rjszScreenData.__init__cCsB|jj}|d7}|djt|j�t|j�t|j�f�7}|d7}|S)N�(�,�))�	__class__r�joinrr"r#r$)r
rrrr	�__str__os
&zScreenData.__str__)NF)rrrrrr*rrrr	r!gs
r!N)Zsimpleline.errorsrrr
�objectrr!rrrr	�<module>sE