o
    wi                     @   s   d dl Z d dlmZ d dlZddlmZ ddlmZ dd Zej	j
dd	d
d Zej	j
dd	dd ZdddZdd Zej	j
dd	dd ZdS )    N)ref   )DebugExecutor)LocalExecutorc                 C   sB   G dd d}| }t |}| |u sJ dd }| |t |S )Nc                   @   s   e Zd ZdZdS )z"job_with_weakref.<locals>.MyObjectworldN)__name__
__module____qualname__hello r   r   Q/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/submitit/test_pickle.pyMyObject   s    r   c                 S   s   |  }|d us	J |  j S N)r
   )a_refar   r   r   f   s   zjob_with_weakref.<locals>.f)r   submit)exr   r   r   r   r   r   r   job_with_weakref   s   r   z('a' is GC-ed before we call the function)reasonc                 C       t | }t| dksJ d S Nr   )r   r   resulttmp_pathr   r   r   r   test_weakref_no_pickle       r   z'ref(a)' can't be pickledc                 C   r   r   )r   r   r   r   r   r   r   test_weakref_with_pickle&   r   r   returnc                   C   s   t d d S )Nzhello world)printr   r   r   r   hello_fn,   s   r    c                 C   sX   dt fdd}| }t td|v sJ d|v sJ t| }||}| |ks*J d S )Nr   c                   S   s
   t tS r   )pickledumpsr    r   r   r   r   make_pickle1   s   
z)test_nested_pickling.<locals>.make_pickleasciis   hello_fn)bytesr   r   r   r   )r   r#   pklr   jr   r   r   test_nested_pickling0   s   
r(   zSubmitit changes __main__c                 C   s:   dt fdd}| }t| }|| }||ksJ d S )Nr   c                  S   s   dd l } t| ddS )Nr   __file__ )__main__getattr)r+   r   r   r   get_mainG   s   z-test_submitit_respects_main.<locals>.get_main)strr   r   r   )r   r-   mainr   j_mainr   r   r   test_submitit_respects_main<   s
   r1   )r   N)r!   weakrefr   pytestlocal.debugr   local.localr   r   markxfailr   r   r    r(   r1   r   r   r   r   <module>   s   


