Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 531 114 137
Питон тред №139 /python/ Аноним 17/04/22 Вск 20:47:21 2338156 1
python426.jpg 126Кб, 1024x767
1024x767
a79b9a41eead907[...].jpg 83Кб, 600x792
600x792
Тред, посвящённый языку программирования Питон, #139

Предыдущий: >>2320027 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Исходник: https://dumpz.org/bASGKD8cCFDf
Аноним 18/04/22 Пнд 13:38:44 2338459 2
>>2337202 →
Свинособака, я тебе и по-человечьи и по-свинячьи и по-собачьи пытался объяснять - ты же слишком туп чтобы понять хоть что-то

Тебе максимально наглядно была продемонстрирована работа неблокирующего асинхронного кода, loop.run_until_complete добавлен исключительно чтобы скрипт ждал и не завершался раньше времени. То что ты не понимаешь концепцию асинхронки и ивент лупа а заодно и очевидно никогда не работал с питоновским asyncio ни на одном проекте - исключительно твои проблемы. Так и сиди дальше на джанге и не лезь к нормальным людям
Аноним 18/04/22 Пнд 15:45:35 2338515 3
>>2338459
>Тебе максимально наглядно была продемонстрирована работа неблокирующего асинхронного кода, loop.run_until_complete добавлен исключительно чтобы скрипт ждал и не завершался раньше времени.
Ну хотя ты в целом прав в этом сраче, твой код всё равно адовый.

Это какая-то каша под питон-3.6, который официально похоронен 23 декабря 2021. А сейчас 2022 на дворе, питон 3.10 давно в релизе, а меньше чем 3.8 вообще как-то даже неприлично использовать.

Использовать loop напрямую для таких целей считается зашкваром. С loop напрямую иногда надо работать, но не так.

Твой код мог бы выглядеть так
async def main():
____a = asyncio.create_task(say('Alice'))
____b = asyncio.create_task(say('Bob'))
____await asyncio.wait([a, b])

asyncio.run(main())
Аноним 18/04/22 Пнд 16:09:22 2338534 4
А вообще так. Есть принцип Concurrency работы. Это когда надо одновременно исполнять несколько ветвей исполнения.

В каждой ветви исполнения код выполняется строчка за строчкой и только так.

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

В случае asyncio, переключение ветвей исполнения идёт только на операторе await, пока нет await, переключение невозможно.
А оператор await означает лишь то, что необходимо в этой строчке дождаться результата асинхронной операции, при этом можно переключиться на другую задачу.
Аноним 18/04/22 Пнд 16:15:05 2338538 5
>>2338534
продолжаю,

задача, Task - самый главный примитив asyncio. Аналог треда в многопотоке. Все задачи независимые, каждая живёт своей жизнью, задача планировщика переключать задачи между собой. Это происходит на операторе await, как я уже говорил.

Вызов
a = asyncio.create_task(say('Alice'))
это синхронная операция. Смысл её в том, чтобы поместить в планировщик новую задачу, после чего она начинает жить своей жизнью, как и все другие задачи. Чтобы с ней коммуницировать, надо явно использовать какие-то функции. Сам объект-задача возвращается из функции.

Сделав несколько последовательный вызовов, мы получаем несколько задач. Они смогут исполняться, как только планировщик встретит первый await, и не раньше этого.

А когда мы делаем
await asyncio.wait([a,b])
мы уже ждём, пока все задачи не завершатся. Это поведение по-умолчанию, настраивается, в доках всё есть.
Аноним 18/04/22 Пнд 16:41:06 2338547 6
Господа асинхронисты. Раз разговор зашел, подскажите, как мнне, примеру, запустить 1000 GET запросов асинхронно, дождаться их выполнения и получить результат в виде списков?

мимо-ньюфаг
Аноним 18/04/22 Пнд 17:03:53 2338563 7
>>2338547
data = await asyncio.gather(*[my_async_get(url) for url in urls])
Аноним 18/04/22 Пнд 17:07:35 2338565 8
>>2338547
Если полностью самому пилить, несколько архитектур, идея общая.

1) реализуешь функцию-воркер. Точнее это сервис в виде, как описано ниже. Смысл в том, что этот воркер слушает очередь, получает из неё ссылку, которую надо скачать, возможно ещё какие-то данные, скажем номер ссылки.

этот воркер скачивает данные, и помещает его в другую очередь, точнее помещает туда какой-то тупл вида
(ссылка, код возврата, контент, что-то ещё может быть)

после этого дальше случает очередь.

2) создаёшь две очереди, для ссылок и для результата. Запускаешь десяток задач-воркеров. Пихаешь в очередь всю тысячу ссылок, а результаты сохраняешь куда надо.

Так ты получаешь асинхронность, и при этом регулируешь нагрузку.

При этом очередь можно кормить постоянно, добавлять новые ссылки на скачивание в рантайме.

Можно иначе эту же идею реализовывать. Через семафоры, например.

Аноним 18/04/22 Пнд 17:11:30 2338569 9
>>2338563
Без модификации для 1000 запросов плохая идея. Но можно добавить семафор, расшаренный между тасками, и выставить лимит условно в 10 для семафора.

Если список на момент запуска известен и он умеренно большой, скажем 10 тысяч ссылок-задач, но так проще всего.

Если мега-список, или он динамически дополняется, то как я описал надо >>2338565
Аноним 18/04/22 Пнд 19:17:23 2338629 10
>>2338538
Чел, а как оно выбирает, кого следующим запустить?
Аноним 18/04/22 Пнд 19:19:54 2338631 11
>>2338538
Правильно ли я понимаю, что если таски внутри себя не написаны асинхронно, то никакой выгоды мы не получим?
Аноним 18/04/22 Пнд 20:03:11 2338670 12
>>2338629
Это работа планировщика. Там разные типы задач, задачи, которые срабатывают по таймеру, задачи, когда ждали данных по сокетам, при системном вызове epoll, обычные задачи.

Если у тебя обычные задачи, то тупо по очереди. Задача отработала до следующего await, после него планировщик помещает её в конец очереди из других задач.

Надо исходники смотреть, я смотрел, но уже не помню.
Аноним 18/04/22 Пнд 20:05:06 2338673 13
>>2338631
Да, правильно. Пока не сделаешь await футуры-задачи, будешь висеть на текущей задаче.

Причём если ты сделаешь
time.sleep(10)
вместо
await asyncio.sleep(10)
то всё будет висеть тупо 10 секунд, ничего в это время происходить не будет, никакие другие задачи обслуживаться не будут.
Аноним 18/04/22 Пнд 20:17:08 2338681 14
>>2338631
>то никакой выгоды мы не получим?
И тут ещё. Конкурентность часто не про выгоду.

Все эти треды придумали ещё в прошлом веке, для обычных компьютеров, которые были одноядерные. Более-менее массовые двуядерные процессоры стали появляться где-то с середины нулевых.

Тебе очень часто надо обрабатывать несколько задач одновременно. Например у тебя графический интерфейс программы, которая сетевое соединение устанавливает. Без конкурентности ты не сделаешь такую программу мало-мальски адекватно. ГУИ не должен блокировать сеть и наоборот.

Или когда надо несколько сетевых соединений обрабатывать. Тоже самое. Ты просто не сможешь это реализовать в обычной однопоточной логике.

Но правда то, что в asyncio тебе надо явно разрешать переключить задачу, и если ты этого не сделаешь, всё повиснет. Или если будет синхронную функцию использовать. А с тредами всё будет работать.

Кстати работа файловой системы нативно асинком не поддерживается. Тебе надо в тредах обращение к файлам запускать, чтобы выгода была, чтобы не подвисало исполнение на ожидании данных.
Аноним 18/04/22 Пнд 21:00:07 2338717 15
Сап, пишу бота для телеги, возникает вопрос на такого рода конструкции в примере кода: "@bot.message_handler(commands=['start', 'help'])". 'bot' - это объект класса. Эта хуякак стоит перед функцией. Как это вообще называется и что делает, нахуя там @?
Аноним 18/04/22 Пнд 21:59:32 2338747 16
>>2338459
> Тебе максимально наглядно была продемонстрирована работа неблокирующего асинхронного кода
Не взрыв, а хлопок. Не наводнение, а подтопление. Не война, а спецоперация по демилитаризации и денацификации. Не говнокод, а максимально наглядная демонстрация. Так и запишем
> loop.run_until_complete добавлен исключительно чтобы скрипт ждал и не завершался раньше времени
Пчел, это допотопное говно уже лет 5 не используют. Ты бы еще декоратор нахуячил
> ты не понимаешь концепцию асинхронки и ивент лупа
И это говорит человек, который утверждал о том, что футуры может создавать только сервер. Агакакскажешь
> очевидно никогда не работал с питоновским asyncio ни на одном проекте
Ты используешь интерфейс asynio про который даже в документации написано
Important See also the create_task() function which is the preferred way for creating new Tasks
Deprecated since version 3.10

Ты кому пиздишь? Себе, мне или господу богу?
> Так и сиди дальше на джанге и не лезь к нормальным людям
Ну ты хоть разок открой документацию-то, долбаеб
>>2338515
Зачем ты пытаешься что-то объяснить челу, который использует деприкейтед хуйню? Он же изучал погромирование по слитым курсам скиллбокса в телеге
>>2338629
С помощью epoll, по факту просто проверяет события для файла
>>2338534
Все так, только стоит еще рассказать про переключение контекста и генераторы
>>2338717
Попробуй сначала изучить базовый синтаксис, вот серьезно. Какого хуя вы все так рветесь написать своего первого бота? Все равно придется возвращаться и изучать циклы с условиями
Аноним 18/04/22 Пнд 22:19:57 2338755 17
>>2338673
>>2338681
Но в чём же тогда выгода асинхронности по сравнению с тредами? Если в асинхронности нужно каждый пук делать асинхронно, чтобы всё не подвисло, а тредами проц сам управляет - получается, что треды дают более высокий уровень абстракции и проще для написания кода? Или тут кроются подводные камни?
Аноним 18/04/22 Пнд 22:59:21 2338786 18
Аноним 18/04/22 Пнд 23:04:06 2338790 19
>>2338755
Потому что треды переключаются постоянно и зачастую в молоко, а в случае асинкио ты сам контролируешь переключение и не рыпаешься просто так
Аноним 18/04/22 Пнд 23:47:36 2338817 20
>>2338755
Наибольшую отдачу асинкио даёт на сетевых задачах, потому что там в поднагодной используется специальный системный вызов, который делает коллбэк, как на сокет, где ты данные ожидаешь, что-то приходит. Это эффективнее, причём на других платформах тоже подобный подход используется. Скажем nginx так работает, и не только.

Для меня, как программиста, асинк удобнее тем, что полностью прогнозируемо, когда задача может переключиться. И практически нет проблем с критическими секциями, необходимостью ставить кучу блокировок и т.п. Для тредов умеренная проблема, если проектировать правильно, но всё-таки там это некий геморрой иногда может быть. В этом плане треды заметно сложнее.

В общем и свои плюсы, и свои минусы в каждом подходе есть.
Аноним 19/04/22 Втр 00:37:54 2338840 21
Есть вроде бы питоновская программа gallery-dl https://github.com/mikf/gallery-dl
Как её запустить из среды питона, а не через bash?
Сделал как в инструкции pip install -U gallery-dl
Всё установилось. Но ни import сделать, ни работать через gallery-dl URL не получается.
Весь пердолинг чтобы не засирать основной ликусовый питон, а оставить в виртуальной среде.
Аноним 19/04/22 Втр 00:47:01 2338843 22
>>2338840
А как обчно спросил и решил сам через 5 минут. Через сабпроцес
subprocess.run(["gallery-dl", "ЮРЛ"])
я чёт думал он в другое место полезет к основному питону.
Аноним 19/04/22 Втр 12:03:47 2339009 23
>>2338755
>Но в чём же тогда выгода асинхронности по сравнению с тредами?
Треды переключаются через равные интеравалы времени внезависимости от того, готова задача или нет. Если у тебя висит 10 тредов, а данные получены только в одном, то планировщик все равно пройдется по всем тредам и будет бессмысленно ждать получения данных.
Аноним 19/04/22 Втр 12:37:25 2339028 24
>>2339009
Кажется, что для организации ui, например, или буферизации такое поведение предпочтительно, нет?
Аноним 19/04/22 Втр 12:47:26 2339038 25
>>2339028
Да, поэтому не надо совать асинхронность где не нужно. Это замена тредам только в определенных местах.
Аноним 19/04/22 Втр 12:56:15 2339043 26
>>2339038
>только в определенных местах
Ну-ка, в каких это местах треды предпочтительнее асинхронки? Питоновские треды это профанация из-за GIL, кроме как в работе с сетью они ничем не помогут, как и асинхронка. Но вот у асинхронки неоспоримые преимущества в виду отсутствия гонок/взаимоблокировок а также явные переключения контекста в ходе исполнения (пока не встретится await, синхронный код не прервется и левый таск исполняться не будет)
Аноним 19/04/22 Втр 13:03:10 2339054 27
>>2338156 (OP)
Блять, зумерки, хули с вами не так? Буквально на днях на проект пришел типичный 22летний мидол, уже поработал где-то и ЧСВ себе до небес взрастил. С первого же дня начал визжать на созвонах "у вас все ниправильна!! у нас по-другому было!! у вас либы устаревшие!" на предложение взять это самому в работу следовало "ой пук, ну я это... не сам же делать собирался да? я вот еще с кодовой базой не до конца познакомился, мое дело предложить..."

А вчера пилили новую репу и для нее решили вынести сервис аутентификации в отдельное приложение, чел из команды сделал это на джанго, т.к. быстро, зумерок тут же побежал в общем чате вопрошать
- А пачиму на джанго? Так никрута!
- Нам главное сделать быстро и чтобы это решение впоследствие работало как часы
- Но ведь у нас асинхронный сервис! А джанго синхронный!
- И что?
- Ну как вы не понимаете! Джанга больше 30 rps на одном воркере держать не может!
- Чел, у нас к этому сервису будет дай боже 2 обращения за токеном в день, ты о чем?
- Ну джанго это прошлый век! Так нельзя делать!

Бля... с удовольствием переебал бы этому визгливому глисту в поддых, но жаль он на ремоуте
Аноним 19/04/22 Втр 13:11:54 2339065 28
>>2339043
>Питоновские треды это профанация из-за GIL
По-твоему треды нужны только для увеличения производительности? Треды не для этого придумывали.

Попробуй с ГУИ без тредов работать, например.
Аноним 19/04/22 Втр 13:15:26 2339067 29
>>2339065
>Попробуй с ГУИ без тредов работать
Чел... асинхронка - стандарт для ГУИв, ты о чем?.. C# и electron.js так и работают

а десктопные ГУИ на питоне это отдельный вид извращения
Аноним 19/04/22 Втр 13:22:22 2339074 30
>>2339067
>стандарт для ГУИв, ты о чем?.. C# и electron.js так и работают
> Питон тред №139
> /python/
Чел, какой стандарт? Только дохлый Киви как-то как опцию возможность предлагает. Все остальные ГУИ питона жёстко завязаны на треды.

В c# скорее тоже треды. А электрон как и питон однопоточный, там нет тредов в том виде, как хотя бы в питоне они есть. Не говоря уже про C#, C++ и Java, где треды настоящие
Аноним 19/04/22 Втр 13:22:33 2339076 31
>>2339067
А в шарпе и электроне асинхронка так же устроена, как в питоне?
Аноним 19/04/22 Втр 13:23:23 2339079 32
>>2339043
>electron.js
Это там где у тебя отдельный процесс на рендер программы, который обменивается данными с процессом где написала логика?
Аноним 19/04/22 Втр 15:46:49 2339176 33
Нужно распознавать язык у печатного текста. Какие либы или какие апи для этого есть? Желательно полноценную проверенную либу, чтобы можно было кастомизировать под себя.
Аноним 19/04/22 Втр 16:39:34 2339199 34
IMG202201311045[...].jpg 24Кб, 377x266
377x266
Аноним 19/04/22 Втр 18:25:38 2339374 35
Гм. А что если запускать гуи в треде, но внутри треда все элементы в обрабатывать асинхронно? Ведь, если на кнопочку или текстовую форму вешать функционал только вида "отправь данные в основной процесс" - не получится всё заблокировать длинным участком последовательного кода?
Аноним 19/04/22 Втр 21:13:48 2339453 36
>>2338156 (OP)
>второй пик
Там в продолжении комикса того питона душат, а потом он ей в очко лезет.
Аноним 19/04/22 Втр 21:16:57 2339455 37
>>2339453
Как можно задушить змею?
Аноним 19/04/22 Втр 22:34:55 2339519 38
>>2339374
Там есть опции, чтобы пускать гуи в одном треде, а асинкио в другом, и потом устраивать хитрый обмен данными между ними.

Но в любом случае это гемор дополнительный.
Аноним 19/04/22 Втр 23:05:39 2339553 39
>>2339043
> Ну-ка, в каких это местах треды предпочтительнее асинхронки?
Например, если взаимодействие с сетью недолгое, на уровне 50мс. Тогда треды работают быстрее асинхронки и держат нагрузку выше.
> Питоновские треды это профанация из-за GIL
Пиздец, ты бы хоть почитал реализацию CPython. Нахуя ты пукаешь о том, чего не знаешь?
> Но вот у асинхронки неоспоримые преимущества в виду отсутствия гонок/взаимоблокировок
Зато появляется охуительный недостаток в виде блокирующего синхронного кода. И нет, вычисления на ядре ты асинхронными сделать не можешь
> а также явные переключения контекста в ходе исполнения
Это плюс, да
Аноним 20/04/22 Срд 00:41:02 2339615 40
Так в чём плюс явного переключения контекста, я понять не могу? Пока вижу, что можно выстрелить себе в ногу блоком синхронного кода, который всё приложенте будет ждать. В доках прямо рекомендуется ставить await asyncio.sleep(0), чтобы дать переключиться на остальные задачи, лол. Может, вы и del явно делаете, а сборщик мусора недостаточно хорош? Бывает нужно, конечно, но в подавляющем большинстве случаев нахуй не надо.
Аноним 20/04/22 Срд 00:50:40 2339620 41
>>2339615
> Может, вы и del явно делаете, а сборщик мусора недостаточно хорош?
Ты же знаешь, что del не вызывает сборщик мусора?
Ну и значение из словаря по ключу ты иначе не удалишь, если что
> Так в чём плюс явного переключения контекста, я понять не могу?
Для каждой задачи свое решение нужно. Нет универсального идеального решения
Аноним 20/04/22 Срд 01:06:46 2339623 42
>>2339615
>Так в чём плюс явного переключения контекста, я понять не могу?
Тем, что это страхует от race condition, это даёт то, что операции атомарные становятся.

>В доках прямо рекомендуется ставить await asyncio.sleep(0)
Не помню такого в доках, хотя подход известный. Это костыль, который нужен, когда ты делаешь большую вычислительную работу, и надо иногда давать возможность другим задачам что-то посчитать.

Обычно же вычислительная работа небольшая, но зато хватает асинхронных вызовов, и поэтому такой проблемы нет.

Если же у тебя вычисления, то вероятно стоит думать о том, чтобы выпихнуть их или в отдельный тред, или вообще в отдельный процесс.
Аноним 20/04/22 Срд 09:38:02 2339676 43
>>2339623
>Не помню такого в доках
https://docs.python.org/3/library/asyncio-task.html#asyncio.sleep
>Setting the delay to 0 provides an optimized path to allow other tasks to run. This can be used by long-running functions to avoid blocking the event loop for the full duration of the function call.
Прямо не рекомендуется, но я считаю, что если так делать не стоит - этого либо не должно быть в доках, либо должно быть с явной пометкой "не надо так", а если есть в доках без осуждения, то это типа считается норм практикой.
Аноним 20/04/22 Срд 10:33:06 2339706 44
Есть условный датакласс Entity, у него есть классовый метод, который итерируется по его полям fields(cls).
Как определять тип дженерика, если тип является коллекцией?
Для простоты возьмём list, нужно мне проверять list, который класс, и List, который аннотация, отдельно?
Как определить, что дженерик в листе является потомком определённого класса?
Аноним 20/04/22 Срд 12:05:22 2339830 45
>>2339676
Это нормальный паттерн, но он нужен в редких случаях, явно тут сказано про "long-running functions".

Ты должен применять с умом, чтобы, например, не было слишком частых вызовов. Операция переключения задач довольно дорогая, если на каждой итерации цикла из 10 миллионов итераций ты будешь такой вызов делать, ты просто уложишь всю производительность в ноль.

Аноним 20/04/22 Срд 12:31:17 2339874 46
>>2339706
Не очень понятно, что тебе надо. В первую очередь когда и зачем ты хочешь проверять типы.

Проверка в рантайме это одна история. Проверка статическая, через mypy, это другая история.

В целом ты можешь описывать "протоколы", набор методов, которые тебе нужны, чтобы соответствовать требованиям. При этом при описании типа не нужно явно описывать, что тип реализует протокол, питон сам это поймёт. Коллекции всякие это тоже варианты протоколов.

