o
    -wim                     @  s2  d Z ddlmZ ddlZddlZddlmZ ddlmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZmZ ddlZddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZ ddlmZ ddl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@ ddlAmBZBmCZCmDZD ddlEmFZG ddlHmIZI ddlJmKZK erddlLmMZM ddlNmOZOmPZP G dd ded ZQG dd dZRG dd ded ZSG dd dZTG dd  d ed! ZUG d"d# d#ed! ZVG d$d% d%ed& ZW	'd/d0d-d.ZXdS )1zPublic API: artifacts.    )annotationsN)copy)TYPE_CHECKINGAnyIterableLiteralMappingSequence)override)Clientgql)public)normalize_exceptions)	PaginatorSizedPaginator)termlog)
Deprecated)ServerFeature)(ARTIFACT_COLLECTION_MEMBERSHIP_FILES_GQLARTIFACT_VERSION_FILES_GQL.CREATE_ARTIFACT_COLLECTION_TAG_ASSIGNMENTS_GQL.DELETE_ARTIFACT_COLLECTION_TAG_ASSIGNMENTS_GQLDELETE_ARTIFACT_PORTFOLIO_GQLDELETE_ARTIFACT_SEQUENCE_GQLMOVE_ARTIFACT_COLLECTION_GQLPROJECT_ARTIFACT_COLLECTION_GQL PROJECT_ARTIFACT_COLLECTIONS_GQLPROJECT_ARTIFACT_TYPE_GQLPROJECT_ARTIFACT_TYPES_GQLPROJECT_ARTIFACTS_GQLRUN_INPUT_ARTIFACTS_GQLRUN_OUTPUT_ARTIFACTS_GQLUPDATE_ARTIFACT_PORTFOLIO_GQLUPDATE_ARTIFACT_SEQUENCE_GQL!ArtifactCollectionMembershipFilesArtifactCollectionsFragmentArtifactsFragmentArtifactTypeFragmentArtifactTypesFragmentArtifactVersionFilesFilesFragmentProjectArtifactCollectionProjectArtifactCollectionsProjectArtifactsProjectArtifactTypeProjectArtifactTypes)RunInputArtifactsProjectRunInputArtifacts+RunOutputArtifactsProjectRunOutputArtifacts)omit_artifact_fields)SOURCE_ARTIFACT_COLLECTION_TYPEvalidate_artifact_namevalidate_artifact_type)Api)	deprecate   )
gql_compat)Artifact)RetryingClientRunc                      s   e Zd ZU eeZded< 	dd fddZed ddZ	e
d ddZe
d!ddZe
d"ddZd ddZd#ddZ  ZS )$ArtifactTypeszArtifactTypesFragment | Nonelast_response2   clientr   entitystrprojectper_pageintc                   s*   || _ || _||d}t ||| d S )N)
entityNameprojectName)rA   rC   super__init__)selfr@   rA   rC   rD   variable_values	__class__ X/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/apis/public/artifacts.pyrI   J   s   zArtifactTypes.__init__returnNonec                 C  sX   | j j| j| jd}t|}|j }r|j }s$tdt	| j
dt|| _dS z:Fetch and validate the response data for the current page.rK   Unable to parse  response dataN)r@   executeQUERY	variablesr/   model_validaterC   artifact_types
ValueErrortype__name__r(   r>   )rJ   dataresultprojconnrN   rN   rO   _update_responseZ   s
   
zArtifactTypes._update_responsec                 C  s   d S NrN   rJ   rN   rN   rO   _lengthf   s   zArtifactTypes._lengthboolc                 C     | j d u rdS | j jjS NTr>   	page_infohas_next_pagerd   rN   rN   rO   morek      

zArtifactTypes.more
str | Nonec                 C     | j d u rd S | j jd jS Nr>   edgescursorrd   rN   rN   rO   rt   q      
zArtifactTypes.cursorc                 C     | j d| ji d S Nrt   rX   updatert   rd   rN   rN   rO   update_variablesw      zArtifactTypes.update_variableslist[ArtifactType]c                   &   j d u rg S  fddj jD S )Nc              
     sD   g | ]}|j rt|j   rtjjj j jd ddqS )Texclude_unset)r@   rA   rC   	type_nameattrs)	noder'   rY   ArtifactTyper@   rA   rC   name
model_dump.0edger   rJ   rN   rO   
<listcomp>~   s    	
z1ArtifactTypes.convert_objects.<locals>.<listcomp>r>   rs   rd   rN   r   rO   convert_objectsz   
   
