• Как запустить проект в docker?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Просто добавить в папку проекта Dockerfile и там прописать все?

    Забавно, но... ДА!
    Ответ написан
    Комментировать
  • Какие варианты слияния списков есть?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    a = [x or y for x, y in zip(a, b)]
    Ответ написан
    Комментировать
  • Как убрать лесенку после Image.rotate()?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    resample=Image.BICUBIC, expand=True
    Всегда лучше поворачивать большое изображение, а потом уменьшать, чем наоборот, поворачивать маленькое, а потом увеличивать.
    Ответ написан
    5 комментариев
  • Как выбрать записи по всем возможным комбинациям списка?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Никогда плотно не работал с MySQL. Быстренько погуглил и, вроде как, тривиально оно не делается. В постгресе, кстати, такое провернуть легко. Там можно сплитнуть строку, превратить ее в массив, потом развернуть его в таблицу и сджойнить.
    Вам же я бы посоветовал два варианта:
    1) нормализовать вашу таблицу внешними средствами: написать скрипт на чем умеете и сделать таблицу фрагментов со ссылкой на исходную запись. Тогда вопрос решается тривиально.
    2) внешним скриптом проапдейтить вашу таблицу отсортировав числа, пропсианные через запятую. Это даст возможность однозначно проверять на совпадение строк без вариативности.
    3) генерить SQL собирая через UNION все варианты сочетаний - это жутко неэффективно, а количество сочетаний растёт очень быстро с ростом количества компонентов строки.
    4) фильтровать не на уровне SQL, а, к примеру питоновским скриптиком снаружи - этот вариант не решаение вашего вопроса, но в некоторых случаях как быстрая мера вполне подошел бы.
    Ответ написан
    Комментировать
  • Как вычислить время, которое идёт матч?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Но это плохо работает и время считается немного не так.
    Подскажите, как лучше поступить.

    Так вы делайте немного по-другому и будет работать лучше.
    Ответ написан
    2 комментария
  • Как исключить строки из выборки?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    [\\/]node_modules[\\/]((?!blueimp-file-upload|jquery-ui).*)[\\/]
    Ответ написан
    Комментировать
  • Можно ли на языке Python написать программку живой баланс интернета на рабочем столе Win 7, 10?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Посмотрите в сторону PyQt.
    Вот вопрос на стек-оверфлоу про систем трей: https://stackoverflow.com/questions/893984/pyqt-sh...
    Да, черт возьми, тема без проблем ищется с миллионом работающих примеров. Почему вы вообще решили сначала задавать вопрос, прежде чем гуглить?
    Примеров сети полно. Не понятно что вам не понятно. Если не ясно как вообще программировать, то пройдите онлайн курсы, посмотрите релевантные видео-уроки в ютубе, закажите релевантную книжку и почитайте на досуге.
    Ответ написан
    Комментировать
  • Как отправлять сообщение пользователю в Telegram через бота?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    По-хорошему никак. Дело в том, что, если бы была штатная возможность этого, то мы бы утонули в спаме. Очевидно, что если пользователю нужна ваша рассылка, то у него есть возможность подписаться на нее: прийти и подписаться на ваш канал, подружиться с вашим ботом и т.д.. Кроме того, вы можете попробовать дать официальную рекламу в том канале, к пользователям которого хотите обратиться. Конечно администратор канала вряд ли захочет рекламировать конкурента и реклама вроде "Приходите на мой канал, там всё стырено с этого, но есть много полезных дополнительных плюшек..." не прокатит.

    Технически вы можете сделать бота, который будет не ботом по факту, а выступать в роли телеграм-клиента притворяясь человеком. Это даст ему возможность вступить в какую-то группу, получить её пользователей и что-то им слать, но это не канал, это группа. А вашего клиента придётся регистрировать, а если он начнёт рассылать спам и на это начнут жаловаться люди, вашего клиента мгновенно прикроют.

    Короче, плохая идея. Не делайте так.
    Сделайте лучше что-то полезное и люди сами к вам придут.
    Ответ написан
    Комментировать
  • Какие функции должны быть методами класса, а какие должны быть функциями модуля?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Мне кажется логичным следующий вариант: если функция не имеет отношения к алгоритму шифрования (напр, chunk - разбивает массив/буфер на равные части), т.е. она может быть использована в каких-то других контекстах, а не только в моей шифрующей проге, то ее стоит вынести из класса.

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

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Pythonchik3, вы необоснованно обобщаете совершенно разные задачи в один вопрос. Вы что, хотите, чтобы вам всё это написали в ответе в одной программе?
    Наличие инета определяется пингом. Ищите диагностические утилиты и используйте их выхлоп. Нет смысла писать свой велосипед с нуля. В линуксе всё это можно получить стандартными утилитами, поставляемыми вместе с системой. В винде наверняка тоже как-то можно через павер-шелл. Но это всё ищется по отдельности. Ну или можно поискать готовую библиотеку, которая собирает информацию о системных ресурсах.
    Ответ написан
    Комментировать
  • Как получить из json ответа несколько однотипных данных?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Можно и без питона, если у вас есть curl и jq:
    curl https://jsonplaceholder.typicode.com/todos | jq '.[].id'

    Или всё же с питоном:
    curl https://jsonplaceholder.typicode.com/todos | py '(o["id"] for o in json.loads(sys.stdin.read()))'
    Ответ написан
    Комментировать
  • Как проверить наличие элемента с индексом в списке?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Ну во-первых, это не список, а кортеж: test = (1,2,3)
    Во-вторых... а в чем проблема собственно? len(test) > 2
    Ещё можно вот так поступить, особенно если вам нужен потом будет этот второй элемент:
    test = (1,2,3)
    second = test[2:3]
    second = second[0] if second else None

    Но надо стараться делать максимально просто и читабельно.
    Ответ написан
    1 комментарий
  • Как сравнивать кириллические символы в Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Лучше это сделать так:
    str1 = "АБВГДЕ"
    set_of_char = set("ЕОРФ")
    for c in str1:
        if c in set_of_char:
            print("OK")

    Ещё лучше так:
    str1 = "АБВГДЕ"
    set_of_char = set("ЕОРФ")
    if set(str) & set_of_char:
        print("OK")
    Ответ написан
    Комментировать
  • Как получить объект из queryset по порядковому номеру?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Срез квери-сета - нормальное решение. Оно выполняется ленивым образом на уровне SQL: https://docs.djangoproject.com/en/3.0/topics/db/qu...
    Ответ написан
    2 комментария
  • Скорость или ширина(незнаю как правильно) канала для онлайн игр?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вопрос действительно наивный. Складывается впечатление, что вы решили писать игру с миллионным онлайном и это первый вопрос, который у вас возник. Хостинг-то надо выбрать вот прям сейчас и на вырост, так чтобы не менять потом, ага...

    Посчитать-то не сложно, но количества игроков онлайн не достаточно. Есть большая разница во что они все будут играть: в какие-нибудь шахматы - это одно, в шутер - другое.
    Ваш показатель (игроков онлайн - N) нужно умножить на средний размер пакета и число пакетов в секунду. С последним не всё так просто. В шахматах это число пакетов будет порядка N, а в некоторых игровых механиках эти коэффициенты могут и квадратично зависеть от числа взаимодействующих юнитов. Тут нужно глубже смотреть уже не в то, какой нужен канал, а как построить архитектуру и подпилить фичи геймплея, чтобы влезть в разумные рамки.

    Короче, не с того конца пошли.
    Ответ написан
    Комментировать
  • Как использовать вложенный JOIN при GROUP BY?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    SELECT 
      AVG(length)
      ,SUM(h.price) -- это если сумма средств конкретного пользователя, а не вообще.
      ,(SELECT SUM(price) as s FROM help WHERE source=h.source) -- а это если сумма нужна полная по категории
    FROM 
      watch w 
        JOIN help h ON h.user_id=w.user_id and h.film_id=w.film_id 
    GROUP BY h.source)
    Ответ написан
    Комментировать
  • Как получить значение того, что находится в скобках?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    import re
    print(re.search(r'.*? \((\d+)\)', "example text (123456)").group(1))
    Ответ написан
    2 комментария
  • Как ограничть одновеменый доступ пользователям в Django?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А в чем проблема? Просто при каждой авторизации инвалидируйте все предыдущие сессии.
    Ответ написан
    6 комментариев
  • Как сделать web морду для выполнения python скриптов?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Если отчет генерируется долго или не стабильно по времени, то имеет смысл его "заказывать" через веб интерфейс, а потом скачивать готовый файл. В этом случае вам нужно сделать отдельную модель ТаскОтчета. Внутри неё записываются параметры построения отчета и статус готовности. Отдельный воркер на бэкенде смотрит регулярно на запрошенные отчеты и запускает ваш скрипт, после отработки обновляет статус задачи.
    GUI для всего этого можно сделать на основе джанговских джинериков и админки.

    Если нет никакой проблемы сгенерить отчет на лету, то сделайте хендлер прямо в вашем джанго, пусть дёргает ваш скрипт, генерит на лету отчет и выдает его как файл для скачивания с соответствующим MIME-типом. Можно повесить на обработчик кеширующий декоратор, чтобы не генерить один и тот же отчет слишком часто.

    Мне больше нравится второй вариант, конечно.

    Полагаю вам много не неясно из изложенного. Задавайте конкретные вопросы. Здесь помогут.
    Ответ написан
    Комментировать
  • Как сделать простой скрипт Скачать файлы по списку Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Зачем вам питон? Воспользуйтесь стандартной утилитой wget. Она это умеет.
    wget -i link1.txt
    Ответ написан
    2 комментария