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: Get a field of the credential
code: def get(self, f, default=None):
      """Get a field of the credential"""
      if f not in self._FIELDS:
          raise ValueError(
              "Unknown field %s. Known are: %s"
              % (f, self._FIELDS.keys())
          )
      try:
          return self._get_field_value(f)
      except:  # MIH: what could even happen? _keyring not a dict?
          return default
  
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 11 for calling the Credential obj's underlying member method code with example usage: obj.get(f, default) and returns: self, default