import logging
import sys

# Инициализиция логера
# метод определения модуля, источника запуска.
if sys.argv[0].find('client') == -1:
    # если не клиент то сервер!
    logger = logging.getLogger('server')
else:
    # ну, раз не сервер, то клиент
    logger = logging.getLogger('client')


class Port:
    """ Класс - дескриптор для номера порта. Позволяет использовать только порты с 1023 по 65536.
        При попытке установить неподходящий номер порта генерирует исключение.

    """
    def __set__(self, instance, value):
        if not 1023 < value < 65536:
            logger.critical(
                f'Попытка запуска сервера/клиента с указанием неподходящего порта {value}.'
                f'Допустимы адреса с 1024 до 65535. Сервер/клиент завершает работу')
            exit(1)
        instance.__dict__[self.attr_name] = value

    def __set_name__(self, owner, attr_name):
        self.attr_name = attr_name