Питон сам знает, что list реализует List, поэтому в джереник с типом List ты можешь спокойно подставлять list.
Аноним 20/04/22 Срд 13:03:20 2339922 47
>>2339874
>В первую очередь когда и зачем ты хочешь проверять типы.
Мне нужен датакласс, который может инициироваться со словаря. В том числе со словаря со вложенными структурами. Но пока ограничусь словарями, которые получаются из джейсонов.
Для этого нужно пробежаться по полям датакласса и определить, какие из них являются опциональными и какие - потомками класса Entity. Есть inspect.isclass(), но ещё нужно определить, что класс является потомком Entity и соответственно иницировать его классовый метод на поле словаря.
Но самая ёбля это определять список из потомков Entity.
Аноним 20/04/22 Срд 13:14:22 2339937 48
>>2339922
Всё равно не очень понятно. Ты со штатными датаклассами работаешь?

Возможно тебе нужен pydantic или attrs+cattr

Они как раз для того, чтобы в рантайме верифицировать типы.
Аноним 20/04/22 Срд 14:43:45 2340013 49
Сап, как можно пофиксить что 5.2 - 2.8 = 2.4000000000000004?
Аноним 20/04/22 Срд 14:44:38 2340014 50
>>2339830
Как я понимаю, цикл из 10ккк итераций вообще не должен быть внутри асинхронного участка кода, разве нет?
Аноним 20/04/22 Срд 14:52:04 2340023 51
Аноним 20/04/22 Срд 15:06:19 2340042 52
>>2340014
Смотря что ты делаешь и зачем.

Может быть тебе только и надо, что один такой цикл считать, а через сеть ты мониторишь состояние вычислений и корректируешь его.

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

А так да, если у тебя сервис, в котором есть тяжёлые вычислительные задачи, то скорее всего надо их выносить в отдельный процесс и уже коммуницировать с ним, высылая асинхронно задания в него и ожидая результат, тоже асинхронно.
Аноним 20/04/22 Срд 19:24:34 2340273 53
>>2340042
Спасибо, чел, что уже несколько дней поясняешь, как надо.
Аноним 21/04/22 Чтв 00:32:00 2340494 54
Сап.
Запутался тут в одном моменте в джанго. К примеру, пользователи могут оставлять комментарии к статье и ответы к этим комментариям. И ставить лайки или дизлайки и к комментам, и к ответам на комменты. Соответственно у меня будет 3 модели: ответ, коммент и лайк. Но как сделать, чтобы у лайка была ссылка на пост, к которому он сделан? Ну то есть это может быть либо одна модель, либо другая, но не обе одновременно. Или в модели лайка сделать 2 поля ну и просто одно из них будет всегда пустым?
Аноним 21/04/22 Чтв 00:35:34 2340498 55
>>2340494
Или нужно делать для комментов и ответов отдельные модели для лайков?
Аноним 21/04/22 Чтв 00:40:43 2340500 56
Как ткинтером то пользоваться?

У меня был говнокод с фром ткинтер со звёздочкой, и так нельзя (по крайней мере я так понял, что лучше не делать, чтоб не иметь конфликтов с вызовами функций).
Собственно, как шлёпать сами формочки я сносно разбрался. Ппробовал PAGE, но мне сейчас он не нужен для учебных целей так сказать.

Если поставить Label.t (сейчас я убрал везде), то работать не будет. Я что-то не так делаю, или фундаментально не понимаю. В других местах похожее всё работает.
Если в коде снизу поменять на фром ткинтер звёздочка - то будет работать.


https://pastebin.com/LGZPyztG
Аноним 21/04/22 Чтв 00:49:21 2340504 57
>>2340494
Одна модель должна иметь связь с другой через внешний ключ (foreign key)
Аноним 21/04/22 Чтв 01:33:49 2340518 58
>>2340504
Какая с какой? Модель лайка состоит из автора, реакции (лайк или дизлайк) и внешнего ключа поста. Но моделей постов две.
Ну я так понимаю надо для каждой модели поста делать свою модель лайков, типа как ещё. Не могут же у меня в одном поле бд храниться ссылки на разные таблицы.
Аноним 21/04/22 Чтв 02:12:12 2340523 59
>>2340518
Единственный вариант это сделать так, чтобы было две модели лайков.

Одна модель лайков к статьям, вторая модель лайков к комментариям.
Аноним 21/04/22 Чтв 02:20:01 2340524 60
>>2340500
Вот смотри что у тебя в коде
> import tkinter import t
> import math as m
Что ты пытаешься в первом импорте сделать? Второй импорт корректный, хотя вот лучше так не сокращать, очень дурной стиль, лучше просто делать import math

Для tkinter принято, насколько я помню, импортировать как
import tkinter as tk
Это общепринятое сокращение
Далее ты вызываешь как
tk.Label, tk.Button и т.п.
Аноним 21/04/22 Чтв 02:24:13 2340525 61
>>2340524
> Что ты пытаешься в первом импорте сделать? Второй импорт корректный, хотя вот лучше так не сокращать, очень дурной стиль, лучше просто делать import math
Хорошо, это понял.
> Для tkinter принято, насколько я помню, импортировать как
> import tkinter as tk
А, понятно. А где почитать про эти "принято"? Мне пип8 советовали.
Аноним 21/04/22 Чтв 08:11:00 2340545 62
>>2340525
Это просто сокращение, принятое среди использующих его программистов. Прочитать это можно в чужом коде.
Аноним 21/04/22 Чтв 09:53:43 2340575 63
>>2340545
Где б его посмотреть. В интернете только совсем говнокод с import *
Аноним 21/04/22 Чтв 10:35:34 2340584 64
>>2340494
Так а нахуя тебе 3 модели? Хватит 2-х
Одна - комментарий, вторая - лайки

Ответ - это тот же самый комментарий, в котором есть ссылка на "родительский ответ" a.k.a. комментарий.
Тогда и мозгоебли, которая у тебя возникла, не будет
Аноним 21/04/22 Чтв 10:41:22 2340586 65
Джанго

Есть вот такой орм запрос posts.objects.all().order_by('-date')[:5]
то есть 5 последних постов самых новых по дате.
Но они выводятся в обратном порядке (31.01, 30.01), а мне нужно последовательно по дате (30.01, 31.01)

