"""Utilities for certificate management.""" import os certifi_available = False certifi_where = None try: from certifi import where as certifi_where certifi_available = True except ImportError: pass custom_ca_locater_available = False custom_ca_locater_where = None try: from ca_certs_locater import get as custom_ca_locater_where custom_ca_locater_available = True except ImportError: pass BUILTIN_CA_CERTS = os.path.join( os.path.dirname(os.path.abspath(__file__)), "cacerts.txt" ) def where(): env = os.environ.get("HTTPLIB2_CA_CERTS") if env is not None: if os.path.isfile(env): return env else: raise RuntimeError("Environment variable HTTPLIB2_CA_CERTS not a valid file") if custom_ca_locater_available: return custom_ca_locater_where() if certifi_available: return certifi_where() return BUILTIN_CA_CERTS if __name__ == "__main__": print(where())