zArtifactTypes.convert_objectsr?   )r@   r   rA   rB   rC   rB   rD   rE   rP   rQ   rP   rf   rP   rn   )rP   r|   )r]   
__module____qualname__r   r   rW   __annotations__rI   r
   rb   propertyre   rl   rt   rz   r   __classcell__rN   rN   rL   rO   r=   E   s   
 
r=   r   c                   @  sd   e Zd Z	d d!d
dZd"ddZed#ddZed#ddZed$d%ddZ	d&ddZ
d#ddZdS )'r   Nr@   r   rA   rB   rC   r   r   Mapping[str, Any] | Nonec                 C  s8   || _ || _|| _|| _|| _| jd u r|   d S d S rc   )r@   rA   rC   r\   _attrsload)rJ   r@   rA   rC   r   r   rN   rN   rO   rI      s   
zArtifactType.__init__rP   Mapping[str, Any]c                 C  sd   | j jtt| j| j| jdd}t|}|j }r |j	 }s(t
d| j |jdd| _| jS )NrF   rG   artifactTypeNamerS   Could not find artifact type Tr~   )r@   rV   r   r   rA   rC   r\   r.   rY   artifact_typer[   r   r   )rJ   r^   r_   r`   r   rN   rN   rO   r      s   
zArtifactType.loadc                 C  
   | j d S Nidr   rd   rN   rN   rO   r         
zArtifactType.idc                 C  r   )Nr   r   rd   rN   rN   rO   r      r   zArtifactType.namer?   rD   rE   ArtifactCollectionsc                 C  s   t | j| j| j| jS )zArtifact collections.)r   r@   rA   rC   r\   rJ   rD   rN   rN   rO   collections   s   zArtifactType.collectionsr   ArtifactCollectionc                 C  s   t | j| j| j|| jS rc   )r   r@   rA   rC   r\   rJ   r   rN   rN   rO   
collection   s   zArtifactType.collectionc                 C  s   d| j  dS )Nz<ArtifactType >)r\   rd   rN   rN   rO   __repr__   s   zArtifactType.__repr__rc   )
r@   r   rA   rB   rC   rB   r   rB   r   r   )rP   r   rP   rB   r   )rD   rE   rP   r   )r   rB   rP   r   )r]   r   r   rI   r   r   r   r   r   r   r   r   rN   rN   rN   rO   r      s    

c                      st   e Zd ZU ded< 	dd fddZedddZed ddZedd Z	edd Z
dddZd!ddZ  ZS )"r   z"ArtifactCollectionsFragment | Noner>   r?   r@   r   rA   rB   rC   r   rD   rE   c                   sV   || _ || _|| _|||d}t|rd }nddi}tt|d| _t ||| d S )Nr   artifactCollectionsartifactSequencesrename_fields)	rA   rC   r   .server_supports_artifact_collections_gql_edgesr9   r   rW   rH   rI   )rJ   r@   rA   rC   r   rD   rK   r   rL   rN   rO   rI      s   zArtifactCollections.__init__rP   rQ   c                 C  sb   | j j| j| jd}t|}|j }r|j }r|j }s)t	dt
| jdt|| _dS rR   )r@   rV   rW   rX   r,   rY   rC   r   artifact_collectionsr[   r\   r]   r%   r>   )rJ   r^   r_   r`   type_ra   rN   rN   rO   rb      s   
z$ArtifactCollections._update_responsec                 C     | j d u r	|   | j jS rc   r>   
_load_pagetotal_countrd   rN   rN   rO   re         
zArtifactCollections._lengthc                 C  rg   rh   ri   rd   rN   rN   rO   rl      rm   zArtifactCollections.morec                 C  ro   rp   rr   rd   rN   rN   rO   rt      ru   zArtifactCollections.cursorc                 C  rv   rw   rx   rd   rN   rN   rO   rz     r{   z$ArtifactCollections.update_variableslist[ArtifactCollection]c                   r}   )Nc              	     s2   g | ]}|j   rtjjj jjd qS ))r@   rA   rC   r   r\   )r   r   r@   rA   rC   r   r   r   r   rN   rO   r     s    z7ArtifactCollections.convert_objects.<locals>.<listcomp>r   rd   rN   r   rO   r     r   z#ArtifactCollections.convert_objectsr   )
r@   r   rA   rB   rC   rB   r   rB   rD   rE   r   rP   rE   )rP   r   )r]   r   r   r   rI   r
   rb   r   re   rl   rt   rz   r   r   rN   rN   rL   rO   r      s   
 


