Source code for koapy.cli.utils.credentials

import os

import click

from koapy.config import (
    config,
    config_from_dict,
    default_user_config_filepath,
    save_config,
    user_config,
)


[docs]def prompt_credentials(): credentials = config.get("koapy.backend.kiwoom_open_api_plus.credentials") default_user_id = credentials["user_id"] default_user_password = credentials["user_password"] default_server = "simulation" if credentials["is_simulation"] else "real" default_cert_password = credentials["cert_password"] user_id = click.prompt("User ID", default=default_user_id) user_password = click.prompt( "User Password", hide_input=True, default=default_user_password, show_default=False, ) is_simulation = ( click.prompt( "Server Type", type=click.Choice(["real", "simulation"], case_sensitive=False), default=default_server, ) == "simulation" ) if is_simulation: cert_password = default_cert_password else: cert_password = click.prompt( "Cert Password", hide_input=True, default=default_cert_password, show_default=False, ) account_passwords = {} if is_simulation: account_passwords["0000000000"] = "0000" else: account_count = click.prompt("Account Count", type=int, default=1) for _ in range(account_count): account_number = click.prompt("Account Number", default="0000000000") account_password = click.prompt( "Account Password", hide_input=True, show_default=False, ) account_passwords[account_number] = account_password credentials = { "user_id": user_id, "user_password": user_password, "cert_password": cert_password, "is_simulation": is_simulation, "account_passwords": account_passwords, } credentials = config_from_dict(credentials) return credentials
[docs]def get_credentials(interactive=False): if not interactive: credentials = config.get("koapy.backend.kiwoom_open_api_plus.credentials") else: credentials = prompt_credentials() save_credentials = ( click.prompt( "Save credentials info into a config file?", type=click.Choice(["y", "n"], case_sensitive=False), default="n", ) == "y" ) if save_credentials: config_path = click.prompt( "Path to save config file", default=default_user_config_filepath ) if os.path.exists(config_path): should_write = ( click.prompt( "The file already exists, overwrite?", type=click.Choice(["y", "n"], case_sensitive=False), default="n", ) == "y" ) else: should_write = True if should_write: user_config.put( "koapy.backend.kiwoom_open_api_plus.credentials", credentials ) save_config(config_path, user_config) return credentials