lsst.obs.base  20.0.0-60-gad89340+e4dd172200
Public Member Functions | Public Attributes | List of all members
lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler Class Reference
Inheritance diagram for lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler:
lsst.obs.base.gen2to3.repoWalker.handlers.IgnoreHandler lsst.obs.base.gen2to3.repoWalker.handlers.ParsedPathElementHandler lsst.obs.base.gen2to3.repoWalker.handlers.SkipHandler lsst.obs.base.gen2to3.repoWalker.handlers.SubdirectoryHandler lsst.obs.base.gen2to3.repoWalker.handlers.TargetFileHandler lsst.obs.base.gen2to3.repoWalker.handlers.MultiExtensionFileHandler

Public Member Functions

def __init__ (self)
 
bool isForFiles (self)
 
bool __call__ (self, str path, str name, Mapping[DatasetType, Mapping[Optional[str], List[FileDataset]]] datasets, *Callable[[DataCoordinate], bool] predicate)
 
int rank (self)
 
Tuple[Optional[DataCoordinate], Optional[str]] translate (self, dict dataId2, *bool partial=False)
 
def __lt__ (self, PathElementHandler other)
 

Public Attributes

 lastDataId2
 

Detailed Description

An interface for objects that handle a single path element (directory or
file) in a Gen2 data repository.

Handlers are added to a `DirectoryScanner` instance, which then calls them
until one succeeds when it processes each element in a directory.

Definition at line 52 of file scanner.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler.__init__ (   self)

Definition at line 59 of file scanner.py.

Member Function Documentation

◆ __call__()

bool lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler.__call__ (   self,
str  path,
str  name,
Mapping[DatasetType, Mapping[Optional[str], List[FileDataset]]]  datasets,
*Callable[[DataCoordinate], bool]  predicate 
)
Apply the handler to a file path.

Parameters
----------
path : `str`
    Full path of the file or directory.
name : `str`
    Local name of the file or directory within its parent directory.
datasets : `dict` [`DatasetType`, `dict` ]
    Dictionary that found datasets should be added to.  Nested dicts
    are keyed by either `None` (for most datasets) or a `str`
    "CALIBDATE" for calibration datasets.
predicate : `~collections.abc.Callable`
    A callable taking a single `DataCoordinate` argument and returning
    `bool`, indicating whether that (Gen3) data ID represents one
    that should be included in the scan.'

Returns
-------
matched : `bool`
    `True` if this handler was a match for the given path and no other
    handlers need to be tried on it, `False` otherwise.

Reimplemented in lsst.obs.base.gen2to3.repoWalker.handlers.ParsedPathElementHandler, and lsst.obs.base.gen2to3.repoWalker.handlers.IgnoreHandler.

Definition at line 76 of file scanner.py.

◆ __lt__()

def lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler.__lt__ (   self,
PathElementHandler  other 
)
Handlers are sorted by rank to reduce the possibility that more
flexible handlers will have a chance to match something they shouldn't.

Definition at line 140 of file scanner.py.

◆ isForFiles()

bool lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler.isForFiles (   self)
Report what kind of path element this object handlers.

Returns
-------
Return `True` if this handler is for file entries, or `False` if it
is for directories.

Reimplemented in lsst.obs.base.gen2to3.repoWalker.handlers.TargetFileHandler, lsst.obs.base.gen2to3.repoWalker.handlers.SubdirectoryHandler, lsst.obs.base.gen2to3.repoWalker.handlers.SkipHandler, and lsst.obs.base.gen2to3.repoWalker.handlers.IgnoreHandler.

Definition at line 65 of file scanner.py.

◆ rank()

int lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler.rank (   self)
Return a rough indication of how flexible this handler is in terms
of the path element names it can match.

Handlers that match a constant path element should always return zero.

Reimplemented in lsst.obs.base.gen2to3.repoWalker.handlers.ParsedPathElementHandler, and lsst.obs.base.gen2to3.repoWalker.handlers.IgnoreHandler.

Definition at line 106 of file scanner.py.

◆ translate()

Tuple[Optional[DataCoordinate], Optional[str]] lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler.translate (   self,
dict  dataId2,
*bool   partial = False 
)
Translate the given data ID from Gen2 to Gen3.

The default implementation returns `None`.  Subclasses that are able
to translate data IDs should override this method.

Parameters
----------
dataId2 : `dict`
    Gen2 data ID.
partial : `bool`, optional
    If `True` (`False` is default) this is a partial data ID for some
    dataset, and missing keys are expected.

Returns
-------
dataId3 : `lsst.daf.butler.DataCoordinate` or `None`
    A Gen3 data ID, or `None` if this handler cannot translate data
    IDs.
calibDate : `str` or `None`
    A Gen2 calibration "CALIBDATE" value, or `None` if there was no
    such value in the template.

Reimplemented in lsst.obs.base.gen2to3.repoWalker.handlers.MultiExtensionFileHandler, lsst.obs.base.gen2to3.repoWalker.handlers.TargetFileHandler, and lsst.obs.base.gen2to3.repoWalker.handlers.SubdirectoryHandler.

Definition at line 114 of file scanner.py.

Member Data Documentation

◆ lastDataId2

lsst.obs.base.gen2to3.repoWalker.scanner.PathElementHandler.lastDataId2

Definition at line 60 of file scanner.py.


The documentation for this class was generated from the following file: