• Как замокать зависимость в pytest?

    i229194964
    @i229194964
    Веб разработчик
    import pytest
    from unittest import mock
    
    class B:
        def __init__(self, db_connection):
            self.__db_connection = db_connection
    
    class A:
        def __init__(self, b: B):
            self.__b = b
    
        def do_something(self) -> None:
            pass
    
    @pytest.fixture(scope="module")
    def mock_b(mocker):
        mocker.patch('path.to.B')  # Здесь 'path.to.B' - это путь к классу B, который нужно замокать
        return B(mock.MagicMock())  # Возвращаем экземпляр класса B с мок-объектом для db_connection
    Ответ написан
    Комментировать
  • Почему ffmepg выдает ошибку?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Не существует ffmpeg.exe у тебя, а не проблема с тем, что он не находит твоё видео

    ffmpeg - это обертка над запуском ffmpeg.exe в виде консольной программы, которой передаются параметры. Для работы этого модуля нужен ffmpeg.exe рядом со скриптом (если быть точнее: в рабочей директории)
    Ответ написан
    Комментировать
  • Как запустить php и nginx в одном контейнере?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    PHP и Nginx незачем запускать в одном контейнере. Что бы контейнеры были связаны друг с другом, нужно их объединять в docker-compose.yml.
    Ответ написан
    2 комментария
  • Как исправить скрипт?

    Достаточно обернуть все $file в кавычки:
    date=$(stat --printf '%w' "$file" | awk '{print $1}')

    mv "$file" "$date-$file"

    Но пробелы в названиях, в твоём случае, не единственная возможная проблема. Парсить вывод ls считается плохой практикой. Вместо этого надёжнее использовать глобы:
    for file in "$1"/*

    Про причины хрупкости парсинга вывода ls можно почитать тут:
    https://mywiki.wooledge.org/ParsingLs
    Ответ написан
    1 комментарий
  • Почему каталог с React-приложением не загружается на GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Как так получилось, что вы обнаружили проблему только при отправке на гитхаб? Вы вообще не используете гит в локальной разработке?

    Ваша проблема в том, что при изначальном создании приложения командой create-react-app сразу инициализируется Git-репозиторий внутри каталога с приложением. Если вы решили не работать в этом репозитории, а отслеживать изменения client и server в другом общем репозитории, то вам нужно удалить тот вложенный репозиторий из папки client. Иначе гит будет игнорировать изменения там и подумает что это вы подключили подмодуль (submodule).
    # удалите папку .git, которая внутри каталога client
    rm -rf "client/.git"
    # скажите гиту, чтобы он забыл, что перед этим видел там вложенный репозиторий 
    git rm --cached "client/"
    # теперь получится добавить приложение в ваш основной проект
    git add "client/"
    Ответ написан
    Комментировать
  • Что особенного в IP адресе 8.8.8.8?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Многие провайдеры при истощении баланса перенаправляют все клиентские http-запросы на свою страничку с уведомлением о необходимости оплаты и каким-нибудь эквайрингом. Очевидно, что для их работы нужен работающий DNS, а зачастую ещё и доступ к CDN. Провайдеры поумнее оставляют доступ к своему DNS и запросы к CDN тоже через себя проксируют, но некоторые не заморачиваются и просто оставляют часть доступа в дикий интернет.
    Ответ написан
    3 комментария
  • На каком GUI легче сделать логические игры (типо Судоку, шашки) в Python?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    pygame
    Ответ написан
    Комментировать
  • Какая книга по Python самая лучшая для новичков и продолжающих?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Лучше Лутца ничего не было и нет.
    Ответ написан
    3 комментария
  • Программирование и математика тесно связаны?

    @dmshar
    А откуда вы взяли список? Просто это очень малая часть того, что должны знать те, кто хотят себя называть специалистом по Data Science. Нет, конечно если под этим терминам понимать вызов методов fit() и predict() - тогда конечно, без знаний математики можно и обойтись. Это как есть фельдшер, а есть врач. Есть младший кодер, вызывающий указанную функцию, а есть тот, кто сам может подобрать метод а может - и усовершенствовать его. А кем быть - уж вам решать.
    6411ccaa240ed514912408.png
    Меня больше смущает наметившийся торг "а надо-ли учить математику или алгоритмы, а чего-нибудь кроме синтаксиса языка надо знать или так прокатит, а то я в математике не силен". Если что-то "не заходит" - то зачем себя напрягать? Есть куча профессий, где без всего этого можно обойтись. Когда найдете что-то что окажется действительно вашим - таких торгов не возникнет, а удовольствия в конечном итоге получите гораздо больше.
    Ответ написан
    2 комментария
  • А время с DS1302 всегда-всегда корректное?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    И решение, если я читаю часы-минуты-секунды и получаю в секундах 00 - то мне следует перечитать минуты ещё раз и сделать вывод.

    Обычно в таких случаях самый часто изменяющийся разряд читают дважды -- в начале и в конце чтения составного значения и перечитывают значение целиком если этот разряд изменился.
    Ответ написан
    1 комментарий
  • Как из russia-latest.osm.pbf достать список всех городов России?

    freeExec
    @freeExec
    Участник OpenStreetMap
    SELECT * FROM planet_osm_points WHERE place = 'city' AND population::int > 4000

    Все теги описаны в wiki.osm.org и именно от туда надо начинать свой путь.
    Второе, что вы называете городом и что отмечают в ОСМ, немного разные понятия.
    Третье, стоит надеяться, что население этого города кто-то внёс, и пусть это будут данные не переписи 2012 года.

    Для FLEX режима, который ты использовал, но не настраивал деление по слоям, сделав в итоге только запутанней.
    SELECT * FROM points WHERE tags->>'place' = 'city' AND (tags->>'population')::int > 4000
    Ответ написан
  • Как понять где +, а где -?

    Там разве не однозначно как он был установлен?
    Ну и если есть доступ к чему паять - отследите куда проводники на плате идут, найдите ближайший конденсатор. Или прозвоните тестером - минус это наверняка корпус.

    Но наверно правильнее будет обратиться в сервис, кто постоянно разбирает паяет такие железки.
    Ответ написан
    Комментировать
  • Как заставить def работать?

    Vindicar
    @Vindicar
    RTFM!
    Поучи язык. Просто поучи, без ботов.
    def объявляет функцию, но не вызывает её.
    Ты её объявляешь внутри record_volume(), но ничего с ней не делаешь.
    Ответ написан
    Комментировать
  • Как продолжить разговаривать с нейросетью?

    Vindicar
    @Vindicar
    RTFM!
    Гугли finite state machine (FSM) для библиотеки, которой пользуешься.
    Ответ написан
    Комментировать
  • Если в чате ввести символ @ - появится список ботов, как запретить пользоваться ними не отключая "стикеры и GIF"?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если задача состоит в том, чтобы пользователи в конкретной группе не оставляли таких сообщений, то можно их удалять с помощью бота с админскими правами. Например:

    @bot.message_handler(content_types=['text'])
    def keep_chat_clean(message):
        msg = message.text
        if "via_bot" in message.json and message.json["via_bot"]["username"] in BLACKLISTED_BOTS:
        try:
            bot.delete_message(message.chat.id, message.message_id)
        except telebot.apihelper.ApiException:
            # обрабатываем ситуацию, когда удаление не удалось
            pass
    Ответ написан
    Комментировать
  • Что это за компонент на печатной плате?

    @kalapanga
    Резистор 0 Ом - перемычка в общем.
    Ответ написан
    6 комментариев
  • Как работать с файлом SQL объемом 20 ГБ?

    @Akina
    Сетевой и системный админ, SQL-программист.
    В комментариях выше фиксируются следующие факты:
    • используемая СУБД - MySQL
    • (вероятно) дамп - MySQL либо MariaDB
    • дамп поделен на несколько частей
    • задача - периодическая

    Соответственно некоторые соображения в дополнение к сказанному ранее.

    Если дамп выполнялся штатной утилитой (вряд ли иначе), то он содержит кучу комментариев, которые позволяют без особых проблем поделить дамп на отдельные файлы - дамп только структуры и дамп только данных. Даже в автоматическом режиме (программно), и уж тем более вручную. Поскольку нужны данные только по пользователям, то после описанного выше разделения можно безболезненно вырезать всё ненужное из дампа структуры (лишние таблицы, всякие процедуры-функции-триггеры, индексы и внешние ключи - всё это нафиг не нужно при восстановлении, а если нужно для эффективности выборки, лучше создать индексы после заливки данных), а также просто убрать дампы данных ненужных таблиц. И скорее всего объём информации для восстановления после такой чистки уменьшится на порядок, а то и больше.
    Ответ написан
    Комментировать
  • Зачем хранят изображения сайта на отдельном сервере?

    @rPman
    Единственный смысл разделения хранилища раздачи статики и динамического контента - это различия в стоимости серверов под эти задачи

    Бакенду нужен процессор но нет нужды в емком хранилище, а серверу раздачи статики он не нужен совсем, но нужны ёмкие и/или быстрые диски, а так же выше сетевой трафик.

    Статичные файлы проще реплицировать, т.е. геораспределенный кластер с ними удобнее обслуживать...

    Само собой разницу можно будет заметить только на больших объемах, и речь о терабайтах
    Ответ написан
    5 комментариев
  • Как вытащить заметки, android с разбитым экраном (по USB работает)?

    @Redeve
    Веб-макаке не хватит и 640гБ
    Ну вообще, теоретически можно подключиться по adb и транслировать дисплей телефона на пк. (Хоть и он разбит, но на системном уровне он всё еще работает же).
    А у вас отладка андроида по adb была включена? Если да, то очень повезло и можете пропускать второй шаг. В ином случае придется повозиться с консолью адб.

    1. Установите полный пакет adb на пк. Это легко гуглится.
    2. Включите adb отладку с пк по этой или этой инструкции. Только аккуратно и внимательно, не торопитесь и не угробьте систему.

    После того как всё сделаете, удостоверьтесь что adb отладка включилась - подключите телефон к пк и в консоли adb введите adb shell. Если успешно подключились - переходите к 3 шагу, нет - повторите внимательно 2 шаг.

    3. Скачайте программу для трансляции экрана на пк - ScrCpy (прямая ссылка на версию для windows x64)
    4. Распакуйте и откройте файл scrcpy.exe - после открытия софт автоматически подключится к телефону и начнет транслировать экран.
    Ну и всё, у вас практически полный доступ к телефону. Начните переписывать всё важное и/или копировать на пк.
    Будут вопросы - не стесняйтесь спрашивать.
    Ответ написан