Source code for yodapy.utils.creds
# -*- coding: utf-8 -*-
from __future__ import (
absolute_import,
division,
print_function,
unicode_literals,
)
import json
import os
import warnings
from yodapy.utils.files import (
CREDENTIALS_FILE,
FILE_CONTENT,
check_file_permissions,
)
[docs]def set_credentials_file(data_source, username, token):
"""
Sets and saves the credential file for a data source.
Args:
data_source (str): Data source string. Currently only supports 'ooi'.
username (str): Username value for the specified data_source.
token (str): Token or password value for the specified data_source.
"""
if data_source:
data_source = data_source.lower()
if data_source in ["ooi"]:
if username and token:
if check_file_permissions():
with open(CREDENTIALS_FILE, "w") as f:
FILE_CONTENT[CREDENTIALS_FILE][data_source] = {
"username": username, # noqa
"api_key": token,
} # noqa
f.write(json.dumps(FILE_CONTENT[CREDENTIALS_FILE]))
else: # pragma: no cover
warnings.warn(
"You don't have a read-write permission "
"to your home ('~') directory!"
)
else: # pragma: no cover
warnings.warn("Please enter your username and token!")
else: # pragma: no cover
warnings.warn(
f"Datasource: {data_source} is not valid. Available: ooi"
)
else: # pragma: no cover
warnings.warn("Please specify a data_source. Available: ooi")