§
    kÃ¿a9:  ã            
       óz  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZ ddlZddlmZmZ ddlmZ dgZdZi Zd„ Zd	„ Zd
„ Zej        fd„Zd-d„Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# G d„ de¦  «        Z$ e¦   «         Z%d„ Z&d.d „Z'd!„ Z(d-d"„Z)d#„ Z*d-d$„Z+d-d%„Z,d&„ Z-d.d'„Z.e&e'e(e)e+e-e.e*e,d(œ	Z/d)„ Z0 G d*„ de¦  «        Z1d+„ Z2e3d,k    r e2¦   «          dS dS )/z¦
A commandline tool for semi-automatically converting CSV to RDF.

See also https://github.com/RDFLib/pyTARQL in the RDFlib family of tools

try: ``csv2rdf --help``

é    N)Úquote)ÚRDFÚRDFS)Ú	split_uriÚCSV2RDFa^  
csv2rdf.py     -b <instance-base>     -p <property-base>     [-D <default>]     [-c <classname>]     [-i <identity column(s)>]     [-l <label columns>]     [-s <N>] [-o <output>]     [-f configfile]     [--col<N> <colspec>]     [--prop<N> <property>]     <[-d <delim>]     [-C] [files...]"

Reads csv files from stdin or given files
if -d is given, use this delimiter
if -s is given, skips N lines at the start
Creates a URI from the columns given to -i, or automatically by numbering if
none is given
Outputs RDFS labels from the columns given to -l
if -c is given adds a type triple with the given classname
if -C is given, the class is defined as rdfs:Class
Outputs one RDF triple per column in each row.
Output is in n3 format.
Output is stdout, unless -o is specified

Long options also supported:     --base,     --propbase,     --ident,     --class,     --label,     --out,     --defineclass

Long options --col0, --col1, ...
can be used to specify conversion for columns.
Conversions can be:
    ignore, float(), int(), split(sep, [more]), uri(base, [class]), date(format)

Long options --prop0, --prop1, ...
can be used to use specific properties, rather than ones auto-generated
from the headers

-D sets the default conversion for columns not listed

-f says to read config from a .ini/config file - the file must contain one
section called csv2rdf, with keys like the long options, i.e.:

[csv2rdf]
out=output.n3
base=http://example.org/
col0=split(";")
col1=split(";", uri("http://example.org/things/",
                    "http://xmlns.com/foaf/0.1/Person"))
col2=float()
col3=int()
col4=date("%Y-%b-%d %H:%M:%S")

c                 ó
  — t          j        dd| ¦  «        } t          j        dd| ¦  «        } |                      d¦  «        } d                     | d                              ¦   «         gd„ | dd	…         D ¦   «         z   ¦  «        S )
zc
    CamelCase + lowercase initial a string


    FIRST_NM => firstNm

    firstNm => firstNm

    z[^\w]ú z([a-z])([A-Z])z\1 \2Ú r   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS © )Ú
