Use toml instead of ini for broker config
parent
2d688668ff
commit
6a50049af7
|
@ -3,13 +3,14 @@ Broker configuration mgmt.
|
|||
"""
|
||||
import os
|
||||
import configparser
|
||||
import toml
|
||||
import click
|
||||
from ..log import get_logger
|
||||
|
||||
log = get_logger('broker-config')
|
||||
|
||||
_config_dir = click.get_app_dir('piker')
|
||||
_file_name = 'brokers.ini'
|
||||
_file_name = 'brokers.toml'
|
||||
|
||||
|
||||
def _override_config_dir(
|
||||
|
@ -25,18 +26,17 @@ def get_broker_conf_path():
|
|||
|
||||
def load(
|
||||
path: str = None
|
||||
) -> (configparser.ConfigParser, str):
|
||||
) -> (dict, str):
|
||||
"""Load broker config.
|
||||
"""
|
||||
path = path or get_broker_conf_path()
|
||||
config = configparser.ConfigParser()
|
||||
config.read(path)
|
||||
config = toml.load(path)
|
||||
log.debug(f"Read config file {path}")
|
||||
return config, path
|
||||
|
||||
|
||||
def write(
|
||||
config: configparser.ConfigParser,
|
||||
config: dict, # toml config as dict
|
||||
path: str = None,
|
||||
) -> None:
|
||||
"""Write broker config to disk.
|
||||
|
@ -49,6 +49,10 @@ def write(
|
|||
log.debug(f"Creating config dir {_config_dir}")
|
||||
os.makedirs(dirname)
|
||||
|
||||
if not config:
|
||||
raise ValueError(
|
||||
"Watch out you're trying to write a blank config!")
|
||||
|
||||
log.debug(f"Writing config file {path}")
|
||||
with open(path, 'w') as cf:
|
||||
return config.write(cf)
|
||||
return toml.dump(config, cf)
|
||||
|
|
|
@ -56,7 +56,7 @@ def refresh_token_on_err(tries=3):
|
|||
client = api.client
|
||||
|
||||
if not client._has_access.is_set():
|
||||
log.warning("WAITING ON ACCESS LOCK")
|
||||
log.warning("Waiting on access lock")
|
||||
await client._has_access.wait()
|
||||
|
||||
for i in range(1, tries):
|
||||
|
@ -210,7 +210,7 @@ class Client:
|
|||
"""
|
||||
def __init__(
|
||||
self,
|
||||
config: configparser.ConfigParser,
|
||||
config: dict,
|
||||
):
|
||||
self._sess = asks.Session()
|
||||
self.api = _API(self)
|
||||
|
@ -539,7 +539,9 @@ def get_config(
|
|||
"""
|
||||
log.debug("Reloading access config data")
|
||||
conf, path = config.load(config_path)
|
||||
if force_from_user:
|
||||
if force_from_user or (
|
||||
not conf.get('questrade') or not conf['questrade'].get('refresh_token')
|
||||
):
|
||||
log.warn(f"Forcing manual token auth from user")
|
||||
_token_from_user(conf)
|
||||
|
||||
|
@ -554,9 +556,6 @@ async def get_client(
|
|||
"""Spawn a broker client for making requests to the API service.
|
||||
"""
|
||||
conf, path = get_config(config_path)
|
||||
if not conf.has_section('questrade'):
|
||||
raise ValueError(
|
||||
f"No `questrade` section could be found in {path}")
|
||||
log.debug(f"Loaded config:\n{colorize_json(dict(conf['questrade']))}")
|
||||
client = Client(conf)
|
||||
await client.ensure_access(ask_user=ask_user)
|
||||
|
|
Loading…
Reference in New Issue