order_by('-date)[:-5] вот так не работает, отрицательное индексирование не поддерживается

Как в нужном порядке получить?
Аноним 21/04/22 Чтв 10:49:26 2340589 66
>>2340584
Ну не, это я для примера написал, на самом деле у меня отзывы про товар и комментарии к отзыву. То есть отзыв и комментарий не идентичны. Отзыв содержит ещё оценку.
Аноним 21/04/22 Чтв 12:11:21 2340633 67
>>2339937
>Всё равно не очень понятно.
Что непонятного? Что хочу инстансы датаклассов создавать из джейсонов?
>Они как раз для того, чтобы в рантайме верифицировать типы.
Мне не нужно ничего верифицировать, по полям я пробегаюсь, чтобы определить, какие поля являются инстансами/списками инстансов предков Entity, чтобы вызвать их классовый метод инициализации с сответствующим ключём словаря.
Аноним 21/04/22 Чтв 12:19:25 2340639 68
>>2340633
Есть ощущение, что ты пытаешься изобрести свой собственный pydantic.

Эта библиотека как раз нужна для того, чтобы в рантайме создавать объекты по описанным моделям.
Аноним 21/04/22 Чтв 12:19:52 2340640 69
>>2340589
>Ну не, это я для примера написал, на самом деле у меня отзывы про товар и комментарии к отзыву. То есть отзыв и комментарий не идентичны. Отзыв содержит ещё оценку.
"Отзыв на товар" - тот же комментарий, у которого нет родительского комментария, но есть оценка. А у комментария есть ссылка на родитель, но нет оценки.
Аноним 21/04/22 Чтв 12:25:07 2340643 70
>>2340640
Ну так и разные модели значит получаются, разве нет? Или это норм такие разные сущности с похожими полями в одной таблице хранить?
Прост у меня там потом ещё будет другой тип товаров, который будет содержать все поля нынешнего типа товаров, плюс будут ещё дополнительные, специфичные для этих товаров поля. Ну и я тоже думал делать для него отдельную модель.
Аноним 21/04/22 Чтв 12:33:57 2340655 71
>>2340639
>Есть ощущение, что ты пытаешься изобрести свой собственный pydantic.
Вот только я не собираюсь валидацию полей словаря проводить при каждой инициализации, так что пидантик тут оверкил.
Аноним 21/04/22 Чтв 12:47:04 2340665 72
>>2340655
Вот приходит тебе жсон. Твои действия? Верить, что он корректный?

Есть ещё пакет attrs, и дополнительно к нему catts, тоже примерно для этих целей.

По описанию, ты хочешь делать какие-то модели, а для этого есть решения. Датаклассы это лишь минимальный функционал, который решили внести в стандартную библиотеку. Насколько помню, сделали его разработчики attrs.

Есть и серьёзный функционал, но во внешних библиотеках.
Аноним 21/04/22 Чтв 12:56:40 2340685 73
>>2340643
>Ну так и разные модели значит получаются, разве нет?
Разные модели, которые отличаются полем? Они может для питона разные, но для БД это одна и та же таблица с двумя опциональными полями.
>Или это норм такие разные сущности с похожими полями в одной таблице хранить?
Так это не разные сущности для БД.
>Прост у меня там потом ещё будет другой тип товаров, который будет содержать все поля нынешнего типа товаров, плюс будут ещё дополнительные, специфичные для этих товаров поля.
Что-то ты там пытаешься нахуевертить непонятно. Скорее всего джанговская ORM обосрётся реализовывать твои фантазии. Поупырь свой мел и сначала реализуй таблицу/схему для товаров без специфичных полей для товара.
Аноним 21/04/22 Чтв 13:04:33 2340703 74
>>2340665
>Вот приходит тебе жсон. Твои действия? Верить, что он корректный?
Джейсон приходит с бд/кэша, который трансформируется в словарь. Вот мне и нужно написать класс, который может инициализироваться со словаря, заместо перекидывания словарных литералов по всей кодовой базе.
Аноним 21/04/22 Чтв 13:27:27 2340729 75
>>2340685
>Поупырь свой мел и сначала реализуй таблицу/схему для товаров без специфичных полей для товара.

Ну так я сейчас это и делаю. Пока что у меня только один вид товаров, отзывы к ним, комментарии к отзывам и лайки для отзывов и комментариев.


Но вот типа если магазин продает там резиновые хуи и пезды, будут отдельные модели для хуев и пезд или одна? Типа у них схожие поля типа производитель, материал, цена, но разные типа длина/глубина, специфичные для каждого вида товара. А что если категорий ещё больше? Получится, что у каждого товара будет дохера бесполезных пустых полей. И при этом нельзя будет задать поле с нужной информацией обязательным для заполнения, потому что обязательная длина для хуев не должна быть пустой для пезд.
Также и для этих комментариев. Получается оценка будет не обязательной, если все в одной таблице будет. Но отзыв не должен быть без оценки. Ну хз, мб это и не такая уж проблема конечно.
Аноним 21/04/22 Чтв 14:20:51 2340792 76
я вкатываюсь в питон
import яумамымолодец
print("Хелло ворлд")
Аноним 21/04/22 Чтв 14:44:32 2340808 77
>>2340792
У нас сейчас импортозамещение. Всё правильно ты делаешь

=======
cat русификация.py
import builtins

builtins.печатать = print
========
cat яумамымолодец.py
def напечатать_привет(имя):
____печатать(f"Привет, {имя}")
=============
cat главный.py
import русификация
import яумамымолодец

яумамымолодец.напечатать_привет("Вася")
===============
python3 главный.py
Привет, Вася
===============

Кстати, вопрос, можно ли каким-нибудь образом русифицировать операторы? Просто библиотекой, а не собирая свой собственный питон из исходников?

Вот чтобы все эти import, for, if-else и т.п. по-русски были?
Аноним 21/04/22 Чтв 17:02:03 2340937 78
Скиньте годных репозиториев с неговнокодом, clean architecture, проекты на которые можно равняться, так сказать. Можно не только с питоном
Аноним 21/04/22 Чтв 20:05:23 2341152 79
>>2338156 (OP)
Похоже завтра с нашего проекта будут увольнять токсичного ублюдка-лида. Буквально 2 недели назад к нам в проект пришел какой-то выебистый зумерок, на позицию лида канешн. Общался со всеми крайне вызывающе, постоянно намекал что код гавно (ладно бы только это) и что все мы - гавно. Очень часто начинал свои "просьбы" с предъяв, по итогу умудрился получить жалобы к начальству не только от нас-разрабов но еще и от ПМа (как он с ним посрался, не ебу, но он талантлив в этом).
Держку кулачки за то, чтобы этого мудилу выпизднули куда подальше.
Аноним 21/04/22 Чтв 20:24:45 2341166 80
>>2340729
>Получается оценка будет не обязательной, если все в одной таблице будет.
Ты пытаешься натянуть бизнес-логику на структуры в БД. По факту у тебя отличие между отзывом и ответом в одном поле, относительно друг друга. Как ты будешь реализовывать эту логику в приложении, это уже от тебя зависит, но для бд - это сорта камментов к продукту.
Аноним 21/04/22 Чтв 21:51:46 2341209 81
>>2340586
posts.objects.all().order_by('date')[:5]
Аноним 21/04/22 Чтв 21:55:18 2341211 82
>>2341166
Ну почему, отзыв ещё относится к товару, а коммент к отзыву, получается тоже в одно поле не запихать.
Аноним 21/04/22 Чтв 22:02:32 2341217 83
Как мне следует назвать переменную, если я хочу назвать ее ключевым словом, например class. Писать типа class_ или вообще исключить подобный нейминг?
Аноним 21/04/22 Чтв 22:09:35 2341225 84
Аноним 21/04/22 Чтв 22:41:15 2341256 85
Учусь писать красиво на numpy. У меня есть матрица MxN, я хочу из нее получить вектор длины M, где i-й элемент это самый частый встречающийся элемент в i-й строке исходной матрицы. Можно ли это сделать нампаевскими функциями в одну строчку?
Аноним 21/04/22 Чтв 22:44:43 2341258 86
>>2341211
Отзыв относится к товару как коммент к этому товару.
Аноним 21/04/22 Чтв 22:58:11 2341265 87
>>2341258
Как тогда понимать, какой коммент к какому отзыву относится?
Аноним 21/04/22 Чтв 23:07:39 2341269 88
Аноним 21/04/22 Чтв 23:27:42 2341278 89
Аноним 21/04/22 Чтв 23:32:11 2341281 90
>>2341265
По полю parent_id, если его нет, то это отзыв.
Аноним 21/04/22 Чтв 23:58:23 2341299 91
>>2341278
Не страдай хуйнёй. Объединять разные по сути вещи в одно это очень дурной стиль, лучше иметь разные модели, чем кучу if-else в дальнейшей логике, причём на всех уровнях, как в обработчике моделей, так и во вьюшках.

Это больше к вопросу о разнице между отзывами и комментариев к ним.

Если же разнородные товары в магазине, то может стоит объектным образом реализовать. То есть ты не описываешь каждое поле отдельно, а создаёшь JsonField или как-то так в джанго. Эти поля имею поддержку в современных БД, например в постгресе.

Тогда ты сможешь реализовывать кастомную логику, дополнительные атрибуты.
Аноним 22/04/22 Птн 00:23:06 2341315 92
>>2338156 (OP)
Как можно использовать Pyjion? Я честно говоря не понял. Можно ли с его помощью запускать код на питоне на дотнете?

https://github.com/tonybaloney/Pyjion
Аноним 22/04/22 Птн 00:40:50 2341320 93
>>2341299
>Не страдай хуйнёй. Объединять разные по сути вещи в одно это очень дурной стиль, лучше иметь разные модели, чем кучу if-else в дальнейшей логике
Действительно, лучше иметь кучу таблиц, описывающих одни и те же сущности, а если кучу if...else спрятать за фабриками, то это не считается и вообще настоящее ООП.
>так и во вьюшках.
Видно типичного пердолика, у которого даже вьюхи должны повторять структуру таблиц БД. Такие обычно сразу <table> в разметку вставляют, когда нужно отобразить список чего-то, потому что ведь БД же реляционная, а значит должна быть таблица! И пагинация оффсетами.
>Эти поля имею поддержку в современных БД, например в постгресе.
Джейсон поля имеют "поддержку" не означает, что по ним можно обычные процiдурки, типа индексации, проводить. В контексте товаров данные в этих джейсонах нихуя не будут "положил и забыл, фронт разберётся", их как минимум нужно будет фильтровать по значениям ключей.
Аноним 22/04/22 Птн 01:40:43 2341334 94
>>2341320
>Джейсон поля имеют "поддержку" не означает, что по ним можно обычные процiдурки, типа индексации, проводить.
Поле jsonb в постгресе позволяет проводить индексацию. Я посмотрел, что пишут, и джанго можно заставить индексировать эти поля, но руками что-то делать придётся, через ручные миграции.
Аноним 22/04/22 Птн 02:02:09 2341336 95
>>2339054
>>- Ну как вы не понимаете! Джанга больше 30 rps на одном воркере держать не может!
Запускаешь через gunicorn 100500 воркеров go brrrr
Аноним 22/04/22 Птн 11:28:49 2341477 96
>>2339054
А действительно, зачем там джанга? Такой ебенячий комбайн для одного сервиса аутентификации не нужен. Это как спринг на каждый пук тащить.
Аноним 22/04/22 Птн 12:39:17 2341526 97
>>2338156 (OP)
какую книгу посоветуюте новичку, а также как оцените книгу зеда шоу "легкий способ выучить питон"
Аноним 22/04/22 Птн 17:09:28 2341749 98
Есть нетривиальная задача. Есть две камеры AXIS 3204, пытаюсь из них собрать стереокамеру (жду поставку CM4 из Китая), так вот вопрос с OpenCV.
Почему при калибровке и использовании undistort получаются мегакривые избражения? Настолько сильное искревление или хуево калибрую?
Аноним 22/04/22 Птн 17:11:18 2341754 99
>>2339054
А почему Django взяли, рил? Flask же тоже хуяк-хуяк и в продакшн, да тот же FastAPI с готовой авторизацией и асинхронкой. Вы же ленивые макаки
Аноним 22/04/22 Птн 17:47:59 2341784 100
>>2341526
нахуй
просто берешь без задней мысли и прогаешь
Аноним 22/04/22 Птн 19:19:45 2341882 101
>>2341477
>>2341754
Очевидно, чел из команды только джаву и знает.
Аноним 22/04/22 Птн 21:11:30 2342018 102
Анон помоги мне сделать расово правильную асинхронную http обертку над синхронной CPU bound нагрузкой.
Есть большой синхронный код (написанный не мной, а дата майнерами), который выполняется 200мс нагружая CPU. Хочется получить от сервиса 50 rps.
В текущей реализации я напердолил aiohttp + multiprocessing: втупую запускаю вычисления упакованные в объект в пуле и авейчу результат. Получается около 10 rps без тормозов на 4 ядерной машине.
Но я уверен можно сделать гораздо адекватнее. Ведь скрипт перед вычислениями постоянно делает одну и ту же инициализацию соединений с бекинг сервисами, например, которых можно избежать.
Хотелось бы как-то заспавнить инициализированные инстансы с синхронными вычислителями и не перезапускать их слишком часто (только если исключение или очень редко для защиты от течки) и так же асинхронно общаться с ними.
Как это сделать? Не укажешь направление, анон?
Аноним 22/04/22 Птн 21:44:43 2342067 103
>>2342018
Всё зависит от логики, какие у тебя данные, и вот особенно что это за инициализация с бэкенд серверов.

Я бы по возможности плясал от архитектуры вычислительных узлов, когда ты создаёшь вычислительные ноды, которые запрашивают задание у сервера и потом отдают ему результат.

Ноды ты можешь стартовать и через мультипроцессинг, и как внешнее приложение. А упрвляющий скрипт на aiohttp будет задания раздавать и собирать.
Аноним 22/04/22 Птн 22:49:24 2342114 104
>>2342067
>Всё зависит от логики, какие у тебя данные, и вот особенно что это за инициализация с бэкенд серверов.
Если б я до конца понимал что там происходит... формально я даж не пограммист, а "devops"
Имею ввиду коннекты к базе и кешу переустанавливаются почем зря при каждом запуске объекта в multiprocessing пуле. Как в похопе 25 лет назад. И какие-то прочие накладные расходы очевидно появляются. Типо запуска подпроцессов или передачи всего вычислительного объекта в процесс, хотя минимально достаточно только запрос/ответ пропихивать, а объект может работать вечно и быть запущенным заранее.
>можешь стартовать... как внешнее приложение
Как раз недавеча закончил подобный master/slave сервис, только еще хуже, со спавном докер контейнеров вместо процессов (нужен был отдельный сетевой неймспейс для каждого потока)... наелся сполна. Поэтому сейчас хочу как-то нативно, без изобретения велосипедов, каким-нить готовым модулем. Чтобы "фигакс", "фигакс" и продакшон.
Аноним 22/04/22 Птн 23:10:05 2342137 105
Я хз, где спросить, поэтому спрошу у вас.
Хочу освоить ботоделие в телеге, почитал чуть, понял, что чаще всего на питоне пишут, пореже на жс, ещё реже на остальных.

Так вот: если я немного могу в жс, но есть ли резон под тг-ботов тратить время и осваивать питон? Типа стоит ли игра свеч, есть ли какие-то очевидные преимущества в питоновских либах, или всё одна хуйня?
Аноним 22/04/22 Птн 23:44:16 2342160 106
В связке celery-redis можно реализовать аналог aws sqs по типу fifo?
Нужно внутри очереди организовать наборы тасков которые будут идти строго последовательно, т.е пока первый не завершится, второй не начнется. У него есть настройки приоритетов, да, но мне нужно динамически создавать эти группы через apply_async как это делается в aws при передаче message group id. Есть вариант создавать и гасить воркеры, но это выглядит не очень надёжно и хотелось бы его решать gevent воркерами.
Сам доступ к aws есть, но опросы идут долго поэтому хотелось бы через redis, не rabbitmq.

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

Очень не хочется писать костыли, но решений так и не нашёл.
Аноним 22/04/22 Птн 23:47:32 2342164 107
>>2342114
>Имею ввиду коннекты к базе и кешу переустанавливаются почем зря при каждом запуске объекта в multiprocessing пуле
Сколько я представляю, ты не можешь передать коннект в другой процесс. Даже если fork сделаешь. Коннект привязан к процессу, к его PID, этот PID можно посмотреть через netstat.

Поэтому только вариант, чтобы передавать данные в дочерние процессы, а коммуникацию делать из основного.
Аноним 23/04/22 Суб 08:35:03 2342304 108
1552705159415.jpg 12Кб, 309x336
309x336
Человек может думaть в сaмых рaзных условиях и облaдaет этой возможностью блaгодaря мерцaющим, переменным звеньям.
Аноним 23/04/22 Суб 09:52:37 2342318 109
1571737478ramka.png 29Кб, 1446x1019
1446x1019
сап. Какие либы посоветуете для генерации тех.отчетов в формате doc/docx/pdf с условием, что нужна рамка типа пикрил?
Аноним 23/04/22 Суб 11:27:27 2342345 110
>>2342318
конечно же TeX

мимо_датасатанист
Аноним 23/04/22 Суб 12:48:37 2342407 111
>>2342318
Я бы делал в HTML и дальше перегонял бы в pdf.

Правда наиболее адекватные тулы использовали внешний wkhtimtopdf, были обвязкой над ним были.

Сейчас глянул, вроде есть и нативные трансляторы, но судя по описанию примитивные, я сам их не пробовал. А если вёрстка сложная нужна, то нормальный тул нужен.
Аноним 23/04/22 Суб 13:46:02 2342451 112
>>2340586
а так?
posts.objects.all().order_by('-date')[5::-1]
Аноним 23/04/22 Суб 15:12:41 2342501 113
Анон, стоит читать книгу Северенса? Вроде написано в 2016, но который раз упоминается питон 2 как новейшая версия, так что у меня появились сомнения о чтении
Аноним 23/04/22 Суб 15:43:17 2342513 114
>>2342501
Слишком простая книга, на мой взгляд, лучше пробегись по его вводному курсу(питоновскому py4e который) за пару-тройку недель, там материал этой книги покрыт и есть нормальные упражнения с ответами(сначала пытаешься сделать сам - потом смотришь код препода). Чарльз гениальный лектор в первую очередь. А в качестве вводной книжки возьми Think Python, за месяц-полтора прочтешь, если не работаешь/занят чем-то.
Аноним 23/04/22 Суб 16:11:34 2342534 115
Что нужно, чтобы вкатиться джуном? Насколько хорошо джангу надо знать? Допустим из туториала освою техники создания блога ебаного, пойдет?
Аноним 23/04/22 Суб 16:11:59 2342535 116
Возможно ли писать на фласке функциями? У меня ооп никак не идёт, но при использовании функций я хотя бы понимаю, как организовать бизнес-процесс программы.
Аноним 23/04/22 Суб 16:22:03 2342556 117
>>2342451
тоже не то, или я не совсем разобрался как это работает
вот такое решение подсказали
count = .....objects.all().count()
......order_by('date')[count-5:]
Аноним 23/04/22 Суб 17:43:39 2342637 118
>>2342164
Это верно. Но это не вызывает никаких вопросов. Ведь сокет для того и нужен, что бы ядро могло знать какому (одному) процессу доставить пакет.
Проблема то в другом, то что нет готового модуля, которым я бы мог запускать питонячий код в качестве подпроцессов и нормально с ними общаться: подкидывать задания для вычисления без перезапуска самого процесса (и переинициализации кода вычислителя). Нормально - это я подразумеваю что не через stdout/err, shared memory, unix soket'ы и т.д. из 70тых, я хочу современных высокоуровневых абстракций для обмена данными, ради чего я и пришел в питон - чтобы делать вещи быстро. Еще хочу получать от работающего процесса нативные исключения, а не stderr. Вообщем то все. Я сильно много прошу?
Если питон не располагает такими уже готовым к использованию абстракциями, то получается он не претендует на лучший инструмент для написания обвязки запускающей питон код. Это странно, имхо.
Если делать то что я хочу в Питоне руками: пердолиться с fork/unix сокетами или subprocess/std(out|err), то получается проще писать на go, в котором это все так же есть, только работает быстрее и жрет меньше памяти, т.е. даже лучше.
Аноним 23/04/22 Суб 23:26:47 2342847 119
>>2342535
Если есть выбор между классом или функцией, то предпочтение отдают функции и в питоне советуют писать функции.
Но и классы стороной обходить не надо. Без них многие вещи не сделать.
Аноним 24/04/22 Вск 02:18:52 2342914 120
image.png 29Кб, 914x525
914x525
подскажите, как импутировать NA на основе данных из соседних столбцов. вручную, без пакетов
Аноним 24/04/22 Вск 02:57:22 2342924 121
>>2342847
> предпочтение отдают функции и в питоне советуют писать функции
Хм, почему? Я в контексте питона как раз слышал наоборот, что надо писать именно на ООП, а функции - мол, бессмысленная бесперспективная хуйнюшка.
Аноним 24/04/22 Вск 09:31:35 2342959 122
пограмасты.PNG 56Кб, 1304x468
1304x468
криптоинвесторы здесь?
Аноним 24/04/22 Вск 10:12:51 2342974 123
>>2342914
for cell in table:
__if cell == NA:
____cell = cell[+1] / cell [-1]
Аноним 24/04/22 Вск 11:03:12 2343004 124
Посоны, кто-нибудь имел дело с постгресовским LTree?
Как path типа [2,0,1] преобразовать в дерево словарей с чилдренами? Может какая-то либа есть для этого? Или sqlalchemy это умеет?
Аноним 24/04/22 Вск 11:11:31 2343014 125
вапвап.jpeg 5Кб, 299x168
299x168
>>2342959
Охуенный план.
Но даже если так, зачем программисту твои 10к, если он может написать бота, который приносит пассивный доход?
Аноним 24/04/22 Вск 12:35:50 2343062 126
>>2342924
Потому что классы сложные, а функции простые. А делать надо просто.
Аноним 24/04/22 Вск 14:25:07 2343113 127
>>2338156 (OP)
Доставьте обоину где питон с белом круге на красном фоне, все это помотивам свастики
Аноним 24/04/22 Вск 15:02:01 2343132 128
image.png 16Кб, 265x265
265x265
Аноним 24/04/22 Вск 15:11:32 2343140 129
>>2343132
Близко но немного не то
Аноним 24/04/22 Вск 15:37:41 2343159 130
>>2343113
Может не надо, а?
Не хватало ещё чтобы питон запретили.
Аноним 24/04/22 Вск 15:42:53 2343165 131
image.png 121Кб, 398x867
398x867
>>2343159
А разве ещё не запретили?
Аноним 24/04/22 Вск 21:31:59 2343427 132
Почему в пихтон не завезли целочисленные фиксированного размера? Как их получить?
Аноним 24/04/22 Вск 22:01:34 2343440 133
Аноним 24/04/22 Вск 22:18:05 2343444 134
>>2343427
>целочисленные фиксированного размера
Шо?
Аноним 25/04/22 Пнд 00:57:09 2343520 135
Аноним 25/04/22 Пнд 01:01:09 2343522 136
>>2343427
Если тебе в питоне они нудны, значит ты что-то делаешь не так и это надо бы сделать по другому
Аноним 25/04/22 Пнд 01:17:32 2343528 137
>>2343427
Смотри на модуль array, раз уж так хочется, можно через него работать с такими типами.
Аноним 25/04/22 Пнд 09:32:22 2343585 138
image.png 251Кб, 576x1280
576x1280
image.png 279Кб, 576x1280
576x1280
image.png 259Кб, 576x1280
576x1280
image.png 325Кб, 576x1280
576x1280
Яобязательно вкатотуся!
Вот
у
ви
ди
ти...

все вакансии опубликованы 23 апреля..
Аноним 25/04/22 Пнд 10:26:23 2343592 139
>>2343585
опрос
500к есть кто получает и больше.
Чем занимаетесь на работе. Как так получилось? а то я уперся в 300к и дальше говорят иди в тим лиды
Аноним 25/04/22 Пнд 10:39:11 2343594 140
>>2343592
ОВЕРЕМПЛОЕД
В
Е
Р
Э
М
П
Л
О
Е
Д
Аноним 25/04/22 Пнд 11:12:27 2343608 141
>>2343594
ну блин, я хочу оверэмплоед на 2х работах по 500к
Аноним 25/04/22 Пнд 11:13:32 2343609 142
Аноним 25/04/22 Пнд 11:16:01 2343613 143
>>2343609
ну вот хочу узнать, что это за работа на 500к на одной ставке
Аноним 25/04/22 Пнд 11:50:12 2343633 144
>>2343613
Только тимлиды и еба архитекторы в крупных проектах. Во второые пробиться сложно, с первыми оверэмплоить не получится потому что будет созвон на созвоне через созвон. У меня даже на мидловой позиции приходится сливаться и выбирать приоритет между созвонами в определенные дни.
Аноним 25/04/22 Пнд 11:51:57 2343638 145
>>2343613
>что это за работа на 500к на одной ставке
просто сеньор на удаленке на западного барина, 500K это всего где-то $40 в час, для них это не деньги даже
Аноним 25/04/22 Пнд 13:17:53 2343686 146
>>2343444
>>2343522
>>2343528
хэши как тогда считать?
base64 и hashlib же есть в стандартной либе.
Аноним 25/04/22 Пнд 13:29:28 2343700 147
изображение.png 109Кб, 750x750
750x750
Почему логотип Питона - свастика, окрашенная в цвета флага Украины?
Гвидо является нацистом?
Аноним 25/04/22 Пнд 13:40:31 2343713 148
ruby-programmin[...].jpg 58Кб, 780x390
780x390
>>2343165
Все так. Бандеровский язык. Вот взять логотип Ruby - он красный, как флаг СССР. Сразу видно, что создатель этого языка был коммунистом. Не смотря на то, что во время войны японцы были на стороне Гитлера.
Аноним 25/04/22 Пнд 13:47:59 2343720 149
изображение.png 70Кб, 811x488
811x488
Плюс назван в честь БРИТАНСКОГО шоу. А мы ведь знаем, кому Британия поставляет оружие.
Надо бы запретить эту змеюку подколодную, а нейросети можно писать на православном 1Скрипт:
https://github.com/EvilBeaver/OneScript
Аноним 25/04/22 Пнд 14:52:55 2343756 150
загрузка.jfif 7Кб, 225x225
225x225
Нахуя оператор not нужен? Зачем его применять, где?
Аноним 25/04/22 Пнд 14:56:44 2343763 151
>>2343756
if a not None and a.big == ass:
__a.big.slap()
Аноним 25/04/22 Пнд 14:59:50 2343767 152
>>2343763
Если что-то ложное, то зачем это объявлять истинным? А если истина, то зачем объявлять это ложью?
Аноним 25/04/22 Пнд 15:01:10 2343769 153
>>2342534
Нет, не пойдет. Помимо основ питухона и самой джанги надо понять тему API, изучить DRF, алгоритмы и структуры, Docker, и тогда МОЖЕТ БЫТЬ появятся шансы попасть на собеседование на джуна.
Аноним 25/04/22 Пнд 15:02:43 2343770 154
>>2343767
Потому иногда так удобнее для человеческого сознания. Например:
Если завтра не будет дождя, то пойдём купаться.
Аноним 25/04/22 Пнд 15:05:25 2343775 155
>>2343770
Спасибо, а то на практикуме яндекса это вообще не разжевали.
Аноним 25/04/22 Пнд 15:25:09 2343794 156
>>2343775
Потому что это должно быть понятно любому здравомыслящему человеку. По крайней мере, так считают лекторы, которые туеву хучу лет шарят за это, а тут им неочевидно что бывают непонятны вещи, которые для них элементарны
Аноним 25/04/22 Пнд 16:07:22 2343840 157
Добавлю, что свинка Пепа требует использовать not а не smth == False
Аноним 25/04/22 Пнд 17:08:57 2343880 158
>>2343840
Это просто разные вещи, результат операций будет разный.
>>> not ''
True
но
>>>'' == False
False
равно как
>>> '' == True
False
Аноним 25/04/22 Пнд 17:24:18 2343903 159
>>2343880
Нет, стоп. Я помню, что недавно какую-то задачу переписывал на not.

Вспомнил. Стек по принципу LIFO. И там короче пришлось переписать

if len(self.values) == 0:

на

if not self.values:

https://ideone.com/ob91Uf

Так что я слегка перепутал.
Аноним 25/04/22 Пнд 17:41:25 2343921 160
>>2343903
Так питон пустые коллекции в ложные кастит.
Аноним 25/04/22 Пнд 17:42:31 2343922 161
>>2343720
>А мы ведь знаем, кому Британия поставляет оружие.
Израилю?
Аноним 25/04/22 Пнд 17:47:22 2343925 162
Аноним 25/04/22 Пнд 17:54:00 2343927 163
Часто видел что enum-ы создают через множественное наследование от строки:

class Statuses(str, enum.Enum):
----PENDING = 'pending'
----COMPLETED = 'completed'

Зачем так? Почему просто Enum сделать нельзя?
Аноним 25/04/22 Пнд 17:59:40 2343932 164
>>2343927
Что бы можно было делать так
Statuses.PENDING == "pending"
А не так
Statuses.PENDING.value == "pending"

А так же для форматирования строк
Аноним 25/04/22 Пнд 18:05:23 2343937 165
>>2343921
Я понимаю примерно, просто я теперь еще понимаю, что я проходил курсы от каких-то сишников и меня учили что == False и всякое такое это норма, а Пепа на это ругается.
Аноним 25/04/22 Пнд 18:06:31 2343938 166
>>2343937
>я проходил курсы от каких-то сишников
Да ты считай никакие не проходил. Т.к. в голове у тебя полная каша.
Аноним 25/04/22 Пнд 18:26:14 2343962 167
>>2343938
Раньше и каши не было.
Аноним 25/04/22 Пнд 20:30:44 2344042 168
>>2343925
Я короче целый год хуярил конструкции вроде if not dick: do_fuck(), ну т.е почти никогда не проверял явно на None.
И только сегодня совершенно случайно узнал, что оказывается None не имеет ничего общего с [0, False, ""]
Аноним 25/04/22 Пнд 21:10:41 2344062 169
>>2344042
А 0 и False имеют нечто общее?
Аноним 25/04/22 Пнд 21:21:29 2344072 170
Привет двач, я новичок в коде, подскажите как тренировать программирование? Когда ты на первоначальном этапе, где искать задачи? Занимаюсь этим ради хобби, хочу писать скрипты для дискорда, телеги, какую то простую автоматизацию реализовывать, что нужно делать? Про основы я уже почитал
Аноним 25/04/22 Пнд 21:48:23 2344085 171
Работаю тестером-ручником, хочу перекатиться в автомейшен. Выбираю между двумя языками, Java и Python. Опыт в программировании минимален. Что посоветуете и почему? Заранее спасибо.
Аноним 25/04/22 Пнд 22:20:47 2344108 172
>>2344072
> что нужно делать?
писать скрипты для дискорда, телеги, какую то простую автоматизацию реализовывать
Аноним 25/04/22 Пнд 22:27:51 2344112 173
image.png 1022Кб, 1222x1106
1222x1106
>>2344085
Опыт с ручным тестирование какой?
Аноним 25/04/22 Пнд 22:53:56 2344134 174
image.png 114Кб, 946x595
946x595
Разбираюсь с фастапи, в качестве сервера поставил uvicorn, есть два вопроса:
1. Сервер работает на 1.1 версии хттп? Это же очень старая реализация, почему не 2.0?
2. Почему у гет-запросов каждый раз разные порты? Клиент же один. Или система просто берет рандомный свободный порт из всего пула? Почему тогда не взять какой-нибудь 1488? Он у меня тоже не занят.
Аноним 25/04/22 Пнд 23:18:48 2344159 175
>>2344134
>1. Сервер работает на 1.1 версии хттп? Это же очень старая реализация, почему не 2.0?
А нахуя тебе 2.0 за пределами мокрых писечек на вебсокетах? Если не понял, то 2.0 - бинарный стрим, и хуй бы ты такие няшные логи в соснолечке наблюдал на два-точка-ноль серваке. Ну и то, что стримы не кешируются, делает их непригодными для большей части интернета.
Аноним 25/04/22 Пнд 23:20:18 2344161 176
Аноним 26/04/22 Втр 00:13:29 2344202 177
>>2344159
Вот про это вообще не знал. Про бинарные стримы, кеширование и т.д. - где такую инфу вообще искать?
>А нахуя тебе
В моем представлении - если у приложения/соглашения/етс появилась новая версия, то значит, на это есть какие-то причины. Функционал, безопасность, удобство использования и т.д. Зачем тогда 2.0 сделали таким, что он непригоден для большей части интернета?
Аноним 26/04/22 Втр 03:16:24 2344239 178
>>2343638
спасибо, понятно куда двигаться теперь
Аноним 26/04/22 Втр 10:22:20 2344314 179
>>2344134
>Почему у гет-запросов каждый раз разные порты?
Мб это несколько воркеров?
Аноним 26/04/22 Втр 13:31:00 2344451 180
>>2344202
>где такую инфу вообще искать?
В спеке. Но этот видосик, рассказывая про дыры хттп2, заодно рассказывает и о разнице между ними:
https://www.youtube.com/watch?v=sI6YS9a7Qyg
Про кэш в спеке ничего не говорится, но стримы в целом не кэш-френдли. Или точнее сказать сервер сам должен пердолить реализацию кэша стримов для своей бизнес логики.
>Зачем тогда 2.0 сделали таким, что он непригоден для большей части интернета?
Потому что его делал гугл для своих задач, причём с обычным пердольным подходом "а давайте сделаем бинарный протокол чтобы БЫСТРА!". Он "быстр" в том плане, что за оптимизацию запросов нужно платить усложнением архитектуры. Но большинство сайтов интернета - не мегайобы с миллионами запросов в секунду, а вполне стандартные статичные хтмл странички, дёргающие API сервера клиентским скриптом.
Аноним 26/04/22 Втр 14:41:08 2344520 181
image.png 286Кб, 1226x1180
1226x1180
Как с помощью xml.etree.ElementTree получить доступ к тегам Data?
Аноним 26/04/22 Втр 17:05:23 2344670 182
Аноним 26/04/22 Втр 17:50:55 2344696 183
>>2344520
Читай про xpath
и дальше можешь делать что-то вроде
root.findall(".//Data") # все элементы Data на любом уровне
root.findall("./Table/Row/Cell/Data") # можно детально прописывать пути

Читай в общем доки про xpath. Питон хорошо поддерживает сейчас, сторонние либы не требуются. В древние времена нужен был lxml для этого.
Аноним 26/04/22 Втр 18:55:23 2344768 184
output.webm 1554Кб, 424x221, 00:02:08
424x221
Сап двач. Для вката в методологию DevOps надо подучить python, для автоматизации. Видел тут книгу Автоматизация рутинных задач с помощью Pythonn, это оно? Или что ещё знать надо. Я если честно не представляю что там блять автоматизировать. Кубы крутятся, бабки мутятся. Нахуя там мой питон?
Аноним 26/04/22 Втр 20:39:06 2344818 185
>>2344768
Ansible на питоне, Docker CLI тоже на питоне, вот и думай
Аноним 27/04/22 Срд 09:38:08 2345041 186
433f587671e52fd[...].png 4241Кб, 1920x1080
1920x1080
Аноним 27/04/22 Срд 09:51:08 2345046 187
image.png 438Кб, 620x845
620x845
>>2344768
Есть же книжка какая-то в телеге 22года про питон и ДевоПёс
'Python и DevOps: Ключ к автоматизации Linux.'
Аноним 27/04/22 Срд 12:23:10 2345123 188
>>2338156 (OP)
Ссылка по книгам не открывается нихуя.
Какая топ книга для вкатывальщика на русском языке?
Аноним 27/04/22 Срд 13:08:12 2345154 189
>>2345123
>Какая топ книга для вкатывальщика на русском языке?
Учебник английского.
Аноним 27/04/22 Срд 15:28:10 2345277 190
Аноним 27/04/22 Срд 17:01:06 2345348 191
>>2345277
Your impotent rage only serves to amuse me.
Аноним 27/04/22 Срд 17:01:19 2345349 192
>>2345123
Лутц устарел на 3 минорных версии интерпретатора, все свежее в блогах на английском и в ChangeLogs интерпретатора.
Удачи.
Аноним 27/04/22 Срд 20:59:38 2345522 193
>>2345349
Бля, тогда проще читать документацию.

>>2345348
Твою мать ебет другой.
Аноним 27/04/22 Срд 21:14:30 2345525 194
Стоит читать Северенса как начальную базу питона? Пока читал заметил что пишет то он про питон 2, а тредик говорит мол лучше сразу питон 3 учить
Аноним 27/04/22 Срд 21:50:32 2345550 195
image.png 613Кб, 1200x695
1200x695
Сап.
Хочу вкатиться в Питон для фриланса, до этого баловался немного и базовые вещи знаю.
Реально ли освоить его и сопутствующие вещи за ~6 месяцев и 4-6 часов в день (с 1-2 выходными) для создания чат-ботов для телеги/дискорда, парсеров и прочих подобных вещей попроще (не бэкенд)? Разумеется, если не ленится и прикладывать усилия.
Аноним 27/04/22 Срд 23:04:39 2345613 196
>>2345525
Чел, не "лучше сразу третий учить", а "нужно третий учить". Двушка уже давно в архиве, единственное, зачем её изучать - это чтобы понимать древнее легаси (но нахуй тебе это гавно).
Аноним 27/04/22 Срд 23:21:45 2345624 197
>>2344072
Чтобы быстро бегать на 100 метров — нужно быстро бегать на 100 метров.

Матчасть изучил и далее по нужной задаче двигаешься, по ходу гуглишт смотришь
Аноним 28/04/22 Чтв 02:25:08 2345683 198
Почему celery с gevent медленно опрашивает fifo sqs? Между тасками 3-4 секунды, пиздец.
Аноним 28/04/22 Чтв 04:31:39 2345713 199
Аноним 28/04/22 Чтв 15:22:53 2345979 200
Гайс, кто-нибудь шарит как деобфусцировать pyarmor???
Аноним 28/04/22 Чтв 15:43:45 2345992 201
Встретил такую штуку:

a = [5]
= a
print(b) // 5

Это что, это как, это как называется? Если в списке a больше или меньше одного элемента, то выкидывает ошибку. А как оно квадратными скобками список в число превращает, да на уровне переменной?
Аноним 28/04/22 Чтв 15:45:07 2345994 202
>>2345992
[ b ] = a

Быстрофикс короче
Аноним 28/04/22 Чтв 16:14:28 2346006 203
Аноним 28/04/22 Чтв 16:41:15 2346027 204
image.png 274Кб, 650x521
650x521
>>2345713
Поподробнее можно?
Аноним 28/04/22 Чтв 16:59:35 2346054 205
>>2345550
Насколько базовые?
Аноним 28/04/22 Чтв 17:01:04 2346056 206
>>2338156 (OP)
Привет двачик, привет программеры.
Горит ссессия. у кого есть возможносоть мне помочь ?
вот что нужно :
Разработать приложение, которое просматривает папки с именами от «1» до «9», находящимися в том же каталоге (в той же папке), что и приложение, и формирует полный список текстовых файлов (файлов с раcширением «*.txt»). Формируемый список должен включать полные имена файлов. Некоторые папки могут отсутствовать (например, имеются папки «1», «2», «4», «ABC»; приложение должно сформировать списки файлов только из папок «1», «2», «4»). Для контроля наличия папки использовать стандартную функцию DirectoryExists(Directory). Параметр Directory – имя папки, существование которой проверяется. Функция возвращает ИСТИНА, если указанная папка существует.

По команде пользователя приложение формирует индекс для списка ключевых слов для всех файлов. Список ключевых слов должен храниться в файле «KeyList.txt», который должен находиться в одной папке с приложением. Формат файла: одна строка – одно ключевое слов. Приложение читает этот файл при старте. Индекс формируется по частичному соответствию (т.е. ключевое слово может входить как часть другого слова, например, ключевое слово «заказ» будет входить как часть в слова заказы, заказано и т.п.) ключевым словам. Регистр ключевых слов и слов в файле может различаться. После того, как индекс сформирован, пользователь указывает (выделяет в списке) ключевое слово и выполняет поиск файлов, в которых встречается это ключевое слово. Двойной щелчок на имени найденного файла должен открывать окно с этим файлом и выделенным ключевым словом ближайшим к началу файла.

желательно бы просмотреть потом вместе результат.
Отблагодарю как смогу,я студент не особо подкрепленный в финансовой части.
Аноним 28/04/22 Чтв 17:06:15 2346062 207
>>2346056
> Индекс формируется по частичному соответствию (т.е. ключевое слово может входить как часть другого слова, например, ключевое слово «заказ» будет входить как часть в слова заказы, заказано и т.п.) ключевым словам

Пиздамба
Аноним 28/04/22 Чтв 17:17:35 2346077 208
>>2346056
>Разработать приложение, которое просматривает папки с именами от «1» до «9», находящимися в том же каталоге (в той же папке), что и приложение, и формирует полный список текстовых файлов (файлов с раcширением «*.txt»). Формируемый список должен включать полные имена файлов. Некоторые папки могут отсутствовать (например, имеются папки «1», «2», «4», «ABC»; приложение должно сформировать списки файлов только из папок «1», «2», «4»). Для контроля наличия папки использовать стандартную функцию DirectoryExists(Directory). Параметр Directory – имя папки, существование которой проверяется. Функция возвращает ИСТИНА, если указанная папка существует.
Легко.

>По команде пользователя приложение формирует индекс для списка ключевых слов для всех файлов. Список ключевых слов должен храниться в файле «KeyList.txt», который должен находиться в одной папке с приложением. Формат файла: одна строка – одно ключевое слов. Приложение читает этот файл при старте. Индекс формируется по частичному соответствию (т.е. ключевое слово может входить как часть другого слова, например, ключевое слово «заказ» будет входить как часть в слова заказы, заказано и т.п.) ключевым словам. Регистр ключевых слов и слов в файле может различаться.
Если можно прикрутить постгресс, то там это встроенное. Средняя сложность.

>После того, как индекс сформирован, пользователь указывает (выделяет в списке) ключевое слово и выполняет поиск файлов, в которых встречается это ключевое слово. Двойной щелчок на имени найденного файла должен открывать окно с этим файлом и выделенным ключевым словом ближайшим к началу файла.
Я в гуи не умею, не могу оценить.
Аноним 28/04/22 Чтв 17:37:35 2346096 209
>>2346077
>Если можно прикрутить постгресс, то там это встроенное. Средняя сложность.
Постгрес для этого не нужен совсем. И задание не про это.

Надо просто считать сначала список ключевых слов, привести их к нижнему регистру. Потом считать файл, привести тоже к нижнему регистру, и для каждого ключевого слова проверять тупо вхождение его как подстроки в строку (всё содержимое файла). Задача лёгкая.

Нужно ли как-то хранить индекс не сказано. Но можно любым способом просто сохранить.

Самое заморочное тут гуи, потому что надо уметь с гуи работать и вообще тут какая-то динамика при этом есть.
Аноним 28/04/22 Чтв 17:46:32 2346105 210
>>2346056
>Для контроля наличия папки использовать стандартную функцию DirectoryExists(Directory)
Чел, а ты уверен, что это по питону задание?
Аноним 28/04/22 Чтв 17:47:08 2346106 211
>>2346096
>Потом считать файл
А, файл уже дан. Я думал, его самому сформировать надо, то есть все корни из текстовых файлов достать (сам бы я это делать не стал, поэтому постгрес)
Аноним 28/04/22 Чтв 17:50:19 2346108 212
>Справочник функций и процедур Delphi: DirectoryExists

>Directory.Exists(String) Метод (System.IO) | Microsoft Docs

>DirectoryExists - Free Pascal

Так блядь
Аноним 28/04/22 Чтв 17:51:24 2346109 213
>>2346108
Наверное, там с гуи попроще, не кроссплатформа же.
Аноним 28/04/22 Чтв 18:26:43 2346128 214
>>2345683
Бамп. Наверное, будет проще написать свой воркер и юзать редис, чем пытаться решить проблему.
Аноним 28/04/22 Чтв 18:38:19 2346137 215
Насколько вообще целесообразно делать кастомные решения вместо готовых? К примеру, не хватает функционала или он наоборот излишне перегружен
Такая практика часто используется?
Аноним 28/04/22 Чтв 18:39:41 2346141 216
>>2346137
Регулярно.
В конце концов, откуда-то же появляются разные технологии для решения одной задачи?
Аноним 28/04/22 Чтв 19:29:09 2346180 217
>>2346056
это делается в три строчки, ленивая ты жопа
Аноним 28/04/22 Чтв 20:16:26 2346217 218
image.png 192Кб, 493x631
493x631
>>2346054
Прочел почти всю книгу с пика, порешал задачи, это было ~2 года назад, сейчас собираюсь начать заново + немного могу в SQL. Алгоритмами, regex и прочим подобным не интересовался
Аноним 28/04/22 Чтв 21:11:48 2346250 219
>>2346217
> Алгоритмами
Чел, базу знать обязан без нее я хуй знает что ты там писать будешь хорошо если n2
Аноним 28/04/22 Чтв 21:35:18 2346261 220
>>2346217
Лучшая книга по Питону.
Аноним 28/04/22 Чтв 21:41:57 2346266 221
>>2345979
нет, такое только темные маги могут
Аноним 29/04/22 Птн 02:41:20 2346365 222
>>2346128
Так и сделал. Получилось удивительно мало строк. Даже хз. И память вроде не выжирает. Завтра потестить основательно надо будет
Аноним 29/04/22 Птн 09:49:22 2346465 223
>>2346105

дневные на долфине каком-то делают, студенты старше делали на шарпе и питоне...
Аноним 29/04/22 Птн 10:01:21 2346470 224
Пример графичес[...].png 209Кб, 862x932
862x932
>>2346062
>>2346077
>>2346180
ребят, я понимаю что бессмысленно просить от вас кураторства по данному вопросу, но помогите хотя бы с направлением. я по натуре художник, а не вот это всё, что поделать приходится учить не интересную хуйню, кисточки меня не прокормят, настроился изучить хоть базу, чтобы представлять дальнейшие пути развития, но материала очень много. Курю гайды, а там переменные и функции, подскажите какой этап обучения мне даст достаточно навыков, чтобы нарисовать прогу с интерфейсом как на пике.

Вот у меня лежит гайд на десктопе с данными видео :
>алгебра и операторы до if
> строки и манипуляции с ними
> списки и работа с ними
> кортежи
> модули
> парсинг
> консрукторы наследование
> полиформизм
> декораторы
>лямбда
>регулярные выражение
скюэль
> заканчиваются уроки на теме зипфайл

уроков около 50 шт, перечислил хардлайнеров. мне хватит этой инфы разобраться что от меня хотят ?
Что ещё покурить ?
Аноним 29/04/22 Птн 10:17:14 2346472 225
>>2346470
Тебя интересует
оператор if
цикл for
работа с файлами в операционной системе (os.walk, os.path, open)
поиск в строке (str.find)
списки (потому что ты будешь составлять список)

Этого хватит, чтобы сделать первые два пункта. Как сделаешь, возвращайся, будем дальше курировать твою работу.
Аноним 29/04/22 Птн 10:49:22 2346491 226
Аноним 29/04/22 Птн 11:12:06 2346501 227
>>2346470
У тебя в задании еще не сказано что именно от тебя требуют в плане GUI (точнее сказано, но расплывчато). Если есть возможность спросить на каком именно фреймворке преподу предпочтительно написать интерфейс - обязательно спроси.
Аноним 29/04/22 Птн 16:31:47 2346725 228
Снимок экрана 2[...].png 132Кб, 1126x606
1126x606
Господа-джангисты, что ему не нравится?
Аноним 29/04/22 Птн 16:33:17 2346727 229
Снимок экрана 2[...].png 142Кб, 1234x610
1234x610
Аноним 29/04/22 Птн 17:08:45 2346755 230
Как в питоне, в виндовсе, выполнить две команды субпроцесса, а точнее команды ффмпега пасс 1 и пасс 2, в одну строчку?
такаядрянь = пасс 1 ёбаразделитель пасс 2
субпроцесс.попен(такаядрянь, и далее)
Аноним 29/04/22 Птн 17:23:45 2346769 231
>>2346727
query-параметры не так передаются. Не помню что там точно, к этому говну больше 2х лет не притрагивался
Аноним 29/04/22 Птн 18:45:16 2346839 232
Аноны, у меня такая задача.
У меня есть большой набор из условно говоря десяти блоков вопросов. В каждом блоке я отбираю несколько вопросов. Как в итоге составить "билет" из отобранных вопросов?

Математику отбора я сделал (онаа сложна и не имеет значения), но вот как сделать, чтоб у меня генерировался билет.. у меня ещё вопросы с картинками и всё такое, банально в вордовском файле валяются. Я на данный момент знаю, какие именно нужно подправить и куда.
В каком виде в питон это всё нужно загнать, чтоб это реализовать?
Аноним 29/04/22 Птн 18:48:10 2346846 233
>>2346839
>В каком виде в питон это всё нужно загнать, чтоб это реализовать?
В виде dict
Аноним 29/04/22 Птн 19:07:09 2346874 234
>>2346501
А ещё не забудь спросить на какой машине делать, репу, ветку, ключи, докер конфиги, версии и requirements. А и ещё тз подное попроси.
Пока не ответят, даже не начинай делать
Аноним 29/04/22 Птн 19:12:10 2346881 235
>>2346727
Параметры в urls не прописываются. Ты их должен брать через request.GET.get()
Аноним 29/04/22 Птн 19:49:56 2346942 236
Есть список с повториющимися элементами типа [1,3,1,2,7,2,3,6]
Как сделать словарь, чтоб ключом были элементы списка, а значением их количество в списке - {1:2,3:2,2:2,7:1,6:1} ?
вот так чтоб было
Я супер ньюфак, помогите
Аноним 29/04/22 Птн 19:51:03 2346946 237
Аноним 29/04/22 Птн 19:59:18 2346955 238
Аноним 29/04/22 Птн 20:09:08 2346965 239
Аноним 29/04/22 Птн 21:08:42 2346998 240
>>2346846
> dict
Туда можно засунуть целый кусок текста с картинкой?
Аноним 29/04/22 Птн 21:13:36 2347002 241
Аноним 29/04/22 Птн 21:25:34 2347004 242
>>2346755
>такаядрянь = пасс 1 ёбаразделитель пасс 2
>субпроцесс.попен(такаядрянь, и далее)
пощади...

Нахуя тебе в одну?
Аноним 29/04/22 Птн 21:49:35 2347022 243
Чего можно изучить на питоне, чтобы на работу взяли?
Кроме вебмакакинга и машоба.
Аноним 29/04/22 Птн 21:57:24 2347033 244
>>2347022
Становись автотестером
Аноним 29/04/22 Птн 22:22:49 2347047 245
Что по работе для джунов сейчас на пайтон?
Ононим 30/04/22 Суб 01:18:31 2347141 246
Поясните за парсинг XML
Везде предлагают xml.etree, но он мало того, что хитровыебанный до жути, так его ещё и питоновские доки не рекомендуют
Аноним 30/04/22 Суб 03:38:10 2347166 247
>>2347022
Веб это самый простой вариант. Если брезгуешь, то значит проблем с поиском работы у тебя нет
Аноним 30/04/22 Суб 12:30:54 2347240 248
image.png 65Кб, 820x920
820x920
Спасибо дядя кабан, постажировались.
Аноним 30/04/22 Суб 12:39:19 2347244 249
>>2347240
А что ты хотел. Я тут недавно задумался, сколько народу в год впускается с вузов в том же ДС и просто охуел от мысли, а где столько рабочих мест взять. Ладно бы по 200 тел в год, но их ~1к, а еще вкатуны со стороны.
Аноним 30/04/22 Суб 13:01:27 2347252 250
>>2347240
Это отсеивалка для омежек нерешительных. Никто не ожидает, что у тебя есть реальный год коммерческий разработки.
Аноним 30/04/22 Суб 13:17:43 2347258 251
>>2347252
>требования
>опыт - не менее одного года
>да никто не ожидает что у тебя реальный опыт

Дружище, иди разу синиор архитектом, вдруг там тоже чего не ожидают
Аноним 30/04/22 Суб 13:31:15 2347270 252
>>2347258
Я когда вкатывался рассылал резюме по всем джунским вакансиям. Часто его тупо не читали конечно но спустя недели 2 зашел на собес и затащил его
Аноним 30/04/22 Суб 13:58:41 2347285 253
>>2347240
Наверное, всё же речь идёт об общем опыте работы, а не только в айти
Аноним 30/04/22 Суб 14:04:23 2347289 254
>>2347258
Я так и делал в своё время. В конторах какие-то совсем неадекватные требования выставляли, я даже веб не знал, учил по тестовым заданиям. Но кодить умел, лет так 10 уже раз через раз.
Отправлял везде где мог, ходил на собесы.

В итоге через месяц нашел работу, где требовался джун с опытом, а я ни тем ни другим не был даже. В резюме писал весь опыт и всё что могу со всех предыдущих работ.

Так что да, не надо ссать и бояться пиздеть. Они почти всегда ищут решительных и умелых людей. Если это обьявление тебя отпугивает, значит они успешно отсеяли тебя.
Аноним 30/04/22 Суб 14:26:15 2347300 255
Питонисты вообще сборщиками пользуются? Ну типа как gradle, maven, gulp и прочая хрень? Погуглил, вижу десятки решений. Есть какой-то стандарт или несколько популярных?
Аноним 30/04/22 Суб 14:28:59 2347302 256
>>2347300
Питон скрипт может во что-то собираться? Хм.
Аноним 30/04/22 Суб 14:31:01 2347304 257
>>2347302
Сборщики ещё и зависимостями управляют. Мне скорее это нужно, а не упаковка проекта в зип.
Аноним 30/04/22 Суб 14:37:26 2347309 258
>>2347304
Requirements через pip freeze или pipreqs?
Аноним 30/04/22 Суб 14:38:58 2347310 259
>>2347309
Если тебе нужно это, то используюй второй вариант (надо накатить), первый собирает вообще всё что есть.
Аноним 30/04/22 Суб 14:45:53 2347313 260
>>2347310
Понял, спасибо.
Как же некомфортно на незнакомый стек переходить, яебу.
Аноним 30/04/22 Суб 14:55:12 2347320 261
Есть возможность делать потоки независимыми? Я пока знаком только с with threadpoolexecutor.
Есть один основной цикл который раздаёт задания и запускает потоки. Но проблема в том, что если один поток будет работать слишком долго, остальные просто будут ждать его, а хотелось бы реализовать следующий сценарий.
Основной цикл получает набор заданий, запускает потоки и забывает о них. Получает новый набор заданий, запускает следующий и так далее. Т.е потоки живут своей жизнью независимо друг от друга

Я правильно понимаю что такое можно сделать только через процессы, а не треды? Можно ли сделать треды независимыми?
Аноним 30/04/22 Суб 15:41:07 2347380 262
>>2347320
Чет нихуя непонятно чего тебе надо. Треды параллельны в том смысле, что если один чего-то внешнего ждёт, то другой в это время может работать. Если один ждёт слишком дольше чем остальные, можешь вместо пула руками их делать и досыпать новые задания не дожидаясь старых.
Если тебе нужно прямо чтобы оба потока одновременно процессор ебали, то это только через процессы.
Аноним 30/04/22 Суб 16:54:13 2347434 263
Аноним 30/04/22 Суб 17:38:40 2347453 264
Суп. Учу питон уже третью неделю и нихуя не получатся решать элементарные задачки, отсюда пропадает мотивация дальше учиться. Кто сейм? 34 лвл. Алсо, пока не работаю и все свободное время посвящаю учебе

Вот например:
"Напишите функцию, которая находит число Фиббоначи по его номеру. В качестве аргумента подается целое положительное число n (число). "
Решение простое, но я даже его не могу выполнить.

А как вы начинали учиться? Быстро ли вкатились?
Аноним 30/04/22 Суб 19:08:26 2347510 265
Аноним 30/04/22 Суб 19:30:23 2347520 266
>>2347289
В свое время - это сколько лет назад?
Аноним 30/04/22 Суб 19:35:47 2347522 267
>>2347320
>Есть один основной цикл который раздаёт задания и запускает потоки
Че?

>Но проблема в том, что если один поток будет работать слишком долго, остальные просто будут ждать его
Это не то как работают Thread-ы в питоне. Ты че-то путаешь

>Основной цикл получает набор заданий, запускает потоки и забывает о них. Получает новый набор заданий, запускает следующий и так далее. Т.е потоки живут своей жизнью независимо друг от друга
Гугли celery и не изобретай велисипеды
Аноним 30/04/22 Суб 19:55:43 2347538 268
>>2347453
Берешь и решаешь другую задачу попроще.
Не трать время на то, что не получается решить меньше, чем за два дня (когда вообще прогресса в решении не чувствуешь).
Набивай опыт и понимание на других задачах, потом возвращайся к этим.
Попробуй изучить теорию алгоритмов, оттуда появятся идеи. Тот же известный курс: https://www.youtube.com/watch?v=KdZ4HF1SrFs&list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0 (не обязательно все проходить, понимать и запоминать, если умеешь схватываешь общую идею и понимаешь как применить).
Аноним 30/04/22 Суб 19:57:32 2347541 269
>>2347453
>>2347538
Если хочешь, можем списаться, пытаться решать и вкатываться вместе. Я вот тоже хочу начать по задаче в день грызть с литкодов.
Аноним 30/04/22 Суб 20:02:18 2347544 270
>>2347320
если хочешь обойти ограничения GIL, при этом реализовать свои workers, то изучай пакет multiprocessing

можно взять Celery, как предложили выше, если тебе это нужно не ради изучения методом велосипединга, а для решения реальной задачи
Аноним 30/04/22 Суб 20:42:37 2347591 271
16513110576120.png 65Кб, 820x920
820x920
>>2347258
Там вот это самое важное.
Аноним 30/04/22 Суб 21:44:47 2347650 272
>>2346217
Что после этой книги читать?
Аноним 01/05/22 Вск 00:17:46 2347730 273
Аноним 01/05/22 Вск 00:26:44 2347739 274
>>2347522
> Че?
Брокер-воркер
> Это не то как работают Thread-ы в питоне. Ты че-то путаешь
Threadpoolexecutor так и работает. Дошел до обычных thread и сделал что хотел
> Гугли celery и не изобретай велисипеды
Я уже месяца четыре задаю тут вопросы про celery, но кроме названия тут про него никто не знает. Вдоль и поперек обошёл его функционал и понял что он не делает то что мне нужно, потому сделал свой.
Аноним 01/05/22 Вск 00:33:44 2347746 275
>>2347739
>Я уже месяца четыре задаю тут вопросы про celery, но кроме названия тут про него никто не знает. Вдоль и поперек обошёл его функционал и понял что он не делает то что мне нужно, потому сделал свой.
Базаришь? Сдается мне ты просто доки не читал как следует вот и все. Что тебе надо-то конкретно? Из той мешанины, что ты понаписал сложно суть уловить. В celery можно создать произвольное число воркеров и произвольное число очередей, можно привязать редис а можно реббит, можно выставлять определенный приоритет таску, можно использовать разный бекенд для хранения результата, можно паковать таски в чейны, можно запускать таски по cron-у а можно откладывать на произвольное число секунд. Ты уверен что он не решает твою задачу?
Аноним 01/05/22 Вск 00:42:41 2347754 276
>>2347746
Забудь. Человек не понимает что такое тред, что такое пул тредов а что такое процесс. Но уже пишет какие-то там "свои решения" т.к. видите ли проверенный годами инструмент ему не подходит. Очередной вкатуся с интеллектом хлебушка, но очень высоким ЧСВ.
Аноним 01/05/22 Вск 00:48:27 2347758 277
>>2347544
Я работал с celery. Это на проекте, а не задачках.

Сам проект - чаты и сообщения. Сообщения обрабатываются долго из-за ущербного апи, примерно 2-5с. Поэтому их надо пихать в очередь. Сообщений много, массовые рассылки.
Кажый чат - отдельная очередь, причем fifo, это важно. При этом желательно иметь защиту от спама одним и тем же сообщением на один чат. Так что эти очереди должны создаваться и обслуживаться на лету.

Под критерии подошел sqs. Внутри fifo есть группы fifo, т.е каждая группа обрабатывается параллельно, но внутри - по порядку. Вроде всё ок.
Но есть серьезные проблемы со скоростью. У celery есть два типа воркера - prefork(процессы) и gevent(треды). Первый между тасками имеет задержку в две секунды. Второй - 5 секунд. На простой таск который просто выводит сообщение в лог такая задержка.
Ладно, хорошо. Может получится с redis такое сделать? Он быстрее и те же самоые воркеры очень быстро получают таски. Я много всего обошел, доки, либы, но celery не умеет делать динамические очереди, вообще ни на одном брокере. Точнее умеет делать сами очереди, но не назначает их рабочим. А в самой связке celery-redis fifo отсутствует как явление, делать одиночного воркера на очередь это идиотизм, как говорил, таких очередей может быть тысячи, позтому нужен именно мультитрединг, который сам будет назначат один поток на одну очередь, если она есть.

Rabbit? У нас от него отказались, да и я прошёлся по нему и не нашел ничего похожего.

В команде питонистов нет. Девопса нет. Точнее есть, но он больше техлид и пхпшник, но такие задачи не делал.
Аноним 01/05/22 Вск 00:56:20 2347765 278
>>2347746
Скажи как в celery с redis на лету делать fifo очереди и назначать их рабочим. Число очередей произвольное и непостоянное.
Аноним 01/05/22 Вск 01:00:53 2347768 279
>>2347758
Забить хуй на celery и пилить свое. Только не говно а ту же систему с очередью, консьюмером и продюсером. Юзай Кафку, консьюмеры и продюсеры - питоновские процессы
Аноним 01/05/22 Вск 01:03:02 2347770 280
>>2347758
То что каждый чат - отдельная очередь это понятно. Но нахрена по отдельному воркеру на каждую очередь?
Аноним 01/05/22 Вск 01:18:38 2347777 281
Аноним 01/05/22 Вск 01:19:47 2347778 282
>>2347768
Я сделал с redis примерно так.

send - отправляет дикт в указанную очередь и название метода которым надо его обработать, как это делается в celery. В redis они сделаны в виде списков для доступа через lpush и rpop.

Очереди которые обрабатываются в текущий момент помечаются ключом в redis, через redis lock конечно, так что гонок нет.
Основной тред запрашивает список всех свободных очередей и запускает каждому свой отдельный тред. Количество тредов ограничено и контролируется само собой.
Тред-обработчик помечает очередь в redis ключом что он обрабатывается, так что второй такой не запустится. Обрабатывает до тех пор пока очередь не кончится. Если сообщений нет - делает паузу между опросами в 1с. Если их нет достаточно долго - тред завершается и удаляется ключ. Каждыц тред имеет своё соединение из общего пула с redis.
Так же сделал gracefull shutdown. Ключи блокировок временные, так что они не зависнут.

Делал тесты. Запускал несколько воркеров на разных машинах. Загружал большой набор тасков. Дублей нет, гонок нет, потерянных сообщений нет.

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

В итоге за пару дней - код на 150 строк. Очень быстрый. А я ебался с celery месяца четыре. Поставлю на тест в проект, грузить тасками и следить за утечками памяти, если они будут.
Аноним 01/05/22 Вск 01:21:56 2347779 283
Как сделать вэбсокет соединение в рамках одного стрима, не перезапуская стрим для изменения списка подписок?
Аноним 01/05/22 Вск 01:24:37 2347783 284
>>2347770
Чтоб был fifo. В случае с redis, если сделать воркера с concurrency, то они будут забирать таски вразнобой. В celery нет fifo, это должен обеспечивать брокер, например sqs так делает.
Это не моё решение, какое нашёл в интернетах. Там серьезно предлагают делать одиночного воркера на каждую очередь чтоб был fifo.
Аноним 01/05/22 Вск 11:42:49 2347881 285
>>2347765
Настолько боишься что один таск выполнится раньше другого? Сколько по времени обычно занимает исполнение одного таска по отправке сообщения? И сколько таких сообщений обрабатывает ваша система за секунду?
Аноним 01/05/22 Вск 12:13:34 2347895 286
>>2346261
почему ее нет в оппосте?
Аноним 01/05/22 Вск 12:27:01 2347906 287
>>2347289
на самом деле лол в том, что они так отпугивают адекватных.
Потому что реально дисциплинированный и адекватный чел реально оценивает себя и ждет такого же от окружающих.
типа что написано - то и требуется.
а не какая то хуйня, которую написали для прикола.
Аноним 01/05/22 Вск 12:28:19 2347908 288
>>2347906
Ты не "адекватный" и "дисциплинированный". Ты ссыкло.
Аноним 01/05/22 Вск 12:32:56 2347911 289
ага конечно да.gif 2782Кб, 300x300
300x300
>>2347908
быдло закукарекало
Аноним 01/05/22 Вск 12:35:02 2347914 290
>>2347911
Быдло/нибыдло - это ведь ты никак устроиться не можешь, а не я. Я тебе прямым текстом говорю о причинах, можешь биться в истерике сколько влезет, но ситуацию это не изменит.
Аноним 01/05/22 Вск 12:52:01 2347928 291
>>2347914
Я уже кодирую вообще то на зоне, слышал про новый закон? с зоны кодить можно
Аноним 01/05/22 Вск 13:02:54 2347941 292
>>2347928
Что кодируешь? Перестукиваешься с соседними хатами?
Аноним 01/05/22 Вск 13:15:39 2347950 293
>>2347881
Выполнение одного раньше другого нельзя, в пределах одного чата одновременно выполнять нельзя. По времени секунд 2-5, штук 6-10 запросов на апи с кучей проверок, которые никак не распараллелить и с ограничением на 6 запросов в секунду. За секунду сколько хз, сервера на хетзере, наверное много. А приходит обычно тоже много сразу. Делаю с запасом на большие нагрузки и дублированием на другой машине.
Аноним 01/05/22 Вск 13:16:13 2347951 294
Аноним 01/05/22 Вск 15:06:16 2348012 295
15257413923460.webm 489Кб, 944x648, 00:00:01
944x648
>>2338156 (OP)
Анон, я тупой, и всё такое, но как просто написанный класс, без инициализации с присваиванием имени, при запуске кода в IDE запускает блять цикл который в него вложен??? Он же должен просто глянуть на класс и закрыть консоль???
Аноним 01/05/22 Вск 15:20:12 2348022 296
>>2348012
class World:

cycle = int()
sec = int()

def __init__(self, name):

self.name = name

while cycle < 3000001:

cycle += 1

if cycle == 1500000:

cycle = 0
sec += 1

print(int(sec / 2))
Аноним 01/05/22 Вск 15:23:38 2348025 297
Аноним 01/05/22 Вск 15:47:48 2348038 298
>>2348025
Отступ поправь, у тебя сейчас цикл вне функции __init__.
То что он в теле самого класса выполняется это всрато, но видимо по той же логике, что и cycle = int(), который у тебя будет полем класса, одним общим на все объекты.

В питоне классы это такие же объекты как и всё остальное, class World - просто синтаксический сахар под конструкцию по выполнению которой в переменную World записывается объект, хранящий твои методы и прочую херь.
Аноним 01/05/22 Вск 16:03:06 2348050 299
videoplayback ([...].mp4 61Кб, 450x360, 00:00:02
450x360
>>2348038
смотри - я создаю мир со свойством течения времени, я думал должна быть переменная которая изменяется циклом while по ходу выполнения кода и относительно неё могут происходить всякие другие функции, типа if sec == 3: пукни два раза тремя жопами, поэтому написал в теле класса вот это вот всё, а если цикл внутри __init__ то что будет ща буду тестить, хуле
Аноним 01/05/22 Вск 16:50:51 2348078 300
Vivaldi - The F[...].webm 11765Кб, 640x360, 00:01:42
640x360
так поразмышлял посидел - наверное надо выносить цикл из тела класса и обращаться к переменным как World.sec и из этого строить цикл снаружи, я просто на самом деле тупой и питон учил на степике.
Аноним 01/05/22 Вск 17:09:10 2348085 301
> питон ругается на импорт, поправил
> теперь джанга ругается импорт, поправил
> снова питон ругается на импорт
аъаъаъаъаъа
Аноним 01/05/22 Вск 18:47:44 2348127 302
>>2347950
>По времени секунд 2-5
Шо? Вы чего туда накрутили? Вы видосы склеиваете что ли? Или парсите жсоны по 80к строк?
Аноним 01/05/22 Вск 19:42:14 2348162 303
>>2348078
>>2348050
Тебе бы питон подучить, алгоритмы и структуры там покодить.
А то, что ты вроде как пытаешься натворить называется event loop или game loop. В движках уже запилено, нужно только разобраться как использовать.

Вот про паттерны можно читнуть
https://gameprogrammingpatterns.com/game-loop.html
Аноним 01/05/22 Вск 19:51:12 2348169 304
>>2348127
Много запросов. Проверить одну хуйню, если нет сделать вторую, если есть третью, потом ещё запрос и ещё дальше. Я ж говорил, апи ущербное.
Аноним 01/05/22 Вск 19:54:14 2348172 305
>>2348162
Ну, я учу, потому и ищу ответы на вопросы. А читая про всякие Arcade или Pygame или PyQt5 постоянно натыкаюсь на нытьё про "мало возможностей". Пройду по ссылке, конечно, спасибо.
Аноним 01/05/22 Вск 20:14:16 2348183 306
>>2345046
Спасибо, взял на рутрекере
Аноним 01/05/22 Вск 20:27:54 2348189 307
>>2348169
Это cpu-bound задача такая? Или столько времени на обращение к базе идет? Что профилировщик говорит? В любом случае это пиздец ненормально.
Аноним 01/05/22 Вск 21:31:59 2348219 308
>>2348189
Это работа со сторонним апи.
Аноним 01/05/22 Вск 21:39:33 2348222 309
>>2348189
В общем проект связывает разные crm и мессенджеры. Надо проверить наличие контакта, сделки, чата с ним внутри crm и прочие такие штуки. Можно конечно часть инфы хранить у себя в базе, но это такой себе вариант. Если был бы просто один запрос, то было бы отлично, но нет. Часть методов у них работает отвратно, а некоторых нет совсем. Сами разработчики у них ленивые жопы.
Аноним 01/05/22 Вск 21:41:46 2348223 310
>>2348222
Ещё у них бывает такая штука, что сообщения отправленные в малый промежуток времени приходят на сервер не по порядку. Приходится их предварительно сортировать по timestamp, что опять же увеличивает время обработки.
Аноним 01/05/22 Вск 23:02:07 2348256 311
>>2348223
>сообщения отправленные в малый промежуток времени приходят на сервер не по порядку. Приходится их предварительно сортировать по timestamp
Задам очевидный вопрос: хули этим не занимается фронт?
Аноним 01/05/22 Вск 23:12:24 2348261 312
А можно ли из байт кода (.pyc файлы) получить исходники?
Аноним 01/05/22 Вск 23:15:57 2348263 313
>>2348256
Ех, если бы, но он не наш, а тем просто поебать
Аноним 01/05/22 Вск 23:26:16 2348268 314
>>2348263
Доноси это до них, пусть приводят в порядок. Я бы принципиально такой хуйней заниматься не стал.

моя первая работка как раз была связана с чатами (Вебим), приход сообщений вразнобой - обычная тема, упорядочиванием должен заниматься фронт
Аноним 02/05/22 Пнд 13:03:12 2348506 315
>>2347252
Кабан может не ожидает, а херочка - вполне.
Аноним 02/05/22 Пнд 14:01:06 2348535 316
>>2348261
Можно. Но есть нюансы. Могут быть проблемы, если код был обфусцирован, кроме того надо обращать внимание на конкретную версию питона, который сгенерировал этот байткод.
Вот несколько инструментов для восстановления:
https://github.com/zrax/pycdc
https://github.com/rocky/python-decompile3
https://github.com/rocky/python-uncompyle6
Аноним 02/05/22 Пнд 16:06:17 2348634 317
Гайс, помогите найти поистине сочный материал по тг-ботам, с учётом всех актуальностей и примером с шаблоном. Видел курс Кости Latand, но есть небольшое ощущение неактуальности его
Аноним 02/05/22 Пнд 17:23:27 2348715 318
Анончики, помогите пожалуйста с подключением бд к тг боту. https://www.codepile.net/pile/em0Anywl

Проблема в том, что при запросе бот выводит только 1 элемент. Почему так происходит? Сдается мне я обосрался в функции вызова. Код не весь, специально отсеял все лишнее
Аноним 02/05/22 Пнд 22:00:56 2348883 319
>>2348715
Так сколько у тебя записей в users?
Аноним 02/05/22 Пнд 22:19:39 2348891 320
2022-05-02x22:1[...].jpg 282Кб, 3440x1440
3440x1440
ужики чому асинхронность не взлетает?(
Аноним 02/05/22 Пнд 22:23:40 2348895 321
2022-05-02x22:2[...].jpg 278Кб, 3440x1440
3440x1440
а все гады разобрался =^-^=
Аноним 02/05/22 Пнд 23:06:40 2348902 322
image.png 4Кб, 250x95
250x95
image.png 6Кб, 1099x47
1099x47
>>2348883
users выглядит как на пике, притом что при sql запросе на вывод всей таблице, бот выводит только id из нее, то есть единицу.

При всем при этом, если в фунции def conn() заменить return на print, то в ide выводится вся таблица в виде списка. Пик 2.
Аноним 02/05/22 Пнд 23:09:29 2348904 323
>>2348715
> Почему так происходит?
все потому что гоблин ебанный двуличный мракобес, с пресмыкающейся пассивкой дементием, а клим гадкий гомофоб и пидорас, ну а ты каложор, все просто.
Аноним 02/05/22 Пнд 23:14:00 2348905 324
>>2348904
По моему вопросу что подскажешь, если представишь, вместо таблицы с гоблином, таблицу штаба нэвэльного?
Аноним 02/05/22 Пнд 23:34:30 2348910 325
Помогите разобраться с async-await, скажите что прочитать и что накодить, чтобы понять всё.

У меня есть хуита, которая принимает запросы и работает нормально. Но иногда в async-функции она выполняет код по 40-80 секунд (блокирующий) и в это время она ни на что не отвечает, обрабатывает все прилетающие за это время запросы потом разом. Я попробовал в отдельных поток запихнуть медленный код, но из другого потока await-функции не срабатывают выпадая со странными ошибками.
Я могу переписать вообще всё полностью без asyncio просто как обычное многопоточную программу (я много писал на с++ многопоточного) через свои способы синхронизации и треды, но мне кажется что в asyncio буквально две строчки кода должны быть, которые позволят в другом треде выполнять медленный код, а потом возвращаться в основной поток. Подскажите как нагуглить это, а (ещё лучше) что изучить, чтобы таких вопросов про асинхронщину не возникало больше.

Только сейчас увидел скрины выше, забавно что у кого-то то же треды и asyncio
Аноним 03/05/22 Втр 00:07:59 2348921 326
2022-05-02x23:5[...].jpg 717Кб, 2765x1439
2765x1439
>>2348905
> нэвэльного
популист, его штаб состоит из точно таких же воров и мразей

> что подскажешь
сменить ублюдонскую белую тему, это пол пути к успеху, потом можешь начинать гуглить


>>2348910
> я много писал на с++ многопоточного
какой же ты мерзкий и жирный

> что изучить
изучи еще больше уебищных юзлес крестов, подрочи байты, авось снизойдет умение гуглить хотя бы оф доки додик


у меня от раньше выполнялся код почти минуту и все было заебись, а щас почти весь выполнился за секунду и меня послали нахуй ыыы
Аноним 03/05/22 Втр 00:17:06 2348925 327
>>2348921
Так а зачем ты пукаешь, если ответа дать не можешь? Мама в детстве не долюбила и пытаешься хоть так заполучить частичку внимания?
Аноним 03/05/22 Втр 00:41:20 2348936 328
2022-05-03x00:4[...].jpg 724Кб, 3440x1440
3440x1440
>>2348925
чтобы поджечь тебе сраку и побудить к действию, но ты додик, девочка-внутри или жироеб, поэтому просто обмякаешь

тебе тяжело по жизни будет абсолютно везде и во всем..
Аноним 03/05/22 Втр 00:46:25 2348937 329
426864412.jpg 30Кб, 400x300
400x300
>>2348936
>чтобы поджечь тебе сраку
Аноним 03/05/22 Втр 01:12:02 2348945 330
А я снова спрошу, чем парсить xml на клятой змее без анальной боли
Аноним 03/05/22 Втр 01:57:18 2348961 331
>>2348945
И снова получишь тот же ответ
Аноним 03/05/22 Втр 02:34:47 2348967 332
Взял новый ноут поставил пучарм и код выполняется как будто с милисекундной задержкой, с чем это может быть связано? на старом ноуте такого вроде не было. Я даж проверил тот же код у меня занимает 2 сек а на сайтах с питоном оналйн 0.9, бляяяяя я ща свехнусь ЧЗХ
Аноним 03/05/22 Втр 03:43:54 2348972 333
>>2348967
Даже хз, где это видано чтоб один и тот же код на разных машинах с разной скоростью работал, хмм
Аноним 03/05/22 Втр 03:53:28 2348974 334
>>2348910
Делаешь threading.Thread даешь start, а потом где надо вызываешь join чтоб дождаться результата выполнения, если нужно. Если надо чтоб тред завершался вместе с основным потоком, даешь параметр daemon=True. Если хочешь запустить несколько потоков и сразу получить их результат, есть функция покороче, threadpool через with
Аноним 03/05/22 Втр 08:49:43 2349016 335
2022-05-03x08:3[...].jpg 174Кб, 1538x1251
1538x1251
2022-04-21x22:3[...].jpg 166Кб, 1380x914
1380x914
2022-04-22x05:4[...].jpg 162Кб, 1536x885
1536x885
2022-04-29x07:5[...].jpg 58Кб, 1499x150
1499x150
>>2348945
> парсить xml на клятой змее без анальной боли
все знают что питоняшка топовый чойз для скраппинга, НО ЭТО НЕ ТАК БЛЯДЬ !

хмл формат говна хуже жсон параши, просто люто уебанский цырк с полями без параметров

такой кококо маленький и охуенный скрапер - полная хуйня! эта параша даже стабсов не имеет, просто блядь позорище

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

селениум - ЛЮТЕЙШЕЕ ПАСКУДСТВО С УЛЬТРАУЕБИЩНОЙ ДОКОЙ я проибал литералли 3 часа на хуйне с подключением профайла

плрваврайт - уебищное название, но топовая тулза от мелкософта, вторая топовая вещь после вскода, сука там охуенно просто все, все для людей блядь, есть темная тема, а не убожество как у нихуя не прекрасного супа. топовая дока ГДЕ БЛЯДЬ ОТДЕЛЬНОЙ СНОСКОЙ ОПИСАЛИ КЕЙС НА КОТОРЫЙ Я ВЪЕБАЛ ТРИ ЧАСА сукааааа, и это мелкософт, который кормит спермоглотов пиксельхантинг игрой из 95 года, каждый раз когда ты ресайзишь окощько

суп в итоге я даже не пробовал, я опять вижу ублюдскую доку которую можно не читать нахуй по причине её пидорастии


все во что мы так верили - оказалось обманом анончик, крепись и жри говно, таков путь.


>>2348967
пчарм для даунов, ставь вскод.
Аноним 03/05/22 Втр 10:09:50 2349063 336
Посоветуйте плз, как лучше сделать, что я хочу. Ну и вообще, хорошо ли я придумал.

В общем, я использую дрф, у меня есть на странице набор постов пользователей, к которым можно ставить лайки и дизлайки. И соответственно у кажного поста будет счетчик того и другого. У меня есть модель поста и модель реакции, которая состоит из поля, ссылающегося на автора лайка/дизлайка, поля, ссылающегося на пост, к которому поставлен лайк/дизлайк, и булева поля реакции, типа если тру, то значит лайк, если фолс, то дизлайк. Но ещё я решил добавить в модель поста числовое поле с количеством лайков и такое же поле с дизлайками. Просто я подумал, что наверное делать запросы, считающие все лайки и дизлайки для каждого поста в таблице реакций, каждый раз, когда кто-то просто заходит на страницу с постами, это типа слишком, и поэтому подумал, что буду просто делать такой запрос, когда кто-то ставит реакцию и записывать число в соответствующее поле в таблице поста. Таким образом, когда будет просто выводиться список постов, то считать лайки не надо будет, а когда их количество будет меняться, то тогда и буду считать и записывать результат в таблицу поста. Я правильно думаю?

Ну и вот. Если эта схема норм, то тогда вопрос, куда мне писать логику, которая будет считать все лайки/дизлайки, при создании нового лайка/дизлайка? То есть у меня будет наверное CreateAPIView, создающий запись в модели реакций. И я хочу, чтобы после создания записи, он ещё сделал запрос, считающий все лайки/дизлайки для поста и записывал их в соответствующее поле таблицы поста. Я просто как-то не могу понять, какие там методы в каком порядке вызываются, когда активируется CreateAPIView. В perform_create это сделать? Или вообще как-то иначе?
Аноним 03/05/22 Втр 10:16:02 2349068 337
>>2349063
> дрф
хуита убогая, об этом пишут все джангодауны, не жри говно, а ставь фастапи с вью

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

забей хуй.
Аноним 03/05/22 Втр 10:18:33 2349069 338
>>2349068
Ну я хочу когда-нибудь на работу устроиться и делаю этот проектик как бы для изучения и демонстрации в будущем. А вроде бы для дрф побольше вакансий типа. На фронте вью использую, да.
Аноним 03/05/22 Втр 10:35:05 2349084 339
Ананасы, подскажите, вот есть у меня простые объекты, которые спокойно сериализуются в JSON и возвращаются, а как быть правильно с объектами, имеющими ForeignKey?

class User(model.Model):
__nickname = model.CharField(...)


class Message(model.Model):
__caption = model.CharField(...)
__user = model.ForeignKey(User, ...)


Мне нужно получить Json объекта Message в виде
{
__'caption' : 'value0'
__'user': {
____'nickname' : 'value1'
__}
}
Аноним 03/05/22 Втр 10:46:20 2349097 340
>>2349084
Ну если это рест фреймворк, то тебе нужно в сериализаторе сообщения присвоить переменной user сериализатор юзера.
Типа:
class UserSerializer(serializers.ModelSerializer):
__class Meta:
____model = User
____fields = ['nickname', ...]

class MessageSerializer(serializers.ModelSerializer):
__user = UserSerializer()
__class Meta:
____model = Message
____fields = ['caption', 'user']

Но если тебе только один никнейм нужен и он у тебя выводится в __str__ методе модели User, то можно так, без отдельного сериализатора юзера:

class MessageSerializer(serializers.ModelSerializer):
__user = serializers.StringRelatedField()
__class Meta:
____model = Message
____fields = ['caption', 'user']
Аноним 03/05/22 Втр 11:02:35 2349105 341
>>2349097
Блин, забыл написать. Фреймворк - джанго.
Аноним 03/05/22 Втр 11:04:24 2349109 342
>>2349097
Ну, в общем, смысл понятен, спасибо. А насколько хуевая идея делать какой нибудь метод внутри самого объекта, который будет просто возвращать нужный dict?
Аноним 03/05/22 Втр 11:06:14 2349110 343
>>2349105
Ну так рест фреймворк - это тоже джанго. Как раз и придумали чтоб жсоны из моделей делать и наоборот.
Аноним 03/05/22 Втр 11:08:00 2349115 344
>>2349109
Если у тебя джанга то и используй джангу, а не хуярь велики

Если самопписное говно то делай метод to_dict в модели и он будет возвращать словарь
Аноним 03/05/22 Втр 11:32:26 2349158 345
>>2349115
Все, разобрался, теперь все работает. Спасибо

>не хуярь велики
Я пока еще студентота, это привычка
Аноним 03/05/22 Втр 11:35:41 2349167 346
2022-05-03x11:3[...].jpg 772Кб, 3440x1440
3440x1440
2022-05-03x11:3[...].jpg 100Кб, 1001x884
1001x884
>>2349069
> вроде бы
sad butt thrue =/ но ситуация в принципе безрадужная, осваивай лучше профессию сварщика ;)

если у тебя есть амбиции, и ты хочешь работать не за столом из опилок в убогом офисе, то советую пользоваться топчиком.

> На фронте вью использую, да
крассавчик!


>>2349109
все так делают
Аноним 03/05/22 Втр 12:12:21 2349190 347
2022-05-03x12:1[...].jpg 297Кб, 1829x890
1829x890
такие дела
Аноним 03/05/22 Втр 12:15:09 2349195 348
>>2348972
а я понял я тупой, я удалил закоментированные массивы и все стало быстро как раньше
>>2349016
Посоветуй не для даунов
Аноним 03/05/22 Втр 12:18:53 2349197 349
2022-05-03x12:1[...].jpg 287Кб, 1652x1049
1652x1049
все я ушел настраивать панду, так дальше жить нельзя блядь..



>>2349195
> Посоветуй не для даунов
а ты не очень умный если честно...
Аноним 03/05/22 Втр 12:30:27 2349202 350
>>2349197
>а ты не очень умный если честно...
Так и есть, я так понял у тебя вижул бэйсик студио ммм, вот это то не для даунов?
Аноним 03/05/22 Втр 12:49:03 2349211 351
>>2349208
> btw
иди нахуй

я вижу, поэтому и написал, хочешь работать в обоссаном офисе с армстроногом, вперед и с песней ебать убогую флудед жангу, томика луца не забудь перечитать, ага сука)

> да еще
душная пиздорылая лягушка иди нахуй. фастапи топчик, ноудискас.
Аноним 03/05/22 Втр 13:27:01 2349259 352
Тебя забыл спросить что "топчик", а что нет. Возвращайся откуда вылез
Аноним 03/05/22 Втр 16:03:56 2349382 353
1.png 29Кб, 855x421
855x421
Мне нужно периодически читать показания с датчика и отправлять их на сервер. При этом требуется сделать так, чтобы при отсутствии интернета данные не терялись, а сохранялись и отправлялись при возобновлении соединения.
Написал вот как-то так. Данные с датчика сохраняются в список, который и отправляю. Если сервер ответил "200", то список очищаю. Это будет работать? Не будет ли тут случая когда данные отправятся повторно, если например сработает таймаут, на самом деле отправив данные?
Если такая ошибка есть, то как это устранить? Проверять на стороне сервера?
Я не программист, если что не так.
Аноним 03/05/22 Втр 16:10:05 2349386 354
>>2349382
1. Проверяй в бесконечном цикле который ждет через time.sleep, треды тут ни к чему
2. Добавь мониторинг, в случае ошибки логи должны быть
3. В принципе такой вариант валиден, но данные в теории могут всер авно продублироваться, чтобы это отловить отправляй timestamp внутри каждого показания счетчика
Аноним 03/05/22 Втр 16:26:20 2349396 355
2022-05-03x16:2[...].jpg 24Кб, 881x177
881x177
>>2349382
> Я не программист, если что не так.
дауна выше не слушай, бесконечный луп хуита, а реализуй логику експешона, пасс это тоже хуета, делай там стак и ебашь рекурсию (я так делал (только без стака))
Аноним 03/05/22 Втр 16:46:45 2349422 356
>>2349396
>бесконечный луп хуита
Даун, у тебя асинхронный ивент луп работает на том же бесконечном цикле. И большинство скриптов-демонов работают точно так же блять.

В идеале ему конечно тоже стоит создать своего демона, который работал бы через supervisor например если на unix. Ну или на худой конец свое самописное решение через os.fork
Аноним 03/05/22 Втр 16:52:46 2349425 357
Эта мелкобуква из воркача сбежала кстати.
Аноним 03/05/22 Втр 17:07:53 2349436 358
>>2349422
ладно, я погорячился, просто тригернулся на в целом уебанский подход

тут должен быть вочер за сетью, с колбеком на случай разрыва


ос тоже хуета, либо паслиб либо что то другое, не знают просто бесит, всегда там говно какое то


>>2349425
я истинный оп питонотреда https://sites.google.com/view/pypry/

а ты никчемный нюфаг - нука брысь нахуй шваль
Аноним 03/05/22 Втр 18:00:03 2349457 359
2.png 153Кб, 1360x1169
1360x1169
>>2349436
Вот так в итоге оставлю, как-то работает, наверное сойдет. Только нужно еще что-то придумать со сбрасыванием часов при выключении питания. Оно конечно через NTP получает время, но не сразу.
Лог пишу в stderr, systemd может оттуда брать. На счет лога опасался что он все место забьет при возникновении ошибок, но прикинул и вроде бы нормально, нужно только проверить настройки logrotate.

>в целом уебанский подход
Может и так, я не претендую на звание программиста.
>тут должен быть вочер за сетью, с колбеком на случай разрыва
Но что оно улучшит? Поможет предотвратить какие-то нежелательные последствия сбоев? Но даже если все напрочь сломается, то systemd перезапустит.
Аноним 03/05/22 Втр 18:28:46 2349476 360
https://yurecnt.ru/files/books/43hhsdjgo0mud4djzg2zveo1pnzc1o.pdf
Вот кстати про поднятие демона от Бизли (стр 524). Хуячит через fork и while True, но в общем если ты новичок в пистоне и юниксе, то можно так не заябываться
Аноним 03/05/22 Втр 19:03:07 2349505 361
>>2349476
>Вот кстати про поднятие демона от Бизли (стр 524).
Это для старых инитов. Сомневаюсь что на это стоит оглядываться при использовании systemd.
Аноним 03/05/22 Втр 19:04:02 2349506 362
2022-05-03x18:1[...].jpg 268Кб, 2151x1439
2151x1439
2022-05-03x18:5[...].jpg 473Кб, 2016x1439
2016x1439
преисполнился пандой, прям топчик, есть ебанутые моменты, но в целом ня


>>2349457
эксепшоны по красоте расписал, чотко!
Аноним 03/05/22 Втр 19:07:52 2349514 363
Аноны, стоит ли начинать учиться с нуля на сайте Питонтьютор?
Аноним 03/05/22 Втр 19:11:36 2349516 364
>>2349514
С нуля надо не питон учить, а базу.
Аноним 03/05/22 Втр 19:21:30 2349522 365
Аноним 03/05/22 Втр 19:46:28 2349541 366
ребзя подскажите, не знаю даже как загуглить -
мне нужно получить событие, в винде звук. Как зафиксировать, что на каком-то звуковом устройстве появился звук?
Аноним 03/05/22 Втр 19:51:25 2349543 367
Аноним 03/05/22 Втр 19:53:40 2349544 368
pythonPower fil[...].mp4 6507Кб, 1280x720, 00:00:45
1280x720
simplescreenrec[...].mp4 12454Кб, 1720x720, 00:00:29
1720x720
simplescreenrec[...].mp4 11638Кб, 3440x1440, 00:00:09
3440x1440
ue4pythonpower-[...].mp4 6414Кб, 3440x1440, 00:00:15
3440x1440
>>2349514
> стоит
если совсем зеленый можешь начать с квиза на мобиле, забыл как приложуха называется, но найдешь изи, она в топе


>>2349516
безмозглый даун только используя инструмент для решения своих задач можно не дропнуть через две недели.стоит


>>2349541
> винде
никак. спермоглотам неположено. индусос закрытая помойка для унтерменшей, это не Операционная Система для Пользователя ( как Arch Linux ) в привычном понимании.
Аноним 03/05/22 Втр 22:51:57 2349627 369
2022-05-03x22:4[...].jpg 302Кб, 3044x1043
3044x1043
чето панда подбешивает...
Аноним 03/05/22 Втр 23:27:54 2349634 370
фильтра дату попортили, отключил все нормой стало

конечно такая неявная сортировка это пиздец и залет прям явный ууу
Аноним 03/05/22 Втр 23:42:05 2349637 371
Аноним 04/05/22 Срд 00:45:11 2349653 372
2022-05-04x00:3[...].jpg 591Кб, 3440x1440
3440x1440
bf1c2922d1b30cb[...].jpg 12Кб, 296x300
296x300
Аноним 04/05/22 Срд 02:46:13 2349666 373
Это снова я >>2349063

В общем, я тут ещё подумал, что надо ведь как-то отображать, что текущий пользователь уже лайкнул какой-то пост. Как это лучше сделать? Весь день ебался, пытаясь как-то добавить в сериализатор, выводящий список постов, ещё информацию о том, лайкнул его пользователь или нет. Но не смог в общем. Типа мне бы пришлось для каждого поста на странице делать запрос к бд и смотреть, нет ли там лайка от текущего юзера.

Я тут подумал. А может просто при логине делать запрос к бд и сохранять в localStorage какой-нибудь список всех оцененных постов? Норм идея? И дальше там добавлять/изменять эту информацию при новых лайках.

Не знаете, как такая штука везде реализуется?
Аноним 04/05/22 Срд 10:04:16 2349742 374
Посоны, прохожу сейчас курс по питону от работы, чёт нихуя не успеваю порешать контрольные. Сколько примерно будет стоить сделать и где можно заказ разместить? Программировать в будущем в общем-то не планирую, просто нужен перк в виде технического ДПО от московского технического ВУЗа к моему нетехническому мухосранскому в/о.
Аноним 04/05/22 Срд 10:36:33 2349769 375
Аноним 04/05/22 Срд 10:38:04 2349774 376
>>2349666
> Норм идея?
Если ты от скуки маешься, то пойдешь, но вообще, конечно, хуита. На любой запрос сервак может отвалиться, значит клиенту нужно сперва ждать подтверждения двухсотки. А если юзер закроет таб до подтверждения? Делать полноценный двухфазный коммит? Ну это перебор немного для такой задачи. Забить на консистентность? Лучше уж базу дрочить на каждый запрос поста. Если индексы есть, то джойн быстро отработает, не страдай хуйней.
> Не знаете, как такая штука везде реализуется?
Б-дерево на диске по паре id поста и юзера в качестве ключа да https://en.wikipedia.org/wiki/Bloom_filter в RAM поверх него.
Аноним 04/05/22 Срд 11:51:13 2349816 377
>>2349774
Ну не очень понял, в чем проблема. Я это планирую использовать для того чтобы фронт понимал, что ему при нажатии на кнопку надо не пост запрос на создание лайка послать, а делит на удаление лайка. Но даже если че-то там не загрузится, то я все равно в бд поставил констрейнт на то чтобы у одного юзера для одного поста могла быть только одна запись, поэтому ну типа не сработает энивей. Ошибку какую-нибудь покажу, что типа вы уже лайкали.
Аноним 04/05/22 Срд 12:12:01 2349831 378
>>2349742
@krsq04
Кидай, посмотрю. Если смогу решить, то за недорога.
Аноним 04/05/22 Срд 12:20:25 2349841 379
>>2349774
>>2349816
Ну и я прост ещё недопер, как это сделать по-другому, лел. Вот у меня 100 постов на странице например. И че мне для всех загружать все лайки вообще каждый раз когда кто-то просто на страницу заходит? Ну это же точно не умно? Я придумал, что при лайке буду считать количество всех лайков для лайкнутого поста и записывать это прям в таблицу поста. То есть когда кто-то лайкает, создается запись в таблице лайков, происходит count запрос для количества лайков к этому посту, это количество записывается в таблицу поста в поле "лайки". Таким образом, когда кто-то просто заходит на страницу, считать лайки для поста не надо будет, а просто вывести число. Но вот тогда не понятно, кто эти лайки делал конечно. Поэтому я придумал ту штуку с запрашиванием всех лайков юзера. Ну энивей это же лучше, чем каждый раз все посты на странице проверять, да?
Аноним 04/05/22 Срд 12:22:47 2349843 380
Пытаюсь вникнуть во фронт на реакте. Он у меня как независимое приложение. Вопрос в том, как посылать запросы на бек, это вручную URL'ы хардкордить нужно, или есть какой то способ синхронизировать?
Аноним 04/05/22 Срд 12:23:24 2349844 381
Аноним 04/05/22 Срд 12:41:21 2349862 382
>>2349841
твои шизопростыни не читаю (потому что типовые задачи, но ты отчаенно ебешь голову и отказываешься гуглить сука)


лайк эмаунт грузится вместе с постом

при наведении догружаются лайкуны

хуле так сложно? жалко запросы сделай кеш блядь
Аноним 04/05/22 Срд 13:11:51 2349918 383
>>2349843
Что именно ты там хардкодить собрался? Пути относительные указывай
Аноним 04/05/22 Срд 13:12:38 2349923 384
image.png 149Кб, 1031x736
1031x736
>>2349476
На 521 кстати годная тема
Аноним 04/05/22 Срд 13:18:46 2349926 385
Плохо знаю python, подскажите что означает эта конструкция в классе def __init__(dict):
Аноним 04/05/22 Срд 13:27:08 2349938 386
>>2349926
Что делать когда создаётся
Аноним 04/05/22 Срд 13:28:28 2349940 387
>>2349938
Ну я понял что это конструктор, я имел ввиду та часть что в скобках, (dict), что это? Это наследование от словаря или что?
Аноним 04/05/22 Срд 13:30:02 2349942 388
>>2349940
Это название параметра, но перед должен быть self. Стало быть, раз его нет, згачит он вместо self
Аноним 04/05/22 Срд 13:41:21 2349947 389
Нипонял, зачем я должен явно указывать bufsize (число) когда вызываю recv у сокета? Если bufsize будет слишком мал то я не вытащу все данные оттуда, как сделать так чтоб гарантированно вытащить из него все? Указать ебанутое огромное число?

putsocket, getsocket = socket.socketpair()
putsocket.send(b'xyz')
result = getsocket.recv(1)
print(result) # x
Аноним 04/05/22 Срд 13:46:38 2349949 390
>>2349947
Думаешь, для обычных запросов в хедере просто так указывается размер сообщения?
Аноним 04/05/22 Срд 13:46:57 2349951 391
Аноним 04/05/22 Срд 13:49:59 2349954 392
>>2349918
Ну что бы джсоны по апи дергать. За относительный путь я понял, спасибо
Аноним 04/05/22 Срд 13:50:52 2349955 393
>>2349949
А если я использую 2 сокета внутри моего приложения, чтобы по ним обмениваться данными? Где там хедер? Это ж даже не протокол TCP/IP
Аноним 04/05/22 Срд 13:53:27 2349957 394
>>2349947
Очевидно что можно было бы попытаться прочитать из сокета все что там есть через цикл а потом выйти из него, когда последовательность закончится. НО:

1. Когда в сокете ничего нет и мы вызываем recv, он падла блокируется и ждет появления байт (которые не придут), не возвращает никаких None
2. Это можно решить передавая в конце определенный символ который бы означал окончание последовательности и по нему выходить из цикла, но выглядит как-то по-уебански. Как заставить recv не блокироваться?
Аноним 04/05/22 Срд 14:37:24 2349975 395
>>2349844
О, ну это вроде поможет, спс почитаю. Типа получается одним запросом посчитаю, сколько у каждого поста лайков. Ну или не одним, хз.

>>2349862
Да в гугле чет все слишком сложно все это реализуют и по-разному, я нипанимаю. Я бы в принципе мог сделать чтоб оно работало, но вот мне кажется всё, что я неправильно делаю наверное. Хочется чтоб я сделал запрос типа GET /posts/ и хуяк он мне жсон со всей информацией которую надо отрендерить. Ну вроде вот аннотация то, что нужно. Но с лайками для юзера ещё подумать надо будет. Ну я уже сделал почти как я говорил с сохранением в сессию типа. Посмотрю/. как будет работать.
Аноним 04/05/22 Срд 14:50:25 2349987 396
Как по простому перевести словарь в string чтобы каждое имя с ключом было на новой строке?
Аноним 04/05/22 Срд 15:00:43 2349994 397
Аноним 04/05/22 Срд 15:19:46 2350007 398
Аноним 04/05/22 Срд 16:48:03 2350086 399
Аноны, как вы передаете значения одной функции в качестве аргумента другой функции и почему?

https://pastebin.com/MHhEQjZq ну или ваш вариант.
Аноним 04/05/22 Срд 16:52:44 2350088 400
3xt0cbg53qf11.jpg 40Кб, 425x340
425x340
Аноним 04/05/22 Срд 17:04:45 2350099 401
>>2350086
Там только два варианта это сделать. Использую оба, когда как
Аноним 04/05/22 Срд 17:08:29 2350100 402
>>2350088
>>2350099
Я собственно и спросил - почему вы используете тот или иной вариант? Или иначе говоря, в каких случаях какой?
Аноним 04/05/22 Срд 17:12:40 2350103 403
>>2350100
Если результат первой функции не используется где-то еще, а ее вызов не вылезает за пределы длины строки, то все делаю в агрументах
Аноним 04/05/22 Срд 17:14:38 2350105 404
2022-05-04x17:1[...].jpg 41Кб, 1178x293
1178x293
>>2350100
один императивный, второй декларативный, use wisely yopta
Аноним 04/05/22 Срд 17:29:09 2350111 405
>>2350100
Если значение параметра больше нигде не используется, то сразу внутри, очевидно, не в ущерб читаемости конечно
Аноним 04/05/22 Срд 18:00:35 2350130 406
>>2350111
А таком случае параметры записываю в новые строки, если их больше одного.
Аноним 04/05/22 Срд 18:11:28 2350140 407
Привет, педики.
Какой петпроджект можно накатать на чистом петоне?
Микросервис может какой.
Аноним 04/05/22 Срд 18:15:49 2350142 408
>>2350140
дахуф уже наскиллованный стал?
Аноним 04/05/22 Срд 18:35:51 2350161 409
>>2338156 (OP)
Антон, решил я наконец вкотится в погромирование.
Что скажешь про курсы от Яндекса?
https://practicum.yandex.ru/backend-developer/

В конце концов, это же в их интересах подготовить максимум качественных рабов за еду, которые задемпингуют профессию в говно. Обещают профессионалов - преподавателей, и актуальные знания в курсе. С 75% скидкой от госуслуг стоить будет копейки.

Кто-нибудь проходил?

Аноним 04/05/22 Срд 18:43:19 2350170 410
Есть тут невкатыши, которые делали стереокамеру на OpenCV и сетевых камерах? Есть охуенные вопросы касательно калибровки. Карта глубины нихера не формируется нормально
Аноним 04/05/22 Срд 18:53:10 2350175 411
2022-05-04x18:5[...].jpg 240Кб, 1814x1154
1814x1154
>>2350170
> Карта глубины нихера не формируется нормально
потому что у тебя руки из сраки

графон ирл нихуя не робастный, ты должен все сделать правильно

ты блядь гуглил вообще?
Аноним 04/05/22 Срд 19:04:49 2350186 412
>>2350175
Да, RMS по камерам на уровне 0.06 и ниже, а RMS от stereoCalibrate ниже 2 не опускал, еще и stereoRectify выдает хуевые матрицы
2х AXIS 3204

Разница есть, будет это камера через модуль для стереорежима или две сетевые?

использую SGBM с GUI. Покрасил в RGB и полная хуита выходит, часть дальних предметов покрашены красным
Аноним 04/05/22 Срд 19:10:18 2350189 413
>>2350161
>В конце концов, это же в их интересах подготовить максимум качественных рабов за еду
На самом деле яндекс состоит из кучи разных подразделений со своими целями. Конкретно у практикума цель собрать больше всего бабла с вкатышей
но я пойду сам туда за дипломом о доп образовании
Аноним 04/05/22 Срд 19:40:02 2350201 414
>>2349947
>Если bufsize будет слишком мал то я не вытащу все данные оттуда, как сделать так чтоб гарантированно вытащить из него все? Указать ебанутое огромное число?
Значение recv ограничивает сверху, это чтобы не не подавился тем объёмом данных, который пришёл. Особенно актуально для низкоуровневых ЯП, где надо память самому выделять.

При этом функция тебе может вернуть пакет не целый, я часть. Например если ты пошлёшь сразу 10 килобайт через полноценную сеть, то на выходе получишь блоки примерно 1500 байт, чуть меньше, типа 1492, не помню сколько.

Это потому что данные идут в TCP, разбиваются на IP пакеты, каждый из которых около полутора килобайт вместе с заголовком.

У тебя единственный вариант в том, чтобы накапливать данные в буфере, пока ты не соберёшь пакет целиком. А как определять, когда пакет собрался, это уже твоя работа, или ты сначала высылаешь размер пакета, а потом сами данные, или ждёшь специальный байт или комбинацию, которая показывает, что пакет собран.
Аноним 04/05/22 Срд 19:43:11 2350203 415
>>2349957
>2. Это можно решить передавая в конце определенный символ который бы означал окончание последовательности и по нему выходить из цикла, но выглядит как-то по-уебански. Как заставить recv не блокироваться?
Лучше всего начать изучать асинхронное программирование.
Аноним 04/05/22 Срд 19:50:30 2350206 416
>>2350203
Ебло, как асинхронка соотносится с низкоуровневым междусокетным взаимодействием?
Аноним 04/05/22 Срд 19:56:53 2350211 417
>>2350206
Так, что это самое основное предназначение асинхронки и работать с сетью удобнее всего именно через неё.

Смотри на асинкио-протоколы и loop.create_connection / create_server
Аноним 04/05/22 Срд 20:00:32 2350213 418
>>2350211
Я в курсе про asyncio. Я юзал легковесное соединение по паре сокетов для оперативной передачи данных внутри самого приложения, хз насколько целесообразно юзать create_server для этого. Кстати сокеты можно обвязать асинхронкой но это делается костылями через Future:
https://stackoverflow.com/questions/48248567/how-to-await-a-select-select-call-in-python-asyncio
Аноним 04/05/22 Срд 20:04:09 2350217 419
>>2350189
Я сильно сомневаюсь, что основной целью яндекса было делать на этом деньги. В конце концов, тот же курс на питоне прошло только 800 человек. Едва ли это огромные по меркам яндекса бабки.

А вот эффект от демпинга на рынке для них будет просто заебись.
Аноним 04/05/22 Срд 20:04:44 2350218 420
>>2350213
Я сам работал на втором питоне с сокетами и селектами, но это извращение.

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

С обычными сокетами больше магии, все эти bind/accept и не помню уж чего там ещё. Всё равно придётся асинкио изучать, если в сети хочешь лезть.
Аноним 04/05/22 Срд 20:08:56 2350222 421
>>2350217
Я сомневаюсь, что вот из этих 800 человек хотя бы половина на что-то реально способна на выходе. А и без курсов масса тех, кто программирование осваивает, самостоятельно, намного больше. Особенно студни всякой.

Я думаю, они просто осваивают рынок онлайн-образования, за котором большое будущее. Есть питон курсы, есть курсы по другим языкам и технологиям, есть не по программированию вообще.

Сейчас небольшой рынок, потом будет огромный. Это одно из самых перспективных направлений.

Я бы тут в целом больше доверял яндексу, чем другим. Всё-таки они рынок нарабатывают, а не за копейками охотятся, как многие мелкие шарашки.
Аноним 04/05/22 Срд 20:11:57 2350224 422
>>2350217
>А вот эффект от демпинга на рынке для них будет просто заебись.
Кстати яндексам меньше всего нужен демпинг на рынке. Они в силу масштабов намного легче могут платить, чем другие.

Демпинг как раз для них опасен, потому что выше риски появления конкурентов, которые при высоких зарплатах не тянут инвестиции.
Аноним 04/05/22 Срд 20:15:36 2350227 423
>>2350213
>Я юзал легковесное соединение по паре сокетов для оперативной передачи данных внутри самого приложения, хз насколько целесообразно юзать create_server для этого
Вот это совсем не понятно. А зачем так сложно? Если внутри процесса одного? Не проще ли тупо через обычные очереди, queue?
Аноним 04/05/22 Срд 20:45:13 2350239 424
img122-0.png 36Кб, 1898x1120
1898x1120
img196-1.png 569Кб, 1920x1080
1920x1080
img198.png 49Кб, 929x539
929x539
>>2350186
> stereoRectify выдает хуевые матрицы
и хуле ты хочешь?

> Разница
в душе не ибу, но логика должна подсказать тебе что при грамотном сетапе ты ботлнекнешься об уебищную матрицу

у меня с опенсв до сих пор срачло подгорает, если работать с анивен датой, то это ебанная свистопляска, в итоге только нейросеть смогла выдать результат без ебли и составлении охуевшей индусской карты с параметрами на любой чих

> SGBM с GUI
как тут? если да то все правильно делаешь, я эту блядовину чейнил, в итоге у меня четыре окна с ползунами было лол и в каждом чето подкручивал, но это пиздец дрочь и бойлер плейт меня тресло как суку, я сначала на жсговне это сделал, но там очевидно самая мякотка нихуя не работает

советую поставить репку с гитхаба, там бывают годные обновки, я там нашел алгоритм который добавил китаец, так что буквально через три месяца он меня дичайше выручил


кароче поставь пару лампочек, освети сцену - если не поможет забей хуй, ты явно не вывозишь гуглежку и чтение СО.


>>2350206
лол, ебать дебил

>>2350213
> Future
тогда и в жсговне промисы это костыль, идиот ебанный...
Аноним 04/05/22 Срд 20:50:04 2350244 425
2022-05-04x20:4[...].jpg 286Кб, 2332x1054
2332x1054
отпало
Аноним 04/05/22 Срд 21:05:54 2350252 426
image.png 258Кб, 1294x517
1294x517
image.png 566Кб, 1340x943
1340x943
2022-05-04x21:0[...].jpg 108Кб, 1688x780
1688x780
ты хоть стрим постпроцессишь фильтрами?

накидай фоточек то

а вообще лучше не иби голову, один хуй хуйня получится юзабельная только на каком нибудь залитом светом светом конвейере
Аноним 04/05/22 Срд 22:46:22 2350311 427
>>2350217
>А вот эффект от демпинга на рынке для них будет просто заебись.
Для этого у них ШАД есть, где средний чел хуй пройдет вступительнные без мат подготовки, а в практиктикум любого человека с улицы возьмут и протащат
Аноним 04/05/22 Срд 23:08:39 2350322 428
Создал функцию которая скачивает файл и возвращает его в качестве объекта для дальнейшего использования, в случае возникновения ошибки что должна делать функция, выбрасывать ошибку или возвращать пустой объект? Как это вообще положено делать, есть ли какие-нибудь стандарты? Можете подсказать?
Аноним 04/05/22 Срд 23:15:48 2350333 429
>>2350322
>возвращать пустой объект
Это c/go way. По логике надо бросать исключение.
Аноним 04/05/22 Срд 23:17:20 2350334 430
>>2350322
Скачивать файл в виде обьекта идея не очень. Лучше сделай генератор по файлу и пользуйся им, если он лежит локально, ну либо как-нибудь ещё.
Делпй через try except и там делай что хочешь, ошибку надо обрабатывать, а не показывать. Ну, показывать в консоли надо, но главное сделать, что-то, например, выкинуть None или что там у тебя по сценарию надо
Аноним 04/05/22 Срд 23:21:12 2350337 431
>>2350334
Это я к чему, представь что у тебя файл весом в охрениллион. Ты ж не будешь его в оперативку грузить, правильно?
Аноним 05/05/22 Чтв 02:31:53 2350425 432
>>2350337
Мне кажется он другое имел в виду, что не в виде данных файл отдаётся, а в виде хендлера с открытым файлом. Хотя хз что он имел в виду.

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

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

Без внятного ТЗ я бы не рискнул варианты предлагать вообще.
Аноним 05/05/22 Чтв 08:19:49 2350458 433
Clipboard01.jpg 40Кб, 921x303
921x303
>>2349862
Пездос, всю ночь не спал, таки смог впердолить всё это в один запрос.
Аноним 05/05/22 Чтв 09:25:35 2350467 434
2022-05-05x09:2[...].jpg 78Кб, 582x1437
582x1437
>>2350458
крассава

а теперь переделывай ;)

ну или хуй забей если даты не много
какая же джанга уебищная пиздец просто, кстати вся функциональщина типа map filter и тд и тп медленнее [лист компов]
Аноним 05/05/22 Чтв 09:36:12 2350468 435
>>2350161
>В конце концов, это же в их интересах подготовить максимум качественных рабов за еду, которые задемпингуют профессию в говно.
Для этого есть студенты.
Аноним 05/05/22 Чтв 09:57:39 2350470 436
>>2350322
Это уже зависит от бизнес-логики. Ифы с возвратом None "проще", но при разрастании кодовой базы эти условные возвраты засирают логику, особенно у чистых функций.
Тут тебе надо подумать, какие ошибки ты можешь обработать в контексте этой функции и обрабатывать только их в том случае, если можешь вернуть результат без изменения сигнатуры функции. А всё остальное должно прокидываться дальше.
Аноним 05/05/22 Чтв 11:39:28 2350538 437
>>2349769
ебать хули так дорого? я сам блядь решу лучше чем столько платить, я столько не зарабатываю
Аноним 05/05/22 Чтв 11:42:33 2350540 438
>>2350470
>бизнес-логики
ты дохуя бизнесмен?
Аноним 05/05/22 Чтв 12:08:42 2350548 439
изображение.png 88Кб, 569x709
569x709
>>2348974
Да нужно чтобы поток сам стучался в главный поток, а не чтобы из главного join вызывался.
Вот примерно такой же код с таким же выводом, только существенно чтобы функция prn была async и вызывалась в главном потоке после сообщения от threading.Thread

