class_docstr: Base class for database framework wrappers.
  
  Attributes
  ----------
  host: str
     It can be either:
        1. Known hostname or IP address in which database server resides.
        2. URI: A database framework specific connection string.
  name: str
     Name of database containing experiments.
  port: int
     Port that database server listens to for requests.
  username: str
      Name of user with write/read permissions to database with name `name`.
  password: str
      Secret phrase of user, `username`.
docstr: Init method, see attributes of :class:`Database`.
docstr_tok: ["Init","method",",","see","attributes","of",":","class",":","`","Database","`","."]
code: def __init__(
      self,
      host=None,
      name=None,
      port=None,
      username=None,
      password=None,
      **kwargs,
  ):
      """Init method, see attributes of :class:`Database`."""
      defaults = self.get_defaults()
      host = (
          defaults.get("host", None)
          if host is None or host == ""
          else host
      )
      name = (
          defaults.get("name", None)
          if name is None or name == ""
          else name
      )
  
      self.host = host
      self.name = name
      self.port = port
      self.username = username
      self.password = password
      self.options = kwargs
  
      self._db = None
      self._conn = None
      self.initiate_connection()
  
imports: import logging
  from abc import abstractmethod, abstractproperty
  from orion.core.utils import Factory, GenericFactory
label_desc: Use image node_id 1 to create a new Database object  with example: obj = Database(host, name, port, username, password)