Resolve circular import by moving get_config_dir
This commit is contained in:
parent
953cad5023
commit
d4f8acb3ce
|
@ -1,3 +1,7 @@
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from os.path import join, expanduser
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
__version__ = '0.37.0'
|
__version__ = '0.37.0'
|
||||||
|
@ -9,3 +13,22 @@ DEFAULT_INSTANCE = 'https://mastodon.social'
|
||||||
|
|
||||||
CLIENT_NAME = 'toot - a Mastodon CLI client'
|
CLIENT_NAME = 'toot - a Mastodon CLI client'
|
||||||
CLIENT_WEBSITE = 'https://github.com/ihabunek/toot'
|
CLIENT_WEBSITE = 'https://github.com/ihabunek/toot'
|
||||||
|
|
||||||
|
TOOT_CONFIG_DIR_NAME = "toot"
|
||||||
|
|
||||||
|
|
||||||
|
def get_config_dir():
|
||||||
|
"""Returns the path to toot config directory"""
|
||||||
|
|
||||||
|
# On Windows, store the config in roaming appdata
|
||||||
|
if sys.platform == "win32" and "APPDATA" in os.environ:
|
||||||
|
return join(os.getenv("APPDATA"), TOOT_CONFIG_DIR_NAME)
|
||||||
|
|
||||||
|
# Respect XDG_CONFIG_HOME env variable if set
|
||||||
|
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||||
|
if "XDG_CONFIG_HOME" in os.environ:
|
||||||
|
config_home = expanduser(os.environ["XDG_CONFIG_HOME"])
|
||||||
|
return join(config_home, TOOT_CONFIG_DIR_NAME)
|
||||||
|
|
||||||
|
# Default to ~/.config/toot/
|
||||||
|
return join(expanduser("~"), ".config", TOOT_CONFIG_DIR_NAME)
|
||||||
|
|
|
@ -1,44 +1,22 @@
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import sys
|
|
||||||
|
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from os.path import dirname, join, expanduser
|
from os.path import dirname, join
|
||||||
|
|
||||||
from toot import User, App
|
from toot import User, App, get_config_dir
|
||||||
from toot.exceptions import ConsoleError
|
from toot.exceptions import ConsoleError
|
||||||
from toot.output import print_out
|
from toot.output import print_out
|
||||||
|
|
||||||
|
|
||||||
TOOT_CONFIG_DIR_NAME = "toot"
|
|
||||||
TOOT_CONFIG_FILE_NAME = "config.json"
|
TOOT_CONFIG_FILE_NAME = "config.json"
|
||||||
|
|
||||||
|
|
||||||
def get_config_dir():
|
|
||||||
"""Returns the path to toot config directory"""
|
|
||||||
|
|
||||||
# On Windows, store the config in roaming appdata
|
|
||||||
if sys.platform == "win32" and "APPDATA" in os.environ:
|
|
||||||
return join(os.getenv("APPDATA"), TOOT_CONFIG_DIR_NAME)
|
|
||||||
|
|
||||||
# Respect XDG_CONFIG_HOME env variable if set
|
|
||||||
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
|
||||||
if "XDG_CONFIG_HOME" in os.environ:
|
|
||||||
config_home = expanduser(os.environ["XDG_CONFIG_HOME"])
|
|
||||||
return join(config_home, TOOT_CONFIG_DIR_NAME)
|
|
||||||
|
|
||||||
# Default to ~/.config/toot/
|
|
||||||
return join(expanduser("~"), ".config", TOOT_CONFIG_DIR_NAME)
|
|
||||||
|
|
||||||
|
|
||||||
def get_config_file_path():
|
def get_config_file_path():
|
||||||
"""Returns the path to toot config file."""
|
"""Returns the path to toot config file."""
|
||||||
return join(get_config_dir(), TOOT_CONFIG_FILE_NAME)
|
return join(get_config_dir(), TOOT_CONFIG_FILE_NAME)
|
||||||
|
|
||||||
|
|
||||||
CONFIG_FILE = get_config_file_path()
|
|
||||||
|
|
||||||
|
|
||||||
def user_id(user):
|
def user_id(user):
|
||||||
return "{}@{}".format(user.username, user.instance)
|
return "{}@{}".format(user.username, user.instance)
|
||||||
|
|
||||||
|
@ -63,15 +41,18 @@ def make_config(path):
|
||||||
|
|
||||||
|
|
||||||
def load_config():
|
def load_config():
|
||||||
if not os.path.exists(CONFIG_FILE):
|
path = get_config_file_path()
|
||||||
make_config(CONFIG_FILE)
|
|
||||||
|
|
||||||
with open(CONFIG_FILE) as f:
|
if not os.path.exists(path):
|
||||||
|
make_config(path)
|
||||||
|
|
||||||
|
with open(path) as f:
|
||||||
return json.load(f)
|
return json.load(f)
|
||||||
|
|
||||||
|
|
||||||
def save_config(config):
|
def save_config(config):
|
||||||
with open(CONFIG_FILE, 'w') as f:
|
path = get_config_file_path()
|
||||||
|
with open(path, "w") as f:
|
||||||
return json.dump(config, f, indent=True, sort_keys=True)
|
return json.dump(config, f, indent=True, sort_keys=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import sys
|
||||||
import textwrap
|
import textwrap
|
||||||
|
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
|
from toot import settings
|
||||||
from toot.entities import Instance, Notification, Poll, Status
|
from toot.entities import Instance, Notification, Poll, Status
|
||||||
from toot.utils import get_text, parse_html
|
from toot.utils import get_text, parse_html
|
||||||
from toot.wcstring import wc_wrap
|
from toot.wcstring import wc_wrap
|
||||||
|
@ -118,8 +119,7 @@ def use_ansi_color():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Check in settings
|
# Check in settings
|
||||||
from toot.settings import get_setting
|
color = settings.get_setting("common.color", bool)
|
||||||
color = get_setting("common.color", bool)
|
|
||||||
if color is not None:
|
if color is not None:
|
||||||
return color
|
return color
|
||||||
|
|
||||||
|
@ -128,7 +128,6 @@ def use_ansi_color():
|
||||||
|
|
||||||
|
|
||||||
def print_out(*args, **kwargs):
|
def print_out(*args, **kwargs):
|
||||||
from toot import settings
|
|
||||||
if not settings.get_quiet():
|
if not settings.get_quiet():
|
||||||
args = [colorize(a) if use_ansi_color() else strip_tags(a) for a in args]
|
args = [colorize(a) if use_ansi_color() else strip_tags(a) for a in args]
|
||||||
print(*args, **kwargs)
|
print(*args, **kwargs)
|
||||||
|
|
|
@ -4,7 +4,7 @@ import sys
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from os.path import exists, join
|
from os.path import exists, join
|
||||||
from tomlkit import parse
|
from tomlkit import parse
|
||||||
from toot.config import get_config_dir
|
from toot import get_config_dir
|
||||||
from typing import Optional, Type
|
from typing import Optional, Type
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,14 +15,13 @@ def get_settings_path():
|
||||||
return join(get_config_dir(), TOOT_SETTINGS_FILE_NAME)
|
return join(get_config_dir(), TOOT_SETTINGS_FILE_NAME)
|
||||||
|
|
||||||
|
|
||||||
SETTINGS_FILE = get_settings_path()
|
|
||||||
|
|
||||||
|
|
||||||
def load_settings() -> dict:
|
def load_settings() -> dict:
|
||||||
if not exists(SETTINGS_FILE):
|
path = get_settings_path()
|
||||||
|
|
||||||
|
if not exists(path):
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
with open(SETTINGS_FILE) as f:
|
with open(path) as f:
|
||||||
return parse(f.read())
|
return parse(f.read())
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue