YamlRepoImportBackend

class lsst.daf.butler.YamlRepoImportBackend(stream: IO, registry: SqlRegistry)

Bases: RepoImportBackend

A repository import implementation that reads from a YAML file.

Parameters:
streamio.IO

A readable file-like object.

registrySqlRegistry

The registry datasets will be imported into. Only used to retreive dataset types during construction; all write happen in register and load.

Methods Summary

load(datastore, *[, directory, transfer, ...])

Import information associated with the backend into the given registry and datastore.

register()

Register all runs and dataset types associated with the backend with the Registry the backend was constructed with.

Methods Documentation

load(datastore: Datastore | None, *, directory: ResourcePathExpression | None = None, transfer: str | None = None, skip_dimensions: set | None = None, record_validation_info: bool = True) None

Import information associated with the backend into the given registry and datastore.

This must be run after register, and may be performed inside a transaction.

Parameters:
datastoreDatastore

Datastore to import into. If None, datasets will only be inserted into the Registry (primarily intended for tests).

directoryResourcePathExpression, optional

Directory all dataset paths are relative to.

transferstr, optional

Transfer mode forwarded to Datastore.ingest.

skip_dimensionsset, optional

Dimensions that should be skipped and not imported. This can be useful when importing into a registry that already knows about a specific instrument.

record_validation_infobool, optional

If True, the default, the datastore can record validation information associated with the file. If False the datastore will not attempt to track any information such as checksums or file sizes. This can be useful if such information is tracked in an external system or if the file is to be compressed in place. It is up to the underlying datastore whether this parameter is relevant.

register() None

Register all runs and dataset types associated with the backend with the Registry the backend was constructed with.

These operations cannot be performed inside transactions, unlike those performed by load, and must in general be performed before load.