capitalize©Ú.0Úxs     ú6/usr/lib/python3/dist-packages/rdflib/tools/csv2rdf.pyú
<listcomp>ztoProperty.<locals>.<listcomp>l   s    € Ð(KÐ(KÐ(K¸A¨¯ª©¬Ð(KÐ(KÐ(Kó    é   N)ÚreÚsubÚsplitÚjoinÚlower©Úlabels    r   Ú
toPropertyr   _   s{   € õ ŒF�8˜S %Ñ(Ô(€EÝŒFÐ# Y°Ñ6Ô6€EØ�KŠK˜ÑÔ€EØ�7Š7�E˜!”H—N’NÑ$Ô$Ð%Ð(KÐ(KÀÀqÀrÀrÄÐ(KÑ(KÔ(KÑKÑLÔLÐLr   c                 óŒ   — | dd…                               ¦   «         s'| dd…                              ¦   «         | dd …         z   S | S )Nr   é   r   )Úisupperr   r   s    r   ÚtoPropertyLabelr    o   sJ   € Ø��1�Œ:×ÒÑÔð .Ø�Q�q�SŒz×ÒÑ!Ô! E¨!¨"¨"¤IÑ-Ð-Ø€Lr   c                 ó:   ‡ — t          ˆ fd„|D ¦   «         ¦  «        S )zPreturn a set of indexes from a list
    >>> index([1,2,3],(0,2))
    (1, 3)
    c                 ó    •— g | ]
}‰|         ‘ŒS r   r   )r   r   Úl_s     €r   r   zindex.<locals>.<listcomp>z   s   ø€ Ð#Ð#Ð#˜A�"�Q”%Ð#Ð#Ð#r   )Útuple)r#   Úis   ` r   Úindexr&   u   s(   ø€ õ
 Ð#Ð#Ð#Ð# Ð#Ñ#Ô#Ñ$Ô$Ð$r   c              +   óD   K  — t          j        | fd|i|¤Ž}|D ]}|V — Œd S )NÚdialect)ÚcsvÚreader)Úcsv_datar(   ÚkwargsÚ
csv_readerÚrows        r   r-   r-   }   sF   è è € å”˜HÐ@Ð@¨gÐ@¸Ð@Ð@€JØð ð ˆØˆ	ˆ	ˆ	ˆ	ðð r   c           	      óæ   — |rNt          j        |t          |                      d¦  «                             dd¦  «        d¬¦  «        z   ¦  «        }nt          j        | ¦  «        }||ft
          | <   |S )NÚutf8r	   Ú_r
   ©Úsafe)ÚrdflibÚURIRefr   ÚencodeÚreplaceÚuris)r   ÚprefixÚclass_Úrs       r   Ú	prefixurir<   „   sk   € Øð ÝŒM˜&¥5¨¯ª°&Ñ)9Ô)9×)AÒ)AÀ#ÀsÑ)KÔ)KÐRTÐ#UÑ#UÔ#UÑUÑVÔVˆˆåŒM˜!ÑÔˆØ�&ˆk…Dˆ�GØ€Hr   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú	NodeMakerc                 ó$   — t           j        j        S ©N)r4   r   ÚLiteral©Úselfs    r   ÚrangezNodeMaker.range‘   s   € ÝŒ{Ô"Ð"r   c                 ó*   — t          j        |¦  «        S r@   )r4   rA   ©rC   r   s     r   Ú__call__zNodeMaker.__call__”   s   € ÝŒ~˜aÑ Ô Ð r   N)Ú__name__Ú
