> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-python-sdk-testing.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Artifact

export const GitHubLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="github-source-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    GitHub source
  </a>;

<GitHubLink url="https://github.com/wandb/wandb/blob/main/wandb/sdk/artifacts/artifact.py#L117" />

```python theme={null}
name: 'str',
type: 'str',
description: 'str | None' = None,
metadata: 'dict[str, Any] | None' = None,
incremental: 'bool' = False,
use_as: 'str | None' = None,
storage_region: 'str | None' = None
```

## Description

Flexible and lightweight building block for dataset and model versioning.

Construct an empty W\&B Artifact. Populate an artifacts contents with methods that
begin with `add`. Once the artifact has all the desired files, you can call
`run.log_artifact()` to log it.

## Args:

* **name**: 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.
* **type**: 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-`.
* **description**: 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.
* **metadata**: Additional information about an artifact. Specify metadata as a dictionary of key-value pairs. You can specify no more than 100 total keys.
* **incremental**: Use `Artifact.new_draft()` method instead to modify an existing artifact.
* **use\_as**: Deprecated.
* **storage\_region**:

## Properties:

### id

The artifact's ID.

### entity

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.

### project

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.

### name

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.

### qualified\_name

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.

### version

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.

### collection

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.

### source\_entity

The name of the entity of the source artifact.

### source\_project

The name of the project of the source artifact.

### source\_name

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.

### source\_qualified\_name

The source\_entity/source\_project/source\_name of the source artifact.

### source\_version

The source artifact's version.

A string with the format `v{number}`.

### source\_collection

The artifact's source collection.

The source collection is the collection that the artifact was logged from.

### is\_link

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.

### linked\_artifacts

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.

### source\_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.

### type

The artifact's type. Common types include `dataset` or `model`.

### url

Constructs the URL of the artifact.

### description

A description of the artifact.

### metadata

User-defined artifact metadata.

Structured data associated with the artifact.

### ttl

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.

Raises:
ArtifactNotLoggedError: Unable to fetch inherited TTL if the
artifact has not been logged or saved.

### aliases

List of one or more semantically-friendly references or

identifying "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](https://docs.wandb.ai/models/artifacts/create-a-new-artifact-version)
for more information.

### tags

List of one or more tags assigned to this artifact version.

### use\_as

Deprecated.

### state

The status of the artifact. One of: "PENDING", "COMMITTED", or "DELETED".

### manifest

The artifact's manifest.

The manifest lists all of its contents, and can't be changed once the artifact
has been logged.

### digest

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.

### size

The total size of the artifact in bytes.

Includes any references tracked by this artifact.

### commit\_hash

The hash returned when this artifact was committed.

### file\_count

The number of files (including references).

### created\_at

Timestamp when the artifact was created.

### updated\_at

The time when the artifact was last updated.

### history\_step

The nearest step which logged history metrics for this artifact's source run.

## Methods:

### add

Add wandb.WBValue `obj` to the artifact.

### add\_dir

Add a local directory to the artifact.

### add\_file

Add a local file to the artifact.

### add\_reference

Add a reference denoted by a URI to the artifact.

Unlike files or directories that you add to an artifact, references are not
uploaded to W\&B. For more information,
see [Track external files](https://docs.wandb.ai/models/artifacts/track-external-files).

By default, the following schemes are supported:

* http(s): The size and digest of the file will be inferred by the
  `Content-Length` and the `ETag` response 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.

For any other scheme, the digest is just a hash of the URI and the size is left
blank.

### checkout

Replace the specified root directory with the contents of the artifact.

WARNING: This will delete all files in `root` that are not included in the
artifact.

### delete

Delete an artifact and its files.

If called on a linked artifact, only the link is deleted, and the
source artifact is unaffected.

Use `Artifact.unlink()` instead of `Artifact.delete()` to remove a
link between a source artifact and a collection.

### download

Download the contents of the artifact to the specified root directory.

Existing files located within `root` are not modified. Explicitly delete `root`
before you call `download` if you want the contents of `root` to exactly match
the artifact.

### file

Download a single file artifact to the directory you specify with `root`.

### files

Iterate over all files stored in this artifact.

### finalize

Finalize the artifact version.

You cannot modify an artifact version once it is finalized because the artifact
is logged as a specific artifact version. Create a new artifact version
to log more data to an artifact. An artifact is automatically finalized
when you log the artifact with `log_artifact`.

### get

Get the WBValue object located at the artifact relative `name`.

### get\_added\_local\_path\_name

Get the artifact relative name of a file added by a local filesystem path.

### get\_entry

Get the entry with the given name.

### get\_path

Deprecated. Use `get_entry(name)`.

### is\_draft

Check if artifact is not saved.

### json\_encode

Returns the artifact encoded to the JSON format.

### link

Link this artifact to a collection.

### logged\_by

Get the W\&B run that originally logged the artifact.

### new\_draft

Create a new draft artifact with the same content as this committed artifact.

Modifying an existing artifact creates a new artifact version known
as an "incremental artifact". The artifact returned can be extended or
modified and logged as a new version.

### new\_file

Open a new temporary file and add it to the artifact.

### remove

Remove an item from the artifact.

### save

Persist any changes made to the artifact.

If currently in a run, that run will log this artifact. If not currently in a
run, a run of type "auto" is created to track this artifact.

### unlink

Unlink this artifact if it is a linked member of an artifact collection.

Raises:
ArtifactNotLoggedError: If the artifact is not logged.
ValueError: If the artifact is not linked to any collection.

### used\_by

Get a list of the runs that have used this artifact and its linked artifacts.

### verify

Verify that the contents of an artifact match the manifest.

All files in the directory are checksummed and the checksums are then
cross-referenced against the artifact's manifest. References are not verified.

### wait

If needed, wait for this artifact to finish logging.
