.. py:currentmodule:: lsst.pex.config ################################################### Registry and RegistryField for configuring subtasks ################################################### Example of a `RegistryField` created from a `Registry` object and use of both the `Registry.register` method and the `registerConfigurable` decorator:: psfDeterminerRegistry = pexConfig.makeRegistry("""A registry of PSF determiner factories""") class PcaPsfDeterminerConfig(pexConfig.Config): spatialOrder = pexConfig.Field( "spatial order for PSF kernel creation", int, 2) [...] @pexConfig.registerConfigurable("pca", psfDeterminerRegistry) class PcaPsfDeterminer(object): ConfigClass = PcaPsfDeterminerConfig # associate this Configurable class with its Config class for use # by the registry def __init__(self, config, schema=None): [...] def determinePsf(self, exposure, psfCandidateList, metadata=None): [...] psfDeterminerRegistry.register("shapelet", ShapeletPsfDeterminer) class MeasurePsfConfig(pexConfig.Config): psfDeterminer = measAlg.psfDeterminerRegistry.makeField("PSF determination algorithm", default="pca")