File: //snap/core20/2599/usr/lib/python3/dist-packages/urwid/__pycache__/widget.cpython-38.pyc
U
��dZ"� � @ sl d dl mZmZ d dlmZ d dlmZmZ d dlm Z m
Z
mZmZm
Z
mZ d dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZ d d lmZmZmZmZm Z m!Z!m"Z" d d
l#m$Z$m%Z%m&Z& dZ'dZ(d
Z)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5e5dfZ6dZ7G dd� de ej8�Z9G dd� de:�Z;d d!� Z<d"d#� Z=d$d%� Z>d&d'� Z?d(d)� Z@d*d+� ZAG d,d-� d-ee9eB��ZCG d.d/� d/eC�ZDG d0d1� d1eC�ZEd2d3� ZFG d4d5� d5eC�ZGG d6d7� d7eC�ZHG d8d9� d9eE�ZIG d:d;� d;e:�ZJG d<d=� d=eC�ZKG d>d?� d?eJ�ZLG d@dA� dAeK�ZMG dBdC� dCeM�ZNdDdE� ZOG dFdG� dGe:�ZPG dHdI� dIeOdJ�eC�ZQdKdL� ZReSdMk�rheR� dNS )O� )�division�print_function)�
attrgetter)� text_type�with_metaclass)� MetaSuper�decompose_tagmarkup�
calc_width�is_wide_char�move_prev_char�move_next_char)�calc_pos�calc_coords�
shift_line)�signals)�text_layout)�CanvasCache�CompositeCanvas�SolidCanvas�apply_text_layout)�command_map�CURSOR_LEFT�CURSOR_RIGHT� CURSOR_UP�CURSOR_DOWN�CURSOR_MAX_LEFT�CURSOR_MAX_RIGHT)�
split_repr�remove_defaults�python3_reprZflowZboxZfixed�left�right�center�topZmiddle�bottomZspace�anyZclip�packZgiven�relative�d Zweightc s e Zd ZdZ� fdd�Z� ZS )�
WidgetMetaa�
Bases: :class:`MetaSuper`, :class:`MetaSignals`
Automatic caching of render and rows methods.
Class variable *no_cache* is a list of names of methods to not cache
automatically. Valid method names for *no_cache* are ``'render'`` and
``'rows'``.
Class variable *ignore_focus* if defined and set to ``True`` indicates
that the canvas this widget renders is not affected by the focus
parameter, so it may be ignored when caching.
c s~ |� dg �}tt| ��|||� d|krHd|kr:t| �}nt| �}|| _d|krbd|krbt| �| _d|krn| ` d|krz| `
d S )N�no_cache�render�rows�ignore_focus)�get�superr) �__init__�cache_widget_render�nocache_widget_renderr+ �cache_widget_rowsr, r* r- )�cls�name�bases�dr* Z render_fn�� __class__� �./usr/lib/python3/dist-packages/urwid/widget.pyr0 U s
zWidgetMeta.__init__)�__name__�
__module__�__qualname__�__doc__r0 �
__classcell__r: r: r8 r; r) G s
r) c @ s e Zd ZdS )�WidgetErrorN�r<