docs: def login(self, username=None, password=None, token=None):
          # type: (Optional[str], Optional[str], Optional[str]) -> None
          """Login into KE-chain with either username/password or token.
  
          :param basestring username: username for your user from KE-chain
          :param basestring password: password for your user from KE-chain
          :param basestring token: user authentication token retrieved from KE-chain
  
          Examples
          --------
          Using Token Authentication (retrieve user Token from the KE-chain instance)
  
          >>> client = Client()
          >>> client.login(token='<some-super-long-secret-token>')
  
          Using Basic authentications (Username/Password)
  
          >>> client = Client()
          >>> client.login(username='user', password='pw')
  
          >>> client = Client()
          >>> client.login('username','password')
  
          """
          if token:
              self.headers['Authorization'] = 'Token {}'.format(token)
              self.auth = None
          elif username and password:
              self.headers.pop('Authorization', None)
              self.auth = (username, password)