
    64%e	                         d dl Z d dlmZ ddlmZ dgZd dlmZmZm	Z	m
Z
mZ d dlmZ erd dlmZ d d	lmZ  G d
 de          ZdS )    N)	join_path   )HeadRemoteReference)AnyIteratorNoReturnUnionTYPE_CHECKING)PathLike)Repo)Remotec                        e Zd ZdZej        Ze	 	 ddddee	df         ded         de
d	e
d
ed          f fd            Zedddd d	e
d
dfd            Zede
d	e
d
efd            Z xZS )r   z1Represents a reference pointing to a remote head.Nrepor   common_pathremote)r   Nargskwargsreturnc                     |p| j         }|t          |t          |                    }t          t          |                               ||          S )zKIterate remote references, and if given, constrain them to the given remote)_common_path_defaultr   strsuperr   
iter_items)clsr   r   r   r   r   	__class__s         /lib/python3.11/site-packages/git/refs/remote.pyr   zRemoteReference.iter_items   sO     "=S%=#KV==K _c**55dKHHH    refsc                 n    |j         j        ddg|R   |D ]}	 t          j        t          j                            |j        |j                             n# t          $ r Y nw xY w	 t          j        t          j                            |j        |j                             # t          $ r Y w xY wdS )zDelete the given remote references

        :note:
            kwargs are given for comparability with the base class method as we
            should not narrow the signature.z-dz-rN)	gitbranchosremovepathjoin
common_dirOSErrorgit_dir)r   r   r   r   refs        r   deletezRemoteReference.delete2   s     	d*T****  	 	C	"',,tAABBBB   	"',,t|SX>>????   	 	s#   <A
A$#A$(<B%%
B21B2c                      t          d          )zUsed to disable this methodz*Cannot explicitly create remote references)	TypeError)r   r   r   s      r   createzRemoteReference.createH   s     DEEEr   )NN)__name__
__module____qualname____doc__r   _remote_common_path_defaultr   classmethodr
   r   r   r   r   r+   r	   r.   __classcell__)r   s   @r   r   r      s;       ;;; .2(,	I II 8T>*I n%	I
 I I 
#	$I I I I I [I( & ): c d    [* F3 F# F( F F F [F F F F Fr   )r#   git.utilr   headr   __all__typingr   r   r	   r
   r   	git.typesr   git.repor   r!   r   r    r   r   <module>r=      s    				             
 A @ @ @ @ @ @ @ @ @ @ @ @ @        
4F 4F 4F 4F 4Fd 4F 4F 4F 4F 4Fr   