RegistryConfig¶
-
class
lsst.daf.butler.registry.RegistryConfig(other=None, validate=True, mergeDefaults=True, searchPaths=None)¶ Bases:
lsst.daf.butler.ConfigSubsetAttributes Summary
componentconnectionStringReturn the connection string to the underlying database ( sqlalchemy.engine.url.URL).defaultConfigFileincludeKeyrequiredKeysresourcesPackageMethods Summary
asArray(name)Get a value as an array. clear()copy()defaultSearchPaths()Read the environment to determine search paths to use for global defaults. dump(output, format)Writes the config to an output stream. dumpToUri(uri, str], updateFile, …)Writes the config to location pointed to by given URI. fromString(string, format)Create a new Config instance from a serialized string. fromYaml(string)Create a new Config instance from a YAML string. get(k[,d])getDatabaseClass()Returns the Databaseclass targeted by configuration values.getDialect()Parses the dbkey of the config and returns the database dialect.items()keys()makeDefaultDatabaseUri(root)Return a default ‘db’ URI for the registry configured here that is appropriate for a new empty repository with the given root. merge(other)Like Config.update, but will add keys & values from other that DO NOT EXIST in self. nameTuples([topLevelOnly])Get tuples representing the name hierarchies of all keys. names([topLevelOnly, delimiter])Get a delimited name of all the keys in the hierarchy. pop(k[,d])If key is not found, d is returned if given, otherwise KeyError is raised. popitem()as a 2-tuple; but raise KeyError if D is empty. ppprint()helper function for debugging, prints a config out in a readable way in the debugger. replaceRoot(root, ButlerURI]])Replace any occurrences of BUTLER_ROOT_TAGin the connection with the given root directory.setdefault(k[,d])toDict()Convert a Configto a standalone hierarchicaldict.update(other)Like dict.update, but will add or modify keys in nested dicts, instead of overwriting the nested dict entirely. updateParameters(configType, config, full[, …])Generic helper function for updating specific config parameters. validate()Check that mandatory keys are present in this configuration. values()Attributes Documentation
-
component= 'registry'¶
-
connectionString¶ Return the connection string to the underlying database (
sqlalchemy.engine.url.URL).
-
defaultConfigFile= 'registry.yaml'¶
-
includeKey= 'includeConfigs'¶
-
requiredKeys= ('db',)¶
-
resourcesPackage= 'lsst.daf.butler'¶
Methods Documentation
-
asArray(name)¶ Get a value as an array.
May contain one or more elements.
Parameters: - name :
str Key to use to retrieve value.
Returns: - array :
collections.abc.Sequence The value corresponding to name, but guaranteed to be returned as a list with at least one element. If the value is a
Sequence(and not astr) the value itself will be returned, else the value will be the first element.
- name :
-
clear() → None. Remove all items from D.¶
-
copy()¶
-
classmethod
defaultSearchPaths()¶ Read the environment to determine search paths to use for global defaults.
Global defaults, at lowest priority, are found in the
configdirectory of the butler source tree. Additional defaults can be defined using the environment variable$DAF_BUTLER_CONFIG_PATHSwhich is a PATH-like variable where paths at the front of the list have priority over those later.Returns: - paths :
list Returns a list of paths to search. The returned order is in priority with the highest priority paths first. The butler config configuration resources will not be included here but will always be searched last.
Notes
The environment variable is split on the standard
:path separator. This currently makes it incompatible with usage of URIs.- paths :
-
dump(output: Optional[IO] = None, format: str = 'yaml') → Optional[str]¶ Writes the config to an output stream.
Parameters: Returns:
-
dumpToUri(uri: Union[lsst.daf.butler.core._butlerUri._butlerUri.ButlerURI, str], updateFile: bool = True, defaultFileName: str = 'butler.yaml', overwrite: bool = True) → None¶ Writes the config to location pointed to by given URI.
Currently supports ‘s3’ and ‘file’ URI schemes.
Parameters: - uri: `str` or `ButlerURI`
URI of location where the Config will be written.
- updateFile : bool, optional
If True and uri does not end on a filename with extension, will append
defaultFileNameto the target uri. True by default.- defaultFileName : bool, optional
The file name that will be appended to target uri if updateFile is True and uri does not end on a file with an extension.
- overwrite : bool, optional
If True the configuration will be written even if it already exists at that location.
-
classmethod
fromString(string: str, format: str = 'yaml') → lsst.daf.butler.core.config.Config¶ Create a new Config instance from a serialized string.
Parameters: Returns: - c :
Config Newly-constructed Config.
- c :
-
classmethod
fromYaml(string: str) → lsst.daf.butler.core.config.Config¶ Create a new Config instance from a YAML string.
Parameters: - string :
str String containing content in YAML format
Returns: - c :
Config Newly-constructed Config.
- string :
-
get(k[, d]) → D[k] if k in D, else d. d defaults to None.¶
-
getDatabaseClass() → Type[Database]¶ Returns the
Databaseclass targeted by configuration values.The appropriate class is determined by parsing the
dbkey to extract the dialect, and then looking that up under theengineskey of the registry config.
-
getDialect() → str¶ Parses the
dbkey of the config and returns the database dialect.Returns: - dialect :
str Dialect found in the connection string.
- dialect :
-
items() → a set-like object providing a view on D's items¶
-
keys() → a set-like object providing a view on D's keys¶
-
makeDefaultDatabaseUri(root: str) → Optional[str]¶ Return a default ‘db’ URI for the registry configured here that is appropriate for a new empty repository with the given root.
Parameters: - root :
str Filesystem path to the root of the data repository.
Returns: - uri :
str URI usable as the ‘db’ string in a
RegistryConfig.
- root :
-
merge(other)¶ Like Config.update, but will add keys & values from other that DO NOT EXIST in self.
Keys and values that already exist in self will NOT be overwritten.
Parameters: - other :
dictorConfig Source of configuration:
- other :
-
nameTuples(topLevelOnly=False)¶ Get tuples representing the name hierarchies of all keys.
The tuples returned from this method are guaranteed to be usable to access items in the configuration object.
Parameters: - topLevelOnly :
bool, optional If False, the default, a full hierarchy of names is returned. If True, only the top level are returned.
Returns: - topLevelOnly :
-
names(topLevelOnly=False, delimiter=None)¶ Get a delimited name of all the keys in the hierarchy.
The values returned from this method are guaranteed to be usable to access items in the configuration object.
Parameters: - topLevelOnly :
bool, optional If False, the default, a full hierarchy of names is returned. If True, only the top level are returned.
- delimiter :
str, optional Delimiter to use when forming the keys. If the delimiter is present in any of the keys, it will be escaped in the returned names. If
Nonegiven a delimiter will be automatically provided. The delimiter can not be alphanumeric.
Returns: Raises: - ValueError:
The supplied delimiter is alphanumeric.
Notes
This is different than the built-in method
dict.keys, which will return only the first level keys.- topLevelOnly :
-
pop(k[, d]) → v, remove specified key and return the corresponding value.¶ If key is not found, d is returned if given, otherwise KeyError is raised.
-
popitem() → (k, v), remove and return some (key, value) pair¶ as a 2-tuple; but raise KeyError if D is empty.
-
ppprint()¶ helper function for debugging, prints a config out in a readable way in the debugger.
use: pdb> print(myConfigObject.ppprint())
Returns: - s :
str A prettyprint formatted string representing the config
- s :
-
replaceRoot(root: Optional[Union[str, ButlerURI]]) → None¶ Replace any occurrences of
BUTLER_ROOT_TAGin the connection with the given root directory.Parameters: - root :
str,ButlerURI, orNone String to substitute for
BUTLER_ROOT_TAG. PassingNonehere is allowed only as a convenient way to raise an exception (ValueError).
Raises: - ValueError
Raised if
rootis not set but a value is required.
- root :
-
setdefault(k[, d]) → D.get(k,d), also set D[k]=d if k not in D¶
-
toDict()¶ Convert a
Configto a standalone hierarchicaldict.Returns: Notes
This can be useful when passing a Config to some code that expects native Python types.
-
update(other)¶ Like dict.update, but will add or modify keys in nested dicts, instead of overwriting the nested dict entirely.
For example, for the given code: foo = {“a”: {“b”: 1}} foo.update({“a”: {“c”: 2}})
Parameters: - other :
dictorConfig Source of configuration:
- If foo is a dict, then after the update foo == {“a”: {“c”: 2}}
- But if foo is a Config, then after the update foo == {“a”: {“b”: 1, “c”: 2}}
- other :
-
static
updateParameters(configType, config, full, toUpdate=None, toCopy=None, overwrite=True)¶ Generic helper function for updating specific config parameters.
Allows for named parameters to be set to new values in bulk, and for other values to be set by copying from a reference config.
Assumes that the supplied config is compatible with
configTypeand will attach the updated values to the supplied config by looking for the related component key. It is assumed thatconfigandfullare from the same part of the configuration hierarchy.Parameters: - configType :
ConfigSubset Config type to use to extract relevant items from
config.- config :
Config A
Configto update. Only the subset understood by the suppliedConfigSubsetwill be modified. Default values will not be inserted and the content will not be validated since mandatory keys are allowed to be missing until populated later by merging.- full :
Config A complete config with all defaults expanded that can be converted to a
configType. Read-only and will not be modified by this method. Values are read from here iftoCopyis defined.Repository-specific options that should not be obtained from defaults when Butler instances are constructed should be copied from
fulltoconfig.- toUpdate :
dict, optional A
dictdefining the keys to update and the new value to use. The keys and values can be any supported byConfigassignment.- toCopy :
tuple, optional tupleof keys whose values should be copied fromfullintoconfig.- overwrite :
bool, optional If
False, do not modify a value inconfigif the key already exists. Default is always to overwrite.
Raises: - ValueError
Neither
toUpdatenottoCopywere defined.
- configType :
-
validate()¶ Check that mandatory keys are present in this configuration.
Ignored if
requiredKeysis empty.
-
values() → an object providing a view on D's values¶
-