Source code for tamr_client.auth

import base64

import requests


def _basic_auth_str(username, password):
    auth = f"{username}:{password}"
    encoded = base64.b64encode(auth.encode("latin1"))
    return "BasicCreds " + requests.utils.to_native_string(encoded.strip())


[docs]class UsernamePasswordAuth(requests.auth.HTTPBasicAuth): """Provides username/password authentication for Tamr. Sets the `Authorization` HTTP header with Tamr's custom `BasicCreds` format. Args: username: password: Example: >>> import tamr_client as tc >>> auth = tc.UsernamePasswordAuth('my username', 'my password') >>> s = tc.Session(auth) """ def __init__(self, username: str, password: str): super().__init__(username, password) def __call__(self, r): r.headers["Authorization"] = _basic_auth_str(self.username, self.password) return r def __repr__(self): # intentionally leave out password (potentially sensitive) return ( f"{type(self).__qualname__}(" f"username={repr(self.username)}" f"password=<redacted>)" )