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

Ответить в тред Ответить в тред
Check this out!
Питон тред №134 /python/ Аноним 26/12/21 Вск 23:41:34 22489241
chispy.png 602Кб, 757x924
757x924
Тред, посвящённый языку программирования Питон, #134

Предыдущий: >>2234309 (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
Аноним 27/12/21 Пнд 07:32:23 22490382
когда гил уберут?
Аноним 27/12/21 Пнд 10:04:12 22490733
>>2248895 →
Ох, там огромный пайплайн из селери-тасков, на одном из этапов мы запускаем параллельно несколько тасков и передаем их айдишники в следующий таск, какой-то из них может упасть но по итогу ошибка будет обрабатываться только после того как все они выполнятся, а надо бы завершать их как только 1 упадет, чтоб ресурсы не жрать и пользователя меньше ждать заставлять
Аноним 27/12/21 Пнд 10:19:48 22490814
Прочитал как "Путин-тред"
Аноним 27/12/21 Пнд 10:36:49 22490945
>>2249081
Абамка-абизьянка тред.
Аноним 27/12/21 Пнд 10:47:35 22491006
image.png 44Кб, 1659x274
1659x274
>>2249073
Вот примерно такое говно у меня получилось. Вроде работает, но лишь QA покажет насколько это норм
Аноним 27/12/21 Пнд 10:53:49 22491057
>>2249100
У тебя строка длиннее 78 символов
Аноним 27/12/21 Пнд 10:54:23 22491068
>>2249105
И похуй вообще
У меня 120 лимит
Аноним 27/12/21 Пнд 10:55:25 22491079
>>2249106
Нужно придерживаться 78-80, потому что человеческий глаз не воспринимает строки длиннее стольки символов
Аноним 27/12/21 Пнд 11:03:04 224911210
>>2249107
Это историческая хуйня, которая пошла от испопаемых терминалов, офтальмолог юный.
Аноним 27/12/21 Пнд 11:04:20 224911411
>>2249112
Ну так эволюционно глаз привык так сказать.
Аноним 27/12/21 Пнд 11:07:04 224911812
>>2249114
40 лет эволюции! Как еще дополнительных глаз не наросло у наследственных ойтишнеков.
Аноним 27/12/21 Пнд 11:43:43 224914313
Ебат докер охуенная штука
Аноним 27/12/21 Пнд 11:45:34 224914514
>>2249143
Веселуха начнется когда будешь оркестрировать кучу разных контейнеров, ебаться с репликами баз, нодами и нагрузкой
Аноним 27/12/21 Пнд 11:46:47 224914615
>>2249145
Да не буду, я только учусь...
Аноним 27/12/21 Пнд 12:14:32 224917516
>>2249146
Кабаныч скажет, значит будешь
Аноним 27/12/21 Пнд 12:20:51 224918817
>>2249145
Посоны, я научился итерироваться по строчке!
@
Веселуха начнется, когда будешь делать 9000кк рпс и отдавать петабайты статики.
Аноним 27/12/21 Пнд 16:00:17 224947318
image.png 97Кб, 2802x747
2802x747
Почаму Сваггер в Фастапи показывает мне такую херь на респонс когда я четко написал что и как он возвращает (обозначил response_model). Для входных данных он все подтянул и показывает как надо
Аноним 27/12/21 Пнд 16:14:28 224948019
>>2249473
Патамушта

Ты на что рассчитываешь, когда кидаешь скрин с неправильным результатом? Что у всех в треде твои исходники имеются что ли?
Аноним 27/12/21 Пнд 16:22:49 224948820
image.png 393Кб, 800x800
800x800
>>2249480
Я работаю над крайне засекреченным приложением. Сурс код кидать нежелательно
Аноним 27/12/21 Пнд 16:27:06 224949421
image.png 422Кб, 660x420
660x420
Аноним 27/12/21 Пнд 17:13:07 224953122
Как Django Messages работает? Оно как-то "отсылает сообщение юзеру" но как это технически реализовано? Просто взять и без задней мысли отослать данные клиенту в браузер можно только через вебсокет
Аноним 27/12/21 Пнд 17:22:37 224954123
Можно в джанге вручную написать x-token для доступа к urls? Я смотрел на djangorest-api-key, но там ключи надо самому через admin добавлять, да и работает он странно через api_view, который показывает debug page (который выключен блядь), вместо простой ошибки.
Вручную сделать декоратор? Как-то топорно получается. Неужели нет простого способа это сделать. Зачем это надо? Ко мне идут запросы с других апи, не с пользователей, а апи. Для них авторизацию крутить что-ли, это же ебанизм.
Аноним 27/12/21 Пнд 20:08:00 224975524
изображение.png 5Кб, 711x31
711x31
>>2249531
В доке всё написано
Аноним 27/12/21 Пнд 23:43:37 224994225
В чём прикол asgi?
Аноним 28/12/21 Втр 01:29:27 224999126
>>2249942
Поддержка асинхронности или типа того.

В питоне асинхронность реализована просто уебищно, практически скопировав это дерьмо с js. Пихают, естественно, везде где только можно, в синхронном языке блядь. Все эти awat async и прочие блевотные названия из js. Concurens использовать гораздо приятнее.
Аноним 28/12/21 Втр 01:36:07 224999727
>>2249991
Не бывает синхронных и асинхронных языков.
Аноним 28/12/21 Втр 01:36:25 224999828
Аноним 28/12/21 Втр 08:37:12 225006729
C каких бесплатных курсов посоветуете вкатываться?
Аноним 28/12/21 Втр 09:57:08 225010130
Аноним 28/12/21 Втр 10:15:53 225011631
>>2249991
>практически скопировав это дерьмо с js.
Который давно является lingua franca в плане асинка. Забавно

>Все эти awat async и прочие блевотные названия из js.
Чел...

>Concurens
Чел))
Аноним 28/12/21 Втр 10:46:55 225015032
Аноним 28/12/21 Втр 11:39:38 225020533
Пуйчарм сам подсвечивал красным ошибки а желтоватым маркером выделял ворнинги. VS Code-у вообще похуй, установил расширение для Питона, но по-прежнему - нихуя. Могу импортировать несуществующие модули, обращаться к несуществующим атрибутам класса - ему поебать. Как это фиксить? или может это не фиксится нихуя и я был слишком строг к Жидбрейнсам и по факту ничего лучше на рынке сейчас нет?
Аноним 28/12/21 Втр 11:59:51 225022934
>>2250205
Ну а ты думал? Питон молодой ведь язык, не успели нормальных иде изобрести еще.
Аноним 28/12/21 Втр 12:10:07 225023835
image.png 188Кб, 715x1053
715x1053
Аноним 28/12/21 Втр 12:13:46 225024136
>>2250205
>>2250229
Ну а что вы хотели от скромной инди-опенсорс компании "Майкрософт"?
Зато VScode легковеснее и удобнее и вообще, юзай vim
Аноним 28/12/21 Втр 13:29:52 225032037
>>2248924 (OP)
https://ideone.com/V0T0lV
Класс для получения рандомных значений из больших файлов. Что хуево сделано, кроме того, что велосипед?
Алсо, как тут правильно организовать файловые эксепшены?
Аноним 28/12/21 Втр 14:09:44 225035238
Можно как-то заставить линтер вроде flake или black ругаться, если у функций и методов не проставлен тайпинг?
Аноним 28/12/21 Втр 14:24:26 225036639
>>2249038
Жди сабинтрепретаторов
Аноним 28/12/21 Втр 14:28:25 225037040
Аноним 28/12/21 Втр 14:29:05 225037141
У меня есть пара предложений (скорее даже репорт на потенциальные баги) к Pycharm, куда писать, чтоб они обратили внимание?
Аноним 28/12/21 Втр 14:32:45 225037542
>>2250320
А зачем вообще делать какой-то отдельный велосипед с чтением строк, если можно readlines()?
Ну и можно будет заюзать with open('file.txt', 'r') as fp:
и избавиться от бессмысленного деструктора
И зачем разделять bigfile и не bigfile?
Аноним 28/12/21 Втр 14:34:05 225037743
>>2250371
Pycharm - Help - Contact Support/Submit a Bug Report/Submit Feedback
Аноним 28/12/21 Втр 14:35:01 225038044
>>2250375
Чтобы не читать файл в 500мб полностью, очевидно же.
А маленький можно и читать, чтобы не дрочить i/o.
Аноним 28/12/21 Втр 14:37:22 225038345
>>2250380
Штоблять...
А если у тебя будет одна строка в 500Мб?
Аноним 28/12/21 Втр 14:38:49 225038546
>>2250383
Не будет. Речь про файл с списком значений и из них нужно брать рандомные.
Аноним 28/12/21 Втр 14:43:13 225039047
>>2250385
Ну чел, всё равно у тебя в конструкторе читается сразу весь файл. yieldов или чего-то такого не видно
Аноним 28/12/21 Втр 14:44:40 225039248
>>2250390
Читается и строится массив оффсетов, потом по запросу читается по рандомному оффсету.
Суть в эффективном использовании памяти. Предложи лучше.
Аноним 28/12/21 Втр 16:26:43 225048149
>>2250320
В код не вникай, сразу отвечай

Ебани реализацию __enter__ и __exit__, в которых ты открываешь и закрываешь файл. А в коде юзай класс как контекстный менеджер. Тогда и файловые эксепшены обработаешь
Аноним 28/12/21 Втр 16:44:17 225049750
Аноним 28/12/21 Втр 16:47:20 225050251
>>2250497
Схуяли это?
Выносишь свои строчки до open в enter, из del в exit. Остальное оставляешь там же.
Аноним 28/12/21 Втр 16:53:58 225050552
Как в Джанге (DRF) отключить авторизацию по Bearer-токенам? Бесит, отключить бы чтоб локально легче апишку гонять
Аноним 28/12/21 Втр 16:54:13 225050653
>>2250502
Потому что файл открыт и по нему идет чтение в процессе работы.
Открывать и закрывать каждый раз ради того, чтобы завернуть в контектст менеджер это хуевая идея, по-моему.
Аноним 28/12/21 Втр 16:56:31 225051454
>>2250505
'DEFAULT_AUTHENTICATION_CLASSES': []

Отключит везде
Аноним 28/12/21 Втр 16:57:11 225051555
>>2250506
Тебе чо мешает внутри менеджера все свои дела сделать, чтобы по итогу файл нормально закрылся?
Циклы и if-ы там не запрещены
Аноним 28/12/21 Втр 16:59:15 225051656
>>2250515
Ну вникни уже в код, блять. Ты уже второй начинаешь бессмысленно спорить, не разобравшись.
Аноним 28/12/21 Втр 17:17:21 225053157
>>2250516
with YobaRandom('list.txt') as yoba:
___huinya1 = yoba.choice()
___huinya2 = yoba.choice()

Ты какой-то дурачёк, видимо. По тому коду, что ты прикрепил, нихуя не мешает использовать контекстный менеджер. Если ты там ракету в космос запускаешь, то тащи подробный код
Аноним 28/12/21 Втр 17:18:38 225053358
>>2250505
Поставить токен какой надо и не еби мозг
Аноним 28/12/21 Втр 17:20:58 225054059
>>2250531
Потому что я его инициализирую на старте и потом буду использовать.
Нет смысла заворачивать ВЕСЬ КОД в контекстный менеджер только чтобы использовать контекстный менеджер, это хуйня.
Не стоит аж так серьезно воспринимать его необходимость. Да, это удобно, когда тебе надо пару строчек завернуть в какую-то операцию, но не более.
Аноним 28/12/21 Втр 17:26:14 225054760
>>2250540
>я его инициализирую на старте и потом буду использовать.
>Ну вникни уже в код, блять.
Вник, да, по тому ошмётку кода в то, как ты его использовать собрался

>Не стоит аж так серьезно воспринимать его необходимость
>как тут правильно организовать файловые эксепшены?
Ну и нахуя тебе тогда вообще об этом заботиться? Можешь вообще файл не закрывать например
Аноним 28/12/21 Втр 17:29:40 225055461
>>2250533
Легко сказать бля
ОТКУДА его достать-то? Где он нахуй ставится я вообще не ебу. у меня только АПИшка свагера, фронтенда с формочками у меня под рукой нет
Аноним 28/12/21 Втр 17:35:32 225056862
>>2250547
Потому что есть целесообразность и уместность.
Но некоторые почему-то впадают в крайности. Одни заворачивают каждый отдельный доступ к файлу или запрос в базу в менеджеры, другие заворачивают вообще всё в менеджеры и сидят там.
Это суть небольшое удобство для некоторых ситуаций, не стоит возводить его в правило.
Аноним 28/12/21 Втр 18:48:34 225066763
>>2250568
В питоне нет деструкторов, это не C++, __del__ про другое и закрывать там файл неправильно.

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

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

ХОтя есть вариант изобрести свой собственный велосипедный контекстный менеджер, имитирующий настоящий. Чем ты и хочешь заняться.
Аноним 28/12/21 Втр 18:59:09 225067764
>>2250238
>188Кб, 715x1053
2021 истекает, а телефон не full hd
Аноним 28/12/21 Втр 20:33:13 225076265
>>2250205
Надо пользоваться venv и всё будет как у здоровых людей.
Аноним 29/12/21 Срд 00:05:34 225090866
Аноним 29/12/21 Срд 02:16:55 225095767
>>2250205
Если ты работаешь через ssh, то плагины надо перекидывать на сервер в соотвествующей вкладке. Тогда и будет работать
Аноним 29/12/21 Срд 02:24:36 225096168
Как сделать что-то типа requests builder-а?
У меня есть интеграция с несколькими сторонними сервисами, каждому я прописал по 10-15 различных запросов.
Есть идеи или примеры как их сделать красивее и универсальнее? С учётом sessions и тд. Чтоб где-нибудь можно было прописать urls-ы, headers, payloads и тд. И где их лучше прописывать? Прямо в коде или где-то отдельным файлом?
Используются токены авторизации, которые хранятся в базе как есть, хто тоже правильно или лучше закодировать?

Куча примеров как сделать апи, но почти нет как адекватно организовывать запросы к этим апи, когда их много. Как это называется? Я просто недавно в вебе
Аноним 29/12/21 Срд 02:30:02 225096569
>>2250961
Ну блядь изи же
Пишешь базовый класс, в котором подготавливаешь урл/заголовки/авторизацию/логирование/парсеры ответа/запрос и базовую обработку ошибок.
Наследуешься и привязываешь нужные параметры.
Статичные вещи, типа урлов - храни в конфиге. Авторизацию - в секретах или переменных окружения. Остальное можешь хоть в классе забить. Токены в бд, если они периодически меняются - норм. Если нет, стоит в секреты вынести
Аноним 29/12/21 Срд 02:49:53 225097270
>>2250965
Просто это довольно тривиальные вещи, подумал, может есть какая-нибудь готовая либа под это дело, а я тут велосипеды делаю
Аноним 29/12/21 Срд 03:44:29 225098371
Хочу, чтобы на клиенте выполнялось шифрование по сложному алгоритму. Это можно сделать в Django, или только в JS?
Аноним 29/12/21 Срд 04:50:11 225098672
>>2250972
От request.Request наследуйся. Определи свой таймаут, хоста, заголовки и т.д
Сделай свой клиент, отнаследовавшись от requests.Session. Определи свой query, обработку, подготовку запроса.
Потом просто Лепишь потомков от своего request.Request и оставляешь один клиент для сессии и все.
Делаешь request = MyRequest(...); result = MyClientSession().query(request)

Может что есть проще или умнее. Я примерно подобное делал. Расширять дочерние классы довольно легко
Аноним 29/12/21 Срд 12:40:59 225122673
Аноним 29/12/21 Срд 13:34:11 225127074
>>2251226
Почему надо? У нас 120 символов и это норм. 78 для дебилов.
Аноним 29/12/21 Срд 20:07:50 225178975
>>2251226
Даже если код станет нечитаемым от переноса строк?
Аноним 29/12/21 Срд 21:19:53 225181976
>>2250986
Да, наверное, так и буду делать.
Хочу чтоб потом было легко это менять всё. Одни сервисы просят токены, другие хеш-сумму запроса, третьи нестандартный oauth и прочие.
Пишешь одно, потом натыкаешься на ещё одного нестандартного и переписываешь всё заново.
Аноним 29/12/21 Срд 23:01:37 225185977
Нубик в треде
Посмотрел уроков на ютубе методы, аргументы, функии, циклы хуе мое
А дальше что делать ? книжки читать?
Какую?
я не задушусь и заброшу ? Есть что то с задачками для нубов ?
Аноним 29/12/21 Срд 23:10:23 225186278
>>2251859
Че по кайфу то и делай.
Аноним 29/12/21 Срд 23:19:03 225186579
>>2251862
Мне по кайфу ничего не делать и деньги получать.
Та че не делать?
Аноним 29/12/21 Срд 23:21:01 225186780
>>2251865
>Мне по кайфу ничего не делать и деньги получать.
Тогда тебе охранником или сторожем.
Аноним 29/12/21 Срд 23:28:59 225187381
>>2251867
Из охранников меня уволили на следующий день. Заболел в тот день, температура была 39, под камерами уснул.
Аноним 29/12/21 Срд 23:33:50 225187582
>>2251873
А еще здоровье мое не очень... то лапы ломит, то хвост отваливается.
Аноним 29/12/21 Срд 23:33:54 225187683
>>2248924 (OP)
Я хуею, пацаны
Работаю с одним проектом, там в celery-таске происходит ошибка, решил подебажить ее и спустя десяток минут таки осознал, что я и celery воркер работаем с разными файлами! Я сука вообще удалил нахуй все тело проблемной функции, а это мудло по-прежнему мне высирает ошибку с тем же трейсбеком на той же строчке (которой вообще уже нет блять). Это че за хуйня? КАК это блять может происходить? Проблема именно с celery-таском, когда ставлю логирование в верх модуля то при обычном импортировании оно конечно же срабатывает

Запускаю все в докерк-композе если вдруг это как-то меняет дело
Аноним 29/12/21 Срд 23:34:20 225187884
>>2251875
А на днях, я линять начал. Старая шерсть с меня сыплется, хоть в дом не заходи.. Зато новая растет - чистая -шелковистая.
Аноним 29/12/21 Срд 23:56:49 225189985
>>2251876
Если код таски не подключен к контейнеру как часть volume, а собран как часть образа, то нужно пересобрать докер образ.
Аноним 30/12/21 Чтв 00:53:54 225191386
>>2251899
Помогло. Но остается вопрос: нахрена так делать? Это реально фича что ли?
Аноним 30/12/21 Чтв 00:55:11 225191587
>>2251913
Да, чтобы закешировалось и не менялось
Аноним 30/12/21 Чтв 02:39:38 225194288
>>2251913
Если не нравится эта сорт оф базовая фича докера, пользуйся уже упомянутой фичей волюмсов. Хз зачем вы вообще интерпретируемый код прибиваете гвоздями к образу.
Аноним 30/12/21 Чтв 03:38:35 225195189
>>2251942
> Хз зачем вы вообще интерпретируемый код прибиваете гвоздями к образу.
Очевидно, для воспроизводимости образов
Аноним 30/12/21 Чтв 04:32:39 225195490
>>2251899
Не обязательно пересоибрать. Можно внутри контейнера поправить файлы и рестартнуться. Если авторемув флаг при запуске не стоит, то заработает. А учитывая, что сам через компз запускаешь, то даже если стоит, то можно легко удалить. В таком случае даже по ссш из иде можно внутрь контейнера подключиться и редачить файлы прямо там из редактора
Аноним 30/12/21 Чтв 11:39:24 225209491
image.png 271Кб, 750x394
750x394
>>2248924 (OP)
Питонисты, всем привет! С наступающим!

Нужна помощь, советом.
У нас с друзьями есть ламповый чятик в телеге
Появилась идея, используя питон, распарсить его и подсчитать статистику (количество сообщений, среднюю длину, все дела)
В телеге есть кнопка "выгрузить в html формате". В принципе, эти html можно парсить
Но писать что-то самому как-то лениво, и выглядит сложно, могу и не успеть
Мб кто слышал про какой-то более легкий способ / готовое решение
Ну или как тогда сделать? резать по определенным тегам и потом обрабатывать каждое сообщение?
Аноним 30/12/21 Чтв 11:58:21 225212892
>>2252094
Если уж выгружаешь в хтмл, то максимально простой и ленивый способ - без парсинга прямо в консоли браузера выполнить однострочник на жиэс, который посчитает хоть небо, хоть Аллаха. Будет что-то вроде
document.querySelectorAll(message selector).length // количество
[...document.querySelectorAll(message selector)].map(el => el.textContent.length).reduce((a, b, _, all) => a + b / all.length) // средняя длина
и т.д.

А если надо именно на змее практиковаться, то лучше тогда апи телеги дергай.
Аноним 30/12/21 Чтв 12:24:52 225214393
image.png 2Кб, 255x43
255x43
Аноним 30/12/21 Чтв 13:35:40 225217094
>>2252094
1.поставь десктопную телегу
2. сделай это

import pandas as pd
chatseries=pd.read_json('exported_chat.json')
chat = chatseries.messages.apply(pd.Series)
chat.to_csv('output-chat.csv')

3. Это все.
Аноним 30/12/21 Чтв 13:42:36 225217395
>>2252170
зачем ебаться с питоном для преобразования в эксель формат, когда сам эксель умеет читать жсоны?
Аноним 30/12/21 Чтв 13:44:53 225217796
>>2252173
потому что ты в треде про питон запускать эксель - зашквар.
Аноним 30/12/21 Чтв 14:03:43 225219597
>>2252177
Зачем тогда вообще экспортировать в его формат? len(messages) в 2к22 уже не модно?
Аноним 30/12/21 Чтв 14:05:54 225219798
>>2252195
потом в другой программе (тоже на питоне) загрузишь и проведешь анализ.
ты вообще здесь откуда? загугли "pandas jupyter notebook"
Аноним 30/12/21 Чтв 14:09:31 225220099
>>2252197
Изначальный вопрос прочитал жопой ты, а гуглить мне? Так держать, чо.
Аноним 30/12/21 Чтв 14:10:25 2252201100
>>2252200
Крудошлеп по ТЗ, помолчал бы когда Аналитики и ЛПР общаются.
Твое дело таски ковырять.
Аноним 30/12/21 Чтв 14:25:13 2252210101
Анон, стоит ли давать уникальное имя каждому виртуальному окружению? Или тупо веде оставлять его как venv?
project1->project1, project2->project1 vs project1->venv, project2->venv
Аноним 30/12/21 Чтв 14:27:50 2252212102
>>2252210
Конечно стоит. Вернешься ты к нему и по названию вспомнишь какой говнокод ты писал полгода назад
Аноним 30/12/21 Чтв 15:18:22 2252268103
Так, нубовопрос.
Для полноценной работы pycharm разве нужен уже установленный питон?
Разве он не качает каждый отдельный питон в своё виртуальное окружение?
Аноним 30/12/21 Чтв 15:19:16 2252270104
>>2252268
Вот и нубопроблемы. Пучарм ставят, а нужен ли питон вообще - не знают.
Аноним 30/12/21 Чтв 15:22:26 2252271105
>>2252270
Нужен ли предустановленный питон? Вопрос в этом.
Конда сама всё делает - ты ее поставил у теюя у же есть питон, потом спокойно можешь создать ещё окружение с нужной тебе версией и библиотеками.
Но мешать кондапроекты с venv'ом не очень хочется.

Так что вопрос ещё в силе.
Аноним 30/12/21 Чтв 15:23:53 2252273106
>>2252268
>в своё виртуальное окружение
А это окружение как ты создашь? Из нихуя родишь?
Аноним 30/12/21 Чтв 15:37:31 2252280107
8.png 4Кб, 760x87
760x87
>>2252273
>А это окружение как ты создашь? Из нихуя родишь?
Ну, теоретически, пайчарм может скачать указанную версия для интерпретатора, установить её, и потом уже используя это, сделать виртуальное окружение.

Окей.
Есть чистый пайчарм.
1) Я ставлю нужную версию питона или использует python.exe конды.
2) Создаю проект с этой версией.
3) Работаю.
Правильно?

Если мне нужен будет проект с другой версией питона, мне его надо ли самостоятельно ставить? Или используя базовый интерпретатор пайчарм сам всё сделает?
Аноним 30/12/21 Чтв 15:40:48 2252282108
image.png 122Кб, 1715x672
1715x672
>>2252280
Когда создаешь venv, ты указываешь базовый интерпретатор
Аноним 30/12/21 Чтв 17:30:52 2252365109
Аноним 30/12/21 Чтв 18:44:42 2252447110
>>2252282
Мне стало интересно что делает твой проект ПИЗДЕР
Аноним 30/12/21 Чтв 21:00:42 2252572111
Если мы вызываем аттрибут класса (callable func) ничего не наебывается? Или питон попытается метод вызвать с таким же именем и тупанет?
Аноним 31/12/21 Птн 00:16:56 2252773112
>>2252572
>Или питон попытается метод вызвать с таким же именем
У тебя не может метод иметь то же имя, что и какой-то атрибут. Одно перезапишет другое.
Аноним 31/12/21 Птн 00:25:35 2252777113
Всех с наступающим.
Что-то я запутался малость
Есть задача - отсортировать словарь по возрастанию значений
Сделал, как описано тут
https://coderoad.ru/39635256/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8F-%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE-%D1%83%D0%B1%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E-%D1%82%D0%B0%D0%BA-%D0%B8-%D0%BF%D0%BE-%D0%B2%D0%BE%D0%B7%D1%80%D0%B0%D1%81%D1%82%D0%B0%D0%BD%D0%B8%D1%8E-%D0%B2-Python
Если коротко, то получилось, но получился лист с парами словаря

