def get_storage(): create_config_directory() with open(REFRESH_FILE, 'rb') as fp: storage = pickle.load(fp) access_token = storage['access_token'] expires_at = storage['expires_at'] refresh_token = storage['refresh_token'] return access_token, expires_at, refresh_token
def update_storage(access_token, expires_in, refresh_token): if not (access_token and expires_in and refresh_token): raise AuthenticationException( "Authentication failed and returned an empty token.") cur_time = int(time.time()) create_config_directory() with open(REFRESH_FILE, 'wb') as fp: pickle.dump({ 'access_token': access_token, 'expires_at': cur_time + expires_in, 'refresh_token': refresh_token }, fp)
def patch_requests(): """ Customize the cacerts.pem file that requests uses. Automatically updates the cert file if the contents are different. """ config.create_config_directory() ca_certs_file = config.CERT_FILE ca_certs_contents = requests.__loader__.get_data('requests/cacert.pem') should_write_certs = True if os.path.isfile(ca_certs_file): with open(ca_certs_file, 'rb') as f: existing_certs = f.read() if existing_certs != ca_certs_contents: should_write_certs = True print("Updating local SSL certificates") else: should_write_certs = False if should_write_certs: with open(ca_certs_file, 'wb') as f: f.write(ca_certs_contents) os.environ['REQUESTS_CA_BUNDLE'] = ca_certs_file