Впрочем, можно уже забить, я сделал все без asyncio.
Аноним 05/05/22 Чтв 12:53:01 2350581 440
>>2350540
Бизнес-логика - в первую очередь формальное описание алгоритма, а не то, что тебе кабанчик там намямлил на полудневном грумминге. Вот формальное описание и описывает, должны ли ошибки ронять рантайм или втихую глушиться.
Аноним 05/05/22 Чтв 13:00:52 2350583 441
>>2350239
Гуглежку вывожу, ебаный OpenCV-Python выдает хуиту, ошибешься с параметрами и получишь месиво.

Так смысл не нейронкой делать. Надо понять можно ли без OAK-D обойтись или RealSense, потому что уже хер купишь.

В принципе есть платы StereoPi, но CM4 только едет из Китая

Матрица камер 1МП, но они же еще с автоподстройко что меня и смущает, так как все примеры на дешевых вебкамерах или же pinhole.

Короче карта как бы есть, но видно, что нет наложения по оси X, тут и гугол не поможет если я проебался. Буду дальше читать доки OpenCV, спасибо
Аноним 05/05/22 Чтв 13:26:38 2350601 442
В чём отличия использования async от threading?
Аноним 05/05/22 Чтв 13:27:49 2350604 443
>>2350601
Если я тебя буду ебать в рот или в анус разница будет?
Аноним 05/05/22 Чтв 13:31:37 2350606 444
2022-05-05x13:3[...].jpg 8Кб, 384x68
384x68
>>2350583
> Гуглежку вывожу
не обманывай

