
    i                     R    S r SSKJr  SSKrS rS rS rS rS rS	 r	S
 r
S rS rg)z3Functions for making test data JSON-serializable.

    )CounterNc                 ^     [         R                  " U 5        g! [        [        4 a     gf = f)z*Return whether `obj` is JSON-serializable.FT)jsondumps	TypeErrorOverflowError)objs    Z/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/pytest_jsonreport/serialize.pyserializabler      s0    

3  }% s    ,,c                     U R                   U R                  US.nU R                  (       a  [        U R                  5      US'   U$ )z(Return JSON-serializable collector node.)nodeidoutcomeresultlongrepr)r   r   r   str)reportr   	collectors      r
   make_collectorr      s@     -->>	I  !$FOO 4	*    c                     U R                   U R                  R                  S.n U R                  nUS   US'   U$ ! [         a     U$ f = f)z)Return JSON-serializable collection item.)r   type   lineno)r   	__class____name__locationAttributeError)item	json_itemr   s      r
   make_collectitemr        s_     ++''I*== 'qk	(	   	s   ; 
A	A	c                 .    U US   SS.nU(       a  XS'   U$ )z#Return JSON-serializable test item.r   passed)r   r   r   keywords )r   r#   r   r   s       r
   make_testitemr%   /   s*     1+	D #ZKr   c                    U R                   U R                  S.n[        U R                  SS5      nUb]  [	        U5      US'   U(       dH   U R                  R
                  R                   Vs/ s H  n[	        UR                  5      PM     snUS'   U(       a  XS'   U(       a  X%S'   U(       a  X5S'   U R                  nU(       a  XS	'   U$ s  snf ! [         a     NKf = f)
z:Return JSON-serializable test stage (setup/call/teardown).)durationr   	reprcrashNcrash	tracebackstdoutstderrlogr   )
r'   r   getattrr   make_filelocreprtracebackreprentriesreprfilelocr   longreprtext)	r   r+   r,   r-   omit_tracebackstager)   xr   s	            r
   make_teststager7   <   s     OO>>E FOO[$7E%e,g&,oo&C&C&O&O&Q&O GHl1==&A&O&Qk"  h h
e""H$jL%&Q! 
 s$   
"C ,CC C 
CCc                 J    U R                   U R                  U R                  S.$ )zcReturn JSON-serializable file location representation.

See `_pytest._code.code.ReprFileLocation`.
pathr   messager9   )locs    r
   r/   r/   \   s#     **;; r   c                     [        U R                  5        Vs/ s H  o"S   PM	     sn5      n[        UR                  5       5      US'   UR                  U5        U$ s  snf )z-Return JSON-serializable test result summary.r   total)r   valuessumupdate)testskwargstsummarys       r
   make_summaryrF   h   sO    U\\^<^|^<=G7>>+,GGNN6N =s   Ac                     [        U R                  5      U R                  R                  UU R                  U R
                  S.$ )N)r;   categorywhenfilenamer   )r   r;   rH   r   rJ   r   )warning_messagerI   s     r
   make_warningrL   p   s@     ../#,,55#,,!(( r   c                      [        U 5      $ )N)dict)rC   s    r
   make_reportrO   {   s    <r   )__doc__collectionsr   r   r   r   r    r%   r7   r/   rF   rL   rO   r$   r   r
   <module>rR      s@      
@	r   