__module__Ú__qualname__rD   rG   r   r   r   r>   r>   �   s2   € € € € € ð#ð #ð #ð!ð !ð !ð !ð !r   r>   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚNodeUric                 ó\   — || _         |rt          j        |¦  «        | _        d S d | _        d S r@   )r9   r4   r5   r:   )rC   r9   r:   s      r   Ú__init__zNodeUri.__init__™   s1   € ØˆŒØð 	Ý œ-¨Ñ/Ô/ˆDŒKˆKˆKàˆDŒKˆKˆKr   c                 ó8   — t          || j        | j        ¦  «        S r@   )r<   r9   r:   rF   s     r   rG   zNodeUri.__call__    s   € Ý˜˜DœK¨¬Ñ5Ô5Ð5r   c                 ó2   — | j         pt          j        j        S r@   )r:   r4   r   ÚResourcerB   s    r   rD   zNodeUri.range£   s   € ØŒ{Ð1�fœjÔ1Ð1r   N©rH   rI   rJ   rN   rG   rD   r   r   r   rL   rL   ˜   sA   € € € € € ðð ð ð6ð 6ð 6ð2ð 2ð 2ð 2ð 2r   rL   c                   ó   — e Zd Zdd„ZdS )ÚNodeLiteralNc                 ó   — || _         d S r@   ©Úf)rC   rW   s     r   rN   zNodeLiteral.__init__¨   s   € ØˆŒˆˆr   r@   )rH   rI   rJ   rN   r   r   r   rT   rT   §   s(   € € € € € ðð ð ð ð ð r   rT   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú	NodeFloatc                 ó   — | j         s!t          j        t          |¦  «        ¦  «        S t	          | j         ¦  «        r4t          j        t          |                       |¦  «        ¦  «        ¦  «        S t          d¦  «        ‚)Nz(Function passed to float is not callable)rW   r4   rA   ÚfloatÚcallableÚ	ExceptionrF   s     r   rG   zNodeFloat.__call__­   se   € ØŒvð 	,Ý”>¥%¨¡(¤(Ñ+Ô+Ð+Ý�D”FÑÔð 	4Ý”>¥%¨¯ª¨q©	¬	Ñ"2Ô"2Ñ3Ô3Ð3ÝÐBÑCÔCÐCr   c                 ó$   — t           j        j        S r@   )r4   ÚXSDÚdoublerB   s    r   rD   zNodeFloat.range´   s   € ÝŒzÔ Ð r   N©rH   rI   rJ   rG   rD   r   r   r   rY   rY   ¬   s5   € € € € € ðDð Dð Dð!ð !ð !ð !ð !r   rY   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNodeIntc                 ó   — | j         s!t          j        t          |¦  «        ¦  «        S t	          | j         ¦  «        r4t          j        t          |                       |¦  «        ¦  «        ¦  «        S t          d¦  «        ‚)Nz&Function passed to int is not callable)rW   r4   rA   Úintr\   r]   rF   s     r   rG   zNodeInt.__call__¹   sc   € ØŒvð 	*Ý”>¥# a¡&¤&Ñ)Ô)Ð)Ý�D”FÑÔð 	2Ý”>¥# d§f¢f¨Q¡i¤i¡.¤.Ñ1Ô1Ð1ÝÐ@ÑAÔAÐAr   c                 ó$   — t           j        j        S r@   )r4   r_   re   rB   s    r   rD   zNodeInt.rangeÀ   s   € ÝŒzŒ~Ðr   Nra   r   r   r   rc   rc   ¸   s5   € € € € € ðBð Bð Bðð ð ð ð r   rc   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNodeBoolc                 ó   — | j         s!t          j        t          |¦  «        ¦  «        S t	          | j         ¦  «        r4t          j        t          |                       |¦  «        ¦  «        ¦  «        S t          d¦  «        ‚)Nz'Function passed to bool is not callable)rW   r4   rA   Úboolr\   r]   rF   s     r   rG   zNodeBool.__call__Å   sc   € ØŒvð 	+Ý”>¥$ q¡'¤'Ñ*Ô*Ð*Ý�D”FÑÔð 	3Ý”>¥$ t§v¢v¨a¡y¤y¡/¤/Ñ2Ô2Ð2ÝÐAÑBÔBÐBr   c                 ó$   — t           j        j        S r@   )r4   r_   rj   rB   s    r   rD   zNodeBool.rangeÌ   s   € ÝŒzŒÐr   Nra   r   r   r   rh   rh   Ä   s5   € € € € € ðCð Cð Cðð ð ð ð r   rh   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNodeReplacec                 ó"   — || _         || _        d S r@   ©ÚaÚb)rC   rp   rq   s      r   rN   zNodeReplace.__init__Ñ   s   € ØˆŒØˆŒˆˆr   c                 óB   — |                      | j        | j        ¦  «        S r@   )r7   rp   rq   rF   s     r   rG   zNodeReplace.__call__Õ   s   € Ø�yŠy˜œ ¤Ñ(Ô(Ð(r   N)rH   rI   rJ   rN   rG   r   r   r   rm   rm   Ð   s2   € € € € € ðð ð ð)ð )ð )ð )ð )r   rm   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNodeDatec                 óp   — t          j        t          j                             || j        ¦  «        ¦  «        S r@   )r4   rA   ÚdatetimeÚstrptimerW   rF   s     r   rG   zNodeDate.__call__Ú   s'   € ÝŒ~�hÔ/×8Ò8¸¸D¼FÑCÔCÑDÔDÐDr   c                 ó$   — t           j        j        S r@   )r4   r_   ÚdateTimerB   s    r   rD   zNodeDate.rangeÝ   s   € ÝŒzÔ"Ð"r   Nra   r   r   r   rt   rt   Ù   s5   € € € € € ðEð Eð Eð#ð #ð #ð #ð #r   rt   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú	NodeSplitc                 ó"   — || _         || _        d S r@   ©ÚseprW   )rC   r~   rW   s      r   rN   zNodeSplit.__init__â   s   € ØˆŒØˆŒˆˆr   c                 óÆ   ‡ — ‰ j         st          j        ‰ _         t          ‰ j         ¦  «        st	          d¦  «        ‚ˆ fd„|                     ‰ j        ¦  «        D ¦   «         S )Nz)Function passed to split is not callable!c                 óŽ   •— g | ]A}|                      ¦   «         d k    ¯‰                     |                      ¦   «         ¦  «        ‘ŒBS )r
   )ÚstriprW   )r   ÚyrC   s     €r   r   z&NodeSplit.__call__.<locals>.<listcomp>ë   s:   ø€ ÐPÐPÐP aÀÇÂÁ	Ä	ÈRÂÀ�—’�q—w’w‘y”yÑ!Ô!ÀÀÀr   )rW   r4   rA   r\   r]   r   r~   rF   s   ` r   rG   zNodeSplit.__call__æ   s`   ø€ ØŒvð 	$Ý”^ˆDŒFÝ˜œÑÔð 	IÝÐGÑHÔHÐHØPÐPÐPÐP¨1¯7ª7°4´8Ñ+<Ô+<ÐPÑPÔPÐPr   c                 óª   — | j         r3t          | j         t          ¦  «        r| j                              ¦   «         S t                               | ¦  «        S r@   )rW   Ú