> ошибешься с параметрами и получишь месиво
как и везде и всегда

> хер купишь
я тебе картинку с алика приложил

> 1МП
это разрешение не зли меня тупостью

давай удачи, в следующий раз приходи с картинками, у нас ведь компьютерное зрение а не хуй собаки, ю ноу?

>>2350601
> async от threading
вопрос некорректный
Аноним 05/05/22 Чтв 13:33:44 2350608 445
>>2350606
Ну к примеру, можно написать async функцию и вызывать через await, а можно создать thread и использовать обычную функцию. В чём разница между ними кроме специфичного синтаксиса для первого?
Аноним 05/05/22 Чтв 13:37:27 2350610 446
>>2350608
> вызывать через await
ты можешь только корутину, а не блокинг хуйню (ну по факту тебе никто не запрещает, но смысла и пользы ноль)

твой вопрос ГУГЛУ должен был быть - в чем отличие мультитрединга от мультипроцессинга, потому как асинк авейт просто сахар
Аноним 05/05/22 Чтв 13:39:48 2350612 447
>>2350610
Я понимаю в чём отличие между ними. Просто я хочу понять, зачем существует async await, если через threading сделать гораздо проще.
Аноним 05/05/22 Чтв 13:45:48 2350615 448
>>2350612
>проще
Анус ставишь?
Аноним 05/05/22 Чтв 14:39:32 2350643 449
>>2350612
> через threading сделать гораздо проще
показывай
Аноним 05/05/22 Чтв 14:57:00 2350647 450
>>2350643
t = Thread()
t.start()
...
t.join()

