File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/mock/__pycache__/backports.cpython-311.pyc
�
    � h�
  �                   �   � d dl Z e j        dd�         dk     r7d dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZ d� Zd� Z
d	� Z G d
� de�  �        ZdS d dlmZ d d
l
mZ dS )�    N�   )�   �   )�
_is_coroutine)�ismethod�
isfunction�CO_COROUTINE)�TestCasec                 �|   � t          | t          j        �  �        r!| j        } t          | t          j        �  �        �!| S �N)�
isinstance�	functools�partial�func)r   s    �C/opt/cloudlinux/venv/lib/python3.11/site-packages/mock/backports.py�_unwrap_partialr      s:   � ���y�0�1�1� 	��9�D� ��y�0�1�1� 	���    c                 ��   � t          | �  �        r| j        } t          | �  �        �t          | �  �        } t          | �  �        sdS t	          | j        j        |z  �  �        S )z�Return true if ``f`` is a function (or a method or functools.partial
        wrapper wrapping a function) whose code object has the given ``flag``
        set in its flags.F)r   �__func__r   r   �bool�__code__�co_flags)�f�flags     r   �_has_code_flagr      sa   � � �q�k�k� 	��
�A� �q�k�k� 	��A�����!�}�}� 	��5��A�J�'�$�.�/�/�/r   c                 �\   � t          | t          �  �        pt          | dd�  �        t          u S )z}Return true if the object is a coroutine function.
        Coroutine functions are defined with "async def" syntax.
        r   N)r   r	   �getattrr   )�objs    r   �iscoroutinefunctionr      s0   � � 
�3��-�-� 
A��C��$�/�/�=�@�	
r   c                   �>