isinstancer>   rD   rB   s    r   rD   zNodeSplit.rangeí   sA   € ØŒ6ð 	"•j ¤­Ñ3Ô3ð 	"Ø”6—<’<‘>”>Ð!Ý�Š˜tÑ$Ô$Ð$r   NrR   r   r   r   r{   r{   á   sD   € € € € € ðð ð ðQð Qð Qð%ð %ð %ð %ð %r   r{   c                  ó   — dS )NÚignorer   )Úargsr,   s     r   Ú_config_ignorerˆ   ö   s   € Øˆ8r   c                 ó"   — t          | |¦  «        S r@   )rL   )r9   r:   s     r   Ú_config_urirŠ   ú   s   € Ý�6˜6Ñ"Ô"Ð"r   c                  ó   — t          ¦   «         S r@   )rT   r   r   r   Ú_config_literalrŒ   þ   s   € Ý‰=Œ=Ðr   c                 ó    — t          | ¦  «        S r@   )rY   rV   s    r   Ú_config_floatrŽ     s   € Ý�Q‰<Œ<Ðr   c                 ó"   — t          | |¦  «        S r@   )rm   ro   s     r   Ú_config_replacer�     s   € Ý�q˜!ÑÔÐr   c                 ó    — t          | ¦  «        S r@   )rc   rV   s    r   Ú_config_intr’   
  s   € Ý�1‰:Œ:Ðr   c                 ó    — t          | ¦  «        S r@   )rh   rV   s    r   Ú_config_boolr”     s   € Ý�A‰;Œ;Ðr   c                 ó    — t          | ¦  «        S r@   )rt   )Úformat_s    r   Ú_config_dater—     s   € Ý�GÑÔÐr   c                 ó"   — t          | |¦  «        S r@   )r{   r}   s     r   Ú_config_splitr™     s   € Ý�S˜!ÑÔÐr   )	r†   ÚuriÚliteralr[   re   Údater   r7   rj   c                 ó,   — t          | t          ¦  «        S )z$Return a function for column mapping)ÚevalÚconfig_functions)Úvs    r   Úcolumnr¡   '  s   € õ �Õ#Ñ$Ô$Ð$r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )r   c                 óÐ   — d | _         d | _        d | _        d| _        d | _        d| _        d| _        d| _        d | _        i | _	        i | _
        t          j        | _        d| _        d S )NÚautoFr   ú,)ÚCLASSÚBASEÚPROPBASEÚIDENTÚLABELÚDEFINECLASSÚSKIPÚDELIMÚDEFAULTÚCOLUMNSÚPROPSÚsysÚstdoutÚOUTÚtriplesrB   s    r   rN   zCSV2RDF.__init__.  sd   € àˆŒ
ØˆŒ	ØˆŒØˆŒ
ØˆŒ
Ø ˆÔØˆŒ	ØˆŒ
ØˆŒàˆŒØˆŒ
å”:ˆŒàˆŒˆˆr   c                 óØ   — | j                              |                     ¦   «         ›d|                     ¦   «         ›d|                     ¦   «         ›d�¦  «         | xj        dz  c_        d S )Nr	   z .
r   )r³   ÚwriteÚn3r´   )rC   ÚsÚpÚos       r   ÚtriplezCSV2RDF.tripleA  sU   € ØŒ�Š¨¯ª©¬¨¨°·²±´°°¸¿º¹¼¸¸Ð@ÑAÔAÐAØˆŒ˜ÑˆŒˆˆr   c                 óÀ  ‡ — t          j         ¦   «         }‰ j        r,t          j                             d‰ j        j        z  ¦  «         ‰ j        dk    r't          ‰ j        t          ¦  «        s‰ j        f‰ _        ‰ j	        s-t          j        d¦  «         t          j        d¦  «        ‰ _	        ‰ j        s-t          j        d¦  «         t          j        d¦  «        ‰ _        t          ‰ j        ¦  «        D ]}t#          |¦  «         Œt%          t#          |¦  «        ¦  «        }t'          t)          ˆ fd„|D ¦   «         ¦  «        ¦  «        }‰ j                             ¦   «         D ]"\  }}|||<   t/          |¦  «        d         ||<   Œ#‰ j        �ru‰                      ‰ j        t6          j        t:          j        ¦  «         t          t?          |¦  «        ¦  «        D �]'}||         ||         }
}	|	d	k    s|
d	k    rŒ ‰ j          !                    |‰ j"        ¦  «        d
k    rŒE‰                      |	t6          j        t6          j#        ¦  «         ‰                      |	t:          j$        t          j%        tM          |
¦  «        ¦  «        ¦  «         ‰                      |	t:          j'        ‰ j        ¦  «         ‰                      |	t:          j        ‰ j          !                    |tP          ¦  «                             ¦   «         ¦  «         �Œ)d}|D �]z}
	 ‰ j        dk    r‰ j	        d|z           }n=‰ j	        d )                    d„ tU          |
