diff --git a/fmtr/tools/__init__.py b/fmtr/tools/__init__.py index 203c809..9476a08 100644 --- a/fmtr/tools/__init__.py +++ b/fmtr/tools/__init__.py @@ -16,7 +16,6 @@ import fmtr.tools.platform_tools as platform import fmtr.tools.random_tools as random import fmtr.tools.string_tools as string -import fmtr.tools.spaces_tools as spaces from fmtr.tools.import_tools import MissingExtraMockModule from fmtr.tools.path_tools import Path @@ -70,6 +69,16 @@ except ImportError as exception: unicode = MissingExtraMockModule('unicode', exception) +try: + from fmtr.tools import netrc_tools as netrc +except ImportError as exception: + netrc = MissingExtraMockModule('netrc', exception) + +try: + from fmtr.tools import spaces_tools as spaces +except ImportError as exception: + spaces = MissingExtraMockModule('spaces', exception) + __all__ = [ 'config', diff --git a/fmtr/tools/netrc_tools.py b/fmtr/tools/netrc_tools.py new file mode 100644 index 0000000..9cd5883 --- /dev/null +++ b/fmtr/tools/netrc_tools.py @@ -0,0 +1,11 @@ +from functools import lru_cache + +from tinynetrc import Netrc + +LOGIN = 'login' +PASSWORD = 'password' + + +@lru_cache +def get(): + return Netrc() diff --git a/fmtr/tools/spaces_tools.py b/fmtr/tools/spaces_tools.py index 0805477..22460ec 100644 --- a/fmtr/tools/spaces_tools.py +++ b/fmtr/tools/spaces_tools.py @@ -1,18 +1,17 @@ import sys -from os import getenv, path +from os import getenv import importlib import logging import subprocess -from pathlib import Path + +from fmtr.tools import netrc_tools def run(): FMTR_LOG_LEVEL = getenv('FMTR_LOG_LEVEL', 'INFO') logging.getLogger().setLevel(FMTR_LOG_LEVEL) - dir_home = Path(path.expanduser("~")).absolute() - MODULE_NAME = getenv('PACKAGE_NAME') if not MODULE_NAME: raise KeyError('No MODULE_NAME set.') @@ -29,13 +28,11 @@ def run(): if not PIP_PASSWORD: raise KeyError('No PIP_PASSWORD set.') - lines_nrc = [ - f'machine {PIP_INDEX_URL}', - f'login {PIP_USERNAME}', - f'password {PIP_PASSWORD}' - ] - - (dir_home / '.netrc').write_text('\n'.join(lines_nrc)) + with netrc_tools.get() as netrc_obj: + netrc_obj[PIP_INDEX_URL] = { + netrc_tools.LOGIN: PIP_USERNAME, + netrc_tools.PASSWORD: PIP_PASSWORD + } print(f'Starting {MODULE_NAME}...') diff --git a/requirements.py b/requirements.py index 61f1b4d..e8e3d37 100644 --- a/requirements.py +++ b/requirements.py @@ -15,7 +15,9 @@ 'profiling': ['contexttimer'], 'docker.api': ['docker'], 'unicode': ['Unidecode'], - 'version': ['semver'] + 'version': ['semver'], + 'spaces': ['netrc'], + 'netrc': ['tinynetrc'] }