• Ошибка при асинхронном запросе MYSQL?

    Vindicar
    @Vindicar
    RTFM!
    Попробуй создавать курсор на каждый запрос, а не переиспользовать один и тот же.
    Ответ написан
    3 комментария
  • Почему не получается замокать декоратор у функции?

    Vindicar
    @Vindicar
    RTFM!
    Мне кажется, ты просто используешь неверный инструмент, пытаясь совместить несовместимое.
    Вариант А
    Ты проверяешь, что у тебя объект нужного типа. Тогда твой декоратор в принципе работает, но вообще-то это задача для статического анализатора кода типа mypy или встроенного в pycharm, а не проверки в рантайме. И тогда нужно забыть про моки.

    Вариант Б
    Ты проверяешь, что у тебя объект имеет нужные поля и методы (duck typing).
    Тогда тебе нужен typing.Protocol в комбинации с typing.runtime_checkable, с помощью которого ты сможешь описать, что должен иметь объект. Затем этот протокол можно будет подсунуть в isinstance() для проверки, и мок, по идее, её пройдёт. Но опять-таки, задача скорее для статического анализатора кода, чем для рантайм-проверки. Если у тебя в принципе неведомо что может быть передано в метод - это простыми тестами не решается.
    Ответ написан
    2 комментария
  • Как осуществить поиск (like) по полю в массиве в json колонке?

    @alexalexes
    Сделать нормализацию структуры базы.
    Перенести JSON в таблицу user_phone.
    Поля:
    phone_id, -- первичный ключ телефона
    user_id, -- внешний ключ, кому относится телефон
    phone, -- телефон
    phone_comment, -- комментарий к телефону
    -- еще поля по вкусу, но иногда выручающие
    is_main, -- основной не основной/порядок приоритета
    add_date -- дата внесения телефона
    И в запросах уже нормально джойнить и лайкать эту таблицу.
    PS:
    В качестве временного костыля (ни в коем случае не оставлять на постоянной основе!):
    SELECT Users.*,
           ph.value->>'phone' as phone
    FROM Users, json_array_elements(Users.phones) as ph
    where ph.value->>'phone'   like '7%3';
    Ответ написан
    3 комментария
  • Как имитировать медленное соединение, Mac OS localhost?

    @deliro
    65e4611e2b105078027393.png

    Точно также можно во вкладке performance "замедлить" процессор
    Ответ написан
    1 комментарий
  • Как максимально быстро найти в диапазоне IP-адресов или подсетях нужный IP-адрес?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    В PostgreSQL есть специальный тип данных для хранения адресов и набор функций для работы с ними
    Ответ написан
    Комментировать
  • Какой 3D движок использует ИИ Sora?

    vabka
    @vabka
    Токсичный шарпист

    Очевидно, ИИ использует какой-то 3D движок.

    Не очевидно. OpenAI заявляет, что это diffusion-модель.

    Да и в Unreal Engine нужно было бы очень долго ждать результат (чего только стоит запекание света) и пришлось бы использовать целый ансамбль из нейросетей (для моделирования, текстурирования, света, движений камеры, анимации. Каждую нейросеть из такого ансамбля уже можно было бы представить как самостоятельный продукт)

    Ещё один довод в пользу того, что тут не используется никакой 3d-движок: галлюцинации и изменение форм в некоторые моменты.
    Наиболее заметно на видео с корабликами, когда один из них поворачивается кормой к камере.


    (по принципу градиентного спуска)

    А при чём тут градиентный спуск?
    Ответ написан
  • Как реализовать поиск по артикулу с "-" и без "-"?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Проще всего - нормализовать артикулы в базе, приведя их в единый формат. Если надо сохранить точное написание артикула, то сделать два поля - оригинальный артикул и нормализованный.
    Ответ написан
    7 комментариев
  • Есть ли в питоне в стандартной библиотеке под типы целочисленные(знаковый\безнаковый, byte, short)?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Есть ли в питоне в стандартной библиотеке под типы целочисленные(знаковый\безнаковый, byte, short)?

    Нет.
    Вопрос как без бубна и доп.библиотек реализовать ограничение на целочисленную переменную,
    данные берутся из БД и тудаже сохраняются, в БД к примеру стоит тип поля byte[0..255] or byte[-128...+128] как кроме проверок обеспечить заданные параметры для переменной в питоне, что бы она не выходила за рамки заданного типа?

    - Использовать библиотеку (рекомендую), например Pydantic (используется в самом быстром (из популярных) веб-фреймворке FastAPI по дефолту).
    - Класс (с инкапсуляцией такого действия).
    - Простые проверки.
    Ответ написан
    3 комментария
  • Почему метод strip в Python так работает?

    @U235U235
    В документации по этому поводу ясно сказано, что аргумент функции - набор (set) символов, которые будут удалены в конце исходной строки.
    Ответ написан
    Комментировать
  • Как в базу записывать конфиг настроек settings сайта?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не сочтите за грубость, но вас из крайности в крайность бросает. То вы не хотели связываться с бд так как это "слишком сложно" и хранили все в файлах, измываясь и над собой и над ребятами которые все это пытались как-то образумить... Сейчас есть большой шаг вперед - вы подружились с бд, но теперь, как в той поговорке - если в руках молоток - все кажется гвоздем... Конфиги из нескольких переменных проще хранить в файле настроек, например в формате JSON. Если уж очень хочется забить шуруп молотком - заведите табличку сеттингс, храните в ней пары ключ-значение, или вообще одну строку с тем же JSON.
    Ответ написан
    2 комментария
  • Независимая выкатка микросервисов. Как сделать так, чтобы на продакшен не попадал неготовый код?

    @vitaly_il1
    DevOps Consulting
    Допустим мы изменили микросервис А, изменения потребовали изменение Gateway

    Этого не должно быть в микросервисной архитектуре, сервисы должны быть независимыми.
    Варианты: использовать feature flag, обратная совместимость и т.п.

    Например https://medium.com/@denhox/managing-version-depend...
    "If deploying a new version of a service requires deploying new versions of other services at the same time, you’re probably doing microservices wrong."
    Ответ написан
    Комментировать
  • Как отключить Debug в проекте Django Что бы не слитела статика и медиа?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Настроить статику на раздачу через веб-сервер, как и положено.
    Ответ написан
    2 комментария
  • Как пофиксить ошибку с missing 1 required positional argument: 'event'?

    Vindicar
    @Vindicar
    RTFM!
    Ну так а ты что хотел?
    @client.on(events.NewMessage(chats=url))
    async def main(event):

    Ты объявил, что у тебя main() требует один аргумент, а потом вызываешь без аргументов.
    Собственно, возникает вопрос: ты вообще понимаешь, что делаешь, или пытаешься слепить код наугад, авось заработает?
    Ответ написан
    Комментировать
  • Цикл async for в telethon, в чем ошибка?

    febday
    @febday
    Причём тут телетон?
    Ты используешь async в цикле, который не имеет асинхронной итерации. У метод range нет встроенной асинхронности, поэтому просто не используй async
    Ответ написан
    Комментировать
  • Как удалить много строк (порядка 500.000) из csv файла в Python?

    @deliro
    Просто перепиши в соседний csv файл только те строки, которые должны остаться

    И можно ли это сделать не используя библиотеку csv?

    Так и быть, разрешаю
    Ответ написан
    Комментировать
  • Какие легковесные дистрибутивы Linux еще остались?

    @rPman
    Не путай размер дистрибутива и размер установленной системы на диске

    Дистрибутив на установочном livecd/liveusb диске это минимально рабочий (или специально подобранный для типового пользователя) набор пакетов, чтобы минимизировать запросы к серверам репозитариев мейнтейнера, а вот их размер почти у любого дистрибутива - десятки гигабайт.

    Например одно время ubuntu server альтернативно можно было установить, загрузившись в примерно 100-200мб iso образ, с установщиком, который с удобным текстовым интерфейсом устанавливал абсолютно все пакеты по сети из репозитария..

    Место, занимаемое установленной ОС зависит не от выбора мейнтейнера, а от выбора софта, который тебе нужен. Что бы ты не выбрал, пример - если тебе нужно ставить пакеты для разработки нейронных сетей (tensorflow) на nvidia gpu, то качать тебе минимум 5 гигабайт всего что с этим связано (а то и больше).

    Единственный известный мне дистрибутив (с большим комунити), дающий наибольший контроль над устанавливаемыми компонентами - это gentoo. Он не спроста компилирует каждый пакет под пользовательские настройки, в нем с помощью тех же USE флагов определяются не только возможности но и зависимости, которые потянут за собой устанавливаемые пакеты.

    К сожалению, юзерфрендли его не назовешь, так как поддержка обновлений своего конфига это достаточно тяжелый труд (хоть и предоставлена куча удобных инструментов), который если запустить на год другой, может сильно усложнить дальнейшее обновление системы, вплоть до ее полной переустановки (по крайней мере так было с 5-10 лет назад). Придется изучать и разбираться почти во всем, что ты используешь. С gentoo именно ты являешься мейнтейнером своего дистрибутива.

    Но и результат может быть потрясающим, можно собрать графическую систему в несколько сотен мегабайт с неплохим набором современного (буквально, новее чем тестовые версии бинарных дистрибутивов) софта, с минимальными (ничем больше не достижимыми) требованиям к оперативной памяти и даже некоторыми значимыми оптимизациями для своего процессора (бинарные дистрибутивы собирают софт без них, но некоторые разработчики пакетов заморачиваются сборкой оптимизаций сразу под несколько платформ самостоятельно) что может ускорить работу в некоторых случаях.
    Ответ написан
    4 комментария
  • 5 млн файлов JSON или DB?

    Ничего не сказано насчёт соответствия закону и регуляциям. Особенно, когда речь о пользовательских данных.
    данные не изменяются
    а через год-два так же?
    Если "обойтись" файлами и CDN, то все данные пользователей могут утечь в интернет и быть проиндексированы поисковиками.
    Если будет реализовано через файлы, то есть высокий шанс того, что файлы будут скачивать в обход систем авторизации. Так что на свой страх и риск.
    5 млн файлов
    это не тот объем, из-за которого стоит переживать насчёт производительности.
    Если хочется просто выложить БД с пользователями, тогда достаточно файло-обменника, залив в архив.
    Для
    конкурентного чтения подходит и SQLite.
    Ответ написан
    1 комментарий
  • Как в цикле менять название объекта/переменной?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Если у вас в коде появились именованные переменные, вам скорее всего нужны списки или словари.
    Ответ написан
    5 комментариев
  • Почему возникает «TypeError: __init__() takes 2 positional arguments but 4 were given»?

    febday
    @febday
    исправьте это:
    router = Router()
    router.message.middleware(
      CounterMiddleware
    )

    На это:
    router = Router()
    router.message.middleware(
      CounterMiddleware()
    )
    Ответ написан
    1 комментарий
  • Отличается ли мультипроцессинг от запуска нескольких программ?

    Vindicar
    @Vindicar
    RTFM!
    Простотой коммуникации между скриптами, в т.ч. распределения задач между ними.

    Во-втором случае у тебя есть готовое решение по распределению задач и сборке результатов. Но с ограничениями - например, под капотом используется pickle, так что передавать можно только ограниченный набор объектов.

    В первом случае всё придётся писать самому, что и плюс, и минус.
    Ответ написан
    Комментировать