o
    xi	                     @  s   U d Z ddlmZ ddlZddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZ e	rKddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ i Zded< G dd deZdS )zStorage policy.    )annotationsN)ABCabstractmethod)TYPE_CHECKINGAny)Api)FilePathStrURIStr)StepPrepare)StoragePolicyConfig)Artifact)ArtifactManifestEntry)
ProgressFnzdict[str, type[StoragePolicy]]_POLICY_REGISTRYc                      s   e Zd ZU dZded< d; fdd	Zed<ddZeed=ddZ	eed>ddZ
ed?ddZe		d@dAd!d"Ze	dBdCd+d,Ze		-	dDdEd4d5Ze	6	dFdGd9d:Z  ZS )HStoragePolicyNzInternalApi | None_apikwargsr   returnNonec                   s"   t  jdi | | t|  < d S )N )super__init_subclass__r   name)clsr   	__class__r   V/home/ubuntu/.local/lib/python3.10/site-packages/wandb/sdk/artifacts/storage_policy.pyr      s   zStoragePolicy.__init_subclass__r   strtype[StoragePolicy]c                 C  s    t | }r	|S td|)NzFailed to find storage policy )r   get
ValueError)r   r   policyr   r   r   lookup_by_name   s   zStoragePolicy.lookup_by_namec                 C     t NNotImplementedError)r   r   r   r   r   $      zStoragePolicy.nameconfigr   c                 C  r#   r$   r%   )r   r(   r   r   r   from_config)   r'   zStoragePolicy.from_configdict[str, Any]c                 C  r#   r$   r%   )selfr   r   r   r(   .   s   zStoragePolicy.configartifactr   manifest_entryr   	dest_path
str | Noneexecutor"concurrent.futures.Executor | Noner   c                 C  r#   r$   r%   )r+   r,   r-   r.   r0   r   r   r   	load_file2   s   zStoragePolicy.load_fileartifact_idartifact_manifest_identrypreparerr
   progress_callbackProgressFn | Noneboolc                 C  r#   r$   r%   )r+   r3   r4   r5   r6   r7   r   r   r   
store_file<      	zStoragePolicy.store_fileTpathURIStr | FilePathStrchecksummax_objects
int | Nonelist[ArtifactManifestEntry]c                 C  r#   r$   r%   )r+   r,   r<   r   r>   r?   r   r   r   store_referenceG   r;   zStoragePolicy.store_referenceFlocalFilePathStr | URIStrc                 C  r#   r$   r%   )r+   r-   rC   r.   r   r   r   load_referenceR   s   zStoragePolicy.load_reference)r   r   r   r   )r   r   r   r   )r   r   )r(   r   r   r   )r   r*   )NN)
r,   r   r-   r   r.   r/   r0   r1   r   r   r$   )r3   r   r4   r   r5   r   r6   r
   r7   r8   r   r9   )NTN)r,   r   r<   r=   r   r/   r>   r9   r?   r@   r   rA   )FN)r-   r   rC   r9   r.   r/   r   rD   )__name__
__module____qualname__r   __annotations__r   classmethodr"   r   r   r)   r(   r2   r:   rB   rE   __classcell__r   r   r   r   r      s:   
 	

r   )__doc__
__future__r   concurrent.futures
concurrentabcr   r   typingr   r   wandb.sdk.internal.internal_apir   InternalApiwandb.sdk.lib.pathsr   r	   wandb.filesync.step_preparer
   #wandb.sdk.artifacts._models.storager   wandb.sdk.artifacts.artifactr   +wandb.sdk.artifacts.artifact_manifest_entryr   wandb.sdk.internal.progressr   r   rI   r   r   r   r   r   <module>   s    