Задать вопрос
  • Почему self интерпретируется как None в ходе инициализации __init__?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    def __init__(self, depth: int):
        self.split_pair: Optional[SplitPair] = None
    …
    def __str__(self):
        return str(self.split_pair)

    Полагаю, причина тут. self получает «строковое представление» “None”
    Ответ написан
    Комментировать
  • Как дать права root с ограничением?

    @iiiopot
    Помню i486DX2
    root на то и root
    root в Linux по определению имеет неограниченные права на систему.
    Вместо этого можно создать нового пользователя и редактируя sudo (/etc/sudoers) ограничить те вещи, к которым новый пользователь не должен иметь доступ.

    newuser ALL=(ALL) /bin/systemctl restart *, /bin/systemctl start *, !/bin/systemctl stop *, !/bin/systemctl disable *, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod

    В этом случае пользователь может запускать и перезапускать сервисы, но не может останавливать или отключать их.

    Но, в любом случае нужно понимать, что давая кому то привилегии, вы перманентно даете ему доступ к системе.
    Потому, что если скажем, он все же запустит sudo bash, он сможет обойти ограничения.

    Есть другие решения, например использование SELinux или AppArmor. Или контейнеров или виртуализации, но лучше просто не повышать привилегии. Обычному пользователю root не нужен.
    Ответ написан
    Комментировать
  • А не разбирался ли кто-нибудь с протоколом устройств SmartLife/Tuya?

    GavriKos
    @GavriKos
    Ну проще всего посмотреть поддержку вашей кормушки в каком нить HomeAssistant. Если поддержка там есть - читать реализована она через локалку или нет.
    Отучать устройства Tuya от интернета можно - у них неплохой developer portal, через который вполне получаются креды каких нить лампочек или подобных устройств, и потом пробрасываются в тот же HA.
    На более низкий уровень - не спускался.
    Ответ написан
    Комментировать
  • Как организовать python репозитории?

    fenrir1121
    @fenrir1121
    Начни с документации
    Как организовать для чего? В чем смысл наличия 3 репозиториев и почему тесты одного, влияют на тесты другого?

    Можете ли вы, что-то посоветовать?
    Взять ручку, бумагу и нарисовать граф зависимостей. Затем нарисовать чего вы хотите добиться и сравнить.
    Общий код реализуйте как библиотеку и переиспользуйте. Если ее по ходу тоже нужно редактировать, использовать pip install -e. Ничего из чужих тестов не импортировать. Со звёздочкой вообще никогда не импортировать.
    Ответ написан
    Комментировать
  • Стоит ли переводиться на заочку?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    У меня о заочке самые теплые воспоминания... С учебой, правда, это никак не связано, мы просто учиилсь вместе с Ней :)
    На заочку идут обычно те, кому нужны не знания, а корки. Это понимают все - и студенты и преподы, поэтому знаний (в большинстве случаев) Вы там не получите. Большинство предметов мы пролетали со свистом - женщинам-преподам дарили тортики, мужикам - спасибо, которое булькает... Некоторые правда - преподы старой закалки - не выпускали нас, пока не вбивали в наши головы полагающийся минимум знаний :)
    Заочка - это сессии (в другое время обычно никто ничего не делает, хотя по идее должен :) ). Сессия длится от двадцати до сорока дней, за это время проходят экзамены по предметам, которые были на прошлой сессии и установочные лекции с выдачей заданий на следующую.
    Расписание занятий и обьем нагрузки практически исключает возможность работы в это время, поэтому заранее согласуйте этот вопрос на работе. Формально - работодатель обязан Вам предоставить неоплачиваемый учебный отпуск, фактически - как договоритесь, где-то его дают, где-то люди идут в обычный отпуск и т.д. Сессия раз в полгода, как обычно - в начале года (зимняя) и летом (летняя).
    Ответ написан
    2 комментария
  • Aiogram почему не отправляется фото?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В ошибке написано, как и в документации, что InputFile абстрактный. Используйте FSInputFile.
    Ответ написан
    1 комментарий
  • Как узнать почему зависла ubuntu. Где лежат логи, и есть ли они?

    @Narical
    Если система инициализации - systemd (а в этой версии убунты вроде она) - то можно сделать следующиее

    1. добавить к параметрам ядра опцию для большего выхлопа
    systemd.log_level=debug

    2. При зависании, после перезагрузки использовать journalctl, чтобы просмотреть логи с предыдущей загрузки до выключения:
    journalctl -p 0..3 -b 1

    -p 0..3 это фильтр по приоритету записей в логах, от ошибок до АДСКИХ ошибок, список возможных вариантов: emerg(0), alert(1), crit(2), err(3), warning(4), notice(5), info(6), debug(7).
    -b это диапазон загрузок, например -b 0 покажет только логи за текущую загрузку, -b 1 за предыдущую, -b 0..9 за десять последних.

    Если хочется более подробных логов, то можно ещё добавить -o verbose, но тогда в них можно утонуть :D

    systemd делает огромную работу по собиранию и агрегации логов в одном месте, и даёт инструменты для работы с ними - глупо этим пренебрегать. Подробнее о том, как решать проблемы с systemd - тут например.
    Ответ написан
    Комментировать
  • Почему в библиотеке telethon python не запускается цикл?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Проблема в том, что вы открываете файл один раз в начале программы и используете его как итератор. После первого прохода цикла for итератор исчерпывается, и в следующий раз, когда вы пытаетесь пройтись по нему, он уже пуст. Поэтому файл надо открывать, когда приходит новое сообщение, а не в начале программы:
    with open("area.txt", "r") as area:
        for i in area:
            print(i.rstrip())
            if i.rstrip() in act_mes:
                print(act_mes)
    Ответ написан
    2 комментария