class_docstr: Base class for different types of credentials
  
  Note: While subclasses can define their own `_FIELDS`, they are actually
  assumed to have particular keys by the implementation of (some)
  authenticators. `HTTPRequestsAuthenticator` and its subclasses for example,
  assume `user` and `password` to be valid keys.
class_docstr_tok: ["Base","class","for","different","types","of","credentials","Note",":","While","subclasses","can","define","their","own","`","_FIELDS","`",",","they","are","actually","assumed","to","have","particular","keys","by","the","implementation","of","(","some",")","authenticators",".","`","HTTPRequestsAuthenticator","`","and","its","subclasses","for","example",",","assume","`","user","`","and","`","password","`","to","be","valid","keys","."]
docstr: Parameters
  ----------
  name : str
      Name of the credential, as it would be identified by in the centralized
      storage of credentials
  url : str, optional
      URL string to point users to where to seek obtaining the credentials
  keyring : a keyring
      An object providing (g|s)et_password.  If None, keyring module is used
      as is
  auth_url : str, optional
      URL string this credential is going to be used with. This context
      may be needed to query some credential systems (like git-credential).
  dataset : str, Path or Dataset
      The dataset datalad is operating on with this credential. This may
      be needed for context in order to query local configs.
code: def __init__(
      self, name, url=None, keyring=None, auth_url=None, dataset=None
  ):
      """
      Parameters
      ----------
      name : str
          Name of the credential, as it would be identified by in the centralized
          storage of credentials
      url : str, optional
          URL string to point users to where to seek obtaining the credentials
      keyring : a keyring
          An object providing (g|s)et_password.  If None, keyring module is used
          as is
      auth_url : str, optional
          URL string this credential is going to be used with. This context
          may be needed to query some credential systems (like git-credential).
      dataset : str, Path or Dataset
          The dataset datalad is operating on with this credential. This may
          be needed for context in order to query local configs.
      """
      self.name = name
      self.url = url
      self.set_context(auth_url=auth_url, dataset=dataset)
      self._keyring = keyring or keyring_
      self._prepare()
  
imports: import time
  from ..support.exceptions import AccessDeniedError, CapturedException
  from ..support.keyring_ import keyring
  from ..ui import ui
  from ..utils import auto_repr
  from ..support.network import iso8601_to_epoch
  from datalad import cfg
  from datalad.config import anything2bool
  from datalad.distribution.dataset import Dataset
  from datalad.local.gitcredential import GitCredentialInterface
  from logging import getLogger
label_desc: Use image node_id 1 to create a new Credential object from inherited base classes: object with example: obj = Credential(name, url, keyring, auth_url, dataset)