3
���h�� � @ s� d Z ddlmZ ddlmZ ddlZddlmZ ddlm Z ddl
mZmZm
Z
mZmZmZmZmZmZ ddlmZ ddlZdd lmZ dd
lmZ ddlmZmZmZm Z ddl!m"Z" dd
l#m$Z$ ddl%m&Z& ddl'Z(ddl)m*Z*m+Z+ ddl,j-j.Z/ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6 e"ddd�Z7yddl8m9Z9 ddl:j;Z<dZ=W n e>k
�rd dZ=dZ?Y nX eed�dd��Z@G dd� d�ZAeBd�d d!�ZCd'd"d#�ZDeeeEf eeE ed$�d%d&�ZFdS )(zF
Module for applying conditional formatting to DataFrames and Series.
� )�defaultdict)�contextmanagerN)�partial)�product) �Any�Callable�DefaultDict�Dict�List�Optional�Sequence�Tuple�Union)�uuid1)�
get_option)�lib)�Axis�
FrameOrSeries�FrameOrSeriesUnion�Label)�import_optional_dependency)�doc)�is_float)�is_dict_like�is_list_like)� DataFrame)�NDFrame)�_maybe_numeric_slice�_non_reducing_slice�jinja2z DataFrame.style requires jinja2.)�extra)�colorsTFz{0} requires matplotlib.)�funcc c s$ t rttfV nttj| j���d S )N)�has_mpl�pltr! �ImportError�no_mpl_message�format�__name__)r" |