
    01i                        S r SSKJr  SSKrSSKrSSKrSSKJr  SSKr	SSK	J
r
JrJr  SSKJr  S V s/ s H  n \U    PM
     sn rSrS	rS	r0 4S
 jrS rS r\S:X  a  \" 5         ggs  sn f )z
A commandline tool for drawing RDFS Class diagrams in Graphviz DOT
format

You can draw the graph of an RDFS file directly:

```bash
rdf2dot my_rdfs_file.rdf | dot -Tpng | display
```
    )annotationsN)Dict)RDFRDFSXSD)
Identifier))anyURIbase64BinarybooleanbytedatedateTimedecimaldoubledurationfloatgDaygMonth	gMonthDaygYear
gYearMonth	hexBinaryIDIDREFIDREFSintintegerlanguagelongNameNCNamenegativeIntegerNMTOKENNMTOKENSnonNegativeIntegernonPositiveIntegernormalizedStringpositiveIntegerQNameshortstringtimetokenunsignedByteunsignedIntunsignedLongunsignedShortblueblackc                &  ^ [         R                  " [        5      n0 mU4S jnS nUR                  S5        U R	                  [
        R                  [        R                  5       H  nU" U5      nM     U R                  [        R                  5       H7  u  phU" U5      nU" U5      nUR                  SU< SU< S[        < S35        M9     U R	                  [
        R                  [
        R                  5       H  n[        R                  " U R                  U[        R                   5      U R                  U[        R"                  5      5       H  u  pU
[$        ;   d  U
[        R&                  :X  aA  U" X5      nU
[        R&                  :X  a  SnX4" U	5         R)                  U" X`5      U45        Md  UR                  SU" U	5      < SU" U
5      < S[*        < S	U" X`5      < S
3	5        M     M     TR-                  5        Hq  u  pUR                  SU< SU< S35        [/        X7   5       Vs/ s H  nSU-  PM
     nnSnUR                  X[0        U" X5      SR3                  U5      4-  5        Ms     UR                  S5        gs  snf )zH
Convert the RDFS schema in a graph
writes the dot output to the stream
c                <   > U T;  a  S[        T5      -  TU '   TU    $ )Nznode%d)len)ndnodess    O/home/james-whalen/.local/lib/python3.13/site-packages/rdflib/tools/rdfs2dot.pynoderdfs2dot.<locals>.nodeT   s&    U? 3u:-E"IRy    c                    UR                  U [        R                  5      nUc!   UR                  R	                  U 5      S   nU$ U$ ! [
         a     U$ f = f)N   )valuer   labelnamespace_managercompute_qname	Exception)xxgrflbls      r9   r@   rdfs2dot.<locals>.labelY   s_    iiDJJ';++99"=a@ 
s
  
s   A 
AAz/digraph { 
 node [ fontname="DejaVu Sans" ] ; 
	z -> z	 [ color=z ] ;
literalz	, label="z" ];
z#  
z,<tr><td align='left'>%s</td><td>%s</td></tr>z%s [ shape=none, color=%s label=< <table color='#666666' cellborder='0' cellspacing='0' border='1'><tr><td colspan='2' bgcolor='grey'><B>%s</B></td></tr>%s</table> > ] 
 z}
N)collectionsdefaultdictsetwritesubjectsr   typer   Classsubject_objects
subClassOfISACOLORProperty	itertoolsproductobjectsdomainrangeXSDTERMSLiteraladd	EDGECOLORitemssorted	NODECOLORjoin)gstreamoptsfieldsr:   r@   xnyabl_ufopstrr8   s                  @r9   rdfs2dotrr   K   s     $$S)F#%E
 LLDEZZ$**-G . !!$//2GGaHEF 3
 ZZ#,,/%%IIa%qyyDJJ'?
DA H}T\\ 11[$"BtAw##U1["$56 AwQE!KA
 0  Aq)* FI&
& ;Q>& 	
 

' 	 	UE!KDDE  LL
s   5Jc                 B    [         R                  R                  S5        g )Nz
rdfs2dot.py [-f <format>] files...
Read RDF files given on STDOUT, writes a graph of the RDFS schema in
DOT language to stdout
-f specifies parser to use, if not given,

)sysstderrrP    r<   r9   _helprw      s    JJ	r<   c                 h    [         R                  R                  R                  [        [
        5        g )N)rdflibextrascmdlineutilsmainrr   rw   rv   r<   r9   r|   r|      s    
MM##He4r<   __main__)__doc__
__future__r   rM   rX   rt   typingr   rdflib.extras.cmdlineutilsry   r   r   r   rdflib.termr   r]   r`   rc   rV   rr   rw   r|   __name__)ri   s   0r9   <module>r      s   	 #   
  ! ! ! "*-* F*-^ 		   ?D	5 zF M-s   A&