Source code for satnogsconfig.helpers.satnogssetup

"""satnogs-setup module"""
from pathlib import Path

from satnogsconfig import settings


[docs] class SatnogsSetup(): """Interract with satnogs-setup""" def __init__(self): """Class constructor""" self._satnogs_stamp_dir = settings.SATNOGS_SETUP_STAMP_DIR @property def is_applied(self): """Check whether configuration has been applied :return: Whether configuration has been applied :rtype: bool """ install_stamp_path = Path(self._satnogs_stamp_dir).joinpath( settings.SATNOGS_SETUP_INSTALL_STAMP ) if install_stamp_path.exists(): with install_stamp_path.open(mode='r', encoding='utf-8') as file: if file.read(): return False return True return False @is_applied.setter def is_applied(self, install): """Mark that configuration has been applied :param install: Configuration has been installed :type install: bool """ install_stamp_path = Path(self._satnogs_stamp_dir).joinpath( settings.SATNOGS_SETUP_INSTALL_STAMP ) if install: with install_stamp_path.open(mode='w', encoding='utf-8'): pass else: try: install_stamp_path.unlink() except FileNotFoundError: pass @property def tags(self): """Get satnogs-setup tags :return: Set of tags :rtype: set """ tags_path = Path(self._satnogs_stamp_dir ).joinpath(settings.SATNOGS_SETUP_INSTALL_STAMP) if tags_path.exists(): with tags_path.open(mode='r', encoding='utf-8') as file: if contents := file.read(): return set(contents.split(',')) return None @tags.setter def tags(self, tags): """Set satnogs-setup tags :param tags: List of tags :type tags: list """ new_tags = self.tags.copy() if self.tags else set() new_tags.update(tags) tags_path = Path(self._satnogs_stamp_dir ).joinpath(settings.SATNOGS_SETUP_INSTALL_STAMP) if tags_path.exists(): with tags_path.open(mode='w', encoding='utf-8') as file: file.write(','.join(new_tags))