‰ j        ¦  «        D ¦   «         ¦  «                 }‰ j+        rY‰                      |t:          j$        t          j%        d )                    tU          |
‰ j+        ¦  «        ¦  «        ¦  «        ¦  «         ‰ j        r&‰                      |t6          j        ‰ j        ¦  «         t)          |
¦  «        D �]\  }}| ,                    ¦   «         }|d	k    rë‰ j          !                    |‰ j"        ¦  «        d
k    rŒE	  ‰ j          !                    |t          j%        ¦  «        |¦  «        }t          |t$          ¦  «        r#|D ]}‰                      |||         |¦  «         Œ n‰                      |||         |¦  «         ŒÊ# tZ          $ r4}t          j        dd|||         ||j.        fz  z   ¦  «         Y d }~�Œd }~ww xY w�Œ|dz  }|dz  dk    r>t          j                             d|‰ j/        t          j         ¦   «         |z
  fz  ¦  «         �ŒT#  t          j                             d|z  ¦  «         ‚ xY wta          ¦   «         }tb                               ¦   «         D ]‰\  }
}|\  }}‰                      |t:          j$        t          j%        |
¦  «        ¦  «         |rJt          j2        |¦  «        }| 3                    |¦  «         ‰                      |t6          j        |¦  «         ŒŠ|D ]-}‰                      |t6          j        t:          j        ¦  «         Œ.‰ j         4                    ¦   «          t          j                             d|‰ j/        fz  ¦  «         t          j                             dt          j         ¦   «         |z
  z  ¦  «         d S )NzOutput to %s
r¤   z2No base given, using http://example.org/instances/zhttp://example.org/instances/z:No property base given, using http://example.org/property/zhttp://example.org/props/c                 óD   •— g | ]}‰j         t          |¦  «                 ‘ŒS r   )r¨   r   )r   r   rC   s     €r   r   z#CSV2RDF.convert.<locals>.<listcomp>]  s&   ø€ Ð!VÐ!VÐ!VÀ1 $¤-µ
¸1±´Ô">Ð!VÐ!VÐ!Vr   r   r
   r†   r   z%dr1   c                 ó~   — g | ]:}t          |                     d ¦  «                             dd¦  «        d¬¦  «        ‘Œ;S )r0   r	   r1   r
   r2   )r   r6   r7   r   s     r   r   z#CSV2RDF.convert.<locals>.<listcomp>{  sQ   € ð ð ð à$%õ !& a§h¢h¨vÑ&6Ô&6×&>Ò&>¸sÀCÑ&HÔ&HÈrÐ RÑ RÔ Rðð ð r   r	   z#Could not process value for column z%d:%s in row %d, ignoring: %s i † z$%d rows, %d triples, elapsed %.2fs.