Что-то вроде [('D', 0), ('F', 0), ('A', 1), ('B', 1), ('C', 1), ('E', 2)]
А мне-то нужен словарь
Есть какой-то безболезненный способ трансформации этого листа в словарь? (ну, убрать квадратные скобочки
Аноним 31/12/21 Птн 00:38:15 2252784114
Аноним 31/12/21 Птн 00:50:41 2252786115
>>2252271
А без конды как? Никак? Ахуеваю с долбаебов
Аноним 31/12/21 Птн 01:53:19 2252794116
>>2252777
Словарь не имеет порядка. Если ты запихнёшь свой список пар назад в словарь, то весь порядок потеряется опять. Можешь в сторону OrderedDict глянуть, если тебе прям обязательно словарь (доступ по ключам) нужен.
Аноним 31/12/21 Птн 02:08:35 2252795117
>>2252794
Дед, тебя даже вчерашний шторм не разбудил.
Словари упорядочены начиная с 3.6 де юре, де факто ее раньше
Аноним 31/12/21 Птн 02:12:50 2252796118
Screenshot20211[...].jpg 373Кб, 1080x1920
1080x1920
>>2252794
Брат, ты на три года от жизни отстал
Аноним 31/12/21 Птн 02:13:39 2252797119
Аноним 31/12/21 Птн 11:14:28 2252863120
Screenshot2021-[...].png 161Кб, 1061x788
1061x788
Блджад, как же меня бесит этот йобанный недоязык! Постоянно с ним сплошная ебля. Вот что ему надо а?
Аноним 31/12/21 Птн 11:51:56 2252892121
у КОГО НИБУДЬ ЕСТЬ НОВГОДНИЙ КОД?
Аноним 31/12/21 Птн 12:18:15 2252918122
Аноним 31/12/21 Птн 12:27:54 2252927123
>>2252892
print("C новым годом Леха!")
Аноним 31/12/21 Птн 13:07:14 2252962124
Так, знатоки асинхронности, подскажите, пожалуйста.
Есть старый код, который выглядит как:
def ms(ur):
t = urllib.request.urlopen(url)
s = BeautifulSoup(thepage, "html.parser")
return s

Вопросы:
1. Можно ли это переписать через асинхронность?
2. Стоит ли это переписывать через асинхронность?
3. urlib и BeautifulSoup при переписывании еще понадобятся? Или надо смотреть в сторону aiohttp?
Аноним 31/12/21 Птн 13:09:45 2252965125
ок.png 9Кб, 185x273
185x273
Аноним 31/12/21 Птн 13:20:22 2252980126
>>2252962
Ты можешь реквесты писать асинхронно, а суп нет, так как это парсер. Да и имеет смысм переписать только если ты хочешь пачку страниц сразу получить, а потом уже их обработать.
Вкат в django Аноним 31/12/21 Птн 14:03:06 2253031127
С наступающим, аноны.
В общем слышал от некоторых программистов что в python и js можно и нужно вкатываться через фреймворки сразу. Знаю основы программирования на C#, ООП понимаю, есть ли смысл вкатываться сразу в джанго, не изучая чистый python?
Аноним 31/12/21 Птн 14:03:21 2253032128
>>2252773
Тогда выходит можно вообще вызвать аттрибут как метод если в нем функция хранится? Утиная оптимизация и тут работает?
Аноним 31/12/21 Птн 14:29:39 2253049129
>>2252863
from configparser import ConfigParser
Аноним 31/12/21 Птн 14:31:29 2253051130
>>2253031
Потрать один день на синтаксис и подводные камни, дальше делай, что хочешь. Почти в любом языке так.
Аноним 31/12/21 Птн 15:17:21 2253101131
>>2252980
>если ты хочешь пачку страниц сразу получить, а потом уже их обработать.
Хочется получать ссылки со страниц и сохранять их.
Стоит ли для начала формировать список ссылок, а потом их сохранять? Или делать это на лету сразу после получения?
Аноним 31/12/21 Птн 20:36:47 2253235132
Ну че, малята, Папка зашел поздравить вас с Наступающим. Будьте благодарны епта
Аноним 31/12/21 Птн 22:13:01 2253300133
С нг
Аноним 31/12/21 Птн 23:03:50 2253333134
>>2253300
Кто таков, пес? Имя кличку назвал, быстро!
Аноним 31/12/21 Птн 23:10:52 2253341135
Аноним 01/01/22 Суб 14:32:28 2253665136
kekubitthread.png 9Кб, 349x329
349x329
бля а как убить треды с помощью ctrl-c?
Аноним 01/01/22 Суб 15:59:26 2253698137
Аноним 01/01/22 Суб 16:06:32 2253702138
>>2253665
Ты ж в курсе что твое говно на пикриле не работает? (почти сразу же завершается). Нахер тебе это все в тредах запускать?
Аноним 01/01/22 Суб 16:20:07 2253712139
>>2253702
Уверен? У меня все заебись работает
Аноним 01/01/22 Суб 16:25:43 2253715140
На самом деле мне надо после запуска фласки открыть вкладку с адресом
Аноним 01/01/22 Суб 17:56:59 2253786141
Аноним 01/01/22 Суб 22:29:05 2253933142
14385199386782.jpg 87Кб, 800x575
800x575
Анон, помоги плес.
Не работает. Отрабатывает без ошибок, но файлы не сохраняются.
https://ideone.com/ZyEAXm
Аноним 02/01/22 Вск 03:47:03 2254055143
Аноны, как сделать прокидывание аргументов в функцию более красивым?

Допустим, у меня есть файл app.py, в котором у меня 40 функкций, возвращающих от одной до четырех переменных.
Все это я импортирую в другой файл, например main.py, в котором тоже есть дофига функций, аргументами которых служат ретурны импортированных функций. В каждой функции может быть по 5-8 таких аргументов, поэтому меня получается примерно такая структура:


from app import *

def main_func1(return1, return10, return20, return21, return7, return13, return3)
,,,,,,,,


def main_func2(return21, return11, return9, return16, return19, return2, return8, return24)
........


return1, return2, return3, return4 = app_func1()
return5, return6, return7, return8 = app_func2()
return9, return10, return11, return12 = app_func3()
return13, return14, return15, return16 = app_func4()
return17, return18, return19, return20 = app_func5()
return21, return22, return23, return24 = app_func6()

f1(return1, return10, return20, return21, return7, return13, return3)
f2(return21, return11, return9, return16, return19, return2, return8, return24)


Как это можно переформатировать, чтобы глаза не кровоточили? PEP 8 охуевает от происходящего в файле.
Аноним 02/01/22 Вск 03:48:24 2254056144
Сонный уже, фикс в конце своего говнопримера:

>main_func1(return1, return10, return20, return21, return7, return13, return3)
>main_func2(return21, return11, return9, return16, return19, return2, return8, return24)
Аноним 02/01/22 Вск 07:13:52 2254067145
>>2254055
Не делать функции, принимающие десяток аргументов и возвращающих тупл длиной с <insert cuckold joke here>. Скорее всего данные, которыми ты оперируешь, что-то объединяет, и это что-то можно описать классом, или, на худой конец, словарем.
Аноним 02/01/22 Вск 08:58:00 2254077146
>>2254055
Принимать параметры через args, внутри функции слайсить нужные наборы в отдельные кортежи и потом эти коржеты перевадать как аргументы опять же через args.
Либо передавать всё через kwargs, но тогда надо делать маппинг, где ключом будет строкое имя функции, а значение сама функция.
Аноним 02/01/22 Вск 11:08:32 2254095147
Аноним 02/01/22 Вск 11:31:02 2254102148
>>2253933
Предлагаешь твою хуйню в мозгу моделировать? Ее даже воспроизвести не получится.
Ставишь брейкпоинты, запускаешь в дебаге, находишь ошибку, чинишь, писоешь, какоешь.
Аноним 02/01/22 Вск 11:33:01 2254104149
>>2254102
Мне нужен совет от знающего человека.
Ты знаком с асинхронностью?
Аноним 02/01/22 Вск 11:36:33 2254107150
>>2253933
Алсо, проиграл с поиска изображений по цсс a[href] img, чтобы потом достать родительский a
Аноним 02/01/22 Вск 11:38:07 2254109151
>>2254107
А как лучше сделать?
Аноним 02/01/22 Вск 11:40:07 2254111152
>>2254109
Сразу искать ссылки, не? Зачем этот бессмысленный поиск изображения, если ты его не используешь никак, кроме как вручную достаешь ссылку из родителя?
Аноним 02/01/22 Вск 11:45:08 2254116153
>>2254111
У меня есть файл с ссылками на нужные страницы (with open('C:\Test.txt', 'r') as file:). На каждой странице разное число нужных мне файлов, картинок, и прочих pdf-ок. Мне нужно их сохранить на диск.
Те примеры, которые есть, они подразумевают, что у нас просто есть список ссылок, который превращается в таски, которые потом гонятся.
Но у меня тут 2 цикла - один для прогона по страницам, второй по прогонам по файлам каждой из страницы. И несколько не понятно как это должно выглядеть. Как вложенная асинхронность?
Аноним 02/01/22 Вск 12:02:00 2254127154
>>2254116
что ты имеешь в виду под вложенной асинхронностью?
асинхронность имеет смысл натягивать только на io операции - сеть, или сохранение на диск, исходи из этого, циклы тут не при чем
Добавляешь таски на скрейпинг страниц, они добавляют таски на загрузку-сохранение картинок в ту же очередь. Руками распределять таски по 3 как в примере не надо, просто задаешь размер пула воркеров при создании ивентлупа. Посмотри на классы asyncio.Queue и функцию asyncio.create_task

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

Алсо, если ты это для сохранения картинок с двачей делаешь, что у него есть api, что значительно удобнее и быстрее.
Аноним 02/01/22 Вск 12:11:42 2254136155
>>2254127
>что ты имеешь в виду под вложенной асинхронностью?
Что мне надо асинхронно получать доступ к нужным страницам. В свою очередь каждая страница асинхронно скачивает файлы.
Или я здесь ошибаюсь?
>Добавляешь таски на скрейпинг страниц,
У меня сделано так. Но меня терзают сомнения, что что-то не то.
with open('C:\Test.txt', 'r') as file:
--async with aiohttp.ClientSession() as session:
----futures = [take_image(session, line, number) for number, line in enumerate(file)]
----loop = asyncio.new_event_loop()
----loop.run_until_complete(asyncio.wait(futures))
>Посмотри на классы asyncio.Queue и функцию asyncio.create_task
Хорошо.
>так что просто поставь брейкпоинт и не еби себе мозг.
Дебажить можно долго. А если что-то упускаешь, так и вообще вечно. Когда есть у кого можно проконсультироваться, всё идёт быстрее.
> с двачей делаешь
Не с двачей.
Аноним 02/01/22 Вск 12:37:20 2254145156
>>2254136
Мысли не страницами и файлами, а тасками. Таска на скрейп страницы добавляет таски на скачивание файлов. В ту же очередь.
Если все сделаешь правильно, необходимость создавать ивентлуп внутри такжой таски отпадет, будет один ивентлуп на все таски.
Аноним 02/01/22 Вск 12:37:46 2254146157
Аноним 02/01/22 Вск 12:45:07 2254150158
>>2254145
Буду смотреть, спасибо.
Ты ещё сегодня тут будешь?
Аноним 02/01/22 Вск 15:18:50 2254242159
>>2248924 (OP)
Линуксовопрос. Я что-то не понимаю. Почему у GdkX11.X11Window есть set_title, но нет get_title?
И как быть?
Вот я делаю:
from gi.repository import Gdk
root=Gdk.get_default_root_window()
А дальше поменять заголовок окна я могу. А вот узнать его из питона не могу. Хм...
Аноним 02/01/22 Вск 16:46:55 2254356160
>>2254077
А как избавиться от этого?
return1, return2, return3, return4 = app_func1()
return5, return6, return7, return8 = app_func2()
return9, return10, return11, return12 = app_func3()
return13, return14, return15, return16 = app_func4()
return17, return18, return19, return20 = app_func5()
return21, return22, return23, return24 = app_func6()
Аноним 02/01/22 Вск 17:44:40 2254474161
>>2254356
Переделай app.py так, чтобы у тебя там не было ни одной функции, возвращающей сразу кучу переменных.
В main.py не передавай никаких результатов, передавай только список функций из app.py, например. Если непременно надо передать список аргументов, то и передавай список (или словарь, или объект какой-нибудь специального класса), а не кучу переменных.
Вместо return1, return10 и тому подобного используй нормальные имена переменных.
А вообще создаётся впечатление, что ты хочешь странного. Если бы объяснил, зачем - было бы можно что-то советовать, а так хз.
Аноним 02/01/22 Вск 18:46:53 2254548162
>>2254356
Очевидно, в app_func1, ... , app_func6 нужно возвращать не return a, b, c, d
А нужно return [a, b, c, d], либо {'a': a, 'b': b, 'c': c, 'd': d}
Аноним 02/01/22 Вск 18:52:38 2254557163
Объясните, анончики, что такое асинхронность. Я когда-то работал с сишным mpi; я правильно понимаю, что асинхронность - это когда потоками занимаешься не ты явно, а язык?
Аноним 02/01/22 Вск 19:04:41 2254573164
>>2254474
У меня упрощенный пример, в самой программе переменные называются не return1-10, у них нормальные названия.

Суть программы в следующем:
У меня есть набор функций, которые обращаются к удаленной БД, запрашивают необходимые данные и форматируют их. В каждой функции несколько ретурнов, потому что один и тот же набор данных мне нужно форматировать по-разному - списком, строкой, жсоном и т.д., то есть у функции получаются ретурны в духе uniq_parentlog_dict, uniq_parentlog_str и т.д. Всего таких функций у меня порядка 40 - они запрашивают данные из разных таблиц БД и по-разному их форматируют, привести их к одному виду практически невозможно.

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

def set_entity_names(unit_names, coin_names, refillable_names, gear_names):
____with open("app/templates/entityNames.txt", "r", encoding='utf-8') as file:
________data = file.read()

____imported_data = data.replace("template_unit", unit_names)
____imported_data2 = imported_data.replace("placeholder_coin", coin_names)
____imported_data3 = imported_data2.replace("placeholder_refillable_name", refillable_names)
____imported_data4 = imported_data3.replace("placeholder_gear_name", gear_names)

____f = open("output/enitityNames.txt", "w+", encoding='utf-8')
____f.write(imported_data4)
____f.close()


Это простой пример с 4 аргументами, есть функция с 12 аргументами.
Аноним 02/01/22 Вск 20:14:47 2254612165
>>2254573
Ну и почему твои "ретурны" не могут передаваться в виде словаря с плейсхолдером в качестве ключа, например?
А что если плейсхолдера нет? Такое может быть? Тогда что? Отформатированные данные просто будут выкинуты?
А как на счёт того, чтобы не производить все возможные варианты форматирования раньше, чем они понадобятся?
Встретился плейсхолдер - отформатировали данные, вставили. Встретился плейсхолдер ещё раз - взяли уже отформатированные данные из кэша или отформатировали ещё раз.
Аноним 02/01/22 Вск 20:21:55 2254617166
>>2254612
Не, плейсхолдеры всегда железно есть. Файлы в /app/templates статические, не изменяются.

>Ну и почему твои "ретурны" не могут передаваться в виде словаря с плейсхолдером в качестве ключа, например?
Вот это вот я не совсем понял, можешь объяснить? Как это будет выглядеть?
Аноним 02/01/22 Вск 20:23:00 2254618167
>>2254242
Блин, я нифига не понимаю, использую Wnck - глючит шопездец (всё окно приложения начинает мигать).
Пытаюсь использовать xlib - там хз вообще что такое и как это использовать. Непонятно, как создать инстанс дисплея или окна.
В Gdk нужных методов нет.
Ну неужели придётся xprops через пайп подключать?
И это хвалёный питон с кучей библиотек? Пайпы так-то можно и в баше использовать.
Аноним 02/01/22 Вск 20:28:48 2254621168
>>2254573

substitutes={}
substitutes['placeholder_coin']=coin_names
substitutes['placeholder_gear_name']=gear_names

...

def set_entity_names(substitutes):
____for key in substitutes:
________imported_data = imported_data.replace(key, substitutes[key])

Ну что-то типа того.
Аноним 02/01/22 Вск 20:29:11 2254622169
Аноним 02/01/22 Вск 20:32:00 2254624170
11111111111.JPG 21Кб, 579x142
579x142
А чой-та ВС Код %d подсвечивает другим цветом?
Аноним 02/01/22 Вск 21:07:29 2254660171
>>2254621
Хммм. То есть скармливать функции не аргументы как таковые, а сразу набор аргументов, завернутый в переменную?
Аноним 02/01/22 Вск 21:10:21 2254663172
>>2254660
Прямо как в самом первом ответе на твой вопрос, прикинь?
Аноним 02/01/22 Вск 21:47:46 2254701173
Аноним 02/01/22 Вск 22:22:43 2254732174
Аноним 03/01/22 Пнд 01:29:36 2254838175
>>2253031
Почему в Asp.net не вкатываешься если c# знаешь?
Аноним 03/01/22 Пнд 01:46:25 2254848176
>>2254618
Ну подскажите, заебался я уже с этим питоноам.
Ну вот захожу в https://docs.gtk.org/gdk4/index.html , ввожу там в поиск get_default_root_window, а там просто нет такого. Класс окна? А хз, где его искать. Получить экран? А хз как. Получить дисплей? А хз. Никак.
Уже целый день бьюсь над элементарной задачей - получить заголовок сраного окна. И не понимаю, как её решать. Куча исходников, ни один не работает. Ну кроме пайпа на xprop, но это уж совсем уж пц какой-то будет. Неужели в питоне всё делается через такой вот геморрой? Это же пиздец. Я уж хз сколько времени на изучение этого языка потратил, а до сих пор банальные вещи сделать не могу.
Аноним 03/01/22 Пнд 02:08:12 2254863177
Аноним 03/01/22 Пнд 02:16:03 2254865178
Я понимаю, что это, конечно, сорта... но мне очень интересно, чем отличаются aiogram, pyTelegramBotAPI и python-telegram-bot?
Что, чем и когда лучше других?
Аноним 03/01/22 Пнд 07:42:56 2254882179
DsMrnDLWoAAYA2V.png 123Кб, 309x407
309x407
С нг анчоусы. Мне нужно:
прочитать из бд > положить на диск > прочитать с диска > записать в бд


Пробую делать через csv reader/writer, НО этот пидор вместо NULL, ставит просто пустое поле, им соответственно во втроую бд пишутся просто "", а не NULL, как заставить его писать NULL, без использования pandas?
Аноним 03/01/22 Пнд 07:46:52 2254883180
>>2254882
Да, забыл добавить, можно конечно на уровне SELECT из бд сделать подстановка, но это какая-то уж совсем дрисня костыльная
Аноним 03/01/22 Пнд 09:19:20 2254894181
есть у кого лутц 2019 на русском в нормальном качестве в пдф?
Аноним 03/01/22 Пнд 12:42:58 2255006182
>>2254882
>csv
Нахуя а главное зачем? Ты в Экселе эти файлы собираешься потом открывать? Сделай нормальный формат, типа паркета православного
Аноним 03/01/22 Пнд 12:46:02 2255010183
>>2254624
Блять иди С дрочи, даунина. Как можно не знать таких элементарных вещей?
Аноним 03/01/22 Пнд 12:49:23 2255012184
>>2254548
>не return a, b, c, d
>А нужно return [a, b, c, d],
Петушара, ты нахуя собрался возвращать лист вместо тюпла? Что тебе мешает сразу весь тюпл вернуть в одну переменную?
Аноним 03/01/22 Пнд 12:52:46 2255014185
>>2254055
Вод для таких как ты, умные люди придумали ООП, чтобы не ебаться со 100500 функциями, их аргументами и ретернами. Скорее всего весь твой набор 40 функций можно запихнуть в 2-3 класса в виде методов, что существенно упростит работу и структурирует исходный код
Аноним 03/01/22 Пнд 13:18:56 2255038186
>>2255006
скорость жи, в csv вжух и готово, без накладных расходов
Аноним 03/01/22 Пнд 13:45:27 2255056187
>>2254865
aiogram асинхронный, другие два нет
Чо хочешь, то и используй. Абсолютно похуй
Аноним 03/01/22 Пнд 14:35:26 2255091188
Аноним 03/01/22 Пнд 14:38:25 2255096189
>>2255012
Чтобы потом его распаковать, ебанашечка. Разницы в производительности что лист что кортеж тут нет никакой.
Аноним 03/01/22 Пнд 14:40:48 2255098190
>>2255091
Как можно создать нечто подобное?
Аноним 03/01/22 Пнд 14:41:21 2255100191
>>2255098
Хз, свободное время
Аноним 03/01/22 Пнд 14:47:18 2255103192
>>2255100
На чем пишут такое? Могу предположить что на плюсах, на шарпе, на сипитоне.
Аноним 03/01/22 Пнд 14:50:33 2255104193
>>2255103
Его пишут на питоне, приколи?
Аноним 03/01/22 Пнд 14:52:04 2255106194
1641210723090.jpg 14Кб, 720x234
720x234
База
Аноним 03/01/22 Пнд 15:23:04 2255129195
>>2255091
Очередной нескучный веб фреймворк? Их же как грязи.
Аноним 03/01/22 Пнд 19:47:29 2255297196
Аноны, хочу тут потихоньку начать осваивать фласк. У меня есть скриптовое приложение с консольным интерфейсом, и я хочу перетащить его в веб. Отсюда возник вопрос - а вообще, когда я разрабатываю что-то, мне нужно сразу в архитектуре приложения учитывать, что у него будет веб-интерфейс? Или там фласк (в данном случае) - это просто слой поверх уже существующей логики?
Аноним 03/01/22 Пнд 19:51:16 2255298197
Аноны, как отправить куки (csrf token) в get запросе, чтоб сервак меня не посылал с ответом page expired, а выполнял запрос?
Такая конструкция не пашет:

url1 = 'https://mifirm.net/imei'
url2 = 'https://mifirm.net/formfind_check'
payload = {'formfind_imei': '000000000000000'}
s = requests.Session()
r = s.get(url1)
x = requests.post(url2, data=payload, cookies=r.cookies)
print(x.text)
Аноним 03/01/22 Пнд 20:58:00 2255319198
>>2255298
s.post вместо requests.post тоже ничего не дает кста
Аноним 03/01/22 Пнд 21:33:57 2255335199
>>2255298
Отправлять токен в кукисах, очевидно.
Аноним 03/01/22 Пнд 21:46:45 2255344200
>>2255096
Давно кортежи стали нераспаковываемыми?
А возвращать мутабельный список, когда можно вернуть иммутабельный кортеж - моветон.
Аноним 03/01/22 Пнд 22:06:50 2255365201
>>2255335
Дык а я в чем отправил? cookies=r.cookies Куки взяты из get запроса и подставлены в post
Аноним 03/01/22 Пнд 22:10:45 2255368202
>>2255012
Слышь, питух, хули ты на людей раскукарекался? Твоё место возле параши, не забыл ещё?
>>2255344
Иногда лист работает быстрее кортежа, представь себе. Никакой принципиальной разницы тут нет. Вполне нормально вернуть dict или set вместо соответствующих frozenset/frozendict, и точно так же нет никакой трагедии в list вместо tuple.
Аноним 03/01/22 Пнд 22:26:05 2255376203
>>2255129
А в чём отличие этого Starlite от Starlette?
Аноним 03/01/22 Пнд 22:55:29 2255394204
Как самому скомпилировать на линуксе IDLE? Сорсы лежат вместе с питоном - что с ними делать? makefile для make -> make install есть лишь в общей папке, но он IDLE не устанавливает. Во всех инструкциях из репозиториев качают готовое, но мне нужна старая версия, которой там нет.
Аноним 03/01/22 Пнд 23:42:38 2255429205
Как сделать так чтобы при завершении питон-проги, строго выполнялось определенное действие (например писал некая информация в левый файл), вне зависимости от того, успешно прога завершилась или упала с ошибкой. Напрашивается повесить некий коллбек on_exit, только как? Такое можно сделать в пистоне?
Городить кукую-нибудь хуйню с try-except-finally на высоком уровне?
Аноним 04/01/22 Втр 01:44:16 2255499206
Аноним 04/01/22 Втр 05:09:52 2255535207
>>2255368
Минуточку, в прошлом посте же говорил, что
>Разницы в производительности что лист что кортеж тут нет никакой.
А теперь лист быстрее уже? Ну что ж, citation needed, как говорится, Неси бенчи, раз сам себе противоречишь.

И, если у тебя трудности с чтением - я спросил, давно ли туплы перестали распаковываться, потому что ты порекомендовал изменить тупл на лист с аргументом
>Чтобы потом его распаковать

По-моему, кто-то запизделся. Иди почитай что-нибудь из шапки, если не понимаешь как работет синтаксис распаковки и типы из стдлибы. Потому что пока что выглядишь как вкатун, пробежавший инфоцыганский курс и возомнивший себя д'Артаньяном.
Аноним 04/01/22 Втр 06:31:22 2255540208
Учу Питон уже около 3-х лет с перерывами, могу максимум написать какой-нибудь скрипт для вычисления дискриминанта из выражения. Всё это время я чувствую, что учу и делаю всё как-то не так, прогресса нет совсем. Сейчас учу по книжке Кори Альхофа "Сам себе программист", всё по-классике: функции, модули, списки, кортежи и т.д., а хули мне со всем этим делать я до сих пор не понял.
Как вы обучаетесь, ваши советы?
Аноним 04/01/22 Втр 08:26:57 2255549209
>>2255540
У тебя хуёвая цель, ты учишь язык, ради того чтобы учить. Прекрати читать книжки и пиши код. Для начала ебани что-нибудь на фласке, например вывод прогноза погоды, если сразу сложно, разложи на части, сначала получи и запиши прогноз погоды в бд, потом выводи в веб.
Аноним 04/01/22 Втр 08:29:43 2255551210
>>2255535
НУЖНО ВЕРНУТЬ ТРИ ЧИСЛА
@
НА СЕРЬЁЗНЫХ ЩАХ ЗАТИРАЮТ ЧТО-ТО ПРОИЗВОДИТЕЛЬНОСТЬ


Вы там совсем ебанулись?
Аноним 04/01/22 Втр 09:25:10 2255566211
>>2255551
Кто мы-то, мне вообще пихуй, это у того шиза один пост опровержительней другого, вот пусть закапыват себя дальше, посмеемся. Никаких бенчей офк не будет, потому что он пиздобол
Аноним 04/01/22 Втр 11:30:01 2255598212
>>2255535
>Минуточку, в прошлом посте же говорил
Это не я (>>2255096) отвечал, дебич.
>ты порекомендовал изменить тупл на лист с аргументом
Я не рекомендовал изменить тупл на лист, это ты придумал. Я предлагал возвращать список или словарь, ну можно и кортеж, мне похуй. Это уже ты доебался до листа вместо кортежа.
>По-моему, кто-то запизделся.
По-моему, тебе делать нехуй, как срать в треде и доёбываться до такой хуйни.
Аноним 04/01/22 Втр 11:34:52 2255604213
>>2255598
>Я не рекомендовал изменить тупл на лист
>Я предлагал возвращать список
>в изначальном коде возвращался тупл
Убедил, ты не шиз, ты в суперпозиции "предлагал, но не рекомендовал".
Аноним 04/01/22 Втр 11:39:58 2255607214
>>2255604
Удебил, я не шиз, пойду почитаю про типы и заодно про PyObject, а то не знаю как работает.
Аноним 04/01/22 Втр 12:36:03 2255646215
>>2255535
>Минуточку, в прошлом посте же говорил, что
>>Разницы в производительности что лист что кортеж тут нет никакой.
И что? Ну кто-то написал так. Я написал иначе. И что? Твой мозг не может вместить в себя анализ двух утверждений? Я не знаю, при чём тут чей-то прошлый пост, я в своём единственном посте в этой ветке написал:
1) Иногда лист работает быстрее кортежа, представь себе.
2) Никакой принципиальной разницы тут нет.
Если ты не способен осознать то, что тут написано простым русским языком, я тут бессилен. Разумному человеку сказанного достаточно.
>А теперь лист быстрее уже? Ну что ж, citation needed, как говорится, Неси бенчи, раз сам себе противоречишь.
Ща всё брошу и буду кому-то что-то доказывать. Больше мне заняться нечем. Чтобы что? Чтобы я потратил полчаса на поиск кода, а ты потом твердил, что мои пруфы не пруфы или в конце-концов даже признал, что я прав? И что мне это даст?
>И, если у тебя трудности с чтением - я спросил, давно ли туплы перестали распаковываться, потому что ты порекомендовал
Ты бредишь! Ничего я не рекомендовал, кроме того, чтобы некий питух вернулся обратно на парашу, с которой он по какой-то причине посмел вылезти в приличный тред.
>изменить тупл на лист с аргументом
Что блядь? Я даже вникать не хочу, что ты тут пишешь.
>По-моему, кто-то запизделся.
О да, ты запизделся.
>Иди почитай что-нибудь из шапки, если не понимаешь как работет синтаксис распаковки и типы из стдлибы. Потому что пока что выглядишь как вкатун, пробежавший инфоцыганский курс и возомнивший себя д'Артаньяном.
Что ты несёшь, упоротый?
>>2255566
Так ты и есть шиз. Какой один пост опровержительней другого, когда я в этой ветке всего один пост написал, не считая этого?
>>2255566
>Никаких бенчей офк не будет, потому что
Потому что у меня других дел хватает. Скажи спасибо, что я вообще упомянул об этом, мог бы и не упоминать.
>>2255598
>Это не я (>>2255096) отвечал
И не я.
Аноним 04/01/22 Втр 12:54:17 2255661216
Если нужно возвращать несколько значений из функции то это онли кортеж, так как тот же mypy пошлет вас нахуй с такими приколами. А если у вас на проекте нет проверки типов, то ваш проект помойное говно. Спасибо за внимание.
Аноним 04/01/22 Втр 12:59:01 2255668217
>>2255661
Могу вернуть кортежем, могу списком, могу словарем, могу кастомным типом или датаклассом, и аннотации всё это указать. И линтер нахуй меня не пошлёт. Если это работает и не создаёт лишних строк кода и операций, то где твой бог теперь?
Аноним 04/01/22 Втр 13:03:34 2255670218
>>2255668
Списком ты не сможешь вернуть так как в типе не укажешь количество возвращаемых из функции значений, а если значения еще разные по типам то тебе придется писать Union, а потом по коду расставлять костыли на проверки isinstance. Тут уже тебя на ревью пошлют нахуй.
Аноним 04/01/22 Втр 13:07:34 2255671219
>>2255646
Ебать порвало.
>Скажи спасибо, что я вообще упомянул об этом
Спасибо, что упомянул о том, что из функции можно возвращать список вместо тупла. Хуй знает, правда, зачем.