Внутри можно делать блокирующие вызовы. А в async нет
Аноним 05/05/22 Чтв 15:07:58 2350654 451
Аноним 05/05/22 Чтв 15:11:21 2350655 452
>>2350654
> ThreadPoolExecutor
Ясно. Никак
Аноним 05/05/22 Чтв 15:23:08 2350665 453
>>2350655
Блять, ты понимаешь вообще что такое "блокирующий"/"неблокирующий"? Ты же понимаешь бля что cpu-bound задачи не выполняются быстрее, если ты их в манятред засунешь?
Аноним 05/05/22 Чтв 15:24:47 2350668 454
>>2350581
просек фишку, мы на коливинге такое обсуждали
Аноним 05/05/22 Чтв 15:25:21 2350669 455
какая разница ш[...].mp4 68Кб, 480x282, 00:00:01
480x282
Аноним 05/05/22 Чтв 15:28:03 2350672 456
2022-05-05x15:2[...].jpg 450Кб, 3440x1440
3440x1440
>>2350647
ты не разбираешься в вопросе, но уже зачем то лезешь спорить, ты ебливый дрочер без задач. не пиши мне больше.


>>2350654
если видишь как кто то эксплиситли указывает количество воркеров ThreadPoolExecutor(max_workers=5) то значит перед тобой пиздорылый даун

тоже самое можно сказать про мануальное открытие лупа - додики жрут протухшее говно
Аноним 05/05/22 Чтв 15:31:42 2350676 457
2022-05-05x15:3[...].jpg 71Кб, 1163x498
1163x498
быстрофикс разметки
Аноним 05/05/22 Чтв 15:34:28 2350679 458
>>2350672
Разницы между методами loop и asyncio.to_thread - никакой
хотя нет, есть, с последним можно повыебываться и набить себе цену, якобы ты ниибацо в тренде
Аноним 05/05/22 Чтв 15:43:53 2350685 459
>>2350672
Ты - сын спидозной шалавы. Я задал вопрос в чём их отличие. Не можешь ответить по существу - завали ебальник
Аноним 05/05/22 Чтв 17:28:35 2350778 460
>>2350239
Ну чот хуита снова

https://imgur.com/a/q4Lo26y - фото
https://pastebin.com/FCzcf1eZ - код

Вот что мой код высрал

Калибровка стерео режима
0.4987280024608082 левая
0.453676328043347 правая
RMS 1.6204857856812112 калибровка стерео

Еще снова получаю заваленный горизонт почему-то. Если взять флаг USE_INTRISIC_GUESS, то remap приближает изображение, а нужно сохранить пропорции. Беру FIX_INTRISIC, получае только изменение горизонта.

Если будет время глянь пожалуйста, вдруг с чем-то уже таким возился.
Аноним 05/05/22 Чтв 17:32:09 2350785 461
pairscreenshot0[...].png 385Кб, 1600x600
1600x600
dispscreenshot0[...].png 143Кб, 800x600
800x600
>>2350252
SGBM уже сглаживание делает. Фишка в том что не выходит нормальной цветовой дифференциации.

У меня все равно бэкграунд светлее предметов впереди или посередине. В итоге окрашенная карта это просто световое пятно
Аноним 05/05/22 Чтв 17:34:28 2350789 462
>>2350252
>>2350239
Но есть впечатление, что все это херня, так как нигде не видел вариантов с использованием сетевых камер. Либо намного проще варианты, либо stereoPi/Arducam.
Я не могу поверить, что платы для стереокамер это серебряная пуля
Аноним 05/05/22 Чтв 18:02:13 2350803 463
2022-05-05x17:5[...].jpg 230Кб, 2184x1290
2184x1290
2022-05-05x17:5[...].jpg 289Кб, 2396x1251
2396x1251
image.png 1270Кб, 1800x1059
1800x1059
image.png 174Кб, 450x228
450x228
>>2350778
- не используй русские менты
- не используй os
- не используй такую охуевшую экстракцию

упрости сцену и код до максимума, тупо белый фон и одна книга, потом добавь вторую и все это с хорошим мягким освещением

если ты с этим не справишься то гг.


какие впизду специальные камеры... в специальных камерах кроме зашитого "межзрачкового" расстояния и калибровки с завода ничего быть не может. изображение с камеры - тупой стрим кадров

причем там цвет блядь!? ты офф доки открывал? там пример ЧБ блядь!

а сама дебс мапа это фича экстракшен (тоже самое для стабилизации юзается) и матёшка с расстояниями между камер и до фич - ВСЁ блядь ну просто элементарная хуета


ближайшее с чем я сталкивался это crop visible и ротейт в горизонт по найденной доминанте

ну и фича матчинг и вообще все алгосы по фичам, но под мои дела они не подошли, поэтому не пушил далеко
Аноним 05/05/22 Чтв 18:04:10 2350805 464
> менты
каменты

> калибровки
прошивки с параметрами
Аноним 05/05/22 Чтв 18:11:21 2350809 465
>>2350803
Почему ЧБ, если 16 бит grayscale?
>камерах кроме зашитого
Именно, а эти AXIS по кило каждая, я еле их выставил хоть как-то. Еще и поворотный механизм для объектива. Там все в движении считай и это мешает выставить по Y нормально, так как для disparity map хорошие условия это сдвиг только по X иначе будет то что у меня выходит, это я еще с линейкой выставлял.
Аноним 05/05/22 Чтв 18:22:48 2350818 466
2022-05-05x18:1[...].jpg 915Кб, 3440x1440
3440x1440
image.png 17Кб, 432x288
432x288
image.png 2655Кб, 1920x1440
1920x1440
Screenshot20200[...].png 20Кб, 3355x974
3355x974
>>2350809
> 16 бит grayscale
нахуй ты душнишь ебать?

если речь идет за чистое чб, то оно называется БАЙНАРИ и даже плотается в специальной цветовой гамме

> мешает выставить по Y нормально
только твоя лень и тупость, недающая скачать уровень, сука тебе даже в строительный магазин для этого не надо идти, ууууу зумеры пиздец..
Аноним 05/05/22 Чтв 19:57:16 2350898 467
Аноним 05/05/22 Чтв 19:58:59 2350900 468
Аноним 05/05/22 Чтв 23:11:22 2350987 469
2022-05-05x23:0[...].jpg 100Кб, 1053x1139
1053x1139
bf1c2922d1b30cb[...].jpg 11Кб, 296x300
296x300


рейт нейминга и архитектуры


Аноним 05/05/22 Чтв 23:13:51 2350990 470
> блед импорты забыл отсортировать..
Аноним 05/05/22 Чтв 23:30:53 2351000 471
Аноним 06/05/22 Птн 00:34:49 2351036 472
Какой монго драйвер быстрее? Стандартный pymongo или есть получше?
Использую mongoengine, хотелось бы что-нибудь проще и современней
Аноним 06/05/22 Птн 05:07:51 2351064 473
Хай. Подогнали корпоративную скидку в 70% на курсы skillbox. Тск вот есть смысл тратиться на это говно? Читал много негатива от работодатей, что выпускают оттуда дебилов. Есть у кого реальные примеры, может кто-то сам проходил. Стоит оно того или реально шляпа
Аноним 06/05/22 Птн 05:11:51 2351065 474
>>2351064
В добавление. Знания у меня прям базовые. Сейчас в работе испольщую пайтон для запросов rest api с последующим парсингом(json/re) и выводом данных или последующий прогон через другие реквесты
Аноним 06/05/22 Птн 12:01:45 2351167 475
Аноним 06/05/22 Птн 12:49:05 2351190 476
Аноним 06/05/22 Птн 13:20:28 2351210 477
Собираюсь вкатиться в питон, выбор пал на курсы от яндекс практикума + сам буду углубленно учить
в чем я не прав?
Аноним 06/05/22 Птн 13:41:45 2351223 478
>>2351210
в том что ты заплатишь больше 150к за то что можно бесплатно посмотреть на ютюбе
Аноним 06/05/22 Птн 13:44:16 2351226 479
>>2351210
Если так удобно - делай
Аноним 06/05/22 Птн 13:46:00 2351229 480
>>2351210
Лучше на Степике начни. 2 курса на Степике по синтаксису покрывают первую ступень Яндекс практикума. И скорее всего покрывают материал более подробно.
Аноним 06/05/22 Птн 13:57:23 2351241 481
А чему там на курсах учат? Чтоб погромироваиь надо знать базу, что такое методы, как устроена память и пр. Потом сам язык, но это из доков лучше узнавать.
Едиственное стоящее, это паттерны проектирования, дизайн проекта, как устроена логика работы, ормки, валидаторы, их сочетание, варианты реализации тех или иных механизмов приложений и пр, на реальных примерах, а не обзорных. Вот этого не хватает в гугле. Это есть на курсах?
Аноним 06/05/22 Птн 13:59:51 2351244 482
>>2351223
у меня знаний 0, я хочу плавно вкатиться подкрепляя сверху самообразованием, если пойму что курс уже ничего не дает то просто ливну
Аноним 06/05/22 Птн 14:01:53 2351245 483
>>2351242
Не понимаю тех кто везде асинки суёт
Аноним 06/05/22 Птн 14:25:28 2351256 484
>>2351241
Чел, на работу устраиваются реакто-дебилы, которые не знают даже примерно откуда и как странички в браузер загружаются.
Аноним 06/05/22 Птн 14:58:57 2351272 485
2022-05-05x15:3[...].jpg 438Кб, 3440x1440
3440x1440
Screenshot20211[...].png 608Кб, 3440x1440
3440x1440
>>2351241
> надо знать базу
нет

переменная - это такая коробочка.. -- и поебашил, смотришь на выдачу и ебашишь дальше - ВСЁ СУКА

> паттерны проектирования, дизайн проекта, как устроена логика работы, ормки, валидаторы, их сочетание,
тикетной крысе не понадобятся до конца жизни

>>2351242
лягушка глупая я уже весь тред картинками засрал что мне даже немного неловко

>>2351244
> плавно
додь ты плавно видосы на ютубе не можешь включить или чо ебать?

>>2351245
> везде
не надо, а там где надо идет буст х15
Аноним 06/05/22 Птн 15:05:59 2351274 486
>>2351272
Тикетная макака как раз "переменная коробочка и ебашишь дальше" которая всегда делает говнокод, а к пониманию приходит только с опытом, но стоит ему начать писать что-то новое - будет говнокод. Потому что он не понимает как это всё работает. База в моём понимании это не зубрежка типовых алгоритмов, а умение их самому создавать.
Аноним 06/05/22 Птн 15:06:02 2351275 487
2022-05-06x15:0[...].jpg 326Кб, 2255x1480
2255x1480
и еще такая есть :э
Аноним 06/05/22 Птн 15:08:37 2351279 488
>>2351035
>Мнения
Ты дебил, если не можешь решить за О(1).
Аноним 06/05/22 Птн 15:10:36 2351281 489
Аноним 06/05/22 Птн 15:19:47 2351284 490
>>2351245
А че бы и нет? По сути все операции I/O, если нужны просчеты, ну тогда да отдельно Process. Ебучий питон же не умеет в нативную многоядерность.
Аноним 06/05/22 Птн 15:21:51 2351285 491
>>2351274
>Тикетная макака как раз "переменная коробочка и ебашишь дальше"
Для 99.9% процентов задач этого достаточно, что-то больше нужно только если ты пердолишь кишочки как инстаграм делал
Аноним 06/05/22 Птн 15:23:13 2351286 492
>>2351275
Где autodoc? Типизацию сделал, автодоки нет. Смысл тогда?
Аноним 06/05/22 Птн 15:33:36 2351288 493
2022-04-26x11:0[...].jpg 169Кб, 1275x1023
1275x1023
2022-04-26x11:0[...].jpg 109Кб, 1107x933
1107x933
2022-04-21x22:3[...].jpg 166Кб, 1380x914
1380x914
2022-04-29x12:5[...].jpg 45Кб, 1049x377
1049x377
>>2351286
> Смысл
в том что дока для пидоров, никто эту простыню унылую не читает и хуй в ней разберешься энивей

берешь блядь сорцы, берешь вскод с нейросетевым пайлансом и ебашишь нахуй по красоте.говно
Аноним 06/05/22 Птн 16:30:07 2351324 494
ну что додиковые дрочеры - ловите риал ворлд задачку:

дано:
- from fastapi_utils.tasks import repeat_every
- 03:00 АМ

задача:
сделать из репитера - шедулер
__________________________________________

тулза понимает только секунды @repeat_every(seconds=60 * 60)

а нужно производить запуск в конкретное время, внезависимости от времени деплоя и старта сервера



посмотрим решат ли книжные черви без задач задачу быстрее чем я успею примерно сообразить решение и спиздить код с СО после чая с печеньками :Р
Аноним 06/05/22 Птн 16:31:29 2351327 495
> стдлиба онли бзв
Аноним 06/05/22 Птн 16:45:15 2351332 496
Аноним 06/05/22 Птн 16:57:08 2351342 497
2022-05-06x16:5[...].jpg 151Кб, 2550x659
2550x659
>>2351332
чел ну я же просил без мокрописек


хотя я уже почти готов сдаца сук пздц тварь нихочет мразота((


БАЗА бы памагла антош?)))))
Аноним 06/05/22 Птн 17:02:51 2351348 498
>>2351324
>задача: сделать из репитера - шедулер
Сможем объяснить - нахуя?
Для шедулера используй простой cron, если хочешь извратиться - celery, если нехуй делать - сам напиши его через create_task и asyncio.sleep
Аноним 06/05/22 Птн 17:10:47 2351352 499
>>2351342
Модуль не на костылях это не мокрописька, тем более ты сможешь мониторить нормально, а то сделаешь потом без возможности расширения и пиздец приехали.

Тем более там нативно aio сделали https://apscheduler.readthedocs.io/en/3.x/modules/schedulers/asyncio.html#apscheduler.schedulers.asyncio.AsyncIOScheduler

Тем более ты хочешь вне eventloop это делать.
Аноним 06/05/22 Птн 17:10:54 2351353 500
Меня очень раздражает, что я нихера не могу понять, как конкретно работают класс бейзд вьюс в джанго и в джанго рест конкретно. Ну типа почему никто просто не напишет что и в каком порядке происходит при их работе. В документации одни какие-то примеры на конкретных случаях. Ну либо исходный код, который мне сложно понять. Я бы просто хотел какую-нибудь статью, где бы было тупо описание класса и его методов словами, типа вот когда происходит запрос, то сначала отрабатывает этот метод, затем этот, затем этот. А то я нихера не могу понять, что мне переопределять для конкретной задачи. Каждый раз приходится гуглить, пока не найду на стаке похожий на мой случай. Заебало уже. Мб вы знаете где-нибудь такую статью? А то я не могу никак нагуглить.
Аноним 06/05/22 Птн 17:11:23 2351354 501
2022-05-06x17:0[...].jpg 79Кб, 1295x618
1295x618
2022-05-06x17:0[...].jpg 99Кб, 1341x765
1341x765
>>2351348
> create_task и asyncio.sleep
блядь вот ты низушник сука для тебя уже нон блокинг утилиту сделали без ебли, просто сука посчитай таймдельту и все нахуй

или надо еще пару учебников перечитать ?

> нахуя
питоняшный принцип минимальной достаточности


ну или ладно.. я просто подумал что крон перезапускает целый модуль, а там такой же няшный декоратор -_-


но дату посчитать один хуй все же придется из принципа челенджовости ~_~
Аноним 06/05/22 Птн 17:12:45 2351356 502
>>2351354
Блокирующий вызов в AIO, гг чо
Аноним 06/05/22 Птн 17:14:07 2351358 503
Аноним 06/05/22 Птн 17:18:19 2351362 504
>>2351354
>для тебя уже нон блокинг утилиту сделали без ебли
Мелкобуква, общаться научись для начала. Ты прекрасно видел целиком мой пост и все варианты что я предложил, тем не менее решил высрать максимально невалидную хуйню.
Аноним 06/05/22 Птн 17:24:47 2351367 505
2022-05-06x17:2[...].jpg 355Кб, 2328x1427
2328x1427
>>2351356
you will never know

>>2351358
> джангодебилы совсем обезумели
always has been

>>2351362
я бы тебя уволил за проф не пригодность

вместо работы с коробочными инструментами ты мне предлагаешь в зависимость укладывать какое то неведомое здоровенное говнище, которое будет крашится, которое надо сапортить и следить за версиями, хуе мое совместимости, а пакетный менеджер в питоняшке едва ли такой же пидорский как у жспараши


так что давай пока ниасилятор..
Аноним 06/05/22 Птн 17:25:22 2351369 506
>>2351358
Спасибо, поизучаю. Я только рест сейчас использую, но там вроде они на основе обычных вью сделаны, как я понимаю.
Аноним 06/05/22 Птн 17:25:53 2351371 507
>>2351367
>я бы тебя
На очко бы ты сел бля. После того как мы с ПМом тебя бы на пару обоссали за отсутствие софт скиллов и токс.
Аноним 06/05/22 Птн 17:31:21 2351381 508
>>2351369
Не знаю, я разок использовал Jinja2 и Cheetah, а потом пошел учить VueJS, потому что это пиздец на Python фуллстак говнокодить.
Либо перекатывайся на JS либо дальше REST API не лезь, теперь всем занимается браузер и тут нужен нормальный фреймворк JS
Аноним 06/05/22 Птн 19:02:49 2351432 509
2022-05-06x18:4[...].jpg 189Кб, 2268x1064
2268x1064
>>2351371
> ПМ
видит как ты пытаешься скрыть свое незнание стандартных БАЗОвых модулей за васянскими поделками

которые приведут к необходимости увеличивать память и время на поддержку

а значит своим непрофессионализмом ты привел компанию к УБЫТКАМИ - а это UNACCEPTABLE !!!!


завтра последний день, собирайся.
Аноним 06/05/22 Птн 19:03:13 2351433 510
2022-05-06x19:0[...].jpg 645Кб, 3440x1440
3440x1440
>>2351381
ниасилятор. если бы не уебищные блюпринты фласка была бы идеалом

ну и еще лайв сервер у нее уебищный)) либо он просто препроцессоры не вывозит лол
Аноним 06/05/22 Птн 19:10:43 2351438 511
>>2351035
Сдается мне, что какой-то уебан неправильно скопировал аргументы, и там (from, to, divisibleby, suffix1, suffix2).
Тогда пример: числа от 1 до 20, делящиеся на 4 и при этом не равные 12 и 16.
Собственно из произведений четвёрки это и будут 4,8,20,
Ну и за O(1) тоже надо бы хуем по еблу постучать, там в любом случае будет зависимость от размера диапазона и делителя, которые определят размер выходного списка.

Один шаг решета эратосфена заебашь и будет тебе счастье.
Аноним 06/05/22 Птн 19:53:07 2351470 512
2022-05-06x19:4[...].jpg 204Кб, 2394x1179
2394x1179
финалочка!


но ебливые додики дауны которым надо поебать голову, и применить хоть куда то свои даунские бесполезные книжки которые уже совсем скоро забудутся, вместо реальной работы все еще могут подумоть почему офсет_с округляет секунды
Аноним 06/05/22 Птн 20:02:01 2351480 513
>>2351470
Чибо, тебя из треда тупых вопросов уже выгнали что ли? Отведай хуйца.
Аноним 06/05/22 Птн 21:02:19 2351531 514
2022-05-06x20:5[...].jpg 141Кб, 1584x1095
1584x1095
кароче вообще все это был дроч, ведь таймер аут оф скоуп

и чтобы его задефайнить нужно городить охуевшую конструкцию из колбеков

НО ВЕДЬ Я НЕ ЗНАЮ КАК ОНО РАБОТАЕТ ПАД КАПОТАМ


поэтому не буду лезть в залупу и просто наговнякаю кроном ыыы


>>2351480
> из треда тупых вопросов
мы никуда и не уходили :О


>>2351496
что, восхищаешься питоняшеством, да лигушка :?
Аноним 06/05/22 Птн 22:14:50 2351588 515
>>2351381
Ну так а я что что-то про шаблоны говорил? Я имел в виду вьюхи рест фреймворка, это типа контроллеры в джанге так называются.
Аноним 06/05/22 Птн 23:49:51 2351657 516
SA6vS886RWahQeM[...].jpg 122Кб, 1200x504
1200x504
мужчины, прямо сейчас, прямо здесь. назовите лучшую книгу по питону, чтобы стать змеиным богом уже завтра. без шуток, пожалуйста. заебало читать про типы данных-хуянных, функции и классы. хочется что-то прикладное.
спасибо!
Аноним 06/05/22 Птн 23:59:53 2351661 517
>>2351657
Док и репы в гитхабе
Прикладного нигде нет. Вообще нет.
Аноним 07/05/22 Суб 00:02:09 2351662 518
>>2351658
Да хз, яб сам не отказался. Ну так, я вот делаю сайтик, гуглю что конкретно хочу, документацию читаю. Ну а так начинал делать по видосу от freecodecamp Django REST + Vue, как-то так, думаю нагуглишь.
Аноним 07/05/22 Суб 00:09:18 2351666 519
Накатил motor, а vscode не видит методы, все any, снова.
Скриптовые языки уже начинают немного подбешивать.
Аноним 07/05/22 Суб 01:04:39 2351691 520
>>2351661
это. очень. плохо.
я не могу научиться программировать, понимая теорию и чужой код.
Аноним 07/05/22 Суб 01:17:35 2351693 521
>>2351691
А придётся. Ты редко когда будешь писать проекты с нуля. В основном будут просить либо придерживаться какого-то определённого стиля, либо дорабатывать существующий проект. Тебе дадут развивать имеющийся проект, будешь его переписывать?
Хотя, сейчас в эпоху микросервисов может и дадут возможность что-то сначала делать, но эти паттерны были придуманы не просто так по желанию левой пятки. Ты каждые пару месяцев захочешь переписывать проект. Так что в любом случае, понимание и поддержка чужого говнокода это часть процесса.
Аноним 07/05/22 Суб 02:11:57 2351697 522
>>2351693
видимо, я косноязычно выразился.
Я понимаю чужой код, понимаю теорию: проходил структуры данных, системный анализ, паттерны (но в них, кстати, довольно много пробелов). Знаю про БД, нормализацию, отношения и так далее.
Знаю базово и джаву, и c#, и js (спиздить чужой код - переделать под себя).
Но я вижу, что у меня нет никаких навыков разработки. Я не могу сесть и написать программу, которую захочу. То есть я не могу понять, с чего нужно начать.
Поэтому мне всегда кажется, что нужно восполнить какие-то пробелы, что где-то есть какая-то "таблетка для буста в программировании" в виде книги, лекций или программы обучения.
Поэтому я вновь и вновь начинаю изучать всякие метаниты, learnjavascript'ы и так далее, но никогда дальше объявления класса у меня не заходит.
Аноним 07/05/22 Суб 02:21:28 2351701 523
>>2351697
Делай проекты. Интеграции с какими-нибудь апи. Например, транслировать чат из телеги в дискорд и наоборот
Аноним 07/05/22 Суб 02:48:05 2351709 524
IMG202104290751[...].jpg 403Кб, 3996x2664
3996x2664
IMG202104290155[...].jpg 1029Кб, 3996x2664
3996x2664
IMG202104272235[...].jpg 463Кб, 3996x2664
3996x2664
IMG202104272133[...].jpg 1585Кб, 3996x2664
3996x2664
>>2351706
додик завидует топовому теку или чево я не понял?)))


> Наверное и стол не из опилок
очевидно, я же не калоед)

> дуба
обычного, расеянского, класса экстра ;)
Аноним 07/05/22 Суб 03:00:14 2351711 525
>>2351701
ну вот. я даже не знаю, с чего приступать в таком случае. прочитать документацию аиограм?
Аноним 07/05/22 Суб 03:32:52 2351715 526
>>2351711
Конечно. Понять как работает эта штука. Делать, естественно с каким-нибудь git, можно github. Можно через бота делать для начала чтоб попроще было, а не через mtproto. Юзеров конектить, очереди может кое-где прикрутить, хотя можно и без. Базу по необходимости, может и редис куда пристроить найдётся. Упаковать в докер без композа(он и в проде нахер ненужен честно говоря) и задеплоить, если есть убунту. Вывести логи в графану можно через локи ну и пересборка по комиту через дженкинс, но это уже всё по желанию.
Вариантов и объём реализаций куча. На начальном этапе можно обойтись и скриптом без вебфреймворка, если сделать через aiohttp и кучей воркеров, просто чтоб понимать процесс и тонкости.
Аноним 07/05/22 Суб 03:34:42 2351716 527
>>2351711
И да, начинать не с доков по либам, а с доков по апи. Куда что прикрутить, как читать и чем пересылать.
Аноним 07/05/22 Суб 03:37:31 2351717 528
>>2351715
Ветки в гите раздели на dev и stable, заодно мерджить научишься правильно
Аноним 07/05/22 Суб 04:25:08 2351719 529
lKdUHxa2jMSjxFk[...].jpg 79Кб, 564x484
564x484
>>2351715
Спасибо за советы) не всё, конечно, понятно, но начинаю писать бота с каким-нибудь заполнением формы и сохранением её в бд.
Как я понимаю, это тоже ты
>>2351716
>>2351717
как раз на днях хотел начать вести гитхаб с выполненными заданиями

Аноним 07/05/22 Суб 13:25:18 2351825 530
>>2351719
Фронт тут необязателен. Лучше не делай фронт на питоне, он убогий
Аноним 07/05/22 Суб 13:37:20 2351834 531
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов