
    Pi                        d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	 ddl
Z
ddl
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ dZdZ	 	 ddZd Zd Zd Zd Zedk    r e             dS dS )zq
A commandline tool for parsing RDF in different formats and serializing the
resulting graph to a chosen format.
    )annotationsN)OptionParser)BinaryIOOptional)plugin)ConjunctiveGraph)Parser)
Serializer)Store)guess_formatxmln3 c                r   |rG t          j        |t                                }|                    |           t	          |          }	nd }t	                      }	|                                D ]"\  }
}|	j                            |
|d           #| D ]Q}t          |          \  }}|dk    rt          j
        }n|s|rt          |          pt          } |	j        |fd|i| R|r8t          |          \  }}|                    dd             |	j        d||d| |r|                                 d S d S )NF)override-formatbase)destinationr    )r   getr   openr   itemsnamespace_managerbind_format_and_kwssysstdinr   DEFAULT_INPUT_FORMATparse
setdefault	serializerollback)input_filesinput_formatguessoutfileoutput_formatns_bindings
store_conn
store_typestoregraphprefixurifpath
use_formatkwss                  h/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/rdflib/tools/rdfpipe.pyparse_and_serializer4      s     #-
:u--//

: '' """((** B B$$VS5$AAAA 5 5),77
CC<<IEE 	E% 	E%e,,D0DJE44*44444 J,];;svt$$$IGMIISIII      c                Z   | i }} | rd| v r|                      dd          \  } }|                     d          D ]o}d|v r|                     d          \  }}|||<   $|                    d          rd||dd         <   G|                    d          rd	||dd         <   jd	||<   p| |fS )
a  
    ```python
    >>> _format_and_kws("fmt")
    ('fmt', {})
    >>> _format_and_kws("fmt:+a")
    ('fmt', {'a': True})
    >>> _format_and_kws("fmt:a")
    ('fmt', {'a': True})
    >>> _format_and_kws("fmt:+a,-b") #doctest: +SKIP
    ('fmt', {'a': True, 'b': False})
    >>> _format_and_kws("fmt:c=d")
    ('fmt', {'c': 'd'})
    >>> _format_and_kws("fmt:a=b:c")
    ('fmt', {'a': 'b:c'})

    ```
    :   ,=r   FN+T)split
startswith)fmtr2   kwreprkwkvs         r3   r   r   @   s    $ BC
 sczziiQ''V,,s## 		 		Bbyyxx}}1As## #BqrrFs## "BqrrFB8Or5   c            	     h   t          t                    } t          t                    }d}t          dt                                          dz   ddt          j        z  z             }|                    ddt          d	| z  d
z   dz   d|z  z   d           |                    ddt          t          d|z  dz   d|z  z   d           |                    ddt          dd           |                    ddddd            |                    d!d"d#d$%           |                    d&d'd"d#d(%           |S ))NzFORMAT:(+)KW1,-KW2,KW3=VALUEzP%prog [-h] [-i INPUT_FORMAT] [-o OUTPUT_FORMAT] [--ns=PFX=NS ...] [-] [FILE ...]za Reads file system paths, URLs or from stdin if '-' is given. The result is serialized to stdout.z%prog z(using rdflib %s))descriptionversionz-iz--input-formatzAFormat of the input document(s). Available input formats are: %s.z# If no format is given, it will be z%guessed from the file name extension.z7 Keywords to parser can be given after format like: %s.INPUT_FORMAT)typehelpmetavarz-oz--output-formatzDFormat of the graph serialization. Available output formats are: %s.z Default format is: '%default'.z; Keywords to serializer can be given after format like: %s.OUTPUT_FORMAT)rG   defaultrH   rI   z--nsappendz[Register a namespace binding (QName prefix to a base URI). This can be used more than once.zPREFIX=NAMESPACE)actionrG   rH   rI   z
--no-guessr&   store_falseTz(Don't guess format based on file suffix.)destrM   rK   rH   z--no-out
store_trueFzIDon't output the resulting graph (useful for checking validity of input).)rM   rK   rH   z-wz--warnz<Output warnings to stderr (by default only critical errors).)_get_plugin_namesr	   r
   r   __doc__striprdflib__version__
add_optionstrDEFAULT_OUTPUT_FORMAT)parser_namesserializer_names
kw_exampleoparsers       r3   make_option_parserr]   b   s   $V,,L(44/J	-MMOO3

 .1CCC	 	 	G ,.:;
/0 22 Dj
P	Q
   
 
 
 %-/?@
+, H*
TU    
 
 
 +"     7     5	     K     Nr5   c                f    d                     d t          j        |           D                       S )Nz, c              3  $   K   | ]}|j         V  d S )N)name).0ps     r3   	<genexpr>z$_get_plugin_names.<locals>.<genexpr>   s$      ??QV??????r5   kind)joinr   pluginsrd   s    r3   rQ   rQ      s0    99??V^%>%>%>??????r5   c                 
   t                      } |                                 \  }}t          |          dk     r(|                                  |                                  |j        rt          j        }nt          j        }t          j	        |           i }|j
        r'|j
        D ]}|                    d          \  }}|||<    t          j        j        }|j        rd }t!          ||j        |j        ||j        |           d S )Nr8   )levelr:   )r]   
parse_argslenprint_usageexitwarnloggingWARNINGCRITICALbasicConfignsr<   r   stdoutbufferno_outr4   r%   r&   r(   )	r\   optsargsloglevelr)   ns_kwpfxr/   r'   s	            r3   mainr|      s    ""G##%%JD$
4yy1}}y $?#h''''Kw #W 	# 	#E{{3''HC"K"%*"3G{ dWd6H+    r5   __main__)r   N)rR   
__future__r   ro   r   optparser   typingr   r   rT   r   rdflib.graphr   rdflib.parserr	   rdflib.serializerr
   rdflib.storer   rdflib.utilr   r   rX   r4   r   r]   rQ   r|   __name__r   r5   r3   <module>r      se    # " " " " "  



 ! ! ! ! ! ! % % % % % % % %        ) ) ) ) ) )             ( ( ( ( ( (       $ $ $ $ $ $   # # # #L  DI I IX@ @ @  : zDFFFFF r5   