Source code for rastervision.pipeline.pipeline_config

from typing import TYPE_CHECKING
from os.path import join

from rastervision.pipeline.config import Config, Field
from rastervision.pipeline.config import register_config

if TYPE_CHECKING:
    from typing import Self
    from rastervision.pipeline.pipeline import Pipeline


[docs]@register_config('pipeline') class PipelineConfig(Config): """Base class for configuring :class:`Pipelines <.Pipeline>`. This should be subclassed to configure new Pipelines. """ root_uri: str | None = Field( None, description='The root URI for output generated by the pipeline') rv_config: dict | None = Field( None, description='Used to store serialized RVConfig so pipeline can ' 'run in remote environment with the local RVConfig. This should ' 'not be set explicitly by users -- it is only used by the runner ' 'when running a remote pipeline.') plugin_versions: dict[str, int] | None = Field( None, description= ('Used to store a mapping of plugin module paths to the latest ' 'version number. This should not be set explicitly by users -- it is set ' 'automatically when serializing and saving the config to disk.'))
[docs] def get_config_uri(self) -> str: """Get URI of serialized version of this PipelineConfig.""" return join(self.root_uri, 'pipeline-config.json')
[docs] def build(self, tmp_dir: str) -> 'Pipeline': """Return a pipeline based on this configuration. Subclasses should override this to return an instance of the corresponding subclass of Pipeline. Args: tmp_dir: root of any temporary directory to pass to pipeline """ from rastervision.pipeline.pipeline import Pipeline # noqa return Pipeline(self, tmp_dir)
def dict(self, with_rv_metadata: bool = True, **kwargs) -> dict: # override to have with_rv_metadata=True by default cfg_dict = super().dict(with_rv_metadata=with_rv_metadata, **kwargs) return cfg_dict
[docs] @classmethod def from_dict(cls, cfg_dict: dict) -> 'Self': # override to retain plugin_versions from rastervision.pipeline.config import build_config, upgrade_config cfg_dict: dict = upgrade_config(cfg_dict) cfg = build_config(cfg_dict) return cfg