Coverage for python/lsst/daf/butler/registry/_config.py : 55%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# This file is part of daf_butler. # # Developed for the LSST Data Management System. # This product includes software developed by the LSST Project # (http://www.lsst.org). # See the COPYRIGHT file at the top-level directory of this distribution # for details of code ownership. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>.
from .interfaces import Database
"""Parses the `db` key of the config and returns the database dialect.
Returns ------- dialect : `str` Dialect found in the connection string. """ conStr = ConnectionStringFactory.fromConfig(self) return conStr.get_backend_name()
"""Returns the `Database` class targeted by configuration values.
The appropriate class is determined by parsing the `db` key to extract the dialect, and then looking that up under the `engines` key of the registry config. """ dialect = self.getDialect() if dialect not in self["engines"]: raise ValueError(f"Connection string dialect has no known aliases. Received: {dialect}") databaseClass = self["engines", dialect] return doImport(databaseClass)
"""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`. """ DatabaseClass = self.getDatabaseClass() return DatabaseClass.makeDefaultUri(root)
"""Replace any occurrences of `BUTLER_ROOT_TAG` in the connection with the given root directory. """ self["db"] = replaceRoot(self["db"], root)
def connectionString(self): """Return the connection string to the underlying database (`sqlalchemy.engine.url.URL`). """ return ConnectionStringFactory.fromConfig(self) |