>>2255668
Если делаешь петпроекты для души - на здоровье, в противном случае тебе перезвонят.
Аноним 04/01/22 Втр 13:14:54 2255678220
>>2255670
>в типе не укажешь количество возвращаемых из функции значений
На то я и возвращаю список?
А в кортеже я типа указываю?
Т.е. ты хочешь сказать, что если возвращаю кортеж элементов, мне не надо писать -> Tuple[str, str, ...]? Ок))
Я могу вообще всё в Iterable засунуть и мне опять же будет похуй, как и интерпретатору.
>>2255671
>в противном случае тебе перезвонят
Слава богу, что как-то за 8 месяцев меня ещё не пидорнули с текущей работы, а то двач послушать, то вообще брать не должны были.
Аноним 04/01/22 Втр 13:16:56 2255681221
>>2255678
>На то я и возвращаю список?
Ты тупой или троллишь?
Аноним 04/01/22 Втр 13:17:38 2255682222
>>2255678
>А в кортеже я типа указываю
То есть ты любишь вернуть заранее неизвестное колоичество заранее неизвестно чего? Да уж, твоим коллегам не позавидуешь.
Аноним 04/01/22 Втр 13:23:10 2255685223
oru.jpg 22Кб, 1280x720
1280x720
>>2255681
>>2255682
Круто, т.е. это теперь я опять тупой/тролль/шиз, хотя мне сверху пишут, что я не могу вернуть списком, а только кортежем, т.к. якобы не могу указать количество возвращаемых значений из функции, хотя и там и там мне надо указывать.
Пишите докстринги, не будьте батхёртами.
Аноним 04/01/22 Втр 13:24:47 2255687224
>>2255685
Да ты просто обычный говнокодер на проекте где нет настроенных линтеров и нормального ревью, не более того.
Аноним 04/01/22 Втр 13:28:25 2255688225
>>2255687
Да-да, всё так, и pylint/flake8 не настроен и весь код в папке на фтп храним, ты лучше знаешь.
Аноним 04/01/22 Втр 13:29:50 2255691226
>>2255685
https://docs.python.org/3/library/typing.html#typing.Tuple
Непосредственно в примере в официальной документации описано, как для тупла указывать тайпхинт на длину и тип каждого элемента. Жду аналогичного примера для списка.
Аноним 04/01/22 Втр 13:41:03 2255702227
>>2255691
from typing import List, TypeVar

T = TypeVar('T', dict, str)

def f() -> List[T]:
a = {1: 2}
b = "hello"
return a, b

f()
({1: 2}, 'hello')
Аноним 04/01/22 Втр 13:45:52 2255707228
>>2255702
Охуенно. И вот этот человек кичится тем, что его не увольняют.

Если до сих пор не понял, то у тебя только что получился
List[Union[dict, str]]
Ценность такого тайпхинта нулевая, ты не знаешь ни количество элементов, ни тип каждого из них. То ли str, то ли dict, хуй его знает. Может, там вообще пустой список будет.
Аноним 04/01/22 Втр 13:48:09 2255710229
>>2255707
Спасибо, ты просил пример из доки, тебе привели, ты же не хотел через Union.
>Ценность такого тайпхинта нулевая, ты не знаешь ни количество элементов, ни тип каждого из них.
>To specify a variable-length tuple of homogeneous type, use literal ellipsis, e.g. Tuple[int, ...].
Зато тут я всё знаю, конечно же.
Аноним 04/01/22 Втр 13:57:40 2255716230
>>2255710
>ты просил пример из доки, тебе привели
Твоя дислексия прогрессирует, не запускай ее. Я просил, цитирую:
>аналогичного примера
>на длину и тип каждого элемента
которого ты до сих пор не привел.

>Зато тут я всё знаю, конечно же
Цветной текст в браузере обозначает ссылку. Если нажать на таковую из моего предыдущего поста, то откроется документация на конкретном разделе, в котором описано, как описать тупл, его длину и тип каждого элемента. Чего ты до сих пор не сделал со своими списками с юнионами, после которых надо проверки длины и типа городить.

слишком толсто уже, завязывай
Аноним 04/01/22 Втр 13:58:17 2255718231
https://habr.com/ru/company/regionsoft/blog/595257/
Не уйти ли из айти?

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

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

И вроде бы — что плохого в непрерывном обучении и развитии для человека с интеллектом? Но обучение и самообразование выходит за границы рабочего дня и ты, чтобы оставаться тем же крутым профессионалом, вечерами пилишь свой пет-проект, ковыряя новинки Go, Java, JS (или что ты там предпочитаешь) и попутно изучая что-то совершенно новое, чтобы привнести это в рабочий проект, развивать его, делать максимально конкурентным. А это ещё один повод присмотреться к венерианским суткам, они больше подходят для качественного айтишника.
Аноним 04/01/22 Втр 14:01:04 2255720232
>>2255716
>Цветной текст в браузере обозначает ссылку. Если нажать на таковую из моего предыдущего поста, то откроется документация на конкретном разделе, в котором описано, как описать тупл, его длину и тип каждого элемента. Чего ты до сих пор не сделал со своими списками с юнионами, после которых надо проверки длины и типа городить.
Помоги с дислексией, папиши пример с туплом с его длиной и типом каждого элемента, как в документации, а то я не умею её читать и кликать по цветному тексту.
Аноним 04/01/22 Втр 14:05:58 2255724233
>>2255720
Tuple[dict, str]
Куда в тебя столько лезет. Ты же лопнешь, деточка.
Аноним 04/01/22 Втр 14:13:55 2255730234
>>2255724
И я всё равно не вижу разницы с списком (кроме синтаксиса), т.к. твой кортеж также может вернуть пустой список/словарь, и даже может вернуть не 2 значения.
Аноним 04/01/22 Втр 14:16:30 2255733235
>>2255730
Нет, не может. Прочитай еще раз пример из документации.
Да, технически может, но любая иде даже без линтеров сразу на это начнет плеваться. В отличие от.
Аноним 04/01/22 Втр 14:20:58 2255735236
>>2248924 (OP)
>Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy но народ на него жалуется
Чому?
Аноним 04/01/22 Втр 14:27:32 2255744237
ok.png 43Кб, 843x537
843x537
>>2255733
Ок, пойду в жетбрейнс напишу, а то че-то уже год никак не могут сделать, а то на дваче сказали.
Аноним 04/01/22 Втр 14:38:01 2255749238
>>2255718
>Но обучение и самообразование выходит за границы рабочего дня и ты, чтобы оставаться тем же крутым профессионалом, вечерами пилишь свой пет-проект, ковыряя новинки Go, Java, JS (или что ты там предпочитаешь) и попутно изучая что-то совершенно новое, чтобы привнести это в рабочий проект, развивать его, делать максимально конкурентным. А это ещё один повод присмотреться к венерианским суткам, они больше подходят для качественного айтишника.

Это какие-то шараги с жестким таймтрекингом? Свободно пилю на работе петы и дрочу другие языки, а дома занимаюсь своими делами никак не связанные с кодингом.
Аноним 04/01/22 Втр 14:42:12 2255753239
image.png 44Кб, 1046x537
1046x537
>>2255744
То, что ты страдаешь дислексией уже более-менее понятно, но боюсь, к полному диагнозу также добавится рукожопость. Пучарм на такое ругается даже без дополнительной настройки, прямо из коробки.
На фото - комьюнити пучарм, любитель такой ругани.

А в жидбрейнс отправь конечно, пусть покринжуют.
Аноним 04/01/22 Втр 17:51:00 2255918240
>>2248924 (OP)
Аноны, тяжело ли устроиться джуном по питону? Если работаете то чем конкретным заниметесь? Очень нуждаюсь в ответе.
Аноним 04/01/22 Втр 18:15:29 2255940241
>>2255918
Меня взяли мидлом, при том что коммерческого опыта проганья на питоне было около полу года, и то я в основном писал всякую скриптовую хуйню для автоматизации, и только начинал изучать джангу, а до этого был аналитиком.
На текущем месте пилю веб-приложения (сначала тока бэк, сейчас и бэк и фронт) для копроративного пользования. Бэк django, ninja, neo4j, graphql, mssql, фронт сначала делал через тэмплейты, потом на ванильном жсе, сейчас на vue 3.

тот самый обычный говнокодер на проекте где нет настроенных линтеров и нормального ревью
Аноним 04/01/22 Втр 18:23:43 2255943242
>>2255940
>и то я в основном писал всякую скриптовую хуйню для автоматизации
Тут я спизданул немного, т.к. ещё etl-процессы пилил и работал немного с nifi, airflow и postgresql, и взяли в том числе из-за этого, т.к. планируем в этом году переезд на greenplum.
Аноним 04/01/22 Втр 19:09:01 2255975243
Clipboard01.jpg 88Кб, 893x661
893x661
Всем привет.
Делаю тут проектик в курсике одном. Программа, которая получает урл страницы и локально её скачивает в общем.
Можете подсказать, че тут от меня хотят, лел. Я не могу понять вот про этот сис экзит. Че за коды возврата? Там ссылка у них на википедию, но тоже чет не особо понял. Что значит "утилита должна возвращать правильный код"? Я прочитал, что типа если всё норм, то код 0, а всё остальное не понял.
Потом, "должны учитываться все возможные сетевые проблемы", это типа какие? Ну вот я могу проверять, что типа если у ответа код не 200, а чё ещё делать?
Аноним 04/01/22 Втр 19:47:13 2256032244
>>2255975
conn timeout
conn refused
tls handshake failed
dns discovery failure
not existent domain
и так далее, все то, что тебе пишет браузер, когда ходишь по подозрительным ссылкам, вбиваешь их вручную, или не оплатил инторнеты
Аноним 04/01/22 Втр 20:06:05 2256064245
>>2256032
Окей, а это как вообще ловится? Типа это не в респонсе, а просто отдельное исключение какое-то реквестст сделает?

Ну и про сис нихера не понял всё-таки. Как это работать должно? Типа я сам эти коды выдумываю? Просто чтоб потом в скрипте их обрабатывать? Типа если код 1 - пишу что там страница не найдена, код 2 - нет доступа к файлу итд?
Аноним 04/01/22 Втр 20:34:16 2256091246
>>2256064
>это как вообще ловится
Да, вылетит эксепшн прямо на хттп-методе (для сравнения, при хттп 400+ метод выполнится, эксепшн выбросится дальше, в raise_for_status(), если ты его юзаешь)

Про код выхода я тоже хз, что именно хотят. Если нет какой-то конкретики, я б завершался с кодом = http status, если 400+ в запросе, или с кодом = 1, 2, 3... если вот эти сетевые проблемы.
Аноним 04/01/22 Втр 21:07:37 2256130247
Как практиковаться, если учиться по документации?
Аноним 04/01/22 Втр 21:18:44 2256135248
>>2256130
Как вариант - читать документацию глазами, а писать код руками. Если узким местом окажется мозг, то применить широтно-импульсную модуляцию чтение/практика, с постепенным увеличением ширины фронта практики.
Аноним 05/01/22 Срд 00:57:39 2256279249
Аноним 05/01/22 Срд 01:42:09 2256303250
Сап. Как на питончике накатать скрипт, который может с дискорд аккаунта посылать сообщения в определенный чат на сервере? Я пробовал гуглить, но по запросу выдает только гайды по настройке встроенных (как я понимаю) ботов дискорда, а мне нужен бот со стороны аккаунта.
Какие либы юзать?
Аноним 05/01/22 Срд 05:05:21 2256354251
>>2255943

Расскажи подробнее как перекатывался. Почему укатился из etl и дата инженерии?
Аноним 05/01/22 Срд 10:39:47 2256409252
>>2256130
codewars и подобные площадки.
Аноним 05/01/22 Срд 14:35:37 2256552253
двач, посоветуй что ни будь почитать по асинхронному программированию на питухоне
Аноним 05/01/22 Срд 15:17:04 2256581254
.jpg 362Кб, 1034x1280
1034x1280
Аноним 05/01/22 Срд 15:26:25 2256586255
Аноним 05/01/22 Срд 15:42:08 2256590256
Есть в треде кто шарит за линейное программирование (библиотеки SciPy, PuLP)?
Аноним 05/01/22 Срд 15:58:17 2256604257
>>2256590
А какой вопрос? Попробуй ещё в машоб тред заплатить вопрос
Аноним 05/01/22 Срд 15:59:20 2256606258
>>2256604
>заплатить запилить
быстрофикс
Аноним 05/01/22 Срд 17:37:20 2256654259
>>2248924 (OP)
Есть ли похожие аналоги learnjavascript только для питона? Или вы реально только по Лутцу и остальным книжкам учились?
Аноним 05/01/22 Срд 17:41:33 2256657260
>>2256654
Аналог в плане такого большого сайта-вики или в плане самоучителя?
Аноним 05/01/22 Срд 17:52:19 2256662261
>>2256657
Скорее в плане самоучителя, просто никак не определюсь по чему учиться. Лернжабаскрипт четенький красивый, с задачками, неужели божественному питону не запилил похожий сайтец?
Аноним 05/01/22 Срд 18:00:08 2256667262
>>2256662
Запили площадку под названием Степик, где люди выкладывают обучающий текст, картинки, видео (на Ютубе, но встраивается в страницу сайта) и организуют задачки с автопроверкой для учащихся (курсы по разным языкам, есть и не по IT). Эти задачки похожи на то, что есть у Кодеварс или Литкода (но более колхозно пока что на мой вкус).

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

А если ты про сайт-справочник по Питону... https://pythonz.net/ не плохой как справочник, но такого подробного сайта как у Кантора про js, но про Питон я не видел.
Аноним 05/01/22 Срд 18:50:46 2256695263
>>2256667
Норм связка теорию по Лутцу проходить а практиковаться задачками с кодварс?
Аноним 05/01/22 Срд 19:33:19 2256724264
>>2256695
Я бы тебе лучше порекомендовал курсы на Степике от БииГик. В Кодеварс задачки сильно разные и между собой чаще всего никак не связаны.

А так вроде норм.
Аноним 05/01/22 Срд 19:57:41 2256738265
Приветики. Я из соседнего треда пришел (qa). Пять лет промакачил куашником ручником, дорос до 250. Свалил с работы чтобы перекатиться в автокуа. Прошел укус питона сейчас, берусь за селениум/pytest.
И вот я думаю, а может нахуй их и дрочить джангу? В общеайтишных делах я хорошо шарю, а девы имеют более высокий потолок развития. Сложно ли вообще устроится джуном питонистом сейчас? Какой порог вхождения, учитывая бэкграунд? Сколько по времени будет дорасти (я понимаю что очень размыто, но все-равно) до 250-300 хотя бы? В aqa мне придется год-два до этого обратно подниматься. Мб действительно спекнуться, пока совсем старым не стал.
Аноним 05/01/22 Срд 21:25:22 2256798266
Вес на луне.jpg 125Кб, 683x718
683x718
>>2248924 (OP)
Сап, анончики. Недавно начал давить питона оп литературе которую вы скинули. Сейчас занимаюсь по самоучителю для детей, так-как считаю такие самоучители лучшими для вката. Только что выполнил задание, по написанию программы для рассчета лунной массы. Я молодец. А вам спасибо.
Аноним 05/01/22 Срд 21:37:57 2256812267
Аноним 05/01/22 Срд 21:54:19 2256820268
>>2256798
Ты забыл еще один import time вставить, неправильно сработает иначе
Аноним 05/01/22 Срд 21:56:13 2256821269

>>2256798
Вынеси import time перед циклом
А так норм
Аноним 05/01/22 Срд 22:08:08 2256830270
>>2256820
>>2256821
Я пока сидел, немного доработал:
re_call = None
while True:
re_call = str(re_call)
if (re_call == 'да'):
break
weight = input('Сколько ты весишь на Земле? ')
wei_plus = input('Какая у тебя прибавка веса в год? ')
times = input('На сколько лет вперед считать твой Лунный вес? ')
weight = float(weight)
wei_plus = float(wei_plus)
times = int(times)
times = times + 1
moon_w = 0
moon_w = float(moon_w)
for i in range(1, times):
weight = weight + wei_plus
moon_w = weight * 0.165
print ('На Луне ты будешь весить ',moon_w, ' кг когда пройдет ', i, 'год')
import time
time.sleep(5)
re_call = input('Рассчеты закончены? ')
if (re_call == 'да'):
print('Благодарю за использование этого конвертера! ')
import time
time.sleep(5)
break
elif (re_call == 'нет'):
print('Продолжаем... ')
import time
time.sleep(5)
elif (re_call != 'да', re_call != 'нет'):
while (re_call != 'да', re_call != 'нет'):
re_call = input('Напиши либо "да", либо "нет"... ')
if (re_call == 'да'):
print('Благодарю за использование этого конвертера! ')
import time
time.sleep(5)
break
elif (re_call == 'нет'):
print('Продолжаем... ')
import time
time.sleep(5)
break

Теперь у меня нормальные выходы из циклов. Куда там import time сунуть? Посмотрю что будет.
Аноним 05/01/22 Срд 22:10:47 2256833271
Вес на луне2.jpg 130Кб, 1007x696
1007x696
Аноним 05/01/22 Срд 22:19:59 2256840272
>>2256833
>while-while
>____import
>time.sleep
Для обучения сойдет, для серьезной разработки это пиздец.

>elif (re_call != 'да', re_call != 'нет')
>while (re_call != 'да', re_call != 'нет')
А вот тут даже в логике ошибка, это условие всегда True
Аноним 05/01/22 Срд 22:28:43 2256844273
>>2256840
Лол, очень непривычно вкатываться из лампового бэйсика во что-то нормальное. Тоесть, while внтури другого while не торт? Или в моем случае можно было избежать? Таким образом, я пытался получить в процессе "использования" однозначности вводимых ответов. "Защита от дурака". Цикл while всегда True? или Elif? В сраном учебнике для них обоих показывали возможность ставить там условия, как я сделал, кстати, все отлично работает у меня. На следуюющих выходных займусь доработкой, чтобы для рассчетов принимались только числовые значения.
Аноним 05/01/22 Срд 22:34:29 2256849274
>>2256840
Все, я убрал лишнее из while и поставил ему православное True.
Спасибо анончик. Теперь буду ждать следующих выходных и допишу защиту от некорректного ввода числовых данных.
Аноним 05/01/22 Срд 22:39:12 2256857275
>>2256844
>Цикл while всегда True? или Elif
Оба. Выполняемое условие всегда True, потому что ты передаешь ему кортеж
>re_call != 'да', re_call != 'нет'
Даже если оба условия False, то получится проверка вида
if (False, False):
А непустой кортеж приводится к True.
Аноним 05/01/22 Срд 22:53:02 2256872276
>>2256604
Вопрос в решении задачи. Если такое не с руки решать, то пойду в другой тред (машоб), но вообще эту задачу мне не к спеху и не обязательно решать.

