U
    b/                     @   s  d Z ddlZddlZddlZddlmZ ddlmZmZm	Z	 ddl
mZmZmZmZ ejdkZejdkZe dkZejd	kZeeed
ddZedddZedddZedddZedddZedddZedddZdd Zddddd d!d"gZ dS )#zn
compat
======

Cross-compatible functions for different versions of Python.

Other items:
* platform checker
    N)F)is_numpy_devnp_version_under1p19np_version_under1p20)pa_version_under1p01pa_version_under2p0pa_version_under3p0pa_version_under4p0)   	   )r
   
   PyPyl        )fnamereturnc                 C   s$   || _ |j  d| | _|j| _| S )z<
    Bind the name/qualname attributes of the function.
    .)__name____qualname__
__module__)r   r   cls r   :/tmp/pip-unpacked-wheel-xg7vt6ln/pandas/compat/__init__.pyset_function_name!   s    r   )r   c                   C   s
   t jdkS )z
    Checking if the running platform is little endian.

    Returns
    -------
    bool
        True if the running platform is little endian.
    little)sys	byteorderr   r   r   r   is_platform_little_endian+   s    	r   c                   C   s
   t jdkS )z
    Checking if the running platform is windows.

    Returns
    -------
    bool
        True if the running platform is windows.
    )win32cygwinr   platformr   r   r   r   is_platform_windows7   s    	r!   c                   C   s
   t jdkS )z
    Checking if the running platform is linux.

    Returns
    -------
    bool
        True if the running platform is linux.
    linuxr   r   r   r   r   is_platform_linuxC   s    	r#   c                   C   s
   t jdkS )z
    Checking if the running platform is mac.

    Returns
    -------
    bool
        True if the running platform is mac.
    darwinr   r   r   r   r   is_platform_macO   s    	r%   c                   C   s   t  dkpt  dS )z
    Checking if the running platform use ARM architecture.

    Returns
    -------
    bool
        True if the running platform uses ARM architecture.
    )Zarm64aarch64Zarmv)r    machine
startswithr   r   r   r   is_platform_arm[   s    	r)   c                   C   s   t jdddkS )z
    Checking if running in a continuous integration environment by checking
    the PANDAS_CI environment variable.

    Returns
    -------
    bool
        True if the running in a continuous integration environment.
    Z	PANDAS_CI01)osenvirongetr   r   r   r   is_ci_environmenti   s    
r/   c                  C   s0   zddl } W n tk
r(   tdY nX | jS )a
  
    Importing the `LZMAFile` class from the `lzma` module.

    Returns
    -------
    class
        The `LZMAFile` class from the `lzma` module.

    Raises
    ------
    RuntimeError
        If the `lzma` module was not imported correctly, or didn't exist.
    r   Nzslzma module not available. A Python re-install with the proper dependencies, might be required to solve this issue.)lzmaImportErrorRuntimeErrorLZMAFile)r0   r   r   r   get_lzma_filev   s    
r4   r   r   r   r   r   r   r	   )!__doc__r,   r    r   Zpandas._typingr   Zpandas.compat.numpyr   r   r   Zpandas.compat.pyarrowr   r   r   r	   version_infoZPY39ZPY310python_implementationZPYPYmaxsizeZIS64strr   boolr   r!   r#   r%   r)   r/   r4   __all__r   r   r   r   <module>   s4   	