r   r   c                   @  s<  e Zd Z			dGdHddZedIddZedJdKddZedLddZedIddZ	dd  Z
edMd#d$ZdNd&d'ZedOd(d)ZedId*d+ZejdPd-d+ZedLd.d/ZejdQd1d/ZedId2d3ZejdRd4d3Zed5d6 ZejdSd7d6ZdOd8d9ZdOd:d;ZdTd>d?ZdUdAdBZedOdCdDZdIdEdFZdS )Vr   Nr@   r   rA   rB   rC   r   r\   organizationrn   r   r   is_sequencebool | Nonec	           	      C  s   || _ || _|| _t|| _|| _|| _|| _|| _|d ur!|| _	|d u s)|d u r-| 
  dd | jd d D | _| jd | _| jd | _dd | jd d D | _t| j| _|| _d S )	Nc                 S     g | ]}|d  d qS )r   aliasrN   r   arN   rN   rO   r   0      z/ArtifactCollection.__init__.<locals>.<listcomp>aliasesrs   description	createdAtc                 S  r   )r   r   rN   r   rN   rN   rO   r   3  r   tags)r@   rA   rC   r4   _name_saved_name_type_saved_typer   _is_sequencer   _aliases_description_created_at_tagsr   _saved_tagsr   )	rJ   r@   rA   rC   r   r\   r   r   r   rN   rN   rO   rI     s$   

