class_docstr: Credential which represent a sequence of Credentials where front one is exposed to user
      
class_docstr_tok: ["Credential","which","represent","a","sequence","of","Credentials","where","front","one","is","exposed","to","user"]
code: def _prepare(self):
      assert (
          len(self._CREDENTIAL_CLASSES) > 1
      ), "makes sense only if there is > 1 credential"
      assert (
          len(self._CREDENTIAL_CLASSES)
          == len(self._CREDENTIAL_ADAPTERS) + 1
      ), "there should be 1 less of adapter than _CREDENTIAL_CLASSES"
  
      for C in self._CREDENTIAL_CLASSES:
          assert issubclass(C, Credential), (
              "%s must be a subclass of Credential" % C
          )
  
      # First credential should bear the name and url
      credentials = [
          self._CREDENTIAL_CLASSES[0](
              self.name, url=self.url, keyring=self._keyring
          )
      ]
      # and we just reuse its _FIELDS for _ask_field_value etc
      self._FIELDS = credentials[0]._FIELDS
      # the rest with index suffix, but storing themselves in the same keyring
      for iC, C in enumerate(self._CREDENTIAL_CLASSES[1:]):
          credentials.append(
              C(
                  name="%s:%d" % (self.name, iC + 1),
                  url=None,
                  keyring=self._keyring,
              )
          )
      self._credentials = credentials
  
      super(CompositeCredential, 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 for calling the CompositeCredential obj's underlying member method code with example usage: obj._prepare() without return types