Filter repository artifacts

Note

New in 2.0.0

In this guide, we’ll walk through strategies to filter lazyscribe.repository.Repository instances based on a version.

In our other documentation on versioning, we discuss how to load different versions of individual artifacts. In 2.0, we have added a feature to filter an entire lazyscribe.repository.Repository, creating a single set of output artifacts.

Datetime filtering

Many times, we are looking for the latest set of artifacts available as of a given date. If you provide lazyscribe.repository.Repository.filter() with a datetime value or string, that’s exactly what it will give you:

from lazyscribe import Repository

repo = Repository(...)
new_repo: Repository = repo.filter("2025-01-01T00:00:00")

new_repo is a read-only repository with a maximum of one artifact version per unique name. That version will be the latest version available as of January 1, 2025.

Explicit versioning

Datetime filtering is nice, but what if you want an explicit list of artifact versions?

from lazyscribe import Repository

repo = Repository(...)
new_repo = repo.filter(
    version=[
        ("my-first-artifact", 1),
        ("my-second-artifact", 0),
        ("my-third-artifact", 2)
    ]
)