§
    ƒÛgj
  ã                   óÆ   — d dl Z d dlZd dlmZ d dlmZ d dlmZ ed„ ¦   «         Zd„ Z	ed„ ¦   «         Z
d„ Z G d	„ d
ej        ¦  «        Zedk    r ej        ¦   «          dS dS )é    N)Útypes)Ú	intrinsic)Újitc                 ó:   — t          j        ||¦  «        }d„ }||fS )Nc                 óŒ   — |\  }}|                       |¦  «        }|                     ||¦  «        }|                     |¦  «        S ©N)Úget_python_apiÚbytes_from_string_and_sizeÚbytes_as_string)ÚcontextÚbuilderÚsigÚargsÚcsrcÚsizeÚapiÚbs           úP/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_pythonapi.pyÚcodegenz'_pyapi_bytes_as_string.<locals>.codegen   sG   € Ø‰ˆˆtØ×$Ò$ WÑ-Ô-ˆØ×*Ò*¨4°Ñ6Ô6ˆØ×"Ò" 1Ñ%Ô%Ð%ó    )r   Úvoidptr)Ú	typingctxr   r   r   r   s        r   Ú_pyapi_bytes_as_stringr      s.   € å
Œ-˜˜dÑ
#Ô
#€Cð&ð &ð &ð
 �ˆ<Ðr   c                 ó6   — t          | j        | j        ¦  «        S r   )r   Ú_dataÚ_length©Úunis    r   ÚPyBytes_AsStringr      s   € õ " #¤)¨S¬[Ñ9Ô9Ð9r   c                 ój   — t           j                             ||f¦  «        } |||¦  «        }d„ }||fS )Nc                 óŒ  — |\  }}|                       |¦  «        }|                     ||¦  «        }|                     |j        ¦  «        }|                     |j        ¦  «        }	|                     |||	¦  «         |                     |¦  «        }
|                     |	¦  «        }|                      ||j        |
|f¦  «        }|S r   )	r	   r
   ÚallocaÚcstringÚ
py_ssize_tÚbytes_as_string_and_sizeÚloadÚ
make_tupleÚreturn_type)r   r   r   r   r   r   Úpyapir   Úp_cstrÚp_sizeÚcstrÚtups               r   r   z0_pyapi_bytes_as_string_and_size.<locals>.codegen!   s¶   € Ø‰ˆˆtØ×&Ò& wÑ/Ô/ˆØ×,Ò,¨T°4Ñ8Ô8ˆØ—’ ¤Ñ.Ô.ˆØ—’ Ô 0Ñ1Ô1ˆØ×&Ò& q¨&°&Ñ9Ô9Ð9à�|Š|˜FÑ#Ô#ˆØ�|Š|˜FÑ#Ô#ˆØ× Ò  ¨#¬/¸DÀ$¸<ÑHÔHˆØˆ
r   )r   ÚTupleÚ
from_types)r   r   r   Úrettyr   r   s         r   Ú_pyapi_bytes_as_string_and_sizer1      sI   € õ ŒK×"Ò" D¨$ <Ñ0Ô0€EØ
ˆ%��dÑ
Ô
€Cðð ð ð �ˆ<Ðr   c                 ó6   — t          | j        | j        ¦  «        S r   )r1   r   r   r   s    r   ÚPyBytes_AsStringAndSizer3   0   s   € Ý*¨3¬9°c´kÑBÔBÐBr   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestPythonAPIc                 ó  —  t          d¬¦  «        t          ¦  «        } |d¦  «        }t          j        j        }t          j        g|_        t          j        |_         ||¦  «        }|  	                    |d¦  «         d S )NT©ÚnopythonÚhellos   hello)
r   r   ÚctypesÚ	pythonapiÚPyBytes_FromStringÚc_void_pÚargtypesÚ	py_objectÚrestypeÚassertEqual)ÚselfÚcfuncr,   ÚfnÚobjs        r   Útest_PyBytes_AsStringz#TestPythonAPI.test_PyBytes_AsString6   sv   € Ø"•˜TÐ"Ñ"Ô"Õ#3Ñ4Ô4ˆØˆu�W‰~Œ~ˆåÔÔ0ˆÝ”Ð'ˆŒÝÔ%ˆŒ
Øˆb�‰hŒhˆð 	×Ò˜˜hÑ'Ô'Ð'Ð'Ð'r   c                 ó2  —  t          d¬¦  «        t          ¦  «        } |d¦  «        }t          j        j        }t          j        t          j        g|_        t          j        |_	         ||d         |d         ¦  «        }|  
                    |d¦  «         d S )NTr7   zhello worldr   é   s   hello world)r   r3   r:   r;   ÚPyBytes_FromStringAndSizer=   Úc_size_tr>   r?   r@   rA   )rB   rC   r-   rD   rE   s        r   Útest_PyBytes_AsStringAndSizez*TestPythonAPI.test_PyBytes_AsStringAndSizeC   sŠ   € Ø"•˜TÐ"Ñ"Ô"Õ#:Ñ;Ô;ˆØˆeÐ$Ñ%Ô%ˆåÔÔ7ˆÝ”­¬Ð8ˆŒÝÔ%ˆŒ
Øˆb��Q”˜˜QœÑ Ô ˆð 	×Ò˜Ð/Ñ0Ô0Ð0Ð0Ð0r   N)Ú__name__Ú
__module__Ú__qualname__rF   rK   © r   r   r5   r5   4   s2   € € € € € ð(ð (ð (ð1ð 1ð 1ð 1ð 1r   r5   Ú__main__)r:   ÚunittestÚ
numba.corer   Únumba.core.extendingr   Únumbar   r   r   r1   r3   ÚTestCaser5   rL   ÚmainrO   r   r   ú<module>rW      s÷   ðØ €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð ð ðð ñ „ðð:ð :ð :ð ðð ñ „ðð(Cð Cð Cð1ð 1ð 1ð 1ð 1�HÔ%ñ 1ô 1ð 1ð: ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   