zArtifactCollection.__init__rP   c                 C  r   r   r   rd   rN   rN   rO   r   7  r   zArtifactCollection.idr?   rD   rE   	Artifactsc                 C  s   t | j| j| j| j| j|dS )z
Artifacts.)r@   rA   rC   collection_namer\   rD   )r   r@   rA   rC   r   r   r   rN   rN   rO   	artifacts;  s   zArtifactCollection.artifacts	list[str]c                 C     | j S )zArtifact Collection Aliases.)r   rd   rN   rN   rO   r   G     zArtifactCollection.aliasesc                 C  r   rc   )r   rd   rN   rN   rO   
created_atL     zArtifactCollection.created_atc                 C  s   t | jrd }nddi}| jjtt|d| j| j| j| jdd}t	
|}|jr8|j }r8|j }r8|j }s@td| j |j}|d uoK|jtk| _| jd u rY|jdd| _| jS )	NartifactCollectionartifactSequencer   )rF   rG   r   artifactCollectionNamerS   r   Tr~   )r   r@   rV   r9   r   rA   rC   r   r   r+   rY   r   artifact_collectionr[   artifact_sequence
typename__r3   r   r   r   )rJ   r   responser_   r`   r   r   sequencerN   rN   rO   r   P  s:   




zArtifactCollection.loadnew_typerQ   c              
   C  s   t j tjdd | j|kr-z	t| j| j W n ty, } z
td| jd|d}~ww t|| j |  s;tdtd| j d|  | j	j
tt| j|d	d
 || _|| _dS )z5Deprecated, change type directly with `save` instead.zZArtifactCollection.change_type(type) is deprecated, use ArtifactCollection.save() instead.)
field_namewarning_messagezThe current type ',' is an internal type and cannot be changed.Nz*Artifact collection needs to be a sequencez%Changing artifact collection type of z to artifactSequenceIDdestinationArtifactTypeNamerS   )r7   r    artifact_collection__change_typer   r5   r   r[   r   r   r@   rV   r   r   r   r   )rJ   r   erN   rN   rO   change_types  s:   

zArtifactCollection.change_typerf   c                 C  r   )z5Return whether the artifact collection is a sequence.)r   rd   rN   rN   rO   r     r   zArtifactCollection.is_sequencec                 C  s*   | j jt|  r
tntd| jid dS )z&Delete the entire artifact collection.r   rS   N)r@   rV   r   r   r   r   r   rd   rN   rN   rO   delete  s   
zArtifactCollection.deletec                 C  r   )z)A description of the artifact collection.r   rd   rN   rN   rO   r     r   zArtifactCollection.descriptionr   c                 C  s
   || _ d S rc   r   )rJ   r   rN   rN   rO   r     r   c                 C  r   )z1The tags associated with the artifact collection.)r   rd   rN   rN   rO   r     r   zArtifactCollection.tagsr   c                 C  s$   t dd |D rtd|| _d S )Nc                 s  s    | ]
}t d | V  qdS )z^[-\w]+([ ]+[-\w]+)*$N)rematchr   tagrN   rN   rO   	<genexpr>  s    z*ArtifactCollection.tags.<locals>.<genexpr>z\Tags must only contain alphanumeric characters or underscores separated by spaces or hyphens)anyr[   r   )rJ   r   rN   rN   rO   r     s
   
c                 C  r   )z$The name of the artifact collection.)r   rd   rN   rN   rO   r     r   zArtifactCollection.namec                 C  s   t || _d S rc   )r4   r   r   rN   rN   rO   r     s   c                 C  r   )z$The type of the artifact collection.)r   rd   rN   rN   rO   r\     r   zArtifactCollection.typec                 C  s   |   std|| _d S )NzBType can only be changed if the artifact collection is a sequence.)r   r[   r   )rJ   r\   rN   rN   rO   r\     s
   
c                 C  s:   | j jt|  r
tnt| j| j| jdd | j	| _
d S )N)r   r   r   rS   )r@   rV   r   r   r#   r"   r   r   r   r   r   rd   rN   rN   rO   _update_collection  s   z%ArtifactCollection._update_collectionc                 C  s*   | j jtt| j| jdd | j| _d S )Nr   rS   )r@   rV   r   r   r   r\   r   r   rd   rN   rN   rO   _update_collection_type  s   z*ArtifactCollection._update_collection_typetags_to_addIterable[str]c                 C  2   | j jtt| j| j| jdd |D dd d S )Nc                 S     g | ]}d |iqS tagNamerN   r   rN   rN   rO   r         z0ArtifactCollection._add_tags.<locals>.<listcomp>rF   rG   r   r   rS   )r@   rV   r   r   rA   rC   r   )rJ   r   rN   rN   rO   	_add_tags     
zArtifactCollection._add_tagstags_to_deletec                 C  r   )Nc                 S  r   r   rN   r   rN   rN   rO   r     r   z3ArtifactCollection._delete_tags.<locals>.<listcomp>r   rS   )r@   rV   r   r   rA   rC   r   )rJ   r   rN   rN   rO   _delete_tags  r   zArtifactCollection._delete_tagsc              
   C  s  | j | jkrHz	t| j| j W n ty# } ztd| |d}~ww z	t| j | j W n tyG } ztd| j d| j d|d}~ww |   |  rZ| j | jkrZ|   t	| j
}t	| j}||  }ro| | ||  }rz| | t| j
| _dS )z4Persist any changes made to the artifact collection.z$Failed to save artifact collection: Nz$Failed to save artifact collection 'z': The current type 'r   )r   r\   r5   r   r[   r   r   r   r   setr   r   r   r   r   )rJ   r   current_tags
saved_tagsr   r   rN   rN   rO   save   s:   




zArtifactCollection.savec                 C  s   d| j  d| j dS )Nz<ArtifactCollection  ()>)r   r   rd   rN   rN   rO   r     r{   zArtifactCollection.__repr__)NNN)r@   r   rA   rB   rC   rB   r   rB   r\   rB   r   rn   r   r   r   r   r   r   )rD   rE   rP   r   rP   r   )r   rB   rP   rQ   r   r   )r   rn   rP   rQ   )r   r   rP   rQ   )r   rB   rP   rQ   )r\   r   rP   rQ   )r   r   rP   rQ   )r   r   rP   rQ   )r]   r   r   rI   r   r   r   r   r   r   r   r   r   r   r   setterr   r   r\   r   r   r   r   r  r   rN   rN   rN   rO   r     sT    #
!





c                      sx   e Zd ZU dZded< 				d%d& fddZed'ddZed(ddZ	ed)ddZ
ed*d d!Zd+d#d$Z  ZS ),r   zAn iterable collection of artifact versions associated with a project and optional filter.

    This is generally used indirectly via the `Api`.artifact_versions method.
    zArtifactsFragment | Noner>   Nr?   r@   r   rA   rB   rC   r   r\   filtersr   orderrn   rD   rE   r   str | list[str] | Nonec
                   s   || _ || _|| _|| _|d u rddin|| _t|	tr|	gn|	| _|| _| j| j | j| j| jt	
| jd}
t|r>d }nddi}tttt d|d| _t ||
| d S )Nstate	COMMITTED)rC   rA   r
  r\   r   r	  r   r   api)omit_fieldsr   )rA   r   r\   rC   r	  
isinstancerB   r   r
  jsondumpsr   r9   r   r2   InternalApirW   rH   rI   )rJ   r@   rA   rC   r   r\   r	  r
  rD   r   rX   r   rL   rN   rO   rI   )  s.   
	
zArtifacts.__init__rP   rQ   c                 C  sl   | j j| j| jd}t|}|j }r#|j }r#|j }r#|j	 }s.t
dt| jdt|| _d S NrS   rT   rU   )r@   rV   rW   rX   r-   rY   rC   r   r   r   r[   r\   r]   r&   r>   )rJ   r^   r_   r`   r   r   ra   rN   rN   rO   rb   R  s   
zArtifacts._update_responsec                 C  r   rc   r   rd   rN   rN   rO   re   b  r   zArtifacts._lengthrf   c                 C  rg   rh   ri   rd   rN   rN   rO   rl   h  rm   zArtifacts.morec                 C  ro   rp   rr   rd   rN   rN   rO   rt   n  ru   zArtifacts.cursorlist[Artifact]c                   sR   j d u rg S dd j jD }fdd|D }tjpg   fdd|D S )Nc                 s  s    | ]}|j r|V  qd S rc   )r   r   rN   rN   rO   r   x  s    z,Artifacts.convert_objects.<locals>.<genexpr>c                 3  sD    | ]}t jj j j j d |j |jjdd j	dV  qdS ):Tr~   rA   rC   r   r   r@   N)
wandbr:   _from_attrsrA   rC   r   versionr   r   r@   r   rd   rN   rO   r   y  s    
c                   s   g | ]
}  |jr|qS rN   )issubsetr   )r   art)required_tagsrN   rO   r     s    z-Artifacts.convert_objects.<locals>.<listcomp>)r>   rs   r  r   )rJ   artifact_edgesr   rN   )r  rJ   rO   r   t  s   


