Class wandb.Artifact
Flexible and lightweight building block for dataset and model versioning. Construct an empty W&B Artifact. Populate an artifacts contents with methods that begin withadd. Once the artifact has all the desired files, you can call
run.log_artifact() to log it.
Args
str
A human-readable name for the artifact. Use the name to identify a specific artifact in the W&B App UI or programmatically. You can interactively reference an artifact with the
use_artifact Public API. A name can contain letters, numbers, underscores, hyphens, and dots. The name must be unique across a project.str
The artifact’s type. Use the type of an artifact to both organize and differentiate artifacts. You can use any string that contains letters, numbers, underscores, hyphens, and dots. Common types include
dataset or model. Include model within your type string if you want to link the artifact to the W&B Model Registry. Note that some types reserved for internal use and cannot be set by users. Such types include job and types that start with wandb-.str | None
A description of the artifact. For Model or Dataset Artifacts, add documentation for your standardized team model or dataset card. View an artifact’s description programmatically with the
Artifact.description attribute or programmatically with the W&B App UI. W&B renders the description as markdown in the W&B App.dict[str, Any] | None
Additional information about an artifact. Specify metadata as a dictionary of key-value pairs. You can specify no more than 100 total keys.
bool
Use
Artifact.new_draft() method instead to modify an existing artifact.str | None
Deprecated.
str | None
No description provided.
Literal['MD5', 'XXH128']
The digest algorithm to use for the artifact. Defaults to MD5. If set to XXH128, the artifact will be hashed using the XXH128 algorithm unless it is part of a collection that is already using MD5. Calls to
artifact.verify() on SDK versions before 0.29.0 will always fail on XXH128 artifacts.Properties
list[str]
List of one or more semantically-friendly references oridentifying “nicknames” assigned to an artifact version.Aliases are mutable references that you can programmatically reference.
Change an artifact’s alias with the W&B App UI or programmatically.
See Create new artifact versions
for more information.
ArtifactCollection
The collection this artifact is retrieved from.A collection is an ordered group of artifact versions.
If this artifact is retrieved from a collection that it is linked to,
return that collection. Otherwise, return the collection
that the artifact version originates from.The collection that an artifact originates from is known as
the source sequence.
str
The hash returned when this artifact was committed.
str
Timestamp when the artifact was created.
str | None
A description of the artifact.
str
The logical digest of the artifact.The digest is the checksum of the artifact’s contents. If an artifact has the
same digest as the current
latest version, then log_artifact is a no-op.ArtifactDigestAlgorithm
The digest algorithm used to compute the artifact’s digest.
str
The name of the entity that the artifact collection belongs to.If the artifact is a link, the entity will be the entity of the linked artifact.
int
The number of files (including references).
int | None
The nearest step which logged history metrics for this artifact’s source run.
str | None
The artifact’s ID.
bool
Boolean flag indicating if the artifact is a link artifact.True: The artifact is a link artifact to a source artifact.
False: The artifact is a source artifact.
list[Artifact]
Returns a list of all the linked artifacts of a source artifact.If this artifact is a link artifact (
artifact.is_link == True),
it will return an empty list.Limited to 500 results.str | None
The time when this artifact was linked to its current collection.Only valid for linked artifacts, returns
None otherwise.ArtifactManifest
The artifact’s manifest.The manifest lists all of its contents, and can’t be changed once the artifact
has been logged.
dict
User-defined artifact metadata.Structured data associated with the artifact.
str
The artifact name and version of the artifact.A string with the format
{collection}:{alias}. If fetched before an artifact is
logged/saved, the name won’t contain the alias.
If the artifact is a link, the name will be the name of the linked artifact.str
The name of the project that the artifact collection belongs to.If the artifact is a link, the project will be the project of the linked artifact.
str
The entity/project/name of the artifact.If the artifact is a link, the qualified name will be the qualified name of the
linked artifact path.
int
The total size of the artifact in bytes.Includes any references tracked by this artifact.
Artifact
Returns the source artifact, which is the original logged artifact.If this artifact is a source artifact (
artifact.is_link == False),
it will return itself.ArtifactCollection
The artifact’s source collection.The source collection is the collection that the artifact was logged from.
str
The name of the entity of the source artifact.
str
The artifact name and version of the source artifact.A string with the format
{source_collection}:{alias}. Before the artifact
is saved, contains only the name since the version is not yet known.str
The name of the project of the source artifact.
str
The source_entity/source_project/source_name of the source artifact.
str
The source artifact’s version.A string with the format
v{number}.str
The status of the artifact. One of: “PENDING”, “COMMITTED”, or “DELETED”.
list[str]
List of one or more tags assigned to this artifact version.
timedelta | None
The time-to-live (TTL) policy of an artifact.Artifacts are deleted shortly after a TTL policy’s duration passes.
If set to
None, the artifact deactivates TTL policies and will be not
scheduled for deletion, even if there is a team default TTL.
An artifact inherits a TTL policy from
the team default if the team administrator defines a default
TTL and there is no custom policy set on an artifact.str
The artifact’s type. Common types include
dataset or model.str
The time when the artifact was last updated.
The URL of the artifact.
Constructs the URL of the artifact.
str | None
Deprecated.
str
The artifact’s version.A string with the format
v{number}.
If this is a link artifact, the version will be from the linked collection.Methods
method Artifact.add()
obj to the artifact.
Arguments
WBValue
The object to add. Currently support one of Bokeh, JoinedTable, PartitionedTable, Table, Classes, ImageMask, BoundingBoxes2D, Audio, Image, Video, Html, Object3D
StrPath
The path within the artifact to add the object.
bool
If True, overwrite existing objects with the same file path if applicable.
Raises
ArtifactFinalizedError: You cannot make changes to the current artifact version because it is finalized. Log a new artifact version instead.
method Artifact.add_dir()
Arguments
str
The path of the local directory.
str | None
The subdirectory name within an artifact. The name you specify appears in the W&B App UI nested by artifact’s
type. Defaults to the root of the artifact.bool | None
If set to
True, W&B will not copy/move files to the cache while uploadingLiteral['mutable', 'immutable'] | None
By default, “mutable”.
- mutable: Create a temporary copy of the file to prevent corruption during upload.
- immutable: Disable protection, rely on the user not to delete or change the file.
bool
If
False (default), throws ValueError if a file was already added in a previous add_dir call and its content has changed. If True, overwrites existing files with changed content. Always adds new files and never removes files. To replace an entire directory, pass a name when adding the directory using add_dir(local_path, name=my_prefix) and call remove(my_prefix) to remove the directory, then add it again.Raises
ArtifactFinalizedError: You cannot make changes to the current artifact version because it is finalized. Log a new artifact version instead.ValueError: Policy must be “mutable” or “immutable”
method Artifact.add_file()
Arguments
str
The path to the file being added.
str | None
The path within the artifact to use for the file being added. Defaults to the basename of the file.
bool | None
If true, then the file is renamed deterministically to avoid collisions.
bool | None
If
True, do not copy files to the cache after uploading.Literal['mutable', 'immutable'] | None
By default, set to “mutable”. If set to “mutable”, create a temporary copy of the file to prevent corruption during upload. If set to “immutable”, disable protection and rely on the user not to delete or change the file.
bool
If
True, overwrite the file if it already exists.Raises
ArtifactFinalizedError: You cannot make changes to the current artifact version because it is finalized. Log a new artifact version instead.ValueError: Policy must be “mutable” or “immutable”
method Artifact.add_reference()
- http(s): The size and digest of the file will be inferred by the
Content-Lengthand theETagresponse headers returned by the server. - s3: The checksum and size are pulled from the object metadata. If bucket versioning is enabled, then the version ID is also tracked.
- gs: The checksum and size are pulled from the object metadata. If bucket versioning is enabled, then the version ID is also tracked.
- https, domain matching
*.blob.core.windows.net - Azure: The checksum and size are be pulled from the blob metadata. If storage account versioning is enabled, then the version ID is also tracked.
- file: The checksum and size are pulled from the file system. This scheme is useful if you have an NFS share or other externally mounted volume containing files you wish to track but not necessarily upload.
Arguments
ArtifactManifestEntry | str
The URI path of the reference to add. The URI path can be an object returned from
Artifact.get_entry to store a reference to another artifact’s entry.StrPath | None
The path within the artifact to place the contents of this reference.
bool
Whether or not to checksum the resource(s) located at the reference URI. Checksumming is strongly recommended as it enables automatic integrity validation. Disabling checksumming will speed up artifact creation but reference directories will not iterated through so the objects in the directory will not be saved to the artifact. We recommend setting
checksum=False when adding reference objects, in which case a new version will only be created if the reference URI changes.int | None
The maximum number of objects to consider when adding a reference that points to directory or bucket store prefix. By default, the maximum number of objects allowed for Amazon S3, GCS, Azure, and local files is 10,000,000. Other URI schemas do not have a maximum.
Raises
ArtifactFinalizedError: You cannot make changes to the current artifact version because it is finalized. Log a new artifact version instead.
method Artifact.checkout()
root that are not included in the
artifact.
Arguments
str | None
The directory to replace with this artifact’s files.
Raises
ArtifactNotLoggedError: If the artifact is not logged.
method Artifact.delete()
Artifact.unlink() instead of Artifact.delete() to remove a
link between a source artifact and a collection.
Arguments
bool
If set to
True, delete all aliases associated with the artifact. If False, raise an exception if the artifact has existing aliases. This parameter is ignored if the artifact is retrieved from a collection it is linked to.Raises
ArtifactNotLoggedError: If the artifact is not logged.
method Artifact.download()
root are not modified. Explicitly delete root
before you call download if you want the contents of root to exactly match
the artifact.
Arguments
StrPath | None
The directory W&B stores the artifact’s files.
bool
If set to
True, any invalid reference paths will be ignored while downloading referenced files.bool | None
If set to
True, the artifact cache will be skipped when downloading and W&B will download each file into the default root or specified download directory.StrPath | None
If specified, only files with a path that starts with the given prefix will be downloaded. Uses unix format (forward slashes).
bool | None
If set to
None (default), the artifact will be downloaded in parallel using multipart download if individual file size is greater than 2GB. If set to True or False, the artifact will be downloaded in parallel or serially regardless of the file size.Raises
ArtifactNotLoggedError: If the artifact is not logged.
method Artifact.file()
root.
Arguments
str | None
The root directory to store the file. Defaults to
./artifacts/self.name/.Raises
ArtifactNotLoggedError: If the artifact is not logged.ValueError: If the artifact contains more than one file.
method Artifact.files()
Arguments
list[str] | None
The filename paths relative to the root of the artifact you wish to list.
int
The number of files to return per request.
str | None
Pagination cursor for resuming a past query, captured from a previous paginator’s
.cursor attribute.Raises
ArtifactNotLoggedError: If the artifact is not logged.
method Artifact.finalize()
log_artifact.
method Artifact.get()
name.
Arguments
str
The artifact relative name to retrieve.
Raises
ArtifactNotLoggedError: if the artifact isn’t logged or the run is offline.
method Artifact.get_added_local_path_name()
Arguments
str
The local path to resolve into an artifact relative name.
method Artifact.get_entry()
Arguments
StrPath
The artifact relative name to get
Raises
ArtifactNotLoggedError: if the artifact isn’t logged or the run is offline.KeyError: if the artifact doesn’t contain an entry with the given name.
method Artifact.get_path()
get_entry(name).
Arguments
StrPath
No description provided.
method Artifact.is_draft()
method Artifact.json_encode()
method Artifact.link()
Arguments
str
The path of the collection. Path consists of the prefix “wandb-registry-” along with the registry name and the collection name
wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}.Iterable[str] | None
Add one or more aliases to the linked artifact. The “latest” alias is automatically applied to the most recent artifact you link.
Raises
ArtifactNotLoggedError: If the artifact is not logged.
method Artifact.logged_by()
Raises
ArtifactNotLoggedError: If the artifact is not logged.
method Artifact.new_draft()
Raises
ArtifactNotLoggedError: If the artifact is not logged.
method Artifact.new_file()
Arguments
str
The name of the new file to add to the artifact.
str
The file access mode to use to open the new file.
str | None
The encoding used to open the new file.
Literal['mutable', 'immutable']
By default, set to “mutable”. If set to “mutable”, create a temporary copy of the file to prevent corruption during upload. If set to “immutable”, disable protection and rely on the user not to delete or change the file.
Raises
ArtifactFinalizedError: You cannot make changes to the current artifact version because it is finalized. Log a new artifact version instead.
method Artifact.remove()
Arguments
StrPath | ArtifactManifestEntry
The item to remove. Can be a specific manifest entry or the name of an artifact-relative path. If the item matches a directory all items in that directory will be removed.
Raises
ArtifactFinalizedError: You cannot make changes to the current artifact version because it is finalized. Log a new artifact version instead.FileNotFoundError: If the item isn’t found in the artifact.
method Artifact.save()
Arguments
str | None
A project to use for the artifact in the case that a run is not already in context.
wandb.Settings | None
A settings object to use when initializing an automatic run. Most commonly used in testing harness.
method Artifact.unlink()
Raises
ArtifactNotLoggedError: If the artifact is not logged.ValueError: If the artifact is not linked to any collection.
method Artifact.used_by()
Raises
ArtifactNotLoggedError: If the artifact is not logged.
method Artifact.verify()
Arguments
str | None
The directory to verify. If None artifact will be downloaded to ’./artifacts/self.name/’.
Raises
ArtifactNotLoggedError: If the artifact is not logged.ValueError: If the verification fails.
method Artifact.wait()
Arguments
int | None
The time, in seconds, to wait.