Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 0øªjÖ*ã@sÊdZddlZddlmZddlmZmZmZmZm Z m Z m Z m Z m Z mZddlmZiid œZGd d „d ƒZGd d „d ƒZdd„Zd9dd„Zdd„Zedƒd:dd„ƒZeddd�edd„ƒƒZedƒe dd„ƒƒZedƒe dd„ƒƒZedƒe d d!„ƒƒZedƒd"d#„ƒZedƒd$d%„ƒZed&ƒd'd(„ƒZed&dd�d)d*„ƒZed&d+dd�ed&d,dd�d-d.„ƒƒZ ed&ƒed/d0„ƒƒZ!ed&dd�d1d2„ƒZ"ed&ƒe d3d4„ƒƒZ#ed&dd�d5d6„ƒZ$ed&dd�d7d8„ƒZ%dS);zr weasyprint.css.descriptors -------------------------- Validate descriptors used for some at-rules. éNé)ÚLOGGERé) Ú InvalidValuesÚcomma_separated_listÚget_custom_identÚ get_keywordÚget_single_keywordÚget_urlÚremove_whitespaceÚsingle_keywordÚ single_tokenÚsplit_on_commaé)Ú properties)z font-facez counter-stylec@seZdZdZdZdS)Ú NoneFakeTokenÚidentÚnoneN)Ú__name__Ú __module__Ú __qualname__ÚtypeÚ lower_value©rrúK/tmp/pip-build-_d5lkt3n/weasyprint/weasyprint/css/validation/descriptors.pyrsrc@seZdZdZdZdS)ÚNormalFakeTokenrÚnormalN)rrrrrrrrrrsrc cs�x |D�]}|jdks|jr qt|jƒ}yZ|jt|krBtdƒ‚t||j}|jrb|||ƒ}n||ƒ}|dkrvt‚|j|ff}Wn`tk rä}zDtj d|jt j |jƒ|j |j |jrÌ|jdrÌ|jdndƒwWYdd}~XnXx"|D]\} }| jddƒ|fVqìWqWdS) zŸFilter unsupported names and values for descriptors. Log a warning for every ignored descriptor. Return a iterable of ``(name, value)`` tuples. Z declarationzdescriptor not supportedNzIgnored `%s:%s` at %d:%d, %s.rz invalid valueú-Ú_)rZ importantr ÚvalueÚnameÚ DESCRIPTORSrÚwants_base_urlrÚwarningÚtinycss2Ú serializeZ source_lineZ source_columnÚargsÚreplace) ÚruleÚbase_urlZ descriptorsÚ descriptorÚtokensÚfunctionrÚresultÚexcZ long_namerrrÚpreprocess_descriptors"s.   r/Fcs‡‡‡fdd„}|S)ulDecorator adding a function to the ``DESCRIPTORS``. The name of the descriptor covered by the decorated function is set to ``descriptor_name`` if given, or is inferred from the function name (replacing underscores by hyphens). :param wants_base_url: The function takes the stylesheet’s base URL as an additional parameter. csFˆdkr|jjddƒ}nˆ}|tˆks0t|ƒ‚ˆ|_|tˆ|<|S)z(Add ``function`` to the ``DESCRIPTORS``.Nrr)rr'r!ÚAssertionErrorr")r,r )Údescriptor_namer(r"rrÚ decoratorSs zdescriptor..decoratorr)r(r1r"r2r)r1r(r"rr*Gs  r*ccsît|ƒ}|d krHxdD]}|tgfVqW|dkr6tnt}d|gfVn¢ggggggd œ}xd|D]\}t|ƒ}|dkrxt‚xB|D]6}d |jd d ƒ›�}tt|ƒ|gƒr~||j|ƒPq~Wt‚q`Wx(|j ƒD]\}}|rÊd |›�|fVqÊWdS)Nrrú -alternatesú-capsú -east-asianú-numericú -positionz -ligatures)Z alternatesZcapsz east-asianZ ligaturesÚnumericÚpositionZ font_variant_rr)rr)r3r4r5r6r7) r rrrrr'ÚgetattrrÚappendÚitems)r+ÚkeywordÚsuffixÚtokenÚfeaturesÚfeatureZ function_namerrrÚexpand_font_variantas6  rBz font-facecsjdg‰|rˆjdƒt|ƒdkr8|djdkr8|djS|rft‡fdd„|Dƒƒrfdjd d„|DƒƒSd S) z&``font-family`` descriptor validation.rÚ whitespacerrÚstringc3s|]}|jˆkVqdS)N)r)Ú.0r?)Ú allowed_typesrrú ‹szfont_family..ú css|]}|jdkr|jVqdS)rN)rr)rEr?rrrrG�sN)r;ÚlenrrÚallÚjoin)r+Ú allow_spacesr)rFrÚ font_familyƒs  rMT)r"cCsœt|ƒdkr˜|dd …|d }}|jdkrL|jdkrL|dd …|d}}|jdkrr|jdkrrdt|jdd�fSt||ƒ}|dk r˜|d d kr˜|dSdS)z``src`` descriptor validation.rNrr,ÚformatÚlocalT)rLrÚurléÿÿÿÿrQrQrQ)rIrZ lower_namerMÚ argumentsr )r+r)r?rPrrrÚsrc�s  rScCs|dkS)z%``font-style`` descriptor validation.rÚitalicÚoblique)rrTrUr)r=rrrÚ font_styleŸsrVc Cs<t|ƒ}|dkr|S|jdkr8|jdk r8|jdkr8|jSdS)z&``font-weight`` descriptor validation.rÚboldÚnumberNédéÈé,é�éôéXé¼é é„)rrW) rYrZr[r\r]r^r_r`ra)rrÚ int_value)r?r=rrrÚ font_weight¦s  rcc Cs|d kS) z'``font-stretch`` descriptor validation.úultra-condensedúextra-condensedÚ condensedúsemi-condensedrú semi-expandedÚexpandedúextra-expandedúultra-expanded) rdrerfrgrrhrirjrkr)r=rrrÚ font_stretch²srlcCs tj|ƒS)z0``font-feature-settings`` descriptor validation.)rÚfont_feature_settings)r+rrrrm¼srmcCszt|ƒdkr$t|dƒ}|d kr$gSg}xLt|ƒD]@\}}y"|jtjdd|›�|dd �ƒWq2tk rpdSXq2W|S) z'``font-variant`` descriptor validation.rrrrÚinheritNz font-variantT)Úrequired)rrrn)rIrrBr;rZvalidate_non_shorthandr)r+r=Úvaluesr Z sub_tokensrrrÚ font_variantÂs   rqz counter-stylecCs°t|ƒdkrdSt|dƒ}|dkrLt|ƒdkr¬t|dƒ}|r¬||dfSn`|dkrŽt|ƒdkrdd S|djdkr¬|djr¬dd|djfSnt|ƒdkr¬|dkr¬d|dfSdS)z!``system`` descriptor validation.rNrZextendsrÚfixedrXÚcyclicr8Ú alphabeticÚsymbolicÚadditive)Nrrr)rsr8rtrurv)rIrrÚ is_integerrb)r+r=Zsecond_keywordrrrÚsystemÓs       rxcCs¦t|ƒdkrdSg}t|ƒ}x^|rz|jdƒ}|jd krH|jd|jfƒqt||ƒ}|dk r|ddkr|jd|dfƒqWt|ƒdkr’|jd ƒt|ƒdkr¢|SdS) z#``negative`` descriptor validation.rNrrDrrPrÚ)rDr)rDry)rIÚlistÚpoprr;rr )r+r)rpr?rPrrrÚnegativeês        r|Úprefixr>cCsXt|ƒdkrdS|\}|jdkr*d|jfSt||ƒ}|dk rT|ddkrTd|dfSdS)z1``prefix`` and ``suffix`` descriptors validation.rNrDrrrP)rDr)rIrrr )r+r)r?rPrrrÚ prefix_suffixs    r~cCs¾t|ƒdkr"t|ƒ}|dkrºdSn˜t|ƒdkrºg}xbt|ƒD]V\}}|jdkrv|jdkrv|j|rhtdƒntdƒ ƒq<|jdkr<|jr<|j|jƒqsD 0 % "