Extract function and annotate it to satisfy typechecks for _Config._basedir

This commit is contained in:
Jason R. Coombs 2020-12-26 13:01:27 -05:00
parent 574613a892
commit 04ab4dec3b

View File

@ -23,6 +23,11 @@ from base64 import b32decode, b32encode
from errno import ENOENT, EPERM from errno import ENOENT, EPERM
from warnings import warn from warnings import warn
try:
from typing import Union
except ImportError:
pass
import attr import attr
# On Python 2 this will be the backported package. # On Python 2 this will be the backported package.
@ -273,6 +278,11 @@ def _error_about_old_config_files(basedir, generated_files):
raise e raise e
def ensure_text_and_abspath_expanduser_unicode(basedir):
# type: (Union[bytes, str]) -> str
return abspath_expanduser_unicode(ensure_text(basedir))
@attr.s @attr.s
class _Config(object): class _Config(object):
""" """
@ -300,8 +310,8 @@ class _Config(object):
config = attr.ib(validator=attr.validators.instance_of(configparser.ConfigParser)) config = attr.ib(validator=attr.validators.instance_of(configparser.ConfigParser))
portnum_fname = attr.ib() portnum_fname = attr.ib()
_basedir = attr.ib( _basedir = attr.ib(
converter=lambda basedir: abspath_expanduser_unicode(ensure_text(basedir)), converter=ensure_text_and_abspath_expanduser_unicode,
) ) # type: str
config_path = attr.ib( config_path = attr.ib(
validator=attr.validators.optional( validator=attr.validators.optional(
attr.validators.instance_of(FilePath), attr.validators.instance_of(FilePath),