zError processing line: %d
z#Converted %d rows into %d triples.
zTook %.2f seconds.
)5Útimer³   r±   Ústderrr¶   Únamer©   r„   r$   r§   ÚwarningsÚwarnr4   Ú	Namespacer¨   rD   r¬   ÚnextÚlistÚdictÚ	enumerater°   Úitemsr   r«   r»   r¦   r   Útyper   ÚClassÚlenr¯   Úgetr®   ÚPropertyr   rA   r    ÚdomainÚdefault_node_maker   r&   rª   r�   r]   Úmessager´   Úsetr8   r5   ÚaddÚclose)rC   Ú	csvreaderÚstartr   Úheader_labelsÚheadersÚkr    r%   Úhr#   Úrowsrš   rº   Ú_oÚeÚclassesÚuÚcs   `                  r   ÚconvertzCSV2RDF.convertE  ss  ø€ å”	‘”ˆàŒ8ð 	?ÝŒJ×ÒÐ-°´´Ñ=Ñ>Ô>Ð>àŒ:˜ÒÐ­
°4´:½uÑ(EÔ(EÐØœ*˜ˆDŒJàŒyð 	JÝŒMÐNÑOÔOÐOÝÔ(Ð)HÑIÔIˆDŒIàŒ}ð 	JÝŒMÐVÑWÔWÐWÝ"Ô,Ð-HÑIÔIˆDŒMõ �t”yÑ!Ô!ð 	ð 	ˆAÝ�‰OŒOˆOˆOõ �T )™_œ_Ñ-Ô-ˆÝ•yÐ!VÐ!VÐ!VÐ!VÈÐ!VÑ!VÔ!VÑWÔWÑXÔXˆà”J×$Ò$Ñ&Ô&ð 	/ð 	/‰DˆAˆqØˆG�A‰JÝ(¨™|œ|¨AœˆM˜!ÑÐàÔñ 	à�KŠK˜œ
¥C¤H­d¬jÑ9Ô9Ð9Ý�3˜w™<œ<Ñ(Ô(ð ñ �Ø œ
 M°!Ô$4�2�Ø˜’7�7˜b Bšh˜hØØ”<×#Ò# A t¤|Ñ4Ô4¸Ò@Ð@ØØ—’˜A�sœx­¬Ñ6Ô6Ð6Ø—’˜A�tœz­6¬>½/È"Ñ:MÔ:MÑ+NÔ+NÑOÔOÐOØ—’˜A�tœ{¨D¬JÑ7Ô7Ð7Ø—’Ø•t”z 4¤<×#3Ò#3°AÕ7HÑ#IÔ#I×#OÒ#OÑ#QÔ#Qñô ð ñ ð ˆØð 3	ñ 3	ˆBð2Ø”: Ò'Ð'Øœ) D¨4¡KÔ0�C�Càœ)ØŸšðð å).¨r°4´:Ñ)>Ô)>ðñ ô ñô ô�Cð ”:ð Ø—K’KØ�TœZ­¬¸¿ºÅÀrÈ4Ì:ÑAVÔAVÑ8WÔ8WÑ)XÔ)Xñô ð ð ”:ð ;à—K’K ¥S¤X¨t¬zÑ:Ô:Ð:å% b™MœMð ñ ‘D�A�qØŸš™	œ	�AØ˜B’w�wØœ<×+Ò+¨A¨t¬|Ñ<Ô<ÀÒHÐHØ$ðØ C ¤× 0Ò 0°µF´NÑ CÔ CÀAÑ FÔ F˜AÝ)¨!­TÑ2Ô2ð @Ø*+ð !Eð !E BØ$(§K¢K°°W¸Q´ZÀÑ$DÔ$DÐ$DÐ$Dð!Eð !%§¢¨C°¸´¸QÑ ?Ô ?Ð ?øøå(ð ð ð Ý$œMØ EØ"BØ#$ g¨a¤j°$¸¼	Ð"Bñ#Cñ!Cñô ð ð ð ð ð ñ øøøøðøøøñ ð$ ˜‘	�Ø˜&‘= AÒ%Ð%Ý”J×$Ò$Ø?Ø ¤­t¬y©{¬{¸UÑ/BÐCñDñô ð ùøðÝ”
× Ò Ð!>ÀÑ!EÑFÔFÐFØøøøõ ‘%”%ˆÝ—Z’Z‘\”\ð 	,ð 	,‰EˆB�Ø‰DˆAˆqØ�KŠK˜�4œ:¥v¤~°bÑ'9Ô'9Ñ:Ô:Ð:Øð ,Ý”M !Ñ$Ô$�Ø—’˜A‘”�Ø—’˜A�sœx¨Ñ+Ô+Ð+øàð 	1ð 	1ˆAØ�KŠK˜�3œ8¥T¤ZÑ0Ô0Ð0Ð0àŒ�ŠÑÔÐÝŒ
×ÒÐ?À4ÈÌÐBVÑVÑWÔWÐWÝŒ
×ÒÐ/µ4´9±;´;ÀÑ3FÑGÑHÔHÐHÐHÐHs9   ÌD:UÑBSÓUÓ
T
Ó)TÓ?UÔT
Ô
AUÕ%VN)rH   rI   rJ   rN   r»   rá   r   r   r   r   r   -  sK   € € € € € ðð ð ð&ð ð ðsIð sIð sIð sIð sIr   c                  ó:  — t          ¦   «         } t          j        t          j        dd …         dg d¢¦  «        \  }}t	          |¦  «        }d|v sd|v r(t          t          ¦  «         t          j        d¦  «         d|v �rút          j	        ¦   «         }| 
                    t          |d         ¦  «        ¦  «         |                     d¦  «        D �]¨\  }}|d	k    rt          j        |d
d¦  «        | _        Œ(|dk    rt          j        |¦  «        | _        ŒH|dk    rt          j        |¦  «        | _        Œh|dk    rt          j        |¦  «        | _        Œˆ|dk    rt+          |¦  «        | _        Œ£|dk    rt/          |¦  «        | _        Œ¾|dk    rt/          |¦  «        | _        ŒÙ|dk    r|| _        Œç|dk    rt7          |¦  «        | _        �Œ|dk    rt;          |¦  «        | _        �Œ|                     d¦  «        r.t;          |¦  «        | j         t7          |dd …         ¦  «        <   �Œb|                     d¦  «        r1t          j        |¦  «        | j!        t7          |dd …         ¦  «        <   �Œªd|v r!t          j        |d         d
d¦  «        | _        d|v r!t          j        |d         d
d¦  «        | _        d|v rt          j        |d         ¦  «        | _        d|v rt          j        |d         ¦  «        | _        d|v r|d         | _        d|v r|d         | _        d|v rt;          |d         ¦  «        | _        d |v rt;          |d          ¦  «        | _        d!|v rt          j        |d!         ¦  «        | _        d"|v rt          j        |d"         ¦  «        | _        d#|v rt/          |d#         ¦  «        | _        d$|v rt/          |d$         ¦  «        | _        d%|v rt/          |d%         ¦  «        | _        d&|v rt/          |d&         ¦  «        | _        d'|v rt7          |d'         ¦  «        | _        d(|v rt7          |d(         ¦  «        | _        d)|v rt          j        |d)         ¦  «        | _        d*|v rt          j        |d*         ¦  «        | _        |                     ¦   «         D ]�\  }}|                     d+¦  «        r-t;          |¦  «        | j         t7          |d,d …         ¦  «        <   ŒG|                     d-¦  «        r1t          j        |¦  «        | j!        t7          |d.d …         ¦  «        <   ŒŽ| j        rd/|v sd0|v rd1| _        |  "                    tG          tI          j%        |¦  «        | j        ¬2¦  «        ¦  «         d S )3Nr   zhc:b:p:i:o:Cf:l:s:d:D:)
zout=zbase=zdelim=z	propbase=zclass=zdefault=ident=zlabel=zskip=ÚdefineclassÚhelpz-hz--helpéÿÿÿÿz-fÚcsv2rdfÚoutÚwzutf-8ÚbaseÚpropbaseÚclassrã   Úidentr   ÚdelimÚskipÚdefaultÚcolé   Úpropé   z-oz--outz-bz--basez-dz--delimz-Dz	--defaultz-pz
--propbasez-lz--labelz-iz--identz-sz--skipz-cz--classz--colé   z--propé   z-Cz--defineclassT)Ú	delimiter)&r   Úgetoptr±   ÚargvrÇ   ÚprintÚHELPÚexitÚconfigparserÚConfigParserÚreadfpÚopenrÉ   Úcodecsr³   r4   rÄ   r§   r¨   r5   r¦   rj   r«   rž   r©   rª   r­   re   r¬   r¡   r®   Ú
startswithr¯   r°   rá   r-   Ú	fileinputÚinput)ræ   ÚoptsÚfilesÚconfigrÙ   r    s         r   Úmainr  »  s7  € Ý‰iŒi€Gå”-ÝŒ���ŒØ ð	
ð 	
ð 	
ñô �K€Dˆ%õ  �‰:Œ:€Dàˆt€|€|�x 4Ð'Ð'Ý�d‰ŒˆÝŒ�‰Œˆàˆt€|�|ÝÔ*Ñ,Ô,ˆØ�Š•d˜4 œ:Ñ&Ô&Ñ'Ô'Ð'Ø—L’L Ñ+Ô+ð 	=ñ 	=‰DˆAˆqØ�EŠzˆzÝ$œk¨!¨S°'Ñ:Ô:�”�Ø�f’�Ý%Ô/°Ñ2Ô2�”�Ø�j’�Ý#)Ô#3°AÑ#6Ô#6�Ô Ð Ø�g’�Ý &¤¨aÑ 0Ô 0�”�Ø�mÒ#Ð#Ý&*¨1¡g¤g�Ô#Ð#Ø�g’�Ý $ Q¡¤�”�Ø�g’�Ý $ Q¡¤�”�Ø�g’�Ø !�”�Ø�f’�Ý" 1™vœv�”‘Ø�i’�Ý"(¨¡)¤)�”‘Ø—’˜eÑ$Ô$ð =Ý.4°Q©i¬i�”¥ A a b b¤E¡
¤
Ñ+Ñ+Ø—’˜fÑ%Ô%ð =Ý,2¬M¸!Ñ,<Ô,<�”�c ! A B B¤%™jœjÑ)ùàˆt€|€|Ý”k $ t¤*¨c°7Ñ;Ô;ˆŒØ�$€€Ý”k $ w¤-°°gÑ>Ô>ˆŒàˆt€|€|ÝÔ'¨¨T¬
Ñ3Ô3ˆŒØ�4ÐÐÝÔ'¨¨X¬Ñ7Ô7ˆŒàˆt€|€|Ø˜Tœ
ˆŒØ�DÐÐØ˜YœˆŒàˆt€|€|Ý   d¤Ñ,Ô,ˆŒØ�dÐÐÝ   kÔ!2Ñ3Ô3ˆŒàˆt€|€|Ý!Ô+¨D°¬JÑ7Ô7ˆÔØ�tÐÐÝ!Ô+¨D°Ô,>Ñ?Ô?ˆÔàˆt€|€|Ý˜T $œZÑ(Ô(ˆŒØ�DÐÐÝ˜T )œ_Ñ-Ô-ˆŒàˆt€|€|Ý˜T $œZÑ(Ô(ˆŒØ�DÐÐÝ˜T )œ_Ñ-Ô-ˆŒàˆt€|€|Ý˜4 œ:‘”ˆŒØ�4ÐÐÝ˜4 œ>Ñ*Ô*ˆŒàˆt€|€|Ýœ d¨4¤jÑ1Ô1ˆŒØ�DÐÐÝœ d¨9¤oÑ6Ô6ˆŒà—
’
‘”ð 9ð 9‰ˆˆ1Ø�<Š<˜Ñ Ô ð 	9Ý*0°©)¬)ˆGŒO�C  ! " "¤™JœJÑ'Ð'Ø�\Š\˜(Ñ#Ô#ð 	9Ý(.¬°aÑ(8Ô(8ˆGŒM�#˜a   œe™*œ*Ñ%øà„}ð #˜$ $˜,˜,¨/¸TÐ*AÐ*AØ"ˆÔà‡O‚O•J�yœ¨uÑ5Ô5ÀÄÐOÑOÔOÑPÔPÐPÐPÐPr   Ú__main__r@   )NN)4Ú__doc__r±   r   r)   r÷   r  r   r¿   rv   rÂ   rü   Úurllib.parser   r4   r   r   Úrdflib.namespacer   Ú__all__rú   r8   r   r    r&   Úexcelr-   r<   Úobjectr>   rL   rT   rY   rc   rh   rm   rt   r{   rÐ   rˆ   rŠ   rŒ   rŽ   r�   r’   r”   r—   r™   rŸ   r¡   r   r  rH   r   r   r   ú<module>r     s  ððð ð €
€
€
Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø €€€à Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &àˆ+€ð<€ð~ 
€ðMð Mð Mð ð ð ð%ð %ð %ð "%¤ð ð ð ð ðð ð ð ð!ð !ð !ð !ð !�ñ !ô !ð !ð2ð 2ð 2ð 2ð 2ˆiñ 2ô 2ð 2ðð ð ð ð �)ñ ô ð ð
	!ð 	!ð 	!ð 	!ð 	!�ñ 	!ô 	!ð 	!ð	ð 	ð 	ð 	ð 	ˆkñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ˆ{ñ 	ô 	ð 	ð)ð )ð )ð )ð )�)ñ )ô )ð )ð#ð #ð #ð #ð #ˆ{ñ #ô #ð #ð%ð %ð %ð %ð %�	ñ %ô %ð %ð$ �I‘K”KÐ ðð ð ð#ð #ð #ð #ðð ð ðð ð ð ðð ð ðð ð ð ðð ð ð ðð ð ðð ð ð ð
 ØØØØØØØØð
ð 
Ð ð%ð %ð %ðKIð KIð KIð KIð KIˆfñ KIô KIð KIð\lQð lQð lQð^ ˆzÒÐØ€D�F„F€F€F€Fð Ðr   