code: def _convert_credentials(token_url, username=None, password=None, refresh_token=None):
      
      if username and password:
          data = {'grant_type': 'password', 'username': username, 'password': password}
      elif refresh_token:
          data = {'grant_type': 'refresh_token', 'refresh_token': refresh_token}
      else:
          raise NotImplementedError()
  
      response = requests.post(token_url, data=data)
      if response.status_code == 401:
          raise Unauthorized('401 Client Error: Unauthorized')
      elif response.status_code == 200:
          d = response.json()
          expiry = datetime.utcnow() + timedelta(seconds=d['expires_in'])
          return Credentials(access_token=d['access_token'],
                             refresh_token=d['refresh_token'],
                             expiry=expiry)
      else:
          raise YamcsError('{} Server Error'.format(response.status_code))
docs: Converts username/password credentials to token credentials by
      using Yamcs as the authenticaton server.