
    5 f                     j    d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d Zd Zd	e	d
dfdZdS )    )BoundMethod)register_module_extenderparse)InferenceError)AstroidManager)FunctionDefc                     t          d          } t          d          }	 t          |d                                                   }t          |d                                                   }n# t          t          f$ r | cY S w xY w||fD ]i}|j                                        D ]M\  }}|                    d          r|d         }t          |t                    rt          ||          }|| |<   Nj| S )Nzj
    from multiprocessing.managers import SyncManager
    def Manager():
        return SyncManager()
    z
    from multiprocessing.context import DefaultContext, BaseContext
    default = DefaultContext()
    base = BaseContext()
    defaultbase_r   )r   nextinferr   StopIterationlocalsitems
startswith
isinstancer	   r   )modulenodecontextr   keyvalues         Y/var/www/equiseq/venv/lib/python3.11/site-packages/astroid/brain/brain_multiprocessing.py_multiprocessing_transformr      s&   	 F 	 DtI,,..//DL&&(())M*    $ 
  
 +++-- 		  		 JC~~c"" !HE%-- 1 $E400F3KK		  Ms   AA/ /BBc                       t          d          S )Na  
    import array
    import threading
    import multiprocessing.pool as pool
    import queue

    class Namespace(object):
        pass

    class Value(object):
        def __init__(self, typecode, value, lock=True):
            self._typecode = typecode
            self._value = value
        def get(self):
            return self._value
        def set(self, value):
            self._value = value
        def __repr__(self):
            return '%s(%r, %r)'%(type(self).__name__, self._typecode, self._value)
        value = property(get, set)

    def Array(typecode, sequence, lock=True):
        return array.array(typecode, sequence)

    class SyncManager(object):
        Queue = JoinableQueue = queue.Queue
        Event = threading.Event
        RLock = threading.RLock
        Lock = threading.Lock
        BoundedSemaphore = threading.BoundedSemaphore
        Condition = threading.Condition
        Barrier = threading.Barrier
        Pool = pool.Pool
        list = list
        dict = dict
        Value = Value
        Array = Array
        Namespace = Namespace
        __enter__ = lambda self: self
        __exit__ = lambda *args: args

        def start(self, initializer=None, initargs=None):
            pass
        def shutdown(self):
            pass
    r        r   #_multiprocessing_managers_transformr   3   s    -	/ / /r   managerreturnNc                 ^    t          | dt                     t          | dt                     d S )Nzmultiprocessing.managersmultiprocessing)r   r   r   )r    s    r   registerr$   f   s9    +-P   W&79STTTTTr   )astroid.basesr   astroid.brain.helpersr   astroid.builderr   astroid.exceptionsr   astroid.managerr   astroid.nodes.scoped_nodesr	   r   r   r$   r   r   r   <module>r+      s   
 & % % % % % : : : : : : ! ! ! ! ! ! - - - - - - * * * * * * 2 2 2 2 2 2# # #L0 0 0fUn U U U U U U Ur   