o
    xi                     @  s   d dl mZ d dlmZmZm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 erDd dlmZ G dd deZdS )    )annotations)TYPE_CHECKINGAnyOptional)Field)Self)GQLIdfield_validator)nameof)AddOnlyArtifactTypesList)
Visibility   )ArtifactsBase)RegistryFragmentc                   @  s   e Zd ZU dZeddZded< 	 eddZded< 	 eddZded	< 	 eddZ	ded
< 	 eddZ
ded< 	 eddZded< 	 dZded< 	 ded< 	 eedZded< 	 eddZded< 	 ed(ddZedddd)d!d"Zed*d&d'ZdS )+RegistryDatazTransport-free model for local `Registry` data.

    For now, this is separated from the public `Registry` class
    to more easily ensure continuity in the public `Registry` API.
    T)frozenr   idstr
created_atzOptional[str]
updated_atorganizationentityr   )
min_lengthnameNdescriptionboolallow_all_artifact_types)default_factoryr   artifact_typesaccess)aliasr   
visibilityreturnc                 C  s   ddl m} | | j S )z<The project name with the expected `wandb-registry-` prefix.r   )REGISTRY_PREFIX)wandb.sdk.artifacts._validatorsr#   r   )selfr#    r&   X/home/ubuntu/.local/lib/python3.10/site-packages/wandb/sdk/artifacts/_models/registry.py	full_nameA   s   zRegistryData.full_nameplain)modevr   c                 C  s2   ddl m} t||rtdd |jD S t|S )z7Coerce `artifact_types` to an AddOnlyArtifactTypesList.r   )RegistryFragmentArtifactTypesc                 s  s    | ]
}|j r|j jV  qd S )N)noder   ).0er&   r&   r'   	<genexpr>Q   s    z8RegistryData._validate_artifact_types.<locals>.<genexpr>)(wandb.sdk.artifacts._generated.fragmentsr,   
isinstancer   edges)clsr+   r,   r&   r&   r'   _validate_artifact_typesH   s   
z%RegistryData._validate_artifact_typesobjr   r   c                 C  sf   ddl m} |jjstdtt|d| |j|j|j	|jjj
|jj
||j
|j|j|j|jd
S )Nr   )remove_registry_prefixz+Unable to parse registry organization from z object)
r   r   r   r   r   r   r   r   r   r!   )r$   r7   r   r   
ValueErrorr
   typer   r   r   r   r   r   r   r   )r4   r6   r7   r&   r&   r'   from_fragmentV   s"   zRegistryData.from_fragment)r"   r   )r+   r   r"   r   )r6   r   r"   r   )__name__
__module____qualname____doc__r   r   __annotations__r   r   r   r   r   r   r   r   r!   propertyr(   r	   r5   classmethodr:   r&   r&   r&   r'   r      s<   
 	
r   N)
__future__r   typingr   r   r   pydanticr   typing_extensionsr   wandb._pydanticr   r	   wandb._strutilsr
   ,wandb.apis.public.registries._freezable_listr   #wandb.apis.public.registries._utilsr   
base_modelr   wandb.sdk.artifacts._generatedr   r   r&   r&   r&   r'   <module>   s    