zArtifacts.convert_objects)NNr?   N)r@   r   rA   rB   rC   rB   r   rB   r\   rB   r	  r   r
  rn   rD   rE   r   r  r   r   r   r   rP   r  )r]   r   r   __doc__r   rI   r
   rb   r   re   rl   rt   r   r   rN   rN   rL   rO   r   !  s"   
 	)r   r:   c                      sx   e Zd ZU ded< ded< 		d d! fddZed"ddZed#ddZed$ddZ	ed%ddZ
d&ddZ  ZS )'RunArtifactszWRunOutputArtifactsProjectRunOutputArtifacts | RunInputArtifactsProjectRunInputArtifactsr>   z]type[RunOutputArtifactsProjectRunOutputArtifacts | RunInputArtifactsProjectRunInputArtifacts]_response_clsloggedr?   r@   r   runr<   modeLiteral['logged', 'used']rD   rE   c                   s   || _ |dkrd| _tttt dd| _t| _n|dkr/d| _tt	tt dd| _t
| _ntd|j|j|jd}t ||| d S )	Nr$  outputArtifactsr  r  usedinputArtifactszmode must be logged or used)rA   rC   runName)r%  run_keyr9   r!   r2   r  rW   r1   r#  r    r0   r[   rA   rC   r   rH   rI   )rJ   r@   r%  r&  rD   rK   rL   rN   rO   rI     s*   

