o
    ¾¿iÇ  ã                   @   sj   d dl Z d dlZd dlZdd„ Zdefdd„Zh d£Zdd	edefd
d„Zdd	edefdd„ZddgZ	dS )é    Nc                   C   s   dt  ¡ d v S )NÚ64bitr   )ÚplatformÚarchitecture© r   r   úA/home/ubuntu/.local/lib/python3.10/site-packages/pvkoala/_util.pyÚ	_is_64bit   s   r   Úreturnc               
   C   sø   t  ¡ } | dkr
| S | dv rtƒ rd|  nd}ntd|  ƒ‚d}z!t ddg¡ d¡}d	d
„ | d¡D ƒ}|d  d¡d  ¡ }W n t	yU } zt
d||f ƒ‚d }~ww d|kr^d| S d|krfd| S d|krnd| S d|krvd| S td| ƒ‚)NÚx86_64)Úaarch64Úarmv7lú-Ú z"Unsupported CPU architecture: `%s`Úcatz/proc/cpuinfozutf-8c                 S   s   g | ]}d |v r|‘qS )zCPU partr   )Ú.0Úxr   r   r   Ú
<listcomp>!   s    z"_linux_machine.<locals>.<listcomp>Ú
r   ú éÿÿÿÿz3Failed to identify the CPU with `%s`
CPU info: `%s`Ú0xd03ú
cortex-a53Ú0xd07z
cortex-a57Ú0xd08ú
cortex-a72Ú0xd0bú
cortex-a76zUnsupported CPU: `%s`.)r   Úmachiner   ÚNotImplementedErrorÚ
subprocessÚcheck_outputÚdecodeÚsplitÚlowerÚ	ExceptionÚRuntimeError)r   Ú	arch_infoÚcpu_infoÚcpu_part_listÚcpu_partÚer   r   r   Ú_linux_machine   s0   €ÿr*   >   úcortex-a53-aarch64úcortex-a72-aarch64úcortex-a76-aarch64r   r   r   r   Úrelativec                 C   s  t  ¡ dkr.t  ¡ dkrtj tj t¡| d¡S t  ¡ dkr*tj tj t¡| d¡S tdƒ‚t  ¡ dkr]tƒ }|dkrGtj tj t¡| d¡S |t	v rYtj tj t¡| d| ¡S tdƒ‚t  ¡ d	kr‹t  ¡  
¡ d
krwtj tj t¡| d¡S t  ¡  
¡ dkr‹tj tj t¡| d¡S tdƒ‚)NÚDarwinr	   z lib/mac/x86_64/libpv_koala.dylibÚarm64zlib/mac/arm64/libpv_koala.dylibÚLinuxzlib/linux/x86_64/libpv_koala.soz"lib/raspberry-pi/%s/libpv_koala.soÚWindowsÚamd64z!lib/windows/amd64/libpv_koala.dllz!lib/windows/arm64/libpv_koala.dllzUnsupported platform.)r   Úsystemr   ÚosÚpathÚjoinÚdirnameÚ__file__r*   Ú_RASPBERRY_PI_MACHINESr"   r   )r.   Úlinux_machiner   r   r   Údefault_library_path;   s.   ñ
ý
úr<   c                 C   s   t j t j t¡| d¡S )Nzlib/common/koala_params.pv)r5   r6   r7   r8   r9   )r.   r   r   r   Údefault_model_pathS   s   r=   )r   )
r5   r   r   r   Ústrr*   r:   r<   r=   Ú__all__r   r   r   r   Ú<module>   s   	