
    sh%                        % S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
r
S SKJr  S/r\ R                  " \5      rS q\R&                  " 5       rS\4S jr\" 5       (       a'  \
R.                  R1                  5       (       d  \" S5      e\" 5       (       a  S SKrS SKJs  Jr  S S	KJr  S S
K J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArA  SSKBJCrCJDrDJErE  SSKC7  SSKDJFrF  SSKGJHrH  SSKIJJrJ  \\K\\L\L4   SS4   \MS'   \/ SQ-  r\\CR                  -   \DR                  -   r    SS jrNS rO\FR                  SSSSS4S jrQ\CR                  S 5       rSgg)    N)	Generator)	timedelta)urlparseis_availablereturnc                  6    [        [        R                  S5      $ )N	_rpc_init)hasattrtorch_C     r/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/torch/distributed/rpc/__init__.pyr   r      s    588[))r   z*Failed to initialize torch.distributed.rpc)Store)!_cleanup_python_rpc_handler_DEFAULT_INIT_METHOD_DEFAULT_NUM_WORKER_THREADS_DEFAULT_RPC_TIMEOUT_SEC)_delete_all_user_and_unforked_owner_rrefs_destroy_rref_context_disable_jit_rref_pickle'_disable_server_process_global_profiler_enable_jit_rref_pickle&_enable_server_process_global_profiler_get_current_rpc_agent_invoke_remote_builtin_invoke_remote_python_udf_invoke_remote_torchscript_invoke_rpc_builtin_invoke_rpc_python_udf_invoke_rpc_torchscript_is_current_rpc_agent_set_reset_current_rpc_agent_rref_context_get_debug_info_set_and_start_rpc_agent_set_profiler_node_id_set_rpc_timeout _TensorPipeRpcBackendOptionsBase_UNSET_RPC_TIMEOUTenable_gil_profilingget_rpc_timeoutPyRRefRemoteProfilerManagerRpcAgentRpcBackendOptionsTensorPipeAgent
WorkerInfo   )apibackend_registry	functions)*)BackendType)TensorPipeRpcBackendOptions)_server_process_global_profilerendezvous_iterator)init_rpcr7   r8   c           	         [         R                  R                  S5        Ub*  [        U[        R
                  5      (       d  [        S5      eUb   [        U[        5      (       d  [        S5      eUc|  Uby  [
         H5  n[        U[        [        R                  " U5      5      5      (       d  M3  Un  O   [        SU 35      eU[
        R                  :w  a  [        R                  SSU05        Uc  [
        R                  nUc  [        R                  " U5      nU(       d  [        R                  " XB5      nO2[        R                  " UR                   X#S9q[%        ["        5      u  n  nUR'                  [)        UR*                  S	95        [,           [        R.                  " [1        S
[2         35      U5      n[2        S-  qSSS5        [4        R6                  " U5        [9        U5        [;        XXX45        g! , (       d  f       N== f)a  
Initializes RPC primitives such as the local RPC agent
and distributed autograd, which immediately makes the current
process ready to send and receive RPCs.

Args:
    name (str): a globally unique name of this node. (e.g.,
        ``Trainer3``, ``ParameterServer2``, ``Master``, ``Worker1``)
        Name can only contain number, alphabet, underscore, colon,
        and/or dash, and must be shorter than 128 characters.
    backend (BackendType, optional): The type of RPC backend
        implementation. Supported values is
        ``BackendType.TENSORPIPE`` (the default).
        See :ref:`rpc-backends` for more information.
    rank (int): a globally unique id/rank of this node.
    world_size (int): The number of workers in the group.
    rpc_backend_options (RpcBackendOptions, optional): The options
        passed to the RpcAgent constructor. It must be an agent-specific
        subclass of :class:`~torch.distributed.rpc.RpcBackendOptions`
        and contains agent-specific initialization configurations. By
        default, for all agents, it sets the default timeout to 60
        seconds and performs the rendezvous with an underlying process
        group initialized using ``init_method = "env://"``,
        meaning that environment variables ``MASTER_ADDR`` and
        ``MASTER_PORT`` need to be set properly. See
        :ref:`rpc-backends` for more information and find which options
        are available.
ztorch.distributed.init_rpcNz0Argument backend must be a member of BackendTypezEArgument rpc_backend_options must be an instance of RpcBackendOptionsz$Could not infer backend for options zRPC was initialized with no explicit backend but with options corresponding to %(backend)s, hence that backend will be used instead of the default BackendType.TENSORPIPE. To silence this warning pass `backend=%(backend)s` explicitly.backend)rank
world_size)secondsrpc_prefix_r2   )r   r   _log_api_usage_once
isinstancer4   r7   	TypeErrorr/   typeconstruct_rpc_backend_options
TENSORPIPEloggerwarningdist_create_store_from_options
rendezvousinit_methodr:   nextset_timeoutr   rpc_timeout_init_counter_lockPrefixStorestr_init_counterdist_autograd_initr&   _init_rpc_backend)namer>   r?   r@   rpc_backend_optionscandidate_backendstore_s           r   r;   r;   T   s   F 	$$%ABz%11(
 (
 NOO*:!24
 4
 W 
 ?2>%0!'(FF-  0G &1  :;N:OP  +000E ( ?!,,G&"2"P"P#
  334GNE #'//#//d# 23KE1a),?,K,KLM  $$S;}o)F%GOEQM   	D!d#'$jV  s   1G;;
H	c                 B   U [         R                  U[        R                  U[        U[
        R                  U[
        R                  [        S 5      4U[        0nUR                  5        H2  u  px[        Xx5      (       a  M  [        SU SU S[        U5       35      e   g )Nz	Argument z must be of type z but got type )r4   r7   rK   r   rT   numbersIntegralrF   r/   itemsrD   RuntimeError)	r>   r\   rY   r?   r@   rZ   type_mappingargarg_types	            r   _validate_rpc_argsrf      s    %114::#'""))4:6!2
 *//1MCc,,"u$5hZ~dSVi[Y  2r   c           	          [        XX#XE5        [        5       (       a  [        S5      e[        R                  " U UUUUUS9n[
        R                  " U5        g )NzRPC is already initialized)r\   rY   r?   r@   rZ   )rf   r"   rb   r4   init_backendr3   _init_rpc_states)r>   r\   rY   r?   r@   rZ   	rpc_agents          r   rX   rX      sY     	74zW$&&;<< %11! 3
	 	Y'r   c                      [        5       n U R                  [        R                  " 5       R	                  5       5        U R                  [
        R                  " 5       5        U $ )N)r$   updater3   r   get_debug_inforV   _get_debug_info)infos    r   rn   rn      sB    +-C..0??ABM1134r   )Nr<   NN)Tloggingos	threadingwarningscollections.abcr   datetimer   urllib.parser   r   torch.distributeddistributedrK   __all__	getLogger__name__rI   rU   LockrR   boolr   r   r	   rb   r_   torch.distributed.autogradautogradrV   torch._C._distributed_c10dr   torch._C._distributed_rpcr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1    r3   r4   r5   r7   optionsr8   server_process_global_profilerr9   tupleint__annotations__r;   rf   rH   rX   _require_initializedrn   r   r   r   <module>r      sv    	   %  !    
 
		8	$ ^^% *d * >>%((,,..
C
DD >>660" " " " " " " " "H 32-4N"5S#94#EFFIIG#&6&>&>>G  uWn" && (2 	 k r   