a !q ^a @ s d Z ddlZddlZddlZddlmZ ddlm Z ddl mZmZm Z mZmZ ddlmZ ddlmZmZ ddl mZ dd lmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d Z$G dd dej%j&Z'de(e(e e) e(dddZ*dS )z>html2text: Turn HTML into equivalent Markdown-structured text. N)wrap)DictListOptionalTupleUnion )config) AnchorElementListElement)OutCallback) dumb_css_parser element_style escape_mdescape_md_sectiongoogle_fixed_width_fontgoogle_has_heightgoogle_list_stylegoogle_text_emphasishnlist_numbering_startpad_tables_in_textskipwrapunifiable_n)i r c s e Zd Zddejfee eedd fdd Z edd fddZ eedd d Zedddd ZedddZ eddddZeddddZeeeeee f ddddZeddddZeeee f ee dddZeeeef eeef ddd d!Zeeeee f edd"d#d$Zddd%d&Zddd'd(Zddd)d*Zd=eeeeef dd,d-d.Zd>eedd/d0d1Zeed2d3d4Zeedd5d6Z eeef ed7d8d9Z!eed:d;d<Z" Z#S )? HTML2TextN )outbaseurl bodywidthreturnc s t jdd d| _d| _d| _tj| _tj| _ tj | _|| _tj | _tj| _tj| _tj| _tj| _tj| _tj| _tj| _tj| _tj| _ tj!| _"tj#| _$d| _%d| _&d| _'d| _(tj)| _*tj+| _,d| _-tj.| _/tj0| _1tj2| _3tj4| _5tj6| _7d| _8tj9| _:tj;| _<|du r| j=| _>n|| _>g | _?d| _@d| _Ad| _Bd| _Cd| _Dg | _Eg | _Fd| _Gd| _HtIJd | _Kd| _Lg | _Md| _Nd| _Od| _Pd| _Qd| _Rd | _Sd| _Td| _Ud| _Vi | _Wg | _Xd| _Yd| _Zd| _[d| _\d| _]i | _^|| __d| _`d| _ad | _bd | _cdtjdd<