Условие задачи:

Марсело решил открыть новое кафе и будет импортировать необходимый кофе из Бразилии. Он хочет объединить три раунда, а именно: Lazy Sunday Morning, Refreshing, All night quiz. Для приготовления этих смесей необходимо использовать кофейные зерна с 4 различными видами кофеина. В миксе Lazy Sunday Morning должно быть не более 25% кофейных зерен III и IV сортов. 75% -Refreshing должны составлять кофейные зерна II и III типов. По крайней мере, 60% всего All night quiz состоит из кофейных зерен IV типа.

Цены за различные сорта кофе:

I тип - $ 2,50 за 500 фунтов

II тип - $ 2,75 за 500 фунтов

III - $ 2,00 за 500 фунтов

IV - $ 3,50 за 300 фунтов

Из одного фунта (полкилограмма) кофейных зерен можно приготовить 30 чашек кофе. Lazy Sunday Morning продается за 1,25 доллара, Refreshing продается за 1,50 доллара, и, наконец, All night quiz продается за 1,75 доллара. Постройте модель, которая максимизирует прибыль Марсело, и решите модель, которую вы построили на Python."

Я так понял, что подобные задачи решаются при помощи линейного программирования. Нашел эту ссылочку на тему - https://proglib.io/p/lineynoe-programmirovanie-praktika-resheniya-zadach-optimizacii-na-python-2020-11-26

Пример с производством 4 видов товаров из 2 ресурсов в задаче из примера с этого сайта выглядит похожим на мою задачу, но не могу перенести логику моей задачи в этот пример.
Аноним 05/01/22 Срд 22:55:42 2256874277
Аноним 05/01/22 Срд 23:03:43 2256884278
>>2256874
Спасибо. Возьму себе на будущее для изучения. Просто на данный момент, я только освоил циклы, до функций еще не дошел, хоть и использовал вызов функций time. Поэтому решал задание теми средствами, которые знаю. Я буду вас время от времени развлекать вас своим кодом.
Аноним 05/01/22 Срд 23:08:33 2256889279
>>2256884
в том варианте не объявлено ни одной функции, все в том же духе, что и у тебя
в твоем вызовы не только time.sleep(), но и input(), print(), range(), float(), int()
так что тот пример не про функции, а скорее про организацию логики и сокращение дублирования кода
Аноним 05/01/22 Срд 23:30:48 2256899280
>>2256872
Нихуя не понятно и вычитать суть задачи сложно. Формулировал ее какой-то соевый хипстопорридж, очевидно.
Измени Марселя на Ивана, доллары на рубли, фунты на килограммы, и вот это говно
>три раунда, а именно: Lazy Sunday Morning, Refreshing, All night quiz
на бульбу, моркву и свеклу. Будет и задача понятнее, и кафе нажористее.

А так - да, выглядит как обычная линейная функция, машоб не нужен, разве что только тебе нравится тратить время на обучение модели и получение точности навроде 76%.
Аноним 06/01/22 Чтв 00:05:13 2256912281
Что плохого в дебаге принтом?
Аноним 06/01/22 Чтв 00:08:15 2256914282
>>2256899
Вот я и понял, что это линейная функция, но не понял как для нее условия прописать в PuLP. В примере на сайте все понятно, а тут какое-то новый уровень сложности.
Аноним 06/01/22 Чтв 10:24:02 2257123283
>>2256654
Учился Python в бою. На петпроектах.
Аноним 06/01/22 Чтв 15:31:13 2257337284
В питоне можно как-то явно объявлять переменные? Типа как в перле, при use strict переменную нельзя объявлять без my. Можно ли в питоне такое сделать?
Аноним 06/01/22 Чтв 15:38:06 2257346285
>>2256872
Ну да, надо записать функцию прибыли (т.е. профит - косты) и максимизировать ее с учетом линейных ограничений. Такую хуйню даже эксель может решить.

Я на питоне с таким не работал, но уверен, что должны быть готовые либы. Надо просто нагуглить доку и в путь.
Аноним 06/01/22 Чтв 21:30:21 2257595286
>>2256738
Твой бекграунд вообще ничего не значит в dev. Сиди в aqa. Плюс стеки совсем разные, у aqa там куча своего узкоспециализированного. При перекате в dev на тебе будут смотреть ещё худе чем на скиллбоксового даунича, примеры можешь на ютубе посмотреть и в aqa треде постили, типо вопросики "а почему вы сразу в dev не пошли?".

С другой стороны в aqa вроде как ценится опыт ручником, ну и плюс у тебя уже понимание требований и прочей тестировочной теории. В aqa есть куда расти ещё, потом про нагрузочное узнаешь ещё какую хуету, java core ещё выучи и вообще паладином энерпрайза станешь.
Аноним 06/01/22 Чтв 22:25:44 2257629287
>>2257595
Спасибо. Знаю что хэды в крупных компаниях сша могут безумные деньги получать (до 300k/y), но до такого дорасти практически невозможно мне кажется. А программистом сеньором лутать свои 6-7к мне кажется явно полегче. (как поднимать тому же aqa выше пятерки/m, или ручнику выше 3.5/m - я не представляю).
C другой стороны, это уже достаточно большие деньги, но будет обидно если через 2-3 года я пойму, что все, потолок, а прыгать в девы будет уже поздно.
Аноним 06/01/22 Чтв 23:45:31 2257678288
Стоит ли вкатываться в бэкенд на пайтоне? Сам язык нравится, но настораживает, что вакансий очень мало.
Аноним 07/01/22 Птн 00:01:52 2257687289
Аноним 07/01/22 Птн 01:14:17 2257730290
>>2257678
Вкат через питон проще всего
Аноним 07/01/22 Птн 02:09:41 2257751291
Посоветуйте книгу для изучения питона. Не новичек, могу в плюсы, Qt, пых... Чтоб в книге без воды и вврдных по программированию.
Спасибо
Аноним 07/01/22 Птн 06:16:50 2257782292
Аноним 07/01/22 Птн 09:04:19 2257796293
>>2257751
>новичек
Учебник русского языка попробуй, должно зайти.
колпачекю flashbacks
Аноним 07/01/22 Птн 09:32:34 2257809294
избранное
Аноним 07/01/22 Птн 09:50:52 2257816295
Пишу тут скрипт, который должен сохранять html страницу, потом пробегать по ней и вытаскивать нужную инфу в файл формата txt.
Код прилагаю: https://ideone.com/XEmho0

Появляются проблемы следующего характера:
Если я запускаю это в PyCharm, то вместо 5 секунд мои функции, как я написал в schedule, запускаются секунд через 30.
Вторая проблема - когда я сделал .exe файл из .py, он не работает как хотелось бы. При запуске появляется консолька на долю секунды и закрывается. Ну и у меня еще скрипт должен создавать html и txt файлы, они не создаются очевидно
Пооясните где я не прав, пожалуйста. Ну или если видите что я наговнокодил и что-то стоит поменять. Мне уже кажется сомнительным, что стоит сохранять страну в html, а не скрейпить напрямую нужную инфу.

По плану хотел чтобы обе функции работали каждые 15 минут, а 5 секунд поставил просто чтобы было нагляднее самому смотреть.
Аноним 07/01/22 Птн 10:01:43 2257820296
>>2257816
в коде никто расписание не задаёт, кладут в планировщик и запускают по расписанию
Аноним 07/01/22 Птн 10:34:01 2257848297
Где находятся парсеры контента для сайта на джанго?
Аноним 07/01/22 Птн 14:01:57 2258059298
Анчоусы, как с трудоустройством джунов в Украине? По вакансиям одних мидлов сейчас ищут или я жопой ищу?
Аноним 07/01/22 Птн 15:15:46 2258158299
Сорян, это снова я >>2255975

Я так и не поянл особо че делать. Что за коды возврата-то блэд? Я так понял сис экзит принимает просто сообщение, которое ничего не значит само по себе? То есть я могу это сообщение для пользователя туда и писать, а потом в скрипте, который импортирует эту функцию отлавливать исключение систем экзит и его сообщение распечатывать и в лог сувать, да? Но че тогда такое "правильный код возврата"?
Аноним 07/01/22 Птн 16:49:30 2258284300
>>2257816
Попробуй
def main():
____access()
____extraction()

schedule.every(5).seconds.do(main)

Аноним 07/01/22 Птн 16:50:19 2258285301
>>2258158
Ну ёбана там же русским по белому написано, если ответ http отличается от 200, сообщить об этом пользователю.
Аноним 07/01/22 Птн 17:00:35 2258296302
>>2255671
>Спасибо, что упомянул о том, что из функции можно возвращать список вместо тупла.
Дебил, хватит мне приписывать твои вскукареки. Иди на хуй, короче говоря, тупорылый дегенерат!
Аноним 07/01/22 Птн 17:06:55 2258308303
>>2258158
Правильный - значит 0, если нет ошибок, и не 0, если ошибки есть.
Аноним 07/01/22 Птн 17:18:28 2258327304
>>2258296
С возвращением! У нас тут все готово и все в сборе, тебя не хватало. Бухал что ли эти три дня? А чего остановился тогда?
Аноним 07/01/22 Птн 17:21:05 2258331305
c5b3add7346f321[...].jpg 110Кб, 1066x620
1066x620
Аноны пояснить суть вашего спора. Чот я прочитал по диагонали и нихуя не понял.

Почему нельзя возвращать из функции лист? Зачем мне возвращать тупл, если я дуальше хочу его как лист использовать? Ну пусть даже я возвращаю обьёкт, ну и хуй с ним пусть полежит в листе?