zRunArtifacts.__init__rP   rQ   c                 C  s8   | j j| j| jd}|d d | j }| j|| _d S )NrS   rC   r%  )r@   rV   rW   rX   r-  r#  rY   r>   )rJ   r^   
inner_datarN   rN   rO   rb     s   zRunArtifacts._update_responsec                 C  r   rc   r   rd   rN   rN   rO   re     r   zRunArtifacts._lengthrf   c                 C  rg   rh   ri   rd   rN   rN   rO   rl     rm   zRunArtifacts.morern   c                 C  ro   rp   rr   rd   rN   rN   rO   rt     ru   zRunArtifacts.cursorr  c                   s*   j d u rg S  fddj jD S )Nc              	     s\   g | ]*}|j  rj  r j rtjjjj j d j j	ddj
dqS )z:vTr~   r  )r   r   rC   r  r:   r  entity_namer   version_indexr   r@   r   artifact_seqr   r`   rJ   rN   rO   r     s     

z0RunArtifacts.convert_objects.<locals>.<listcomp>r   rd   rN   r1  rO   r     s
   
zRunArtifacts.convert_objects)r$  r?   )r@   r   r%  r<   r&  r'  rD   rE   r   r   r   r   r   )r]   r   r   r   rI   r
   rb   r   re   rl   rt   r   r   rN   rN   rL   rO   r"    s   
 	!r"  c                      s   e Zd ZU ded< 		d&d' fddZed(ddZed)ddZed*ddZ	ed+ddZ
ed,ddZd(ddZd-d!d"Zd.d$d%Z  ZS )/ArtifactFileszFilesFragment | Noner>   Nr?   r@   r   artifactr:   namesSequence[str] | NonerD   rE   c                   s   t  tj| _|| _| jr"t}|j|j|j	
dd |j|d}nt}|j|j|j|j|d}|ds>t|dhd| _nt|| _t ||| d S )Nr  r   )rF   rG   artifactNameartifactVersionIndex	fileNames)rF   rG   r7  r   r9  z0.12.21storagePathr)  )r  _server_supportsr   $ARTIFACT_COLLECTION_MEMBERSHIP_FILESquery_via_membershipr4  r   rA   rC   r   splitr  r   source_entitysource_projectsource_namer\   version_supportedr9   rW   r   rH   rI   )rJ   r@   r4  r5  rD   	query_strrX   rL   rN   rO   rI     s.   


zArtifactFiles.__init__rP   rQ   c                 C  sv   | j j| j| jd}| jrt|}|jjj	j
}nt|}|jjjj
}|d u r3tdt| jdt|| _d S r  )r@   rV   rW   rX   r=  r$   rY   rC   r   artifact_membershipfilesr)   r   r4  r[   r\   r]   r*   r>   )rJ   r^   r_   ra   rN   rN   rO   rb     s   

zArtifactFiles._update_responser   c                 C  s   | j j| j j| j jgS rc   )r4  rA   rC   r   rd   rN   rN   rO   path  s   zArtifactFiles.pathc                 C  s   | j d u r	|   | jjS rc   )r>   r   r4  
file_countrd   rN   rN   rO   re   !  r   zArtifactFiles._lengthrf   c                 C  rg   rh   ri   rd   rN   rN   rO   rl   '  rm   zArtifactFiles.morern   c                 C  ro   rp   rr   rd   rN   rN   rO   rt   -  ru   zArtifactFiles.cursorc                 C  s   | j | j| jd d S )N)	fileLimit
fileCursor)rX   ry   rD   rt   rd   rN   rN   rO   rz   3  s   zArtifactFiles.update_variableslist[public.File]c                   r}   )Nc                   s.   g | ]}|j   rtjj jd ddqS )Tr~   )r@   r   )r   r   Filer@   r   r   r   rN   rO   r   :  s    
z1ArtifactFiles.convert_objects.<locals>.<listcomp>r   rd   rN   r   rO   r   6  s
   
zArtifactFiles.convert_objectsrB   c                 C  s"   d | j}d| dt|  dS )N/z<ArtifactFiles r  r  )joinrF  len)rJ   path_strrN   rN   rO   r   C  s   zArtifactFiles.__repr__)Nr?   )r@   r   r4  r:   r5  r6  rD   rE   r   r  r   r   r   )rP   rJ  r   )r]   r   r   r   rI   r
   rb   r   rF  re   rl   rt   rz   r   r   r   rN   rN   rL   rO   r3    s$   
 (

r3  zpublic.FileFr@   r;   warnrf   rP   c                 C  s    |  d}|s|rtd |S )Nz0.12.11zW&B Local Server version does not support ArtifactCollection gql edges; falling back to using legacy ArtifactSequence. Please update server to at least version 0.9.50.)rB  r  termwarn)r@   rP  	supportedrN   rN   rO   r   H  s   
r   )F)r@   r;   rP  rf   rP   rf   )Yr!  
__future__r   r  r   r   typingr   r   r   r   r   r	   typing_extensionsr
   	wandb_gqlr   r   r  
wandb.apisr   wandb.apis.normalizer   wandb.apis.paginatorr   r   wandb.errors.termr   wandb.proto.wandb_deprecatedr   wandb.proto.wandb_internal_pb2r   wandb.sdk.artifacts._generatedr   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   &wandb.sdk.artifacts._graphql_fragmentsr2   wandb.sdk.artifacts._validatorsr3   r4   r5   wandb.sdk.internal.internal_apir6   r  wandb.sdk.libr7   utilsr9   wandb.sdk.artifacts.artifactr:    r;   r<   r=   r   r   r   r   r"  r3  r   rN   rN   rN   rO   <module>   sF      F7V  fZh