
    Pie                        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
mZmZ d dlmZ d dlmZ ddlmZ g dZd Zej         G d	 d
                      ZdedefdZddZdej        e         dej        e         fdZdS )    N)GraphURIRefLiteral)URIReference)Duration   )is_url)group_triplesto_jsonTripleformat_valuec                    t          | t          j        t          j        t          j        f          r|                                 }|r+|j        j        dk    r|                    d          d         }|r&|j        j        dk    rt          j	        dd|          }t          | t          j        t          j        f          rZ|
                    d          \  }}}|r)d                    ||                    d	                    n|                    d
d          S |S t          | t          j                  r|j                            |           S t          | t                     r|j                            |           S t          | t"          j                  rt'          |           } t          | t(                    r|                                 S t          | t,                    r|j                            |           S t          | t.          j                  rt3          |           S t          | t&                    rIt5          j        |           rdn2t5          j        |           rd                    | dk     rdnd          n| S | S )z,
    Format values as JSON-LD literals.
    timeTdatez	T[0-9.:]+ .z{}.{}0z+00:00ZNaNz{}INFr   -)
isinstancedatetimer   r   	isoformatdatatypebasesplitresub	partitionformatrstripreplace	timedelta	formattedr   decimalDecimalfloatr   unsplitbytespathlibPathstrmathisnanisinf)valuecolresstamp_millisecondss         _/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/csvw/jsonld.pyr   r      s>    %(-):HMJKK 
oo 	%3<$..))C..$C 	/3<$..&b#..Ceh/?@@ 	2%(]]3%7%7"E1lFR 27>>%)<)<S)A)ABBB]]8S112
%+,, -|%%e,,,%"" -|%%e,,,%)) e%&& }}% -|%%e,,,%&& 5zz% V
5)) Vuu8<
58I8ITGNN%!))33444u	VL    c                       e Zd ZdZ ej                    Z ej                    Z ej                    Zd Z	e
d             ZdS )r   z,
    A table cell's data as RDF triple.
    c                     t          | j                  t          | j                  t          | j                  rt          | j                  nt          | j                  fS )N)r   aboutpropertyr	   r2   r   )selfs    r8   as_rdflib_triplezTriple.as_rdflib_triple>   sS    4:4=!!"("4"4MF4:'$*:M:MO 	Or9   c                    |r|j         nd}|r|j        n|                    d          }|r|                    ||||d          }|dk    }	|r|j        n|                    d          }
|
r|                    |
||||	          }t          ||          }d}|r|j        nd}|r|                    ||||          p|} | |||          S )	z


        NpropertyUrlT)_row_nameqnamerdf:typevalueUrl)rB   rC   r<   r=   r2   )headerrA   inheritexpandrF   r   aboutUrl)clstabler3   rowpropvalrownumrC   rA   is_typerF   srK   s                r8   from_colzTriple.from_colD   s   
 "+

t),Ncoo%--2N2N 	X<<SvURV<WWD*$#&E3<<EMM*,E,E 	W,,x6g,VVC3$$#&03<<D 	KXsuEEJAsT5555r9   N)__name__
__module____qualname____doc__attribr<   r=   r2   r?   classmethodrT    r9   r8   r   r   5   st          DGIIEtwyyHDGIIEO O O 6 6 [6 6 6r9   r   datareturnc                    t          j                    i }}| D ]}|                    d          }|r|||<   |                                D ]|}t	          |t
                    s|gn|D ]_}t	          |t                    rH|                    d          }|r1|                    ||g f          d                             |           `}|                                D ]P\  }}	t          |	          dk    r8|d         |v r.|
                    |                    |d                              Qt          |                                          S )z
    Inline referenced items to force a deterministic graph layout.

    .. see:: https://w3c.github.io/json-ld-framing/#introduction
    @idr   )collectionsOrderedDictgetvaluesr   listdict
setdefaultappendlenupdatepop)
r]   itemsrefsitemitemidvsvrefidrefsubjectss
             r8   frameru   [   s^    )++R4E 	H 	H% 	! E&M++-- 	H 	HB!+B!5!5=bTT2 H Ha&& HEE%LLE H2w77:AA$GGG	H	H  . .Xx==A#e*"5"5JJuyyU,,---r9   Fc                    t          | t                    r+d| v r| d         } t          |           dk    rd| v r| d         } t          | t                    r fd|                                 D             S t          | t                    r:t          |           dk    rrt          | d                   S fd| D             S | S )z?
    Simplify JSON-LD data by refactoring trivial objects.
    z@valuer   r`   c                 J    i | ]\  }}|d k    rdn|t          |           S )rE   z@typeflatten_listr   ).0krq   ry   s      r8   
<dictcomp>zto_json.<locals>.<dictcomp>|   sH     % % %1 JGGAwq|/T/T/T% % %r9   r   rx   c                 2    g | ]}t          |           S )rx   rz   )r{   rq   ry   s     r8   
<listcomp>zto_json.<locals>.<listcomp>   s&    CCC!555CCCr9   )r   rf   ri   rl   re   r   )objry   s    `r8   r   r   r   s     #t s??h-Cs88q==Uc\\e*C#t %% % % %		% % % 	% #t Ds88q==\=3q6====CCCCsCCCCJr9   triplesc                 `   g }| D ]}t          |j        t                    rf|D ]M}|j        |j        k    r;t          |j        t                    r!|j                            |j                    nN|                    |           |                    |           t          j                    g } |D ]}|j        |j        dk    r|j        |j        <   $|j        su|j        v r\t          |j                 t                    s|j                 g|j        <   |j                                     |j                   |j        |j        <   |                     |           | sgS t                      }| D ])}|
                    |                                           *dv r]                                D ]H\  }}|dk    r=|
                    t          d         ||                                                     I|                    d          }d t          t!          t#          j        |                              D             }d t'          |fd	          D             }r5dvr1t)          |          d
k    r                    |d                    gS |S )z@
    Group and frame triples into a `list` of JSON objects.
    Nr`   rG   zjson-ld)r"   c                 :    g | ]\  }}|t          |d           fS )Trx   rz   )r{   irq   s      r8   r   z!group_triples.<locals>.<listcomp>   s.    
\
\
\$!QAwqt,,,-
\
\
\r9   c                     g | ]
}|d          S )r   r\   )r{   r|   s     r8   r   z!group_triples.<locals>.<listcomp>   s.     S S SA1Q4 S S Sr9   c                 |    | d                              d                               d          k    rdn| d         S )Nr   r`   r   r   )rc   )ogroupeds    r8   <lambda>zgroup_triples.<locals>.<lambda>   s3    1%GKK4F4F!F!F22AaD r9   )keyr   r   )r   r2   re   r=   extendrh   ra   rb   r<   r   addr?   rl   r   	serialize	enumerateru   jsonloadssortedri   rj   )	r   mergedtripletgrO   rP   r4   r   s	           @r8   r
   r
      s    F 	" 	"flD)) 	" & &:00Z5N5N0GNN6<000Ef%%%MM&!!!!%''GG ' '<FOu$<$<'-|GFO$$< 	'?g--%gfo&>EE N4;FO4L3M0FO,33FLAAAA/5|GFO,,v&&&& yA ) )	f%%''((((  	a 	aID#u}}f75>DLLL]]__```
++Y+
'
'C
\
\)E$*UX//DZDZ:[:[
\
\
\CS SPPPPR R R S S SC  E((c#hh!mms1vyJr9   )F)r   r   r/   typingr'   r,   r   ra   rY   rdflibr   r   r   rfc3986r   isodate.durationr   utilsr	   __all__r   rS   r   re   ru   r   IterableListrf   r
   r\   r9   r8   <module>r      so   				            ) ) ) ) ) ) ) ) ) )             % % % % % %      
@
@
@  B "6 "6 "6 "6 "6 "6 "6 "6J           .   (76?62 7v{47H 7 7 7 7 7 7r9   