
    TiW                         d dl Z d dlmZ d dlmZ ddlmZmZmZ ddl	m
Z
 ddlmZ  G d d	e      Z G d
 de      Z G d de      Z G d de      Zy)    N)warn)etree   )SCHEMA_PATHLOCALES_PATHSTYLES_PATH)CitationStylesElement)htmlc                       e Zd ZddZy)CitationStylesXMLc                 "   t        j                         }|j                  d      }t        |d <   |j	                  t        t        j                         D cg c].  }|j                  j                  dd      j                         |f0 c}             t        j                  ddd      | _        | j                  j                  |       t        j                  || j                        | _        |rzt        j                  t        j                  t                     | _        | j"                  j%                  | j                        s$| j"                  j&                  }t)        d|z         | j                  j+                         | _        y c c}w )Nzhttp://purl.org/net/xbiblio/csl_-TzUTF-8)remove_commentsencoding
no_networkz*XML file didn't pass schema validation:
%s)r   ElementNamespaceClassLookupget_namespacer	   updatedict__subclasses____name__replacelower	XMLParserparserset_element_class_lookupparsexmlRelaxNGr   schemavalidate	error_logr   getrootroot)selffr"   lookup	namespaceclserrs          D/home/agent/.local/lib/python3.12/site-packages/citeproc/frontend.py__init__zCitationStylesXML.__init__   s+   224(()JK	/	$*?*N*N*PR#& !$ 4 4S# > D D FL R S 	T oodW157,,V4;;q$++.--K(@ADK;;''1kk++BSHIHH$$&	Rs   3FNT)r   
__module____qualname__r-        r,   r   r      s    'r2   r   c                         e Zd Zd fd	Z xZS )CitationStylesLocalec                     t         j                  j                  t        dj	                  |            }	 t
        t        |   ||       y # t        $ r t        dj	                  |            w xY w)Nzlocales-{}.xmlr"   z'{}' is not a known locale)
ospathjoinr   formatsuperr4   r-   IOError
ValueError)r&   localer"   locale_path	__class__s       r,   r-   zCitationStylesLocale.__init__$   sl    ggll<1A1H1H1PQ	J&6{@H 7 J 	J9@@HII	Js   A $A0r.   )r   r/   r0   r-   __classcell__r@   s   @r,   r4   r4   #   s    J Jr2   r4   c                   :     e Zd Zd fd	Zd ZddZd Zd Z xZS )CitationStylesStylec                    d }	 t        |t              snt        j                  j	                  |      r|}n]t        j                  j                  t        | d      }t        j                  j	                  |      r|}n	 dd l}	 ddlm
}  ||      }||r|}nt        d| d      	 t        t        | C  ||	       || j$                  j'                  d
d      }| j$                  j)                  ||	       y # t        $ r t        d| dt         d      w xY w# t        t        f$ r t        d| d| d      w xY w# t        $ r Y w xY w# t"        $ r t        d| d      w xY w)Nz.cslr   'z' not found in bundled styles (ze). To access more styles, install the citeproc-py-styles package with: pip install citeproc-py-styles)get_style_filepathz") or in citeproc-py-styles packagez' is not a known styler6   zdefault-localezen-US)
isinstancestrr7   r8   existsr9   r   citeproc_stylesImportErrorr=   rG   KeyErrorFileNotFoundError	TypeErrorr;   rD   r-   r<   r%   getset_locale_list)	r&   styler>   r"   	style_srcbundled_pathrK   rG   r@   s	           r,   r-   zCitationStylesStyle.__init__.   s   	"	 eS)&!	  "ww||KE7$H77>>,/ ,I.F$6u$=	 !	 !1UG+A!BCC	@%t5H 6 . >YY]]#3W=F		!!&8!<E ' (w&Ek] S= >  %&78 (w&El^ T? @   		  	@q'=>??	@sB   A<E C= D  ,E = DE  "EE 	EEE-c                 2    | j                   j                  d uS N)r%   bibliographyr&   s    r,   has_bibliographyz$CitationStylesStyle.has_bibliographyf   s    yy%%T11r2   c                 P    | j                   j                  j                  |||      S rV   )r%   citationrender)r&   r[   citescallbacks       r,   render_citationz#CitationStylesStyle.render_citationi   s!    yy!!((5(CCr2   c                 L    | j                   j                  j                  |      S rV   )r%   rW   sortr&   citation_itemss     r,   sort_bibliographyz%CitationStylesStyle.sort_bibliographyl   s    yy%%**>::r2   c                 L    | j                   j                  j                  |      S rV   )r%   rW   r\   rb   s     r,   render_bibliographyz'CitationStylesStyle.render_bibliographyo   s    yy%%,,^<<r2   )NTrV   )	r   r/   r0   r-   rY   r_   rd   rf   rA   rB   s   @r,   rD   rD   -   s    6=p2D;=r2   rD   c                   0    e Zd ZefdZddZd Zd Zd Zy)CitationStylesBibliographyc                     || _         || _        |x| _        | j                   j                  _        g | _        g | _        g | _        y rV   )rR   source	formatterr%   keysitems_cites)r&   rR   rj   rk   s       r,   r-   z#CitationStylesBibliography.__init__t   s<    
5>>2	
r2   Nc                 .   | |_         |j                  D ]  }|j                  | j                  v rZ|j                  | j                  vs4| j                  j                  |j                         | j                  j                  |       u|x ||        y rV   )rW   r]   keyrj   rl   appendrm   )r&   r[   r^   items       r,   registerz#CitationStylesBibliography.register|   sr     $NN 	Dxx4;;&88499,II$$TXX.JJ%%d+%	r2   c                     | j                   j                  | j                        | _        | j                  D cg c]  }|j                   c}| _        y c c}w rV   )rR   rd   rm   rp   rl   )r&   rr   s     r,   ra   zCitationStylesBibliography.sort   s9    ZZ11$**=
*.**5$TXX5	5s   Ac                 P    | j                   j                  || j                  |      S rV   )rR   r_   rn   )r&   r[   r^   s      r,   citezCitationStylesBibliography.cite   s    zz))(DKKJJr2   c                 L    | j                   j                  | j                        S rV   )rR   rf   rm   rX   s    r,   rW   z'CitationStylesBibliography.bibliography   s    zz--djj99r2   rV   )	r   r/   r0   r
   r-   rs   ra   rv   rW   r1   r2   r,   rh   rh   s   s    04 6K:r2   rh   )r7   warningsr   lxmlr    r   r   r   modelr	   rk   r
   objectr   r4   rD   rh   r1   r2   r,   <module>r}      sQ    	   4 4 ( ' ',J, JC=+ C=L: :r2   