³ò
s.€Jc           @   s­   d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k l Z d  d k l Z d d d d d g Z d Z	 d „  Z
 d „  Z e i d ƒ Z e
 e d <e e d <d „  Z d S(   iÿÿÿÿN(   t   etree(   t   dcparseru   ---u   â€”u   --u   â€“u   ...u   â€¦u   ,,u   â€žu   "u   â€iP   c         C   sP   t  | t ƒ o d i | ƒ } n x& t D] \ } } | i | | ƒ } q* W| S(   s?   XPath extension function converting all entites in passed text.t    (   t
   isinstancet   listt   joint   ENTITY_SUBSTITUTIONSt   replace(   t   contextt   textt   entityt   substitutution(    (    s;   /Users/zuber/Projekty/wolnelektury.pl/lib/librarian/text.pyt   substitute_entities   s     c         C   s»   t  | t ƒ o d i | ƒ } n t i d | ƒ } d } g  g } x] | D]U } | t | ƒ d 7} | t j o | i g  ƒ t | ƒ } n | d i | ƒ qK Wd i d „  | Dƒ ƒ S(   sD   XPath extension function automatically wrapping words in passed textR   s   \si    i   iÿÿÿÿs   
c         s   s"   x |  ] } d  i  | ƒ Vq Wd S(   t    N(   R   (   t   .0t   line(    (    s;   /Users/zuber/Projekty/wolnelektury.pl/lib/librarian/text.pys	   <genexpr>0   s    (   R   R   R   t   ret   splitt   lent   MAX_LINE_LENGTHt   append(   R   R	   t   wordst   line_lengtht   linest   word(    (    s;   /Users/zuber/Projekty/wolnelektury.pl/lib/librarian/text.pyt
   wrap_words!   s    	 s    http://wolnelektury.pl/functionsR   R   c         C   s8  t  i i t  i i t ƒ d ƒ } t i | ƒ } t i ƒ  } t	 i
 d t	 i t	 i Bƒ } t |  d ƒ } xE | D]= } | i d ƒ } | i d | ƒ } | i | i d ƒ ƒ qn W| i ƒ  | i d ƒ t i d t ƒ } t i | | ƒ }	 |	 i | ƒ }
 t i | d d	 d ƒ} | i t |
 ƒ t i |  ƒ i ƒ d
 S(   s@   Transforms file input_filename in XML to output_filename in TXT.s   book2txt.xslts   /\st   rs   utf-8u   <br/>
i    t   remove_blank_textt   wbt   encodingN(   t   ost   pathR   t   dirnamet   __file__R    t   parset	   cStringIOt   StringIOR   t   compilet	   MULTILINEt   UNICODEt   opent   decodet   subt   writet   encodet   closet   seekt	   XMLParsert   Truet   xsltt   codecst   unicodeR   t   url(   t   input_filenamet   output_filenamet   style_filenamet   stylet   doc_filet   exprt   fR   t   parsert   doct   resultt   output_file(    (    s;   /Users/zuber/Projekty/wolnelektury.pl/lib/librarian/text.pyt	   transform9   s"    ! 
(   u   ---u   â€”(   u   --u   â€“(   u   ...u   â€¦(   u   ,,u   â€ž(   u   "u   â€(   R   R#   R   R2   t   lxmlR    t	   librarianR   R   R   R   R   t   FunctionNamespacet   nsR@   (    (    (    s;   /Users/zuber/Projekty/wolnelektury.pl/lib/librarian/text.pys   <module>   s"   				