Аноним 07/01/22 Птн 17:30:47 2258353306
>>2258331
Да ну еб вашу мать, еще один.
Возвращай на здоровье, только забудь про поэлементную типизацию и возможность безопасно распаковать этот лист в переменные потом. Если оно тебе не надо, то хоть пятимерными листами кидайся.
Аноним 07/01/22 Птн 17:40:26 2258374307
>>2258331
Если пишешь код без тайп хинтинга и для себя, то никакой разницы нет (на самом деле и с ним с точки зрения работы программы разницы нет, но линтер будет ругаться и другому говнокодеру не будет понятно, что у тебя функция возвращает).
07/01/22 Птн 18:56:09 2258522308
image 39Кб, 1681x229
1681x229
Привет, тредик. Почему, когда я запускаю скрипт через VS Code, процесс сам переходит в несуществующую папку (cd 'c:\\Users\...\\иС) и ищет там файл для запуска? В скрипте ходьба по директориям не используется, сам я cd не пишу. В гугле не нашел такой же хуйни.
Аноним 07/01/22 Птн 20:42:17 2258672309
>>2255702
А ведь тут ты неправ.
А этот указал на твою ошибку: >>2255707

Но, я только что почитал про mypy. До этого вообще не знал, что это такое. И вообще, я таксист. Но вот что я нашёл:

from typing import TypedDict
class MahClass(TypedDict):
a: dict
b: str

def f():
a = {1: 2}
b = 'hello'
return MahClass(a=a, b=b)

r = f()

Теперь у r.a будет тип dict, а у r.b будет тип str.
Ну или как-то так, я этот код не проверял.
Аноним 07/01/22 Птн 20:44:05 2258678310
>>2255749
>Свободно пилю на работе петы и дрочу другие языки
А как на это смотрит работодатель?
Аноним 07/01/22 Птн 21:17:11 2258723311
image.png 239Кб, 1920x1080
1920x1080
image.png 211Кб, 1920x1080
1920x1080
обоссыте не бейте, вторую неделю учусь
как сделать чтобы не писать на каждую кнопку отдельную функцию?
при нажатии любой кнопки вываливается ошибка
Аноним 07/01/22 Птн 21:20:06 2258727312
>>2257730
Да я уже вкатился, я имел в виду вкат именно в эту область, неправильно поставил вопрос. Постоянно вижу этот язык в топе разных рейтингов, но не знаю как там с востребованностью на рынке труда. Потратить время на изучение технологии, а потом понять, что она не нужна было бы неприятно.
Аноним 07/01/22 Птн 21:25:08 2258731313
>>2258678
Пока таски выполняются ему похуй
Аноним 07/01/22 Птн 21:31:01 2258736314
>>2258522
Лучше скачай себе убунту с магазина приложений Виндовс и делай через Windows Subsystem for Linux и venv
Аноним 07/01/22 Птн 21:31:24 2258738315
>>2258285
Ну там написано статусы, которые кроме 200 И все возможные сетевые ошибки. То есть как я понимаю, мне надо отлавливать исключение и вызывать сис экзит, а потом отлавливать этот сис экзит? А то не буду же я вручную каждую возможную сетевую ошибку описывать, да?

>>2258308
А, лел, я и не понял.
Аноним 07/01/22 Птн 23:07:58 2258806316
Аноним 08/01/22 Суб 00:18:30 2258850317
Аноним 08/01/22 Суб 01:22:24 2258892318
>>2258850
>не использовать этого никогда
Почему?
Аноним 08/01/22 Суб 01:59:19 2258907319
>>2258892
Потому что он выполняет то, что получит. Без вопросов.
Аноним 08/01/22 Суб 03:45:43 2258925320
>>2258672
>Теперь у r.a будет тип dict, а у r.b будет тип str.
>a: dict
>b: str
Никак не мутирую инстанс класса и явно ему передаю a = {1: 2} и b = 'hello'.
>print(isinstance(r['a'], dict)) #True
>print(isinstance(r['b'], str)) #True
Даа, как же так работает...
Аноним 08/01/22 Суб 03:57:03 2258927321
>>2255702
>return a, b
Таким синтаксисом ты тапл возвращаешь. Надо "return [a, b]" писать
Аноним 08/01/22 Суб 04:03:22 2258930322
>>2258927
Охуеть, а код ведь всё равно работает, как же так...
Аноним 08/01/22 Суб 04:04:16 2258931323
>>2258374
У меня в продукте есть код, который запускают консольную программу, она по рестапи общается с сервером и возвращает джейсон. Этот джейсон паристся и возвращается из функции. Там вполне может и список словарей быть. Валидация джйсон схемы происходит в консольной программе. Значит список всегда валидный возвращается. Без жёстких тайпхинтов типа ограничивать длину списка (откуда я знаю какой длины будет список, который сервер отправит) и содержимое (зачем мне в анотациях дублировать джйсонсхему, которая и так нормально проверяется в другом месте плюс какая схема применяется зависит от аргументов и эндпоинта так что мне ещё и на одну функция надо будет юнион разных схем повесить фигня какя-то выходит если так делать) Что проекте сделано не так и как это исправить?
Аноним 08/01/22 Суб 04:07:38 2258932324
>>2258931
Ничего не понял, pydantic решает 90% вопросов, связанных с сериализацией твоих жысонов.
Аноним 08/01/22 Суб 04:08:56 2258933325
>>2258930
Ты даже если ноне возвращать будешь, то код будет работать. Тайпхинты не помогут. Тут надо линтером пройтись
Аноним 08/01/22 Суб 04:11:21 2258934326
>>2258933
Спасибо, а я и не знал, >>2255744 это просто так скинул... Жду когда после новогодних каникул уволят после очередного пулл реквеста.
Аноним 08/01/22 Суб 04:18:54 2258935327
>>2258932
Вижу не понял. Вот смотри. Есть консольная утилита для общения с бэкендом. Типа awscli или kubectl. И есть обёртка над этой утилитой на питоне в виде библиотеки, которую можно импортнуть и запускать эту консольную утилиту передавай ей нужные параметры как параметры командной строки и получая результат из stdout в виде одного джейсона. В обычном режиме утилита печатает всякие таблицы в человекочетаемом виде, а нам надо именно в джейсоне чтобы потом можно было с этим результатом в программе работать. Утилита сама общается с бэкендом и всё валидирует. Джейсоны, которые либа читает из stdout этой утилиты уже валидны. И либа заранее не знает что она там прочитает. Поэтому там где возвращается список в джейсоне функция парсинга stdout так и возвращает список. И нет там никакого тайпхинта на список определёной длины т.к. бэкенд может любую длину вернуть. И что ты предлагаешь делать? Какой тайпхинт на такую функцию поставить?
Аноним 08/01/22 Суб 04:24:07 2258936328
>>2258935
Никаким тайпхинтом ты это не проверишь, твоя утилита должна парсить твой жысон с бэкенда и писать в stdout, если он прошёл проверку при парсинге, или в stderr, если нет. Валидировать ты можешь через импорт жысон, ну либо создавать инстанс класса из того же пайдантика с заранее заданной схемой и передавая в конструктор свой жысон.
Аноним 08/01/22 Суб 04:36:38 2258938329
>>2258930
Этот код сломается после второго рефакторинга по уже описанным выше причинам и узнаешь ты об этом только когда все упадет в рантайме. Поэтому такой код проигрывает в стоимости поддержки, а все из-за каких-то сраных скобочек, которые тебе так сильно полюбились не к месту.

>>2258934
Чел, ты ведешь себя как персонаж мема "смотрите, я долбоеб". Ок, все поняли, что тебе насрать на существующие соглашения и практики. Тебя уже назвали долбоебом один раз и обосновали почему, но ты не приводя ни одного контраргумента просто продолжаешь свою шарманку "нО вЕдЬ кОд рАбОтАеТ жЕ, мЕнЯ жЕ еЩе нЕ уВоЛиЛи". Че ты еще хочешь-то тогда, переубедить кого-то как делать правильно, соглашения переписать? Тогда ты сайтом ошибся.

Чем я блядь занимаюсь
Аноним 08/01/22 Суб 04:41:11 2258940330
>>2258934
Алсо раз уж вспомнил тот скрин, то игнорирование неудобного ответа детектед, в ответном скрине все работает, криворучка.
Аноним 08/01/22 Суб 04:49:54 2258941331
>>2258938
Не знаю чем ты занимаешься, код не упадёт ни после какого рефакторинга, только если ты сам его не захочешь уронить.
>проигрывает в стоимости поддержки
Ну да, F12 только избранные как ты могут нажимать.
>существующие соглашения и практики
Пеп8 тебя не обязывает в обязательной форме указывать типы.

>>2258940
Какого неудобного ответа? Майпай из коробки идёт в пайчарме/вскоде? Нет. При запуске скрипта они ругаются на скрипт при стандартной настройке? Нет. У меня пайчарм не тот? Комунити версия 2021.2. Пайлинт и фалке8 из коробки не ругается если только заранее код не прогнать и конфиг не настроить. Распаковка тапла и листа отличается? Нет.
Аноним 08/01/22 Суб 04:53:27 2258943332
>>2258938
Я никого не пытаюсь переубедить и никому не пытаюсь прививать правильные/не правильные практики программирования на питоне, если у людей есть голова на плечах, они сами решат, что правильно, а что нет, и из-за чего загоняться, а из-за чего нет.
Аноним 08/01/22 Суб 05:07:18 2258944333
>>2258936
>Никаким тайпхинтом ты это не проверишь, твоя утилита должна парсить твой жысон с бэкенда и писать в stdout, если он прошёл проверку при парсинге, или в stderr, если нет.
Так и делаю. Если ты то же самое говоришь, то вопрос был не к тебе, а к тому жизу, что утверждает, что нельзя возвращать список из функции т.к. тайпхинты нормально не прикрутить
Аноним 08/01/22 Суб 05:08:26 2258945334
>>2258944
Ну ты и спроси у этого >>2258938 >>2258940 сеньона питухон девелопера, а то он только на меня может агриться.
Аноним 08/01/22 Суб 05:23:47 2258948335
>>2258941>>2258943>>2258944>>2258945
>код не упадёт ни после какого рефакторинга
Упадет, стоит добавить или удалить элемент в/из возвращаемого списка. Если бы там был тупл, иде сразу засветила бы варнингами как на моем скрине, в случае с листами - иди и обходи руками все использования функции, и не дай боже, если пропустишь хоть одно, никто ничего не скажет.

>Ну да, F12 только избранные как ты могут нажимать.
О том и речь, ручная проверка < автоматическая от IDE и линтеров. Автоматическая, в зависимости от срока жизни продукта, может быть на порядки дешевле. Отсюда и разница в стоимости поддержки, о которой говорю.

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

>Майпай из коробки идёт в пайчарме/вскоде? Нет.
Снова чини дислексию. Писал же, голый пч на скрине. Без ничего. Да, даже без майпая. Да, даже без линтера.

>При запуске скрипта они ругаются на скрипт при стандартной настройке
Ругаются даже до запуска, скрин мой выше. Хотя это, конечно, же, фотошоп, а не твои кривые руки.
Если варнинги и подсветка тебя не останавливает от запуска, то, возможно, тебе стоит сменить язык на жабу, там пока не сконпелируешь с правильными типами, ничего не запустится.

>нельзя возвращать список из функции т.к. тайпхинты нормально не прикрутить
Соломенные чучела пошли в ход. Список из функции можно и нужно возвращать, если это какой-то массив данных, обычно это массив элементов одного типа. И это даже можно нормально типизировать. С этим никто, блять, не спорит, ну или пруф ми вронг.
Речь выше шла о возврате фиксированного тупла с переменными (возможно) разного типа и распаковке этого тупла в переменные:
>не return a, b, c, d
>А нужно return [a, b, c, d],
Ты зачем-то продолжаешь копротивляться, что даже в этом случае рукотворный лист из этих переменных лучше тупла, хотя это уже обоссали выше.

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

Напридумывали себе охуительных историй про то, что кто-то запретил списки возвращать, и сами спорят с этим, еще и вкатунов с толку сбивают своей шизой.
Аноним 08/01/22 Суб 05:26:52 2258949336
>>2258948
>Снова чини дислексию. Писал же, голый пч на скрине. Без ничего. Да, даже без майпая. Да, даже без линтера.
Ваша ide не ide. Понял-принял, даже отвечать не буду.
Аноним 08/01/22 Суб 05:40:45 2258951337
>>2258949
Ну, значит, моя иде не иде. И всех остальных тоже. И на сайте жидбрейнса пиздят про работу с типами. Хуево наверное быть нами, лишнее в иде работает.
Аноним 08/01/22 Суб 09:21:08 2258973338
Назрел следующивй вопрос. Допустим у меня есть класс:

class Zalupa:
____def Drochit():
________None

____def NeDrochit():
________None

____def Run(a):
_________Drochit()
_________NeDrochit()

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



Аноним 08/01/22 Суб 09:58:52 2258977339
Почему при обработке ответа API следует использовать модуль jsonjson.loads(), а не responce.json()?
Аноним 08/01/22 Суб 16:35:30 2259430340
code.png 86Кб, 728x592
728x592
Аноним 08/01/22 Суб 16:38:31 2259434341
>>2258977
Если класс Response из твоего фреймворка/либы поддерживает метод json() - используй его, код будет более читаемым. Собственно, обычно под капотом этих методов и лежит дефолтный json.loads()
Аноним 08/01/22 Суб 16:43:58 2259442342
>>2259430
Как такие модные картинки делать?
Аноним 08/01/22 Суб 17:25:40 2259476343
>>2259442
VSCode + расширение PolaCode
Ещё есть carbon.now.sh
Аноним 08/01/22 Суб 17:33:30 2259486344
Почему собесы на джуна настолько легкие?

Дам пару примеров.

За эту неделю я прошел 3 собеса из 3, думаю вот куда пойти работать.

На одну вакансию уже было подано больше 30+ заявок(как говорит djinn).

Собеседование было таким -

Что такое ООП(Инкапсуляций,абстракция,полиформизм)
С какими паттернами имел дело?
Найди мне палиндром
Что такое итератор - генератор
Имел дело с БД?

Все ты взят, зп 800$

На всех собеседованиях зададут максимум 1 вопрос более менее, а остальные так, чисто пообщаться, как вообще их можно провалить, как эти 30+ человек провалили собеседование, я даже подумал, что фирма разводная какая-та, но нет вроде, на остальных собеседованиях все так-же - Пару вопросов, ты принят.

А на работе же душняк может быть? Ну это совсем не правильно проводить такие собесы, вдруг я не справлюсь с работой, то потом виноват буду?
Аноним 08/01/22 Суб 17:47:28 2259508345
>>2259486
> Что такое ООП(Инкапсуляций,абстракция,полиформизм)
> С какими паттернами имел дело?
> Что такое итератор - генератор
Это же вопросы на несколько часов ответа
Аноним 08/01/22 Суб 17:52:40 2259514346
>>2259508
Ну мб поэтому я и джун

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

Вот и все
Аноним 08/01/22 Суб 18:16:53 2259541347
>>2259514
Ну а дальше? В чем преимущества каждого, в чем минусы? Приведите примеры актуального применения.
Аноним 08/01/22 Суб 18:29:24 2259559348
>>2259541
Ну вот он тебе и говорит, что он джун. Он отвечает на эти вопросы на уровне джуна и его берут на джуна.

Он наверное ожидал вопросы про машинный код и черно-красные деревья.
Аноним 08/01/22 Суб 18:45:07 2259577349
>>2259541
Ну с тем же итератором мы можем расширить какой-то обьект, с генератором так сделать не получится. Так-же у нас есть генераторное включение, но вот итераторного не может быть.

Для примера создал бы класс с итератором.

А если серьезно, то я смогу обьяснить где это используется и зачем, но вот конкретно между генератором и итератором же нет ничего такого разного, они похожи, генератор делает тоже самое что и итератор, но имеет ключевое слово yield и обе штуки используются для обхода огромных данных
Аноним 08/01/22 Суб 18:47:43 2259583350
>>2259577
Генератор для генерации, итератор для итерации. (ВНЕЗАПНО)
Это разная хуйня вообще, но реализована на одном протоколе итерации.
Аноним 08/01/22 Суб 19:02:06 2259601351
>>2259577
Попробуй обойди генератором большой объем, и проверь сколько памяти потратишь на это.
Аноним 09/01/22 Вск 06:51:02 2259878352
>>2259486
>зп 800$
o-la-la
Тебе хоть платят или ты платишь?

>вдруг я не справлюсь с работой, то потом виноват буду?
Конечно ты виноват. Всегда.
Аноним 09/01/22 Вск 12:04:24 2259967353
Аноним 09/01/22 Вск 13:10:50 2260015354
Посоны, сложно будет теги реализовать?
Пишу свой чатик на джанго, хочу чтобы юзеры могли пукать гринтекстом друг в друга. Как на Дваче, в общем.
Аноним 09/01/22 Вск 15:51:35 2260188355
Гайз, мега сложный вопрос(нет)... есть список к примеру
['users', 'id', 'city'] и значение к примеру - хуй
надо сделать словарь вида -
{'users': {'id':{'city': 'хуй'}}}
как это сделать
Аноним 09/01/22 Вск 15:54:03 2260191356
>>2260015
>Пукать гринтекстом
Парсишь строку на наличие символов, допустимой длины, начальных символов. Просто же. На перле это проще реализовать было бы
Аноним 09/01/22 Вск 16:18:15 2260228357
>>2260188
from functools import reduce

lst=['users', 'id', 'city']
reduce(lambda x,y: {y:x}, ['хуй']+lst[::-1])
Аноним 09/01/22 Вск 16:20:20 2260231358
>>2260228
Даже вот так можно:

reduce(lambda x,y: {y:x}, lst[::-1], 'хуй')
Аноним 09/01/22 Вск 16:39:06 2260252359
>>2260228
Спасибо, это работает, еще бы понять как хД
Аноним 09/01/22 Вск 16:45:30 2260265360
>>2260252
Почитай про функциональное программирование и его элементы в питоне.

Раньше в питоне были map, reduce, filter изкоробки, но в третьем питоне изкоробки остался только map, остальное надо импортить из стандартной либы.
Аноним 09/01/22 Вск 17:13:38 2260288361
111111111111111[...].JPG 96Кб, 1123x529
1123x529
Есть такая вот модель в Джанго.
Почему в базу данных атрибут 'category' добавляется, как 'category_id'? Все остальные без id.
Аноним 09/01/22 Вск 17:22:41 2260293362
>>2260288
Это ForeignKey на таблицу news_category, из которой берётся id
Аноним 09/01/22 Вск 17:23:20 2260294363
>>2259514
>лично я ответил так - Генератор представляет собой итератор
генератор - это фабрика итераторов
Аноним 09/01/22 Вск 19:48:57 2260439364
>>2260293
Ну айди берётся, а чо поле-то (или как это называется) переименовывается?
Аноним 09/01/22 Вск 20:13:19 2260474365
>>2260439
У тебя в классе News есть класс Meta. Скорее всего в нём это указано, кинь посмотреть.
Аноним 09/01/22 Вск 20:41:23 2260521366
3333333333.JPG 114Кб, 1116x835
1116x835
Аноним 09/01/22 Вск 20:57:36 2260540367
image.png 21Кб, 884x141
884x141
Аноним 09/01/22 Вск 21:05:59 2260551368
a2oRYXw700b.jpg 89Кб, 500x641
500x641
>>2260540
Спасибо. Я думал, это как-то связано с db_index=True.
Сложно вкатываться...
Аноним 09/01/22 Вск 23:51:00 2260654369
Аноним 09/01/22 Вск 23:55:27 2260657370
>>2260654
Это вроде какой-то нескучный фастапи, тоже на starlette как и фастапи
Аноним 10/01/22 Пнд 00:41:10 2260679371
Малеха закрепился в базовом питоне, думаю, какой взять пет-проект. Щас сидел срал и скроллил двач с телефона, в голову пришла идея взять апи двача и написать консольную обертку - отобразить список тредов, зайти в/загрузить тред, почитать сообщения, написать ответ.
Потом подучу фласк и оберну все в вебморду.

Насколько ебанутая идея?
Аноним 10/01/22 Пнд 01:24:35 2260689372
>>2260679
Твоей работы там на пять копеек.
Аноним 10/01/22 Пнд 01:27:58 2260692373
>>2260689
Скорее всего, анон. Но надо же с чего-то начинать.
Аноним 10/01/22 Пнд 01:37:15 2260694374
>>2260679
>консольную обертку
>написать ответ
Честно хуй знает как ты в консоли с капчей поступишь.
Аноним 10/01/22 Пнд 01:38:29 2260695375
Аноним 10/01/22 Пнд 01:50:19 2260700376
>>2260695
А ты другим не дашь потыкаться? Ну ок. Алсо, вебморда к апи двача, в то время как сам двач ей и является кажется тупиковой идеей для пета. Сделай прост свою борду, и то больше практического толка будет.
Аноним 10/01/22 Пнд 02:01:04 2260702377
>>2260700
Да, это чисто для себя потыкать. Вообще я просто хочу более-менее научиться работать с апи - ничего лучше, кроме двачика в качестве практики не придумал. Просто не знаю, если есть варианты получше - то подскажи. Интересует вот эта отправка запросов туда-сюда, форматирование данных, отображение и т.д. До этого максимум с чем работал - тягал данные из БД.
Аноним 10/01/22 Пнд 02:38:41 2260709378
>>2260702
Ну поработай, всяко лучше чем книжечки дрочить.
Аноним 10/01/22 Пнд 03:17:02 2260718379
1.webm 13530Кб, 1920x960, 00:00:55
1920x960
Аноним 10/01/22 Пнд 03:30:28 2260724380
2.webm 8885Кб, 1920x1080, 00:02:01
1920x1080
Аноним 10/01/22 Пнд 10:23:14 2260799381
>>2260702
>если есть варианты получше - то подскажи
Попробуй апи гитхаба или гитлаба разобрать. Проект там например скачать или дернуть из него любой файл по выбору. Дофига чего можно придумать. И навыки хорошо прокачаешь и в реальных проектах может пригодится.
Аноним 10/01/22 Пнд 10:48:22 2260807382
>>2260709
У меня уже ест работа в айти, я просто учу питон для себя.

>>2260799
Вот это кстати хорошая идея.
Аноним 10/01/22 Пнд 11:26:29 2260839383
>>2260718
>>2260724
Сейчас посмотрел вебмки, выглядит круто, анончик! А каким модулем ты сделал cli?
Аноним 10/01/22 Пнд 11:57:57 2260880384
Аноним 10/01/22 Пнд 12:10:38 2260897385
суп анончики, у меня есть вопрос по aiogram, довольно глупый как и я тащемта, сильно только не бейте . Бот просто в качестве тренировки и опробования знаний, почерпнутых из книжек и интернета по пайтону так что я совсем нуб.
Есть основной скрипт (файл main.py) в котором формируется меню и отлов нажатий на кнопки. И есть отдельный модуль (dialog.py), в котором с помощью конечных автоматов формируется длинный диалог и хранение в памяти ответов пользователя.
Вопрос: как запустить диалог из отдельного модуля?
в интернете что то не очень много материалов по FSM статью mastergroosha читал
Аноним 10/01/22 Пнд 12:19:29 2260907386
>>2260807
>У меня уже ест работа в айти
Какая же? UI-тестировщик? Паяльщик на АО "Залупастройинвест"?
Аноним 10/01/22 Пнд 12:36:20 2260920387
>>2260907
Менеджер продукта.
Аноним 10/01/22 Пнд 15:00:55 2261064388
>>2260897
Вычитал что надо в main прописать функцию регистрации хендлеров из модуля (dialog). Я прописал, но ничего не вышло. ну и бамп вопросу.
Аноним 10/01/22 Пнд 15:20:56 2261080389
16408602398953.jpg 94Кб, 640x640
640x640
Что щас лучше для вкатыша - пердолить датафреймы в пандах или джейсоны в бекенде грузить?
Где зарплаты жирнее?
Так сложилось что мне пока приходилось максимум писать хелловорлд на фастапи - все остальное время писал ДАТА ПАЙПЛАЙНЫ. Даже МЛ трогать не нужно было.
Имеет смысл грести в сторону бека или и так сойдет?
Аноним 10/01/22 Пнд 16:09:40 2261107390
>>2261080
И там и там можно сказать одинаково. Иди куда нравится, градаций особых нет, кроме как на двачах, кто как хитровыебанно устроится столько и будет получать.
Аноним 10/01/22 Пнд 16:31:10 2261131391
>>2261080
>пока приходилось максимум писать хелловорлд на фастапи
>Где зарплаты жирнее?
Вот прям сидят и ждут вкатуна, чтоб ему 200к платить. Тебе не поебать куда вкатываться?
Аноним 10/01/22 Пнд 17:05:51 2261170392
Описал две функции, через schedule задал, когда должна выполняться первая. Как сделать так, чтобы вторая ВСЕГДА выполнялась через какое то время после первой?
Если я задаю через schedule таймер второй функции, то рано или поздно они будут выполняться в один момент
Например, в 3 минуту.
schedule.every(1).minutes.do(ХХХХ)
schedule.every(3).minutes.do(YYYY)
Аноним 10/01/22 Пнд 17:37:40 2261190393
>>2261170
>Как сделать так, чтобы два линейных уравнения не пересеклись на графике
У вас в младшей школе учат программировать, не пройдя базовую алгебру?
Аноним 10/01/22 Пнд 17:49:14 2261206394
>>2261190
Хорошо пошутил. Честно. Мне понравилось. Улыбнуло)
не, у нас в школе не учат програмировать
Аноним 10/01/22 Пнд 17:50:50 2261212395
>>2261206
Если вас в школе не учили программировать, то вас в школе физрук в жопу ебал.
Аноним 10/01/22 Пнд 17:50:51 2261213396
Аноним 10/01/22 Пнд 17:51:55 2261216397
>>2261170
sleep? ну и время слипа нужна выбрать некратное периоду функции
Аноним 10/01/22 Пнд 17:51:58 2261217398
>>2261206
В этой шутке половина решения, если что. Удачи найти его неиронично.
Аноним 10/01/22 Пнд 17:53:29 2261221399
В чем разница между state и status у Celery-тасков? Там константы почти одни и те же
Аноним 10/01/22 Пнд 17:54:34 2261225400
Аноним 10/01/22 Пнд 17:59:47 2261234401
>>2261216>>2261225
>юзать слип (уже говно)
>при живом-то планировщике
...решение преследовало его, но он оказался быстрей.
Аноним 10/01/22 Пнд 18:02:21 2261239402
>>2261234
Почему быстрее? Я еще не наговнокодил, никуда не спешу
Аноним 11/01/22 Втр 00:37:18 2261603403
9RrU88ey4b8.jpg 165Кб, 807x801
807x801
Сап вкатач. Такая ситуация – на днях собешусь не совсем на свою роль. Собес на Django программиста с годом опыта, а я самоучка с незначительным опытом ковыряния python кода в коммерции (написание скриптов чтобы данные в csv с одного формата в другой переводить и всякие веб-скраперы), перекатившийся в джаву.
Со своим текущим опытом оцениваю свои шансы как "реальные", поэтому хотелось бы выбить джоб оффер. Для этого мне нужно лишь закрыть специфичные для python+django пробелы.

