
    HR-e&                         d dl Z d dl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
mZ dZdZe j        d             Zdd	Zd
 Zd Zd Zd ZddZdgdfdZddZ	 ddZdS )    N)ceil)online_docs_root)
exceptions)	XMLWriter
xml_escapez<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
        "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
a  
body {
font-family: sans-serif
}
a {
text-decoration: none
}
.highlight {
color: red;
font-weight: bold;
text-decoration: underline;
}
.green { background-color: #ddffdd }
.red   { background-color: #ffdddd }
.yellow { background-color: #ffffdd }
tr:hover { background-color: #dddddd }
table {
        border-width: 1px;
        border-spacing: 0px;
        border-style: solid;
        border-color: gray;
        border-collapse: collapse;
        background-color: white;
        padding: 5px;
}
table th {
        border-width: 1px;
        padding: 5px;
        border-style: solid;
        border-color: gray;
}
table td {
        border-width: 1px;
        padding: 5px;
        border-style: solid;
        border-color: gray;
}
c              #     K   |                      t                     |                     ddd          5  |                     d          5  |                     dd           |                     dt                     |                     d	          5  d V  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nhtmlzhttp://www.w3.org/1999/xhtmlzen-US)xmlnslangheadtitleVO Validation resultsstylebody)writehtml_headertagelementdefault_style)ws    Alib/python3.11/site-packages/astropy/io/votable/validator/html.pymake_html_headerr   ;   s     GGK	
v;'	J	J  UU6]] 	 	IIg6777IIg}---v                		 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sZ   CAB:B#B:#B''B:*B'+B:.C:B>	>CB>	CCCc                    t          |d |                             d                    }t          |||dz                                d                    }t          ||dz   d                              d                    }|                     d           |                     |           |                     d| d           |                     |           |                     d           d S )Nutf-8   z  z<span class="highlight">z</span>z

)r   decoder   )r   linencharpart1charpart2s         r   write_source_liner"   G   s    tFUF|**73344Ed5519,-44W==>>DtEAIKK(//8899EGGDMMMGGENNNGG4t444555GGENNNGGFOOOOO    c                    t          j        |          }|d         s|                     |           d S |                     d|d         dd           |d         r;|                     d                    t
          |d         |d                              |d	         }t          |d	         t                    s|                    d
          }|                     t          |                     |                     d           d|d         cxk    rt          |          k     r,n d S t          | ||d         dz
           |d                    d S d S )Nis_somethingLine nlined: warningz<a href="{}/{}">{}</a>: doc_urlmessager   
r   r   )r   parse_vowarningdatar   formatr   
isinstancestrr   r   lenr"   )r   r   	xml_linesr*   msgs        r   write_warningr6   S   s_   (..G>" T	t	.(....///9 	GG*11$gi&8'):L   
 i '),c22 	&**W%%C	
3   	 11113y>>111111a77+;a+?!@''BRSSSSS 21r#   c           
         t          j        d|          }|r|                     dt          |                    d                     dt          |                    d                     d           t          | |t          |                    d                    dz
           t          |                    d                    dz
             d S |                     |           |                     d           d S )	NzO(WARNING|ERROR|INFO) \(l.(?P<line>[0-9]+), c.(?P<column>[0-9]+)\): (?P<rest>.*)r&   r   r)   restr-   r   column)researchr   intgroupr   r"   r/   )r   r   r4   matchs       r   write_votlint_warningr?   h   s    I	 E
  	WEKK//00WWJu{{6?R?R4S4SWWWXXXyU[[0011A56EKK<Q<Q8R8RUV8V	
 	
 	
 	
 	
 	
t	tr#   c           	         d| v r
| d         d S |                                  }|                                }t          j                            |                                 d          }t          |dd          5 }t          |          }t          |          5  |	                    d          5  |	                    dd	          5  |
                    | j                            d
                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    d           |	                    d          5  |                                 | d         D ]}t          |||           	 d d d            n# 1 swxY w Y   | d         du r|                    d           |                    dd           | d         }t!          |t"                    s|                    d
          }|                    |                                 dz   d          }|	                    d          5  |
                    |           d d d            n# 1 swxY w Y   d| v r| d         du r|                    d           |                    dd           | d         }t!          |t"                    s|                    d
          }|	                    d          5  |                                 |                                D ]}t'          |||           	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nnetwork_error
index.htmlr   r   encodingpazvo.xmlhrefasciihrprewarningsxmllintFzxmllint results:xmllint_content/ votlintzvotlint results:votlint_content)get_xml_content
splitlinesospathjoinget_dirpathopenr   r   r   r/   urlr   r   _flushr6   r1   r2   replacer?   )resultxmlr4   rV   fdr   r   contents           r   write_resultra   x   s.   &  VO%<%H

 
 
"
"C  I7<<**,,l;;D	dC'	*	*	* !FbbMMa   	F 	Fs 7 7UU3XU.. 7 7FF6:,,W556667 7 7 7 7 7 7 7 7 7 7 7 7 7 77 7 7 7 7 7 7 7 7 7 7 7 7 7 7 IIdOOOu 6 6


":. 6 6D!!T9555566 6 6 6 6 6 6 6 6 6 6 6 6 6 6
 i E))		$		#1222 !23!'3// 6%nnW55G!//&*<*<*>*>*DbIIUU5\\ $ $FF7OOO$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ F"")$--IIdOOOIIc#5666$%67G%gs33 :").."9"9u F F


$+$6$6$8$8 F FD1!T9EEEEFF F F F F F F F F F F F F F F9	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F!F !F !F !F !F !F !F !F !F !F !F !F !F !F !F !F !F !Fs   ;M$M0D.D	6DDD	D
DMDM D!-M1F MFMFB*M>I M I$$M'I$(BM+=L5)M5L99M<L9=M M$M	M$M	M$$M(+M(c                 "   |                      d          5  |                      d          5  d|v r6|d         .|                     |j                            d                     nE|                     d|j                            d          |                                 d           d d d            n# 1 swxY w Y   d|v r|d         |                     dt          |d                   dd	i
           |                     dd           |                     dd           |                     dd           |                     dd           n!|                     ddddi
           |d         rd	}d}n$|d         rd}t          |d                   }nd}d}|                     d|d|i
           |d         }|d         d}n|d         du rd	}nd}|                     d|d|i
           |d         dk    rd}d}n!|d         dk    rd	}d}n|d         dk    rd}d}|                     d|d|i
           d|v r|d         rd}d}n	d	}d}nd}d}|                     d|d|i
           d d d            d S # 1 swxY w Y   d S )NtrtdrA   rI   rF   z/index.htmlrG   classred)attrib-greennexceptionsFatal	nwarningsyellowversionrM   rP   Fexpectedgoodbrokennet	incorrectinvalidrQ   PassedFailed?)r   r/   rZ   r   r   get_htmlpathr2   )r   r]   clsr5   s       r   write_result_rowrz      s   	
t =8 =8UU4[[ 	 	&((VO-D-Pvz((112222		J%%g.."//11>>>    		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 f$$)@)LIIdC 788'5AQIRRRIIdC   IIdC   IIdC   IIdC    IIdC'(:I;;;m$ $ &-..IIdC#I777#Ci (	"e++IIdC#I777j!V++
#x//
#{22IIdC#I777F"")$ #!C"CCC"CCIIdC#I777{=8 =8 =8 =8 =8 =8 =8 =8 =8 =8 =8 =8 =8 =8 =8 =8 =8 =8s6   JB B8,J8B<	<J?B<	 F7JJJresults  c           
      v     fd}t          t          t          t          |                    |z                      t	          t          dt          t          |          d          |                    D ]\  }}||||z            }t          j        	                    |  d|dd          }	t          |	dd	          5 }
t          |
          t                    5   ||                               d
|                               d          5                      d          5                      dd                               dd                               dd                               dd                               dd                               dd           d d d            n# 1 swxY w Y   |D ]}t          |           	 d d d            n# 1 swxY w Y    ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nc           
         dk    rd S                      d          5  | dk    r"                    dd d| dz
  dd	           t                    D ]r}|| k    r&                    t	          |dz                        n/                    dt	          |dz              d|dd	                               d
           s| dz
  k     r"                    dd d| dz   dd	           d d d            d S # 1 swxY w Y   d S )Nr   centerr   rF   z<< _02d.htmlrG    z>>)r   r   ranger/   r2   )jibasenamenpagesr   s     r   write_page_linksz%write_table.<locals>.write_page_links   s   Q;;FUU8__ 
	J 
	J1uu		#uh+I+IQ+I+I+I+I	JJJ6]]  66FF3q1u::&&&&IIc3q1u::x4N4N!4N4N4N4NIOOOs6A:~~		#tX*H*HA*H*H*H*H	III
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	Js   CDD	Dr   r   r   r   r   r   r   rC   h2tablerc   thURLNetworkWarningsSchemaExpectedrQ   )r<   r   floatr3   	enumerater   maxrU   rV   rW   rY   r   r   r   r   rz   )r   namer{   root
chunk_sizer   r   r   
subresultsrV   r_   r]   r   r   s   `           @@r   write_tabler      sO   J J J J J J J eCLL))J67788F%3s7||Q#7#7DDEE $ $1QZ/0
w||DX"<"<"<"<"<"<==$g... 	$""A!!$$ $ $  ###		$%%%UU7^^ 
4 
4t 3 3		$...		$	222		$
333		$111		$
333		$	2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 #- 4 4(F33334
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 ! ####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$$ $s   	H,(7HG3	5BG:G3	G

G3	G
G3	'H3G77H:G7;H	H,HH,HH,,H0	3H0	rE   c                    |                      d          5  t          |          }|t          |          }|dk    rd}nt          t          |                    |z  }|                      d          5  |D ]}|                     |           |                     d|| d           t          |          D ]}|                     |           	 d d d            n# 1 swxY w Y   t          |          dd	|d
d}|                      d          5  |                     |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nrc   r   g        rd   rF   z_00.htmlrG   r(    (.2%))	r   listr3   r   startr   reversedendr/   )	r   r   r   r   insidetotal
percentager   numberss	            r   
add_subsetr     s*   	
t  *%%
=
OOEA::JJs://%7JUU4[[ 	 	! ! !    IIc4&;&;&;I<<<#F++  g		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 __;;;*;;;;UU4[[ 	 	FF7OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s[   AE4ACEC"	"E%C"	&/ED7+E7D;	;E>D;	?EEEc                    t           j                            |d          }t          |dd          5 }t	          |          }t          |          5  |                    dd           |                    d          5  | D ]}t          |g|R dt          |          i  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	NrB   r   r   rC   h1r   r   r   )
rU   rV   rW   rY   r   r   r   r   r   r3   )subsetsr{   r   rV   r_   r   subsets          r   write_indexr   %  s   7<<l++D	dC'	*	*	* ?bbMMa   	? 	?IId3444w ? ?% ? ?Fq>6>>>W>>>>?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sY   C,C>#B."C.B22C5B26C9CC			CC		CC!$C!c                     |t          |          }t          t          |                    |z  }t          |          dd|dd}t          ||dz   |z   || |           d S )Nr(   r   r   r   r   )r3   r   r   )	r   r   r   r   r   r   r   r   r   s	            r   write_index_tabler   1  ss     }Js:''%/JZ777j7777G$*w.
D*MMMMMr#   )r   )r{   r|   )r{   )NNr|   )
contextlibrU   r:   mathr   astropyr   astropy.io.votabler   astropy.utils.xml.writerr   r   r   r   contextmanagerr   r"   r6   r?   ra   rz   r   r   r   r    r#   r   <module>r      sj       				 				       $ $ $ $ $ $ ) ) ) ) ) ) : : : : : : : :%P   	 	 	 	T T T*   *F *F *FZ>8 >8 >8B($ ($ ($ ($V 7:U$    (	? 	? 	? 	? KNN N N N N Nr#   