1+ """LiteCLI configuration helpers with typing."""
2+
13# mypy: ignore-errors
24
5+ from __future__ import annotations
6+
37import errno
48import shutil
59import os
610import platform
711from os .path import expanduser , exists , dirname
12+ from typing import Optional
13+
814from configobj import ConfigObj
915
1016
11- def config_location ():
17+ def config_location () -> str :
1218 if "XDG_CONFIG_HOME" in os .environ :
1319 return "%s/litecli/" % expanduser (os .environ ["XDG_CONFIG_HOME" ])
1420 elif platform .system () == "Windows" :
15- return os .getenv ("USERPROFILE" ) + "\\ AppData\\ Local\\ dbcli\\ litecli\\ "
21+ userprofile = os .getenv ("USERPROFILE" , "" )
22+ return userprofile + "\\ AppData\\ Local\\ dbcli\\ litecli\\ "
1623 else :
1724 return expanduser ("~/.config/litecli/" )
1825
1926
20- def load_config (usr_cfg , def_cfg = None ):
27+ def load_config (usr_cfg : str , def_cfg : Optional [ str ] = None ) -> ConfigObj :
2128 cfg = ConfigObj ()
22- cfg .merge (ConfigObj (def_cfg , interpolation = False ))
29+ if def_cfg :
30+ cfg .merge (ConfigObj (def_cfg , interpolation = False ))
2331 cfg .merge (ConfigObj (expanduser (usr_cfg ), interpolation = False , encoding = "utf-8" ))
2432 cfg .filename = expanduser (usr_cfg )
25-
2633 return cfg
2734
2835
29- def ensure_dir_exists (path ) :
36+ def ensure_dir_exists (path : str ) -> None :
3037 parent_dir = expanduser (dirname (path ))
3138 try :
3239 os .makedirs (parent_dir )
@@ -36,27 +43,25 @@ def ensure_dir_exists(path):
3643 raise
3744
3845
39- def write_default_config (source , destination , overwrite = False ):
46+ def write_default_config (source : str , destination : str , overwrite : bool = False ) -> None :
4047 destination = expanduser (destination )
4148 if not overwrite and exists (destination ):
4249 return
43-
4450 ensure_dir_exists (destination )
45-
4651 shutil .copyfile (source , destination )
4752
4853
49- def upgrade_config (config , def_config ) :
54+ def upgrade_config (config : str , def_config : str ) -> None :
5055 cfg = load_config (config , def_config )
5156 cfg .write ()
5257
5358
54- def get_config (liteclirc_file = None ):
59+ def get_config (liteclirc_file : Optional [ str ] = None ) -> ConfigObj :
5560 from litecli import __file__ as package_root
5661
5762 package_root = os .path .dirname (package_root )
5863
59- liteclirc_file = liteclirc_file or "%sconfig" % config_location ()
64+ liteclirc_file = liteclirc_file or f" { config_location ()} config"
6065
6166 default_config = os .path .join (package_root , "liteclirc" )
6267 try :
0 commit comments