Tl;dr: Анон с годом опыта, расскажи о специфичных вещах которые ты узнал или начал делать в рамках своей работы. Какие вопросы на эту вакансию обычно задают? с этим вопросом утром еще в гугл полезу
Аноним 11/01/22 Втр 00:51:17 2261611404
>>2261603
Обычно внутреннее устройство питона. Мультитрединг, ивент луп, гил, конвой эффект, ио операции, лоулевел цпу баунд вычисления, интерпроцесс коммуникация, примитивы синхронизации, разница второго и третьего питона, внутреннее устройство дэфолтных функий, как работает врап и лру кэш из фанктулз, что делают контекст менеджеры, чем отличается генератор от итератора, ограничения гивента и селари, возможные проблемы при использовании орм, оптимизация запросов в бд, как работать с миграциями, протокол хттп, какой хейдер отвечает за оригинальный айпи проксированого реквеста, на какие методы надо ставить цсрф токен, какие типы данных поддерживает джисон схема, какие преимущества и недостатки лонголинга, разница пост и пут, идемпотентные методы, принципы солид, асид, рест, кап тиорема, особенности ноуэскьэль баз, какие бывают алгоритмы распределения нагрузки. Это с большего, что я вспомнил с последних собесов
Аноним 11/01/22 Втр 06:13:42 2261688405
Аноним 11/01/22 Втр 12:23:06 2261851406
>>2261603
От себя тоже добавлю.
Общие:
С какой последней версией питона работал?
Можешь ли вкратце рассказать об изменениях в последних версиях языков?
Откуда узнаешь про новые фичи/обновления языка, сопутствующие технологии и их аналоги?
Что такое гил и зачем он?
Приходилось ли использовать декораторы? Писал ли свои и зачем?
Зачем использовать генераторы и итераторы?
Есть ли в питоне интерфейсы (и для чего они в теории используются?)
Есть ли в питоне перегрузка методов?
Классы и множественное наследование - нужно ли это использовать и почему?
Используешь ли аннотацию типов?

Бек:
Какие основные хттп-методы знаешь? Какие когда используешь?
Что нельзя передавать через гет?
Что используют для защиты от xss?
Как концептуально работает авторизация? Чем она отличается от аутентификации?
Что такое орм и зачем она используется?
Что такое маршрутизатор?
Что такое шаблонизатор?
Что знаешь о паттерне MVC?
Что такое гуникорн?
Знаешь ли что-то про rest/json api/graph ql?
Что такое брокер сообщений?


Мимо-присутствую на технических собеседованиях питонистов
Аноним 11/01/22 Втр 14:45:34 2262007407
>>2261851
3.10
Обо всех - нет, но матч паттерн в стиле раста помню
С телеграмов, с хабра, прочих ресурсов куда захожу
Хуйня из под коня, которая укоренилась и ряд разработчиков тебе даже защищают его. Глобальный лок, который останавливает выполнение потока и переводит процесс на другой. Нужен якобы для упрощения работы в многопоточном режиме.
Конечно. Например декоратор авторизации, декоратор форма, да дохуя каких.
Есть, но не в привычном виде. Например более-менее похожи на интерфейсы zope interface сук, всегда проигрывал с этой зопы. Для того же, для чего интерфейсы вообще нужны, определить сигнатуру метода класса и заставить реализовать метод.
Ну да, это магические методы, например __add__
Вопрос риторический. У множественного наследования есть проблема, например при ромбовидном наследовании могу побоычные эффекты произойти.
Да, но не тотально в каждом методе.

А есть еще и не основные? get - запрос ресурса, post - создание ресурса, put - модифимкация ресурса, delete- удаление, options - проверка на то, какие методы поддерживает апи
То, что не должно быть видно чужим людям: пароль, токен и т.д
csrf токен
Ой, вот тут лень думать. Аутентификация - вроде проверка личности, что ты это ты. Авторизация - получение прав в соответствии с твоей учеткой
"Удобная" вещь для работы с бд, запросами. Только практически всегда проигрывает в работе правильным сырым запросам.
Маршрутизатор - ? Че? Роутинг что-ли?
Шаблонизатор? Пиздец, вот на этот вопрос даже отвечать не хочу. Что за тупые определения спрашиваются?
Ничего
Прослойка между нджинксом и приложением. Сервак, принимающий запрос
Знаю, все, кроме graph ql - нормальный способ построения взаимодействия между беком и фронтом.
Приблуда, занимающаяся передачей сообщений по определенному формату между пользователями брокера.
Аноним 11/01/22 Втр 14:51:32 2262013408
>>2262007
Да в целом неплохо.
Аноним 11/01/22 Втр 14:58:33 2262015409
>>2261611
>внутреннее устройство питона
>гил
>лоулевел цпу баунд вычисления
>интерпроцесс коммуникация
>разница второго и третьего питона

>лру кэш из фанктулз
>лру кэш из фанктулз
>лру кэш из фанктулз

>идемпотентные методы
>принципы солид

Вот это можно смело выбросить. Из разряда "а ты знаешь это? Нет? Так, ясно. Да, это мы так просто спрашиваем, ты с этим у нас вряд ли столкнешься, но на результат собеса повлияет. Даже если и столкнешься, то, а не важно. Следующий вопрос"

На собесе как-то спрашивали о внутренней работе питона. Дошли до того, как реализован список питона на С. Я сказал, что список - константный указатель, а значение - смещение указателя, потом спросил, а нахуя это спрашиваете, мы там свои списки на сях будем писать? Мне сказали нет, но ведь это интереснее чем про json разговаривать.
Аноним 11/01/22 Втр 15:02:10 2262018410
>>2262007
>post - создание ресурса
Анус ставишь?

>чужим людям
Че? Кто этих "чужих" определяет?

>csrf токен
Все что могешь?

>Ой, вот тут лень думать
Ты побазарь мне так на собесе, епт

>Только практически всегда проигрывает в работе правильным сырым запросам
Чем проигрывает? По очками что ли? Или решением судей?

>Че? Роутинг что-ли?
Что спросили, на то и отвечай

>Шаблонизатор? Пиздец, вот на этот вопрос даже отвечать не хочу. Что за тупые определения спрашиваются?
Это мы решаем, епт, что спросить. Самый умный дохера, я смотрю? Деревья на листочке повертеть захотел? Мы там с тебя быстро 3 шкуры спустим

>Ничего
Хоть честно. Тогда встречный вопрос: зачем ты вообще на Джанго пошел? Писал бы себе дальше скрипты для ИП Кабан Кабаныч

>нормальный способ построения взаимодействия между беком и фронтом
Ты эту "нормальность" определяешь?

>Приблуда, занимающаяся передачей сообщений по определенному формату между пользователями брокера.
По русскому что у тебя было? Фиг ли сам же термин в его определении используешь?
Аноним 11/01/22 Втр 15:02:33 2262019411
>>2262015
НА ИНТЕРВЬЮ СПРАШИВАЮТ СОСЁШЬ ЛИ ХУЙ И ДЕЛАЕШЬ ЛИ БОЧКУ
@
ОТВЕЧАЕШЬ ДА
@
ПОСЛЕ ИНТЕРВЬЮ НЕ ЖМУТ РУКУ
Аноним 11/01/22 Втр 15:03:38 2262020412
>>2262018
Закудатал, не прошло и 5 минут.
Аноним 11/01/22 Втр 15:06:39 2262024413
>>2262018
>Деревья на листочке повертеть захотел? Мы там с тебя быстро 3 шкуры спустим
Сразу нахуй послан. А потом пиздуешь дальше работать и перерабатывать дома
Аноним 11/01/22 Втр 15:08:30 2262026414
>>2262024
Нахуй твоя жопа идет
Мы в Яндексе таких сразу в петушиный угол определяем
Аноним 11/01/22 Втр 15:12:43 2262030415
>>2262026
>Мы в Яндексе
Так это и есть петушинный угол, о чем ты?
Аноним 11/01/22 Втр 15:20:37 2262042416
Вот у я наговнокодил какой-то класс. Например класс ОКНО, он имеет методы ЗАКРЫТЬ ОТКРЫТЬ В_ИСХОДНОЕ, работа с обьектом класса всегда должна начинатся с метода В_ИСХОДНОЕ, стоит ли прописать запуск этого метода сразу в __init__?

Аноним 11/01/22 Втр 15:21:59 2262043417
>>2262007
Я бы тебя ещё попытал, но пока выглядишь сильным мидлом. 200к тебе цена. 250 если с доп вопросами справишься. Как сборщик мусора с гилом работает знаешь? Вообще какие проблемы от сборщика мусора появляются? Как ngnx с гуникорном общается? Я как гуникорн с приложением? Зачем он нужен? Почему нельзя без него? Как он обрабатывает входные запросы? Асинхронность на каком уровне добавляется? Сколько опыта? Другие языки знаешь? Коммерческий опыт с ними есть? Медиум с литкода за 10 минут решишь? Напишешь фабрику, которая принимает n и возвращает генератор, который всегда возвращает n самых больших чисел из тех, на которых его вызывали?
Аноним 11/01/22 Втр 15:22:53 2262044418
>>2262042
>В_ИСХОДНОЕ
Подозреваю стейт у него меняет? Ставь этот начальный стейт явным образом в __init__
Аноним 11/01/22 Втр 15:28:56 2262054419
>>2262043
Братан, я просто рандом, который мимо проходил и ответил на вопросы. Я не тот вкатун в джангу, который начал.

Аноним 11/01/22 Втр 15:34:26 2262062420
>>2262054
Знаю. По ответам понятно, что не вкатун. Думал ты хотел потрениться на реальных вопросах с собесов раз начал отвечать. Ну ок.
Аноним 11/01/22 Втр 15:45:41 2262074421
>>2262062
Ну вообще уже допы довольно жесткие.

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

Ну вообще без гуникорна можно, если напрямую cgi использовать через апач какой-нибудь. А если имеется не именно wsgi, в вообще зачем сервак, то он он взаимодействует по протоколу с приложением.

Фабрику могу написать, но не сейчас. Сейчас у меня работа
Аноним 11/01/22 Втр 15:47:25 2262076422
Зачем нужен wheel, почему просто нельзя использовать pip install?
Аноним 11/01/22 Втр 16:11:42 2262095423
>>2262074
>Ну вообще уже допы довольно жесткие.
Это уже сеньёрские темы.

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

По гуникорн тоже не то. Если говоришь, что можно, то уточни явные недостатки. И про асинхронность не сказал. Как раз гуникорн и конторолирует количество воркеров и асинхронные ли они. Без него очень тяжко

В общем крепкий мидл. Не знаю твой опыт, но предлагаю искать оферы от 200к. Если у тебя сейчас меньше, и опыта всего пару лет, то есть смысл разослать резюме.
Аноним 11/01/22 Втр 16:15:55 2262103424
>>2262095
На Джона из Пяндосии реально работать?
(если инглиш С1)
Аноним 11/01/22 Втр 16:20:44 2262106425
>>2262095
>Не понял что ты ответил
Я про то, что выделяя память, после освобождения сборщиком она не возвращается сразу операционке, а остается во владении некоторое время.
Про внутренний подсчет ссылок и то, что цикличесике ссылки подсчет ссылок не умеет удалять, а только сборщик - знал, но что-то не подумал про это.

У меня 3 года на перле и 3 года на питоне. Зп 180, пока не в поиске.
Аноним 11/01/22 Втр 16:27:57 2262110426
>>2262103
На апворке с красивым профилем скорее всего да. Можно попробовать окологалерные биржи типа топтала. Сам не эксперт. Никогда так не работал

>Я про то, что выделяя память, после освобождения сборщиком она не возвращается сразу операционке, а остается во владении некоторое время.
А понял. Тогда стоит уточнить когда это преимущество или недостаток. Сам с ходу могу только придумать, что oomkiller может убить контейнер если пересоздавать большой объект. Старый после удаления не освободил до конца память, новый пытается занять столько же, программа упёрлась в лимиты контейнера и контейнер крашнулся. Не самый частый юзкейс, но как особенность знать полезно.
>Про внутренний подсчет ссылок и то, что цикличесике ссылки подсчет ссылок не умеет удалять, а только сборщик - знал, но что-то не подумал про это.
Это кажется более полезным знанием. Оно всё таки к утечкам приводит. Лучше сразу всё по пунктам выкладывай, а потом про каждый подробнее если время интервью позволяет.

>У меня 3 года на перле и 3 года на питоне. Зп 180, пока не в поиске.
Ты похоже сам знаешь как дальше развиваться. Но если потренишься и повезёт, то на 40-50к апнуть зепку реально.
Аноним 11/01/22 Втр 17:44:19 2262170427
Вообще настройки для проекта обычно хранят в отдельном файле (каком-нибудь .env), но почему бы не храниться настройки в отдельной таблице БД? Так по идее даже удобнее - можно менять настройки не останавливания приложение, просто нужен какой-то механизм который будет их обновлять при записях в базу. Как такое сделать?
Аноним 11/01/22 Втр 17:48:11 2262176428
>>2262170
А где ты настройки доступа к бд с настройками будешь хранить?
Как ты будешь определять, что это среда - стейдж/локально/прод/тест?
Аноним 11/01/22 Втр 19:23:20 2262291429
Подскажите по фласку.
У меня есть модели Users, Perms и UsersPerms. Юзер понятно, Perm - список доступов в разделы, UserPerm - здесь связи отображаются.
Связь такая User <->UserPerm <-> Perm
Поле в юзере такое
user_perm = db.relationship('UsersPerms, backref='user')
Т.е. юзер может в несколько разделов иметь доступ
Как реализовать с помощью FlaskPrincipal, чтоб авторизация была по user_perm?
Аноним 11/01/22 Втр 20:59:26 2262340430
Почему питон такой кайфовый?
Аноним 11/01/22 Втр 21:55:41 2262383431
>>2262340
Потому что он скриптовый и с динамической типизацией
Аноним 11/01/22 Втр 22:21:54 2262400432
16291088719850.png 1180Кб, 728x909
728x909
Знатоки фласка, подскажите, пожалуйста.
Есть проект со структурой:
Project1
|_run.py
|_main.py
|_static
|_template

В main.py указано flask(__name__, static_folder = /root/folder1/Project1/static, template_folder=/root/folder1/Project1/template).
В index.html из template ссылки на static даны в виде:
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>

Но статика при загрузке приложения не подгружается почему-то.
В чем может быть проблема?
Аноним 11/01/22 Втр 22:30:02 2262403433
broad.jpg 961Кб, 1805x2700
1805x2700
Пришел с пхп, поскажите что почитать по классовой системе питона, синтаксис не интересен.
Аноним 11/01/22 Втр 22:54:36 2262422434
>>2262403
Это что такую красоту генерирует? Можно ссыль?
Аноним 11/01/22 Втр 22:56:49 2262424435
Не давайте >>2262422 сурс. Как можно писать код и не уметь в поиск информации
Аноним 11/01/22 Втр 23:12:43 2262436436
>>2262424
Ты чего подорвался?
Аноним 11/01/22 Втр 23:30:41 2262448437
bb02f3dd63f48b7[...].mp4 20198Кб, 576x1024, 00:01:16
576x1024
Аноним 12/01/22 Срд 00:42:45 2262481438
>>2262448
>praktikum
>aleksanderbekin
Вот мы смеялись над ромой-прыгуном, а он взял псевдоним и даже смог поступить на вышку, впечатляет.

Бля, ну неужели на десятом импорте у него не появилось мысли, что он, может быть, что-то неправильно в этой жизни делает
Аноним 12/01/22 Срд 01:00:20 2262486439
>>2262481
ты че пёс он математик датасайентист
Аноним 12/01/22 Срд 03:12:39 2262520440
>>2262481
Чем плох десяток импортов?
Аноним 12/01/22 Срд 03:42:20 2262527441
>>2262520
Да ничем, напридумывают себе модульность какую-то, переиспользование кода, это делить его на функции, классы, хуйню, малафью. Просто заебенить цельный скрипт на 6к строк, где падает - заткнуть try-exceptами, да с elif-ами четверной вложенности, чтоб обои от стен отклеивались, ух бля.
Аноним 12/01/22 Срд 10:12:17 2262597442
пытаюсь записать звук через pyAudio, ошибка
[Errno -9999] Unanticipated host error
ОС: Windows 10, доступ к микрофону разрешён, но в списке приложение питона нет
Аноним 12/01/22 Срд 15:28:14 2262896443
Как в алхимии сделать, чтоб модель не из бд бралась, а из json? Для тестов надо, а делать отдельную бд под тест не хочется.
Аноним 12/01/22 Срд 18:10:17 2263237444
Как в джанге делать асинхронные методы
Аноним 12/01/22 Срд 18:15:19 2263244445
sync_to_async
Аноним 12/01/22 Срд 19:09:44 2263318446
НА https://pikabu.ru/story/kospley_ot_enji_night_7344561/author, мне не жалко.
Так а че почитать про классы в питоне ДОКУМЕНТАЦИЮ ЛЕНИВОЕ ГОВНО, и посоветуйте что либо для веб в питоне, подкасты, книги, каналы
Аноним 12/01/22 Срд 20:02:55 2263381447
>>2248924 (OP)
Есть тут кто хорошо шарит в Celery?
После падения одной из задач в группе, мы завершаем ( .revoke(terminate=True) ) остальные таски, чтобы они не жрали лишние ресурсы хоста, однако некоторые из этих тасков завершать принудительно нельзя (даже если они зафейлились они все равно должны отработать до конца и записать в базу определенный результат). Как нам это все осуществить? Массово завершить задачи не проблема через обработчик ошибок, но как нам защитить определенные таски от revok-а?
Аноним 12/01/22 Срд 20:15:33 2263402448
>>2263381
запилить таски которые ревокать низя в отдельную группу?
Аноним 12/01/22 Срд 22:13:18 2263477449
Снимок экрана о[...].png 329Кб, 520x573
520x573
Начал фласк ковырять, там какие то uSWGI, точки сборки и всякая такая жесть. Где можно почитать что это такое? Потому как я читаю отдельные доки и оно вообще в кучу не собираеться и нет понятия как это работает.
Аноним 12/01/22 Срд 22:48:40 2263505450
>>2263477
делоешь папочку на проект
вне этой папочки уровнем выше должен быть файл типа для создания объекта фласк (run.py, server.py или как хочешь назови) и импорта всего с этой папочки
его и запускаешь без задней мысли (python server.py) или с задней мыслью со всякими там uwsgi, gunicorn и что там только нет, но это обычно для продакшна уже
Аноним 13/01/22 Чтв 09:57:43 2263690451
Почему в питоне нет let стейтмента как в лиспе? Что-то похожее в пропосолах с 2010ого года лежит. Но это фигня мне каждый день нужна. Вот например вчера. Есть класс. В нём проперти. Функция с декоратором проперти, которая каждый раз лезет к базе с спрашивает от туда значение. И пишу код, который должен только 1 раз это знаечение получить, а не при каждом обращении к проперти лесть в базу. Делал так

x = self.x
y = self.f(x) if x else None
result = self.g(x, y)
x_new = self.x
if x_new:
____raise XXX
return result

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

with self.x as x:
____y = x if x else self.f(x)
____result = self.g(x, y)
with self.x as x:
____if x:
________raise XXX
return result

Стало получше. Но теперь я не могу пользоваться этим проперти за пределом контекста и пришлось писать отдельный метод, который просто лукап делает
with self.x as x:
____return x

Получилось костыльно. А ведь хочется просто чтобы был оператор let, который как with as работал, но не с контекст менеджерами. Чтобы можно было 1 раз вызвать функцию, а потом с результатом работать не засоряя область видимости ненужными локальными переменными. Разве я много прошу?
Аноним 13/01/22 Чтв 12:25:21 2263807452
>>2263690
lru_cache, если сам не можешь осилить
Аноним 13/01/22 Чтв 12:27:44 2263811453
>>2263807
Во первых лру кэш на проперти это константа т.к. он не принимает аргументов. А во вторых. Не подходит он там. Значение может меняться и я должен явно указывать когда ожиданию изменения значения.
Аноним 13/01/22 Чтв 12:37:46 2263820454
tenor.png 141Кб, 360x346
360x346
>>2263690
Ты бы ещё нормальных лямбд попросил
Аноним 13/01/22 Чтв 12:45:45 2263829455
>>2263820
Я кстати в этом коде пытался тот эксепшен из лямбды бросать передавая его как аргумент в функции клинапа в одну из функций и вызывать внутри эту лямбду по кондишену. Как же тяжело без сахара. Неужели так сложно его принять?
Аноним 13/01/22 Чтв 12:47:50 2263833456
Запускаю python manage.py migrate в Джанго-проекте, он мне начинает серить ошибками на настройки - в settings.py настройки подтягиваются из .env-файла, но блять почему-то при команде migrate этого не происходит, какого хуя?
Аноним 13/01/22 Чтв 12:53:26 2263839457
>>2263833
Ставлю анус что проект из докера запускается
Аноним 13/01/22 Чтв 16:24:08 2264111458
Как на джанге решаются подобные ситуации: идёт специальный реквест, на сервере должен запуститься длительный внешний процесс, скажем, обработка шебм в ffmpegе.
Так вот, что нужно, чтобы моё джанго-приложение знало когда этот процесс завершится, а ещё лучше, чтоб могло видеть прогресс выполнения?

Я думал над таким вариантом: сделать асинхронный метод в приложении и каждые 5 сек смотреть прогресс из редиса, куда с другой стороны будет записывать этот прогресс другой сервис.
Есть ли что-то лучше? Слышал про селери, оно тут подойдёт?
Аноним 13/01/22 Чтв 16:29:49 2264115459
>>2264111
Да. Селари то что надо. Пост запрос должен возвращать код 202 и айди ревеста, джанго запускает селари таску и запоминает в базе соотвествие айди реквеста и таски. Потом клиент сам должен опрашивать эндпоинт с гет запросом и айди реквеста. На него повесь секундный тротлинг с возвратом 404 и проверку завершения селари таски. Когда завершиться возвращай 200 и результат. Асинхроность тут не нужна если у тебя всё остальное синхронное
Аноним 13/01/22 Чтв 16:30:51 2264116460
>>2264111
Кстати для опроса можешь лонгполинг использовать
Аноним 13/01/22 Чтв 16:31:08 2264117461
>>2264111
celery
Мы с Сбере им обмазались. Ощущения - атас. Малолетние дебилы конечно же будут писать про async, но детям невдомек, что существует ясная разница между IO и CPU
Аноним 13/01/22 Чтв 16:32:39 2264119462
>>2264116
Это для лошков каких-то. Мы с пацанами просто долбимся каждые 2 секунды на серв и все нах. Ты типо дохуя особенный, я гляжу?
Аноним 13/01/22 Чтв 16:32:50 2264120463
>>2264117
А селери разве не вместе с асинхронностью работает?

>>2264115
>>2264116
Найс, спасибо, буду разбираться
Аноним 13/01/22 Чтв 16:39:44 2264125464
>>2264120
Нет. Это отдельный процесс. Он 100 параллельный и менеджится ос. Так что даже гил на него не влияет.

Посоветуйте лучше что почитать чтобы разбираться в селари. На офсайте только доки и полтора гайда. Хочется знать подводные камни и бест практис.
Аноним 13/01/22 Чтв 16:41:06 2264127465
>>2264125
)))
Берешь любой проект с селери и изучаешь
Мякота начинается когда ты таски в пайплайны организуешь и ошибки пытаешься отлавливать
Аноним 13/01/22 Чтв 16:48:26 2264136466
>>2264127
Это недостаточно. Без коментов авторов не понять где они ловят проблему, как дэбажат, на какие трейдовы пошли. Я ишьсы и ченджлоги пытался читать на офф гите, но они там устаревают быстро, малоинформативны и не структурированы
Аноним 13/01/22 Чтв 23:56:03 2264546467
>>2255918
Работаю за 200к. До этого 1г питона был и хуева туча лет прогерства скриптования на всяком говне еще со средней школы.
Так что думаю довольно легко вкатиться, раз берут такое говно как я.
Аноним 14/01/22 Птн 04:01:37 2264612468
Есть вопрос с celery и yandex queue.
При отправке задачи через delay() он выполняет таск, а иногда не выполняет. При этом на сервере самого брокера никаких ошибок нет. Судя по логам он вообще не вызывает обработчик. Иногда вызывает, а иногда нет. На одних и тех же запросах.

С чем это может быть связано?
Аноним 14/01/22 Птн 15:11:41 2264852469
Как в vscodium отключить дополнение скобок и кавычек?
Аноним 14/01/22 Птн 20:33:57 2265077470
>>2248924 (OP)
Может ли мне кто-нибудь помочь с изучением вопроса и как правильно задать вопрос гуглу? Стоит задача: есть два файла, один-пустой белый квадрат в формате .bmp, другой-rar архив. Нужно: заменить байты .bmp, начиная с 55 (0x36) на байты .rar архива полностью.
Аноним 14/01/22 Птн 21:24:29 2265130471
Аноним 14/01/22 Птн 22:51:54 2265200472
Пытаюсь запустить Flask and Nginx
Настроил все по этой инструкции https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04-ru
Nginx сработал один раз и вывел то что нужно.
Но потом я пытался изменить в файле myproject.py
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
return "<h1 style='color:blue'>Nginx can you hear me?</h1>"

if __name__ == "__main__":
app.run(host='0.0.0.0')
Изменил текст который должна выводить функция hello() и ngixn выводит только старое сообщение.
Я не могу понять, flask нужно какой то командой запускать?
Аноним 14/01/22 Птн 23:43:31 2265239473
>>2265200
У тебя uwsgi сервит его, это уже готовый сетап. Можешь перезапустить через systemctl restart.
Для разработки достаточно запускать через python myproject.py и перезапускать при изменениях.
Аноним 15/01/22 Суб 00:10:25 2265259474
>>2265239
Это получается если делаешь изменения, то прийдеться службу перезапускать? Не сильно удобно. Я понял если пишешь, запускаешь на девелоперском сервере и все.
Аноним 15/01/22 Суб 00:14:10 2265262475
>>2265259
Я же говорю - это готовый сетап для прода.
Для разработки сервер не нужен вообще, у фласка есть свой встроенный, чего достаточно.
Аноним 15/01/22 Суб 00:57:15 2265296476
Аноним 15/01/22 Суб 01:39:12 2265317477
Запускать джангу в прод через python manage.py нормально или не очень? Я слабо разбираюсь в докере, но мне кажется что это немного странно.
Аноним 15/01/22 Суб 01:42:30 2265320478
>>2265317
И да, стартует он командой прямо в докерфайле, сервится через nginx. Без докер-композ или чего-то такого.
Просто думаю может самому разобраться пока наша команда херню не сотворила
Аноним 15/01/22 Суб 01:44:52 2265321479
Аноним 15/01/22 Суб 01:46:06 2265322480
>>2265321
В самом джанге который? Хорошо, а как быть с celery workers который запускается отдельно от джанги.
Аноним 15/01/22 Суб 02:02:51 2265326481
>>2265322
Либо как сервис и обмазываешься ансибал ставля всё без докера прямо на вм. Или делай образы и рядом через композ. Но композ херня для этого. Системд лучше докеровского демона умеет фейлы хендлить и настраивается гибче. Вместо композа можно докерсвормом обмазаться, но это извращение. Есть ещё экзотика типа ансибал для докера. У нас это колла-ансибал. Там и имэджи и плэйбуки одинаково джинджей кастомизируются и всё вместе легко через пайплайн билдитися и деплоится. Но для вашего случая это возможно оверкил.
Аноним 15/01/22 Суб 02:08:00 2265329482
>>2265326
Кстати у докера перфоманси сети падает если не хостовой неймспейс использовать. Поэтому если всётаки хочешь докер, то придётся без сетевого неймспейса делать и всякие костыли из-за этого городить. Ещё если лень с ансиблам разьираться, то ожно вручную на имедже всё настроить в запущенрй вмке, снять снапшот и использовать его как диплой имэдж продккта каждыф раз толтко один конфиг подбрасывая. Но это цде вариант не для пайплайна. Решение для бедных
Аноним 15/01/22 Суб 02:10:49 2265330483
Пишу небольшое по на питоне как одну из подзадач конкурсного проекта в данном этапе. Раньше никогда на лицензии используемых библиотек внимание не обращал, но сейчас возникла неуверенность в возможности использования некоторых либ. В частности, многие библиотеки подразумевают, например, что твой продукт использующий эти библиотеки будет иметь ту же лицензию, что и сама библиотека или что он тоже будет открытым. Очевидно, что мое по будет закрытым. Заказчик - одна из крупнейших компаний в рф. Могут ли они доебаться за лицензии библиотек?
рак мозга, не умею формулировать вопросы
Аноним 15/01/22 Суб 02:11:55 2265332484
>>2265329
Я вообще не хочу докер, который они ставят по одному на каждый вм. Ладно, буду думать.
Аноним 15/01/22 Суб 05:09:53 2265350485
>>2264612
В общем, там с fifo очередью какая-то ебанина происходит. Чем меньше таймаут видимости, тем быстрее выполняются задачи. При этом таск куда-то пропадает нахуй отовсюду, но он как бы есть, да. Таск выполнился? Жди пока таймаут полностью пройдёт и только потом вытаскивай следующий. А может и не жди.
Ебанина кака-то. Либо я тупой, либо лыжи не едут.
Аноним 15/01/22 Суб 09:37:09 2265381486
Нуфаг итт.
При выводе текста типа ('Тест', var1,'.')
То получается, что в выводе имеется пробел (который мне не нужен) между строкой и переменной и выглядит это 'Текст 5 .', а не "Тест5.".
А при использовании знака "плюс" вместо запятой выдает ошибку.

Как это фиксить? Указывать тип переменной строку, чтоб она не считалась числом по дефолду, чтоб нормально работал вывод с плюсом?
Аноним 15/01/22 Суб 09:52:53 2265392487
>>2265381
Ну да, а как ты иначе сделаешь? Питон строг к типам.
Аноним 15/01/22 Суб 09:58:25 2265401488
>>2265381
sep='' или через ф-строки.
Аноним 15/01/22 Суб 10:01:07 2265403489
>>2265381
То, как ты формулируешь задачу - долбоебизм костыли, чтобы заставить функцию принт работать так, как она не должна работать.
То, что ты на самом деле хочешь сделать, называется форматирование строки. Дальше в гугл.
Аноним 15/01/22 Суб 10:10:07 2265411490
>>2265392
>>2265401
>>2265403
Спасибо за ответы.

Нашел решение, можно через {0} .format() делать, тогда вся моя пунктуация сохранится такой, какой я ее в строке указал и переменные подставятся, какие я укажу в функции.
Аноним 15/01/22 Суб 10:23:32 2265420491
>>2265411
ф-строки лучше. Но я просто в str() оборачиваю, ф-строки для задротов, плюсы для работяг.
Аноним 15/01/22 Суб 11:29:33 2265472492
Подскажите пожалуйста либу для сбора инфы о сайте, какой там цмс что вообще стоит. Иногда увидишь сайт и хочется узнать на чем и как он сделан.
Аноним 15/01/22 Суб 12:06:51 2265491493
Аноним 15/01/22 Суб 12:36:09 2265509494
Сап, аноны. Не могу реализовать функции hit_time и hit_distance, разное перепробовал, проверки не проходят. Может кто-то помочь советом? Не отправлять на какие-то ресурсы учиться, а пояснить, где я ошибся

https://pastebin.com/u0A5jUz2
Аноним 15/01/22 Суб 15:37:51 2265691495
Аноним 15/01/22 Суб 21:37:19 2266034496
В асинкопитоне есть приоритизация задач эвент лупа из коробки? Или хотя бы либа, которая упрощает это. Есть группа тасок одна из которых должна выполняться только когда остальные ждут/завершены. Пока сделал костыль через PriorityQueue, но он мне не нравится.
Аноним 15/01/22 Суб 23:50:22 2266239497
Ну так что, никто не работал с fifo очередями? Сколько воркеров надо и тд

И ещё, можно ли динамически создавать очереди в celery? Допустим, для каждого залогиненого пользователя делать свою очередь.
Аноним 15/01/22 Суб 23:51:48 2266240498
Аноним 16/01/22 Вск 00:03:35 2266255499
>>2266239
Для чего спрашиваю. На сервер призодит куча сообщений от различных прльзователей. Эти сообщения отправляются через post на другой ресурс.
Допустим, первое сообщение создаёт запись на другом ресурсе, последующие - добавляют данные к нему. Если первое сообщение пришло одновременно со вторым, то обрабатываются они одновременно, соответственно, создаются две записи, чего быть не должно.
Потому возникла необходимость создания очередей, для их последовательной обработки. С другой стороны, это сильно уменьшит пропускную способность сервера.

Как быть в таком случае? У кого-нибудь был опыт решения подобных задач? Неуж-то никак нельзя обойтись без снижения производительности?
Аноним 16/01/22 Вск 00:04:57 2266258500
анончики, можете с простой задачей помочь?
нихуя не могу сообразить

Есть код, который переводит аудиофайл в матрицу:
mono_sound_to_cut = mono_sound[:1990000]

def get_parts(sound, size_to_cut=1000):
number_of_parts = int(len(sound)/size_to_cut)
return sound[:number_of_parts*size_to_cut
].reshape(number_of_parts, size_to_cut)

parts_size = 1000
mono_sound_matrix = get_parts(mono_sound_to_cut, size_to_cut = parts_size)


хочу написать функцию по переводу матрицы, которая получилась, обратно в аудио
Аноним 16/01/22 Вск 00:10:35 2266268501
>>2266255
И ещё, насколько будет хорошей идеей использовать в качестве брокера собственную бд? Везде пишут что это не очень, при большом количестве запросов бд будет перегружена и тд. Но тем не менее.
Аноним 16/01/22 Вск 02:11:07 2266372502
Аноним 16/01/22 Вск 06:47:20 2266424503
Есть класс А, и класс Б. Ещё есть класс С(А,Б). Как сделать так чтоб при создании С, создавались и экземпляры А и Б? Например, А создаётся через функцию get_a(). Чтоб в методах класса С можно было обращаться к данным А через self.
Аноним 16/01/22 Вск 06:48:55 2266425504
>>2266424
Класс А создаётся только через get_a()
Аноним 16/01/22 Вск 07:24:57 2266432505
Сап, студент на связи, поясните дебилу, пожалуйста, насколько сложно/легко сделать хрень ( нейросетью стыдно называть), которая будет определять пол лица по чёткой фотографии?
Что вообще можно сделать интересного на Питоне к курсовой?
Аноним 16/01/22 Вск 08:53:25 2266453506
>>2266432
Не выебывайся и делай УПРАВЛЕНИЕ СКЛАДОМ на фласке/жанге
Аноним 16/01/22 Вск 10:19:01 2266473507
Аноним 16/01/22 Вск 13:28:15 2266644508
Django не загружает media файлы (картинки) из БД.
Я уже все понастраивал, перешерстил гугл.
В чем может быть проблема?
Аноним 16/01/22 Вск 14:13:01 2266683509
>>2266644
В подходе. Храни картинку в виде байтов в переменной
Аноним 16/01/22 Вск 14:37:54 2266720510
>>2266683
в целом я понял твой замысел, но как это реализовать?
Аноним 16/01/22 Вск 14:42:23 2266727511
>>2266720
а я думаю это стеб

мимопроходил
Аноним 16/01/22 Вск 14:51:27 2266735512
>>2266727
да я понял Pillow, но
так то эти файлы должны и без того из базы данных грузиться
Аноним 16/01/22 Вск 15:04:26 2266750513
>>2266720
Читай картинку по частям, по 1024 байт, например. В бд сделай array и appendай туда всё. Можешь пробовать сделать через conqurence, чтоб быстрей.
Собрать примерно так же, по частям.
Аноним 16/01/22 Вск 15:21:54 2266765514
Аноним 16/01/22 Вск 16:31:48 2266835515
image.png 267Кб, 868x911
868x911
Я переписал пост, так как из-за обилия звездочек и жирного шрифта текст утратил смысл.

Доброго времени. Нуфаг итт в треде.
На счет параметров функций вопрос у меня.

Правильно ли я понимаю, что в параметр-кортеж звездочки не ставлю, иначе текст станет жирным и хер поймешь, что сказать хотел падают одиночные значения после объявленных переменных (если есть), а уже в параметр-словарь падают данные вида ключ:значение?

И получается, что сперва выводятся объявленные переменные (то есть, a=10) и ей подобные, затем кортеж, включая строки, а не только числа, а уже потом словарь, с данными в виде ключ:значение?

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

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

Или я вообще нихуя не понял?
Аноним 16/01/22 Вск 16:55:15 2266857516
>>2266835
Неправильно думаешь
def func(a, b, c, args, kwargs):
...

params_dict = {a:1, b:2, c:3}
params_list = [1, 2, 3]

func(
params_dict)
func (
params_array)

и переменные заполняются сразу.

Почитай что значат args, kwargs, в частности что делают и *


Аноним 16/01/22 Вск 16:56:50 2266863517
>>2266857
func(<двезвездочки>params_dict)
func(<одна звёздочка>params_list)
Аноним 16/01/22 Вск 17:08:27 2266877518
>>2266857
Спасибо.
Прочту про args, kwargs.
Аноним 16/01/22 Вск 19:12:37 2266997519
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов