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


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
515 49 133

Питон тред №92 /python/ Аноним 25/06/20 Чтв 02:55:17 17332221
Python-programm[...].jpg (198Кб, 1024x683)
1024x683
baby-python.jpg (116Кб, 1086x815)
1086x815
languages-1.png (176Кб, 1600x999)
1600x999
Тред, посвящённый языку программирования Питон, #92

Предыдущий: >>1720203 (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
Аноним 25/06/20 Чтв 03:44:29 17332452
Аноны, я прочиталуже не в первый раз что try...except серьёзно затормаживает код, и в рекомендациях советуют конструкцию в обще не использовать в крупных проектах.

Как тогда? Через if\else ловить исключения?
Аноним 25/06/20 Чтв 03:52:29 17332473
>>1733245
Это не про питон скорее всего. И вообще сомнительная рекомендация - не пользоваться исключениями для возврата из вложенных функций.

Дурной стиль бросать и ловить исключения внутри одной функции, и дурной стиль использовать исключения для кодирования штатного поведения.
Аноним 25/06/20 Чтв 03:53:53 17332484
>>1733247
>Дурной стиль бросать и ловить исключения внутри одной функции
Почему? Бывают же случаи, когда это нужно, например для всяких HTTP реквестов.
Аноним 25/06/20 Чтв 05:17:07 17332595
Как быть с ленью? Дрючу питон в рабочее время на телефоне, пишу куски кода которые мне нужны для основной программы дома, но придя домой мне становится лень переписывать то, что я до этого уже сделал. Как это фиксить?
Аноним 25/06/20 Чтв 05:24:58 17332636
image.png (14Кб, 138x44)
138x44
все что нужно знать о питонодебилах
Аноним 25/06/20 Чтв 05:26:57 17332657
>>1733259
Не пиши на телефоне, долбаёб
Аноним 25/06/20 Чтв 05:33:25 17332678
>>1733265
Но это интересно и заставляет писать все слова вручную, а не пользоваться автоподстановкой, сам долбоеб
Аноним 25/06/20 Чтв 05:40:38 17332699
Аноним 25/06/20 Чтв 05:51:44 173327010
>>1733269
А в чем разница? В тетрадке я не проверю правильно ли я делаю или нет.
Аноним 25/06/20 Чтв 05:55:54 173327111
>>1733270
Ну. Ты же просил мотивации, чтобы приходя домой хотелось переписывать. Вот и будешь переписывать, чтобы проверять.
Аноним 25/06/20 Чтв 06:13:29 173327312
Нихуя не понимаю, вот написал я себе простенькую програмку, дальше че? Хочу закинуть на рабочий комп где нет пайтона, как быть? Она же там без ide и самого пацтона хуй запустится?
Аноним 25/06/20 Чтв 06:37:09 173327513
>>1733273
Если помолиться заведомо, то с Божьей Благодатью запустится.
25/06/20 Чтв 06:41:17 173327614
>>1733275
Любишь ебаться под хвост псина? Харкаю тебе в еблет
Аноним 25/06/20 Чтв 07:10:17 173327815
15923110003560.png (16Кб, 1050x1050)
1050x1050
Аноним 25/06/20 Чтв 07:26:28 173328116
>>1733248
пример такого случая
Аноним 25/06/20 Чтв 08:51:30 173329617
Сап двоч, вкатываюсь в Python, решаю задачи эйлера. нашёл на просторах это решение 3-ей задачи http://euler.jakumo.org/problems/view/3.html
https://pastebin.com/DiiGRMSm

Объясните пж, как это работает, я вообще не втыкаю. Первые две решил за 5 минут каждую.

Сильно не бейте, первый раз зашёл на борду, треда с вопросами не нашёл
Аноним 25/06/20 Чтв 08:52:10 173329718
Screenshot20200[...].jpg (136Кб, 1060x689)
1060x689
В доках Джанги пишут что "джанго самостоятельно не работает с файлами". Лол что? У меня на локальной машине небольшой проект где некоторое количество png и svg иконок из папки /static периодически рендерятся в темплейтах. Через runserver все работало, когда я задеплою в сеть нужны будут дополнительные свистоперделки что ли?
Аноним 25/06/20 Чтв 08:58:34 173330219
>>1733273
> Дальше что?
Учить чистый Си, хули.
Аноним 25/06/20 Чтв 09:13:35 173330620
>>1733302
Не ну реально нет решения? Гугел советует в ехе завернуть, не думаю что без ошибок получится.
Аноним 25/06/20 Чтв 09:19:52 173331521
Screenshot from[...].png (30Кб, 584x312)
584x312
>>1733296
Минута работы в консоли. Без оптимизаций. Секунда вычислений максимум.
Аноним 25/06/20 Чтв 09:21:35 173331722
>>1733306
Можно поставить питон. Можно смотреть на pyinstaller. Можно посмотреть на nuitka.

Аноним 25/06/20 Чтв 09:25:54 173332023
>>1733296
А что в решении непонятного? Ты тупо раскладываешь на множители самым простым способом, перебором по всем потенциальным делителям подряд.

Аноним 25/06/20 Чтв 09:45:17 173333024
>>1733281
Я не он.
Отправляю запрос (доставка должна быть обязательно), ловлю Timeout на ответ от сервера, запрос уходит в очередь для следующей попытки доставки. Перед этим 3 попытки на доставку. В чем проблема?
Или например ошибка SSL, ошибка логируется для разбора.
Или API отвечает ошибкой отличной от 200 для указания того, что запрос по той или иной причине не был отработан.

При 200 в ответе JSON, при 400 надо просить response.text.
Ну и по поводу замедления это херня. Уж лучше отловить Exception, отработать его, а не смотреть как колом встаёт. Все приложение.
Аноним 25/06/20 Чтв 09:48:11 173333125
>>1733273
Pyinstaller собирает exe c интерпретатором внутри.
Аноним 25/06/20 Чтв 10:12:10 173333626
>>1733297
Да. Деплоить ты же не через рансервер будешь
Аноним 25/06/20 Чтв 10:15:38 173333827
>>1733330
Вот о чём. Дурной стиль внутри функции сначала порождать исключение, а потом его же внутри этой же функции ловить.

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

При этом ловить исключение в функции, а наружу кидать уже новое, своё, как раз нормально.

Заменять исключения на какой-нибудь "return err" конечно не нужно. В питоне исключения поддержаны хорошо. Это не ускорит код.

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

Питон же интерпретируемый и не про байтоёбство.
Аноним 25/06/20 Чтв 10:21:05 173334128
>>1733297
Да. runserver не предназначен для продакшена вообще. Ни для статики, ни для много чего ещё.

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

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

Смотри на nginx. Но его недостаточно, ещё uwsgi нужен, например.
Аноним 25/06/20 Чтв 10:48:01 173335929
>>1733336
>>1733341
Не, я не про это. Я в курсе что придется ставить скорее всего nginx + gunicorn/uwsgi, что значит "django doesnt serve files"? Мои изображения с диска не будут подгружаться или что?
Аноним 25/06/20 Чтв 10:59:57 173336530
>>1733222 (OP)
Написал несколько утилит на питоне для работы с байтами.
Что дальше чтобы подрасти?
data science далеко для меня, веб и ml я уже рассматривал.
Аноним 25/06/20 Чтв 11:23:44 173338431
>>1733359
Не будут, тебе придется прописать url для статики, а в nginx'е прописать раздачу статики по этому адресу. Тот же момент с медиа-файлами, только ты их еще и загружать на отдельный сервер должен
Аноним 25/06/20 Чтв 11:30:04 173339032
Верно ли я понимаю, что перегрузка методов в Python достигается значением по умолчанию?
Аноним 25/06/20 Чтв 11:32:01 173339533
>>1733384
При желании можно и джанго заставить статику отдавать в uwsgi-режиме, там есть специальные модули для этого, но только не нужно совсем.

nginx сделает это лучше, быстрее, надёжнее и на самом деле через nginx даже проще.
Аноним 25/06/20 Чтв 11:36:44 173339934
>>1733390
В питоне нет перегрузки методов в том смысле, в котором есть в C++ и некоторых других таких языках.

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

В C++, когда ты обращаешься к функциям foo(int x), foo(double x) и foo(int x, int y) компилятор подставит вызов разных функций, которые внутри специально закодированы (mangling). В питоне в любом случае будет вызов одной функции по имени foo.

Аноним 25/06/20 Чтв 12:05:55 173345435
>>1733365
ничего. миллионы джунов-байтоебов бесполезны в отрыве от задач бизнеса.
Аноним 25/06/20 Чтв 13:43:06 173354036
Сап двач. Вопрос по джанго. Значит у меня есть обычный юзер, и он состоит в команде(или во многих командах), команда это модель. Мне надо сделать чтобы данные для юзера фильтровались в зависимости от которого команды он зашел. Например вы есть в команде А, и вы загрузили документ_1 и документ_2, а также вы есть в команде Б и загрузили документ_3 и документ_4. И получается мне надо добавить в форму логина поле, где бы юзер указывал например код команды. И когда бы он в форме логина вводил код команды А ему бы отображались только документ_1 и 2 и аналогично и для другого юзера который тоже состоит в этой команде. Я понял мне это надо сделать через саб-домены и мидлвейр, но я хз как, и как такое гуглить. Да и сделать это без создания отдельных баз данных.
Аноним 25/06/20 Чтв 13:48:24 173354537
>>1733540
> И когда бы он в форме логина вводил код команды А ему бы отображались только документ_1 и 2 и аналогично и для другого юзера который тоже состоит в этой команде.
В чем проблема отобразить не все документы пользователя, а только те, код комманды которых он ввел?
Аноним 25/06/20 Чтв 13:54:15 173355138
>>1733384
А зачем медиа-файлы на отдельный серв подгружать?
Аноним 25/06/20 Чтв 14:02:46 173356439
>>1733545
Да, только как это обработать. Типа добавить в модель юзера поле под код команды. И когда он логинится, то в это поле вводится значение кода, а когда логаут то это поле очистится?
Аноним 25/06/20 Чтв 14:23:50 173357940
>>1733564
Но у тебя ведь документ - это тоже какая-то модель?

Среди её ключей должен просто быть как пользователь-владелец, так и команда.

Примерно как файлы в юникс-системах, у них есть владелец и группа.

Аналогично и у логин-сессии есть свойство группы-команды. И ты отображаешь только документы, доступные для этой команды.
Аноним 25/06/20 Чтв 14:28:38 173358441
Лол, в консоли написал from queu import Queue, затнм создал очередь: q = Queue(), написал q.get() и поток выполнения ожидаемо заблокировался (очередь-то пустая), пришлось прерывать исполнение через ctr+C. Только вот после этого интерпретатор вообще отказывается выполнять любые команды даже foo = 10. Поток выполнения блокируется и все, надо через ctr+C также его прерывать, чтобы это прекратить надо новый экземпляр интерпретатора открывать
Это баг или фича?
Аноним 25/06/20 Чтв 15:24:58 173362742
icon.jpg (29Кб, 150x150)
150x150
есть ли таблица сравнения python web frameworks?
Аноним 25/06/20 Чтв 15:28:02 173362943
Аноним 25/06/20 Чтв 15:28:55 173363144
Аноним 25/06/20 Чтв 15:30:06 173363345
Каким редактором или IDE пользуетесь для Python? Я вот всё никак не могу выбрать, хочется чего-то легковесного и без телеметрии. Остановился на Sublime Text, но она как бы стоит 70$, не совсем свободный продукт. А зная Microsoft и как они телеметрию в Win 10 встраивают, то VS Code наверное её пропитан повсюду.
Аноним 25/06/20 Чтв 15:30:48 173363446
>>1733584
get(block=False)
get(timeout=1)
get_nowait()
сделать то, что хочешь?
Аноним 25/06/20 Чтв 15:40:19 173364147
>>1733633
Нахуя пользоваться чем-то кроме Пучарма?
Аноним 25/06/20 Чтв 15:42:29 173364448
>>1733551
Потому что захламлять сервер файлами, загружаемыми пользователями - хуевая идея, они должны храниться в отдельном от сервера хранилище и выдаваться оттуда же. Если пойти дальше до какого-нибудь докера - он тебя нахуй просто пошлет, когда ты будешь грузить файлы в контейнер.
Аноним 25/06/20 Чтв 15:45:54 173364749
>>1733641
пайчарм он с закрытыми исходниками. никогда не знаешь что там внутри.
Аноним 25/06/20 Чтв 15:58:26 173365350
>>1733540
Я бы добавил юзеру поле "active_team", устанавливал в нем нужное значение(при логине или когда тебя удобно) и по нему фильтровал. Там и кнопку "сменить команду" приделать не долго.
Аноним 25/06/20 Чтв 16:04:30 173365851
>>1733647
И что? Ты думаешь ты кому-то нахуй нужен, что за тобой следить будут?
Аноним 25/06/20 Чтв 16:29:10 173367452
>>1733633
ну тогда komodo ide . у этих додиков тупо ресурсов не хватит за тобой следить, а редактор с серьезной историей.
Аноним 25/06/20 Чтв 16:31:21 173367653
>>1733633
Ты можешь без анальных зондов и мокрописек с торрента ломануть лицензию сублим текста через хэш редактор, а можешь неограниченное долго пользоваться триал версией, максимальный срок её пользования нигде не оговорен.
Аноним 25/06/20 Чтв 17:12:12 173371954
Аноны, имею к вам вопрос. У жабы (мелкомягких, циско и т.д.) есть такая штука: экзаменация в оракле. Пара сертификатов дает тебе возможность найти работу по всему миру. Есть нечто подобное у питона?
Аноним 25/06/20 Чтв 17:15:30 173372155
>>1733719
>Пара сертификатов дает тебе возможность найти работу по всему миру
найс маняфантаззи
Аноним 25/06/20 Чтв 17:23:37 173373156

>найс маняфантаззи

Возможность - это не означает, что каждый обрыган, который имеет два серта, устроится стопудово. А в оракле и прожженный мидл охуеет от подъебок 808 экзамена, так что не каждый василий способен сдать
Аноним 25/06/20 Чтв 18:12:50 173377857
>>1733644
А к css и js файлам это как относится?
Аноним 25/06/20 Чтв 18:18:47 173379158
>>1733634
Уже сделал. Просто интересно, почему терминал повис. Вероятнее всего потому что хоть я и прервал операцию через KeyboardInterrupt, она все равно продолжила выполняться фоном и блокировать main thread?
Аноним 25/06/20 Чтв 18:58:30 173383959
>>1733778
CSS и JS ты просто раздаешь как статиу, они у тебя изначально просто файлами лежат
Аноним 25/06/20 Чтв 19:35:59 173387360
>>1733633
>Каким редактором или IDE пользуетесь для Python?
PyCharm. Если параноик, то можешь заблокировать ему доступ к интернету.
Аноним 25/06/20 Чтв 20:12:14 173391161
Всем привет, не могу понять как работает этот код
def tester(start):
state = start
def nested(label):
print(label, state)
return nested
F = tester(0)
F('spam')

state - это ключевое слово что-ли? Найти не смог
Аноним 25/06/20 Чтв 20:13:04 173391262
изображение.png (14Кб, 544x214)
544x214
>>1733911
Сорри, вот так лучше. Выводит spam 0
Аноним 25/06/20 Чтв 20:45:37 173393163
>>1733911
>state - это ключевое слово что-ли?
Нет, обычная переменная. Возможно тебе стоит почитать про замыкания.
Аноним 25/06/20 Чтв 21:27:41 173398864
прошло 2 года как по хиккански вкатываюсь.
единственное что заметно - начал обрастать программами \скриптами которыми сам регулярно пользуюсь.
база\органайзер\просмотрщик\аплоадеры на диски и тп, всякие игровые кликеры утилиты, перевожу кнопки на понадобившихся китайских прогах питончиком и тп.
приучился дрочить в терминале на винде, с ффмпегом и шлюхами.
потихоньку буду мамкин ноут ломать через смб на её пиратке.
но что дальше?
Аноним 25/06/20 Чтв 21:29:06 173399165
>>1733931
Почитал, но не совсем понял, так откуда берется значение label?
Аноним 25/06/20 Чтв 21:45:23 173399966
>>1733991
F = tester(0) -> возвращает тебе функцию nested, которая принимает первым и единственным параметром строку. Этот параметр и есть label. Вот упрощенный вариант происходящего https://ideone.com/3XDKJc
Аноним 25/06/20 Чтв 22:04:06 173400367
>>1733999
Понял, большое спасибо!
Аноним 25/06/20 Чтв 23:11:29 173403268
>>1733042 →
Потестировал на своей лагучей убунте, в итоге % ошибок с дедлоком вырос до 80, правда БД запустил в докере мб из-за этого. Но в общем добавлю try catch для дедлоков с повторным запросом к базе, в гайде Mysql по дедлокам они так даже советуют делать
Аноним 25/06/20 Чтв 23:24:37 173404069
Аноним 25/06/20 Чтв 23:55:10 173406470
>>1734040
>vim
Пердольская некропараша из 70х. Нужная только чтоб повыпендриваться "мама смотри я кулхацкер"
Аноним 26/06/20 Птн 00:15:39 173407471
>>1734064
Ути мой толстенький.
Аноним 26/06/20 Птн 00:40:06 173408272
>>1734074
Кроме выпендрежа его просто незачем использовать, морально устарел. Есть полнофункциональные VS Code и Атом
Аноним 26/06/20 Птн 00:47:45 173408573
>>1733454
я учу основы основ, даже могу выдумать простенький процессор и написать для него симулятор, а ты просто не шаришь.
Аноним 26/06/20 Птн 00:49:47 173408674
>>1734082
>Есть полнофункциональные VS Code и Атом
Для быстрого редактирования отдельных файлов лучше использовать легкий Sublime, а для всего остального есть IDE.
Аноним 26/06/20 Птн 01:01:00 173409675
>>1734082
Начнем с того, что в отличие от перечисленных редакторов, вим работает по ssh, а значит, покрывает потребности девопсов. А кроме ssh он отлично пролезает через последовательный терминал, например, покрывая потребности разработчиков встраиваемых систем.

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

Вим, конечно, не золотая пуля, но это такая штука, что если ты прошил себе в подкорке один раз все команды, то вряд ли тебе понадобится что-то еще. Не стоит делать громких заявлений, мой юный джуниор.
Аноним 26/06/20 Птн 01:10:07 173410276
ssh-readme.gif (6200Кб, 1686x1080)
1686x1080
>>1734096
>отличие от перечисленных редакторов, вим работает по ssh
Аноним 26/06/20 Птн 01:10:53 173410477
>>1734096
>Плагинами отлично догоняется функциональность до плюс-минус полноценной IDE
Нет. Подсветку синтаксиса и дебаггинг напердолить можно, но огромного количества возможностей IDE в виме нет и никогда не будет. Если нужны исключительно хоткеи вима, то проще потратить пять минут и добавить их в IDE.
Аноним 26/06/20 Птн 01:21:28 173411378
>>1734102
О, надо же, уже сообразили. Впрочем, выглядит как костыль. Насколько это ресурсоемко для серверной стороны?

>>1734104
Именно поэтому я написал "плюс-минус". Если сравнивать с каким-нибудь Qt Creator`ом, то понятно, что многих визуальных вещей там не будет. С другой стороны, все зависит от области твоей деятельности. Я, скажем, работаю по бекендам и встраиваемым системам. Мне никогда не нужно было ничего от современных IDE.
Аноним 26/06/20 Птн 02:02:12 173412379
>>1734113
VS Code вроде можно и в браузере запускать, но я пока не пробовал.

А почему для сервера это должно быть ресурсоёмко? Фактически ты просто пользуешься сетевой файловой системой, а редактор работает на клиенте, тогда как вим ты запускаешь именно на сервере.
Аноним 26/06/20 Птн 02:04:51 173412680
>>1734096
>в любом контейнере и в любом окружении, потому что вим скорее всего будет доступен там или по дефолту,
Вот нет, и это тоже некоторая проблема. В большинстве контейнеров ВИМа не, его надо ставить дополнительно.

Я сам больше вимом пользуюсь, но это скорее в минус, чем в плюс.

Уметь пользоваться, конечно, очень полезно.
Аноним 26/06/20 Птн 02:11:10 173413081
>>1733721
>найс маняфантаззи
Анон преувеличивает, но реально эти сертификаты действительно котируются. Циско точно, Оракл и от что-то от МС более-менее тоже.

Потому что они действительно гарантируют, что за тобой какие-то знания есть, в отличии от строчек в резюме.

По языкам программирования и открытым платформам, как Линукс, Постгрес, Докер и др. вроде ничего общепризнанного нет.

Собственно и не понятно что такое знать питон. Для какой-нибудь Джанги ещё можно было бы сертификацию придумать, но чисто для питона лишено смысла.
Аноним 26/06/20 Птн 02:57:28 173415582
>>1733222 (OP)
class Test:
var = 1
var_list = [var for _ in range(10)]
почему сыпется?
Аноним 26/06/20 Птн 03:04:45 173415883
посоны, что по кишочкам пистона почитать, кроме исходников, шоб про менеджмент памяти, про интринсики, про вот это вот всё
Аноним 26/06/20 Птн 03:07:21 173415984
image.png (11Кб, 367x261)
367x261
Аноним 26/06/20 Птн 03:09:44 173416085
>>1734159
это в классе должно быть
Аноним 26/06/20 Птн 03:16:00 173416186
image.png (22Кб, 540x397)
540x397
Аноним 26/06/20 Птн 03:22:22 173416287
Аноним 26/06/20 Птн 03:31:18 173416388
>>1734162
друх, твой лист компрехеншн не знает, что у класса тест есть проп var. поэтому у тебя падает.
Аноним 26/06/20 Птн 03:35:21 173416489
>>1734163
А почему он не знает?
друой анон
Аноним 26/06/20 Птн 03:38:16 173416590
>>1734164
патамуш, что лист коптрехеншон сосет переменные из ближайшего скоупа
Аноним 26/06/20 Птн 03:39:20 173416691
Аноним 26/06/20 Птн 03:39:54 173416792
Аноним 26/06/20 Птн 03:41:31 173416893
>>1734165
а пропы класса ты подсасываешь в метод через селф. те можно через селф подсосать проп в скоуп метода и там уже мутить лист компрехеншон
Аноним 26/06/20 Птн 03:45:37 173417094
>>1734167
потому что это не лист компрехеншон

Аноним 26/06/20 Птн 03:47:47 173417195
>>1734170
Спасибо анончик, вкурил
Аноним 26/06/20 Птн 03:52:23 173417296
>>1734165
Попахивает какой-то магической херней. А в данном случае, какой скоуп ближайший? Глобал?
Аноним 26/06/20 Птн 04:00:21 173417397
>>1734172
ну видимо лист компрехеншон не знает как сосать из скоупа класса(хуй знает это как называется). типа в данном случае лист компрехеншон это функция в которую не передают селф.
Аноним 26/06/20 Птн 04:03:12 173417498
image.png (18Кб, 589x418)
589x418
>>1734172
походу да. ближайший скоуп - это глобал
Аноним 26/06/20 Птн 04:11:58 173417599
>>1734174
Причем игнорируется вложенность классов. А говорят, что в Руби много магии...
Аноним 26/06/20 Птн 05:01:47 1734192100
>>1733271
Это все хуйня для даунов. Если программировать в телефоне, то ослепнешь и станешь овощем за неделю.
Если он хочет буковки сам вводить, без подсказок, то пусть в редакторе код пишет.
Аноним 26/06/20 Птн 06:40:26 1734213101
>>1733222 (OP)
Сап. Не смог нагуглить решение.

Написал небольшой скрипт, который из папки загрузок сортирует файлы по дате и расширению. Скрипт работает без проблем. Когда закинул его в автозагрузку, вспомнил, что он будет открывать консоль при запуске(и видимо переставать работать, если консоль закрыть). Узнал, что для предотвращения открытия cmd нужно запускать в расширении .pyw.

Но скрипт перестаёт работать, если поменять его расширение .py -> .pyw

ЧЯДНТ?
Аноним 26/06/20 Птн 06:44:00 1734214102
>>1734213
Алсо платформа вин10, для py файлов установлен python.exe, для pyw файлов pythonw.exe

То есть оба должны запускаться даблкликом. Первым точно запускается и работает, а pyw работу не выполняет.
Аноним 26/06/20 Птн 07:43:46 1734229103
>>1734213
>>1734214
Хоть я и решил это сейчас конвертацией в Windows based .exe, всё равно остаётся непонятным, почему скрипт перестаёт работать при смене расширения и запуске через pythonw.exe

Можно запустить .pyw через python.exe, но тогда консоль открывается так же, как при запуске .py
Аноним 26/06/20 Птн 08:01:33 1734234104
Анонче, стоит ли браться за kivy, или есть чего попизже? Где то слышал, что кто то жалуется на него, почему? И да, плохо, что рисовалки форм нет у него, но может допилят со временем, хз.
Аноним 26/06/20 Птн 08:14:58 1734243105
>>1734234
все эти ебаные деды прошедшие беспощадную школу андроида просто завидуют.

тут смотря в чем твои цели.
Если ты хочешь найти работу - не берись.
Если у тебе нужно писать простые приложения с минимум взаимодействием с платформенными фичами телефона, типовые приложения CRUD современной эпохи - берись.
Аноним 26/06/20 Птн 08:17:59 1734246106
>>1734234
Алсо, вместо рисовалки форм можешь пошукать программу KViewer.
И даже, кажется, в стандартной демке можно просто набирать KV и смотреть как он отрисовывается.
Аноним 26/06/20 Птн 08:21:24 1734249107
>>1734243
А за что стоит браться, если хочешь найти работу?
Аноним 26/06/20 Птн 08:27:11 1734252108
>>1734249
За Котлин, конечно. Но это займет годы и ты все еще не сможешь писать быстро
Аноним 26/06/20 Птн 08:35:13 1734255109
Аноним 26/06/20 Птн 08:51:52 1734265110
>>1733259
О, анон, ты - это я, только я дрочу питон на работе в нормальном мониторе, вместо работы
Аноним 26/06/20 Птн 09:00:27 1734275111
>>1734243
>>1734246
Всем спасибо за ответы. Просто иногда хочется какой-нибудь гуец знать, что бы не дрочить консольку, как Нео. Да и тестовые задания на собесы присылали такие, что надо в гуе с кнопочками пилить.
Но что бы этот гуй не вымер со временем и не пришлось опять какой то новый учить. Чисто один раз какой то один инструмент познать и всё, понимаете? Просто, что бы, если понадобилось, то всегда смог и это набросать, не обязательно суперсвистопердельный
Аноним 26/06/20 Птн 09:07:12 1734280112
4.jpg (106Кб, 980x612)
980x612
>>1734275
> тестовые задания на собесы присылали такие, что надо в гуе с кнопочками пилить.

Тогда QT, guizero.

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

Помню, чуть не охуел от прожигателя linux на флешку. Там НЕТ КВАДРАТНОГО ОКНА.
Как это можно было придумать? Кто этот инопланетянен?
Аноним 26/06/20 Птн 09:15:11 1734285113
Есть такая интересная концепция: most advanced yet acceptable
http://actually.pro/0248.html

>«Лоуи полагал, что эстетическая привлекательность - это, по сути, баланс между двумя переменными: привычностью и уникальностью или, говоря на языке современной психологии, типичностью и оригинальностью; найти оптимальный баланс между этими двумя переменными значит создать наиболее коммерчески привлекательный дизайн.

В сущности, это означает, что делать десктоп на kivy нельзя, но мобильные приложения можно и нужно. И делать мобильные поделухи на QT, Delpi и пр неадаптированных для мобилы фреймворках тоже не стоит. Получится не принимаемая юзером какаха.
Аноним 26/06/20 Птн 09:28:06 1734292114
architecture-ssh.png (43Кб, 968x314)
968x314
>>1734123
Так я об этом и спрашиваю. У них на сайте написано, что они сами хуярят некий vs code server прямо на машину: https://code.visualstudio.com/docs/remote/ssh

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

>>1734126
Если контейнеры собирал не джун с хлебушком в голове, то будут. Я с некоторых пор по дефолту во все контейнеры начал хуярить вим, нет-тулзы, стрейс и еще пару вещей по мелочи, и остальным говорю так же делать. Места занимает немного, а с учетом того, что у контейнера после деплоя может на быть доступа к репам, неплохо так спасает.
Аноним 26/06/20 Птн 09:36:33 1734304115
image.png (21Кб, 592x366)
592x366
image.png (33Кб, 491x412)
491x412
image.png (478Кб, 474x355)
474x355
Посоны помогите жабамрази вкатиться в пистон. Почему так работает, а так не работает?
Аноним 26/06/20 Птн 09:38:41 1734305116
>>1734280
Я тоже помню такой исо врайтер. Стильно, модно, молодежно. Прямиком из 2000 года. Спасибо за QT, guizero. Покурю.
Аноним 26/06/20 Птн 09:50:10 1734309117
>>1734304
Почитай документацию, блять. List comprehension
[x for x in list(l)]
Аноним 26/06/20 Птн 09:55:41 1734310118
>>1734304
Потому что блядь пиздуй читать любой мануал, а не просто хуярь как в жабе
Аноним 26/06/20 Птн 09:59:06 1734311119
Сап гайс, хочу врулить в питон. Нашёл в интернете пару книжек.
A Byte of Python норм? 150 страниц это совсем база для школьников хакеров? Или начинать и Лутца и его 1600 страниц? До этого имел опыт быдлокодинга на PHP в 16 лет, ООП не изучал, знаю примитив.
Аноним 26/06/20 Птн 10:05:41 1734312120
>>1734311
Тебе проблемно официальную документацию почитать? В Пистоне ООП прям ваще для дебилов.
Аноним 26/06/20 Птн 10:08:08 1734314121
>>1734311
>A Byte of Python
Нормас, если перекатываешься с чего то другого

мимо быдложабист

Пиздец конечно, в питоне дохуя чего по-другому. Массив - это значится по ихнему кортеж, фор используют в основном только как форич, нихуя не понятно, что за тип данных, ибо не подписано нихуя при объялении, но интересно
Аноним 26/06/20 Птн 10:08:52 1734315122
>>1734309
>>1734310
Посоны, не обессутьте плс. Можете тыкнуть где конкретно читать про эту хуйню?
Аноним 26/06/20 Птн 10:14:08 1734319123
>>1734315
Попробуй набрать прям в коде
help(list)
Аноним 26/06/20 Птн 11:09:10 1734344124
>>1734314
нахуя перекатываться с жабы на питон?
Аноним 26/06/20 Птн 11:13:51 1734347125
>>1734344
Чтобы быть Создателем и получать удовольствие.
Если ты просто кодер за деньги, то не поймешь.
Аноним 26/06/20 Птн 11:21:59 1734350126
>>1734311
Для вката, чем тоньше книжка тем лучше.

Byte of Python - норм.

Есть ещё "Автоматизация рутинных задач.." Свейгарта, там Питон даётся попроще ("для школьников"), зато много практичных примеров.
Аноним 26/06/20 Птн 11:44:39 1734363127
>>1734229
Запускай чрез pythonw.exe .
Аноним 26/06/20 Птн 11:48:02 1734364128
>>1734229
Может? автозапуск из неправильной домашней папки виноват.
Попробуй в начале скрипта добавить:

import os
os.chdir(os.path.dirname(__file__))
Аноним 26/06/20 Птн 12:43:48 1734399129
>>1734347
ебашу за кашу на питоне, наоборот хочу перекатиться жаба->спринг->котлин
Аноним 26/06/20 Птн 12:49:33 1734404130
>>1734399
забудь про котлин, если собираешься в серёзной галере работать
Аноним 26/06/20 Птн 12:49:58 1734405131
>>1734404
если это не андрюха, конеш
Аноним 26/06/20 Птн 13:36:14 1734435132
>>1734404
знакомые на котлине ебашат бекенды, вроде конторы нормальные
Аноним 26/06/20 Птн 13:59:51 1734451133
Сап. Вопрос больше по стилю.
Раньше где то читал( или мне кажется) что assert в продакшен коде не есть хорошо. Что лучше проверть через try и тд.
Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть?
Аноним 26/06/20 Птн 14:02:30 1734456134
Други, кто сталкивался: ебашу пересылку данных через ajax, все работает за исключением того что имя переменной почему-то меняется
Кратко о сути: я отсылаю на бэк json data с одним элементом posts:
data: {posts: [1,15,34]}
Внутри posts собственно лежит массив с нужными мне id. Только вот на бэке эта переменная почему-то доступна не по имени "posts" а как "posts[]". Че это за хня? Почему джанго добавил эти сраные скобки в конце имени? Ппц с толку сбивает
Аноним 26/06/20 Птн 14:04:58 1734460135
>>1734456
>data: {posts: [1,15,34]}
Где кавычки, если это json, мб из-за этого как раз и неправильно воспринимает
Аноним 26/06/20 Птн 14:25:06 1734481136
>>1734460
Неа, бро, это жс. Тут кавычки вроде бы нужны, а вроде и нет. То же самое и с точками с запятой: вроде нужны, а вроде и нихрена, попробуй в каждой 2й строчке в рандомном васяноскрипте их убрать, с вероятностью в 80% скрипт запустится
Аноним 26/06/20 Птн 14:28:06 1734486137
>>1734456
Похоже, что ты отправляешь не жсон. Посмотри запрос в девтулс.
[] обозначаются множественные параметры в хтмл формах.
Аноним 26/06/20 Птн 15:07:12 1734522138
>>1734344
Я заебался задрачивать джаву. Можно отдохнуть на питонехотя бы на лето? Прочитал зэ байт оф кодэ за пару дней, потыкал в клаву почти наугад, хуяк - запустилось и работает без говна. Написал пип инсталл pyodbc, просто первый попавшийся пример скопипастил - о чудо блять, вот оно, то, что я запрашивал из базы, работает сразу, карл, да я в жизни с жабой такого не видовал, что бы без запердоливания сразу работало всё! И главное - пиздец моментально всё ясно, как и чё куда работает.
Аноним 26/06/20 Птн 15:12:46 1734525139
>>1734522
Если нет анальных танцев, значит плохой язык, не энтерпрайз.
Аноним 26/06/20 Птн 16:36:09 1734605140
Получил в джанго набор постов через posts = Post.objects.filter(id__in=ids)
ids это список нужных айдишников, если что
Как так же эффективно проверить что каждый полученный элемент из posts - принадлежит кому надо, то есть проверить условие post.owner == request.user ?.. только через цикл for?
Аноним 26/06/20 Птн 16:46:02 1734616141
>>1734605
all(map(lambda x: x owner == request.user, posts)) это пока все, что у меня на уме, нет возможности сделать это на низком уровне (на уровне бд)?
Аноним 26/06/20 Птн 17:01:02 1734626142
Почему не работает?
>>>html.unescape('&qt;')
'&qt;'
Аноним 26/06/20 Птн 17:16:57 1734637143
>>1734626
А что такое qt? Есть gt.
Аноним 26/06/20 Птн 17:19:31 1734638144
>>1734637
Пиздец я обосрался, сори
Аноним 26/06/20 Птн 17:44:55 1734662145
>>1734605
>Как так же эффективно проверить что каждый полученный элемент из posts - принадлежит кому надо, то есть проверить условие post.owner == request.user ?.. только через цикл for?
Нахуя тебе еще раз итерироваться по выборке, если ты можешь просто отфильтровать сразу по владельцу еще?
Аноним 26/06/20 Птн 18:34:15 1734702146
>>1734363
Так запускал. Один и тот же скрипт, будучи сохранён как .py и запущен посредством python.exe работает, а будучи сохранён как .pyw и запущен посредством pythonw.exe- НЕ работает.

>>1734364
Проблема вообще не с автозапуском. Она возникает при обычном вызове через даблклик вне зависимости от директории.
Аноним 26/06/20 Птн 18:41:41 1734706147
Вопрос больше по архитектуре.

Допустим, я делаю онлайн-игру. Соответственно, мне нужно хранить параметры пользователей. Как сделать это самым правильным образом?

Как я рассуждал:
- при регистрации создаётся объект класса player, в таблице реляционной добавляется запись с идшником этого игрока.
Отсюда ещё вопросы:
- как возвращать пользователю параметры актуальными всегда? При любом действии игрока делать запрос к бд? Звучит не очень производительно.
Аноним 26/06/20 Птн 20:34:25 1734788148
>>1734706
На сервере держать всё в структурах с перидоическим сбрасыванием в базу.
Можешь пользоваться редисом, он ебово быстр. Вообще, большинство любых проблем решается редисом. Базарю, ещё захочешь.
Аноним 26/06/20 Птн 20:49:04 1734798149
>>1734788
Спасибо. Долго в нем разбираться?
Аноним 26/06/20 Птн 20:55:11 1734801150
>>1734798
Да за вечерок можно разобраться для практических задач.
Аноним 26/06/20 Птн 21:01:43 1734803151
>>1734788
>Вообще, большинство любых проблем решается редисом.
Пока не закончится память или он разок не ебнется и ты проебешь важные данные
Аноним 26/06/20 Птн 21:02:26 1734804152
>>1734706
Ты ммо там мутишь, что ли? В базу только бэкапишь данные раз в n минут.
>>1734788
Разве редис для чего-то, кроме кеширования используют?
Аноним 26/06/20 Птн 21:02:58 1734805153
>>1734803
Энтерпрайз бигдатовик в треде, все в мускл.
Аноним 26/06/20 Птн 21:04:26 1734808154
>>1734804
Для кеширования используют, как элементарно навешиваемый вариант, как раньше был мемкешед, но он элементарно навешивается и на другие задачи.
Аноним 26/06/20 Птн 21:15:00 1734813155
>>1734805
Ты хотел сказать в постгре.
Аноним 26/06/20 Птн 21:17:01 1734814156
>>1734805
При чем здесь это, если при малейших проблемах с сервером из-за которых ебнется редис ты рискуешь проебать часть данных? Как хранилище какое-то промежуточное хранилище - отлично подходит, но не как полноценная БД
Аноним 26/06/20 Птн 21:19:12 1734818157
>>1734814
Там есть опциональная персистентность.
Аноним 26/06/20 Птн 21:23:18 1734821158
>>1734818
Которая или порежет тебе скорость, или все еще останется шанс, что между дампами базы что-то ебнет и ты проебешь данные
Аноним 26/06/20 Птн 21:26:00 1734825159
>>1734821
Везде может ебнуть в неподходящий момент, и везде это решается при необходимости железной надежности.
Аноним 26/06/20 Птн 21:27:29 1734826160
>>1734825
Принеси примеры использования редиса как БД.
Аноним 26/06/20 Птн 21:31:27 1734829161
>>1734826
Тебе надо, ты и неси.
Аноним 26/06/20 Птн 21:36:36 1734830162
>>1734829
Ты спизданул, ты и неси.
Аноним 26/06/20 Птн 21:45:18 1734834163
>>1734830
По-моему, это ты спизданул и приписал мне.
Аноним 26/06/20 Птн 22:25:06 1734861164
>>1734706
InMemory table для того кто присоединился к серверу.

Только выбери SQL подходящий, точно не MySQL.
Касательно Redis годная идея.
Игрок присоединился - сливаешь все в redis из SQL, а данные в SQL повременно сохраняешь в бэкграунде.
Аноним 26/06/20 Птн 22:28:58 1734866165
>>1734456
> эта переменная почему-то доступна
Потому что нехуй дергать Джангу. Посмотри на FastAPI и Pydantic. Там хоть понятно какой объект получишь из JSON.
Аноним 26/06/20 Птн 22:35:02 1734869166
>>1734804
>Ты ммо там мутишь, что ли?
И да, и нет. Но это так, пет-проект, в свободное время занимаюсь. Из-за отсутствия опыта и специфики проекта сталкиваюсь с тем, что вопросы почти не гуглятся, а основные проблемы возникают именно с построением архитектуры
Аноним 27/06/20 Суб 00:21:12 1734940167
image.png (1Кб, 123x36)
123x36
Это больше к верстальщикам наверно но все же касается Джанги и ее темплейтов
У меня картинка практически слитно идет с последующими текстом, на пикриле видно. Как "отодвинуть" текст немного вправо? В html конструкция вроде этой:

<div class="my-shitty-class">
<img src="/images/1.png">
<p> {{post.title}} </p>
</div>
Аноним 27/06/20 Суб 00:40:00 1734953168
https://ideone.com/9WX9Yw
От нечего делать наваял мини-игру: надо на время угадывать числа, а машина говорит, больше или меньше число надо назвать. Игра идет параллельно с секундомером, который выводит в stderr текущий обратный отсчет. Проблема в том, что в консоли stdin и stderr перекликаются, отчего происходят ошибки. С чего бы это?..

(код надо скопировать и у себя запустить, в браузере работать в любом случае не будет)
Аноним 27/06/20 Суб 00:46:08 1734955169
>>1734953
https://ideone.com/t6RDmV
Вот рабочая версия. Там через очередь получаем это число и в stderr не выводится время, так что крашиться нечему, но все же: почему выводы "перемешиваются" в предыдущей версии?
Аноним 27/06/20 Суб 01:10:23 1734969170
>>1734955
Потому что стандартно stdout и stderr выводятся в терминал.
Можно перенаправить python script.py 2> error.txt
Аноним 27/06/20 Суб 01:33:28 1734978171
>>1733222 (OP)
Как же я ебал ваш Postgres, сука... идите нахер, все кто заверяет, что это лучшая СУБД
Пытаюсь провести обычную миграцию: создал модель Pic и засунул на нее ForeignKey в уже существующую модель Relation. Каков результат? ОШИБКА: столбец news_relation.img_id не существует
Триггерится он именно на поле img = models.ForeignKey(to='Pic', on_delete=models.CASCADE) которое я создал внутри Relation, видите ли какого-то img_id ему не хватает. Пробовал ставить дефолтное значение - ему похеру. И такое уже блять не в первый раз. Просто ну его нахуй
Аноним 27/06/20 Суб 01:40:58 1734981172
>>1734978
Попробую угадать, создал модель Пик и добавил ключ одновременно без миграций между ними?
Аноним 27/06/20 Суб 07:22:07 1735027173
>>1734869
Дучше наверни фундаменталочки и сделай борду.
Гейдев хуйня непредсказуемая и неприбыльная.
Аноним 27/06/20 Суб 07:27:27 1735030174
>>1734940
Добавить пробелов в строку
margin-left: 5px;
Аноним 27/06/20 Суб 08:47:50 1735050175
Screenshot20200[...].png (79Кб, 741x738)
741x738
Есть знатоки? Вкатывают в асинхронность, в материале подается через сокеты, и уменя именно к ним вопрос:
строки 27, 29
Допустим, кто кто установил с нами соединение и послал сообщение
Мы ответили ему хелоуворлдом
Но елды не обращаем внимания, будто нет
Мы вернулись в начало цикла - но клиент ничего нам не присылает
Мы ничего же не получаем, полему соединение не закрывается?
Аноним 27/06/20 Суб 09:36:59 1735057176
>>1735050
>Мы ничего же не получаем, полему соединение не закрывается?
А почему соединение должно закрыться, если ты его не закрываешь?

Соединение закрывается только в том случае, если был послан специальный tcp-пакет "закрыть соединение".

Отдельная магия есть с пакетами keep alieve и другими.

И ещё, не стоит особо ударяться в селекты в 2020, если ты только именно эту тему изучить не хочешь. Это такой откровенный low-level legacy, сейчас на практике так писать нельзя.

Тебе надо смотреть на asyncio. Глубоко в кишках там те же селекты плюс-минус, но тебе об этом знать не надо.

А asyncio три механизма работы есть, и какой-то аналог селектов, и так называемые протоколы, и совсем высокоуровниевые конструкции. Я бы советовал "протоколы" глянуть в первую очередь, вот для таких задач, как у тебя. Селекты-сокеты уже для самообразования, а не для практики, в том числе в asyncio.
Аноним 27/06/20 Суб 09:40:05 1735059177
>>1735057
>Тебе надо смотреть на asyncio
Да, к этому и иду, просто через генераторы к async\await а там и asyncio/aiohttp
>А почему соединение должно закрыться, если ты его не закрываешь?
Логично.Получается, 27 строка заблочит поток выполения, и будет ждать, пока что то не придет? Зачем тогда вообще проверка if not request?
Аноним 27/06/20 Суб 09:42:06 1735060178
>>1735059
Точнее, видимо, туда придет false если клиекнт пошлет пакет на закрытие?
Аноним 27/06/20 Суб 10:56:23 1735077179
Сап программач, кто может написать код под задачу

В комнате, в которой заседал президентский совет, были стулья на 4 ножках и табуретки на 3 ножках. Когда все члены совета расселись, свободных мест не осталось, а всего ног у сидящих и у сидений оказалось 39. Сколько было стульев и сколько табуреток?

С меня как обычно
Аноним 27/06/20 Суб 10:59:33 1735080180
>>1734981
Пробовал и так и сяк. Все равно херня выходила. Почему? (а хуй его знает)
Помогла ручная правка файлов миграций, пришлось создать там поле явно, а в следующей миграции его изменить
Аноним 27/06/20 Суб 11:02:33 1735082181
>>1735077
Напиши алгоритм решения, а я напишу тебе код.
Аноним 27/06/20 Суб 11:06:12 1735084182
>>1735082
Вот уравнение сделал:

Пусть в комнате было x стульев и y табуреток.
Составил уравнение для количества ног и ножек.
2 (x + y) + 4x + 3y = 39.
Раскрой скобки и приведи подобные.
2x + 2y + 4x + 3y = 39.
6x + 5y = 39.
Вырази x через y.
x = (39 - 5y) : 6.
Путём подстановки вместо y натуральных чисел, начиная с единицы, подбери такое значение, чтобы x тоже оказалось натуральным целым числом.
x = (39 – 5
1) : 6 – не подходит.
x = (39 – 5 2) : 6 – не подходит.
x = (39 – 5
3) : 6 = 24 : 6 = 4.
Выполни проверку
2 (3 + 4) + 4 4 + 3 * 3 = 14 + 16 + 9 = 39.
Ответ: в комнате было 3 табуретки и 4 стула.

На питоне если можно. Заранее благодарю.
Аноним 27/06/20 Суб 11:07:19 1735086183
Аноним 27/06/20 Суб 11:10:01 1735088184
m = list(permutations([i for i in range(1,39+1)], 2))
m.extend([(i,i) for i in range(1,39+1)])
for x,y in m:
... (а догадайся блять)
Аноним 27/06/20 Суб 11:29:27 1735092185
>>1735084
Вообще проще. По условию, все стулья и табуреты заняты. Если предполагать, что у всех сидящих по две ноги, то ноги+ножки это либо 5, либо 6.

Итого, уравнение вида 5x+6y=39

Пишу слёту, не проверяю, могу налажать:
for x in range(39//5):
____if (39 - 5*y) % 6 == 0:
________print("Possible solution x = {}, y = {}".format(x, y))

Аноним 27/06/20 Суб 11:30:47 1735094186
>>1735092
>if (39 - 5y) % 6 == 0:
fix, тут 5
x
ну и y перед выводом тоже надо посчитать
Аноним 27/06/20 Суб 11:35:53 1735097187
Аноним 27/06/20 Суб 11:36:32 1735098188
>>1735097
Только пофикси там, чтобы не
> == 39
а
> == legQTY
Аноним 27/06/20 Суб 13:11:13 1735138189
вот тут редис советует в онлайн игру, ну сервер - клиенты понятно.
А если я на локальной машине пилю, и у меня поделенные сектора мировой карты обрабатывают отдельные процессы, что лучше использовать для таких целей? Для взаимодействия и хранения карты с общим доступом? Queue или лучше какой апи отдельно? Я тут klepto нашел, и там есть hdf5 словарь-файл. Стоит ли сразу на хдф5 переводить карту мира, или в итоге передача данных через Queue будет быстрее?
Аноним 27/06/20 Суб 14:41:31 1735195190
>>1735097
>функциональщина
> цикл for
Ну ты чего, анон, перегрелся на солнышке?
Аноним 27/06/20 Суб 15:29:37 1735225191
>>1734451
> Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть?
Вангую, что у них нет код ревью либо же там сидят говножоры которые пишут на 20 языках, ни одного не зная толком, и хуярят как хотят.

У меня вот вторая ситуация была, когда у нас появился новый разраб, который знает ГО/ПХП/С++/Реакт/Юнити/Питон, и какой же сука адок он писал.
Аноним 27/06/20 Суб 15:37:54 1735231192
Сап аноны, кто может перевести с паскаля на питон?

var
a, b, sum, n: longint;
begin
readln(n);

a := n mod 10; // последняя цифра
n := n div 10;
while n > 0 do begin
b := n mod 10;
n := n div 10;
end;

writeln(a+b);
readln;
end.

С меня как обычно с питоном вообще не знаком
Аноним 27/06/20 Суб 15:39:16 1735232193
>>1734451
>Раньше где то читал( или мне кажется) что assert в продакшен коде не есть хорошо. Что лучше проверть через try и тд.
>Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть?
Нормально. Не слушай талмутистов. Для них всё говно, что не соответствует трактовкам каких-то других талмутистов-самоучек.

>>1735225
>там сидят говножоры которые пишут на 20 языках, ни одного не зная толком, и хуярят как хотят.
Например assert очень активно используют в основных библиотеках самого питона. Их пишут и ревьювят те, кто считается, что питон более-менее знает.

Аноним 27/06/20 Суб 15:43:46 1735234194
>>1735231
Для этого надо знать твой грёбаный паскаль. Если ты питон-3 используешь, то:

a := n mod 10
соответствует a = n % 10
n := n div 10
соответствует n = n // 10
цикл while примерно такой же в питоне, см доки

readln будет input()
writeln будет print()
Аноним 27/06/20 Суб 15:46:04 1735235195
>>1735234
От души, щас попробую
Аноним 27/06/20 Суб 15:47:21 1735237196
>>1735231
n = input()
a = n % 10
n /= 10
while n > 0:
----b = n % 10
----n /= 10
print(a+b)
input('Press any button')
Аноним 27/06/20 Суб 15:51:02 1735241197
Аноним 27/06/20 Суб 15:59:26 1735243198
Аноны, если я знаю все из этого чеклиста, кроме автотестов, и 2 года опыта работы на дядю, какую зп просить на удаленке? https://pastebin.com/vbqdNVEB
Аноним 27/06/20 Суб 16:38:25 1735267199
Аноним 27/06/20 Суб 17:58:12 1735307200
Аноним 27/06/20 Суб 18:04:18 1735309201
>>1735195
Кстати, а пайтон транслирует хвостовую рекурсию как плоскую итерацию? Как всякие хаскелы, рэкеты
Аноним 27/06/20 Суб 18:06:19 1735311202
>>1735243
Это от автора канала Диджитализируй?
Он же это для начинающих советует, лол. Я далёк от знания рынка, но вполне очевидно, что у знания какой-то технологии есть уровень сложности. Понимать основы всего стека в списке и быть профи в этом - разные вещи.
Аноним 27/06/20 Суб 18:12:34 1735316203
>>1735307
Спасибо! Как раз на такую вилку и рассчитывал.
>>1735311
Он говорил что эти знания не для конкретно джуна, миддла или синьора. Чем больше знаешь из этого списка - тем ты круче.
Аноним 27/06/20 Суб 18:20:59 1735323204
>>1735316
А можешь пожалуйста сказать, чем конкретно занимаешься? Вебом?
Аноним 27/06/20 Суб 18:30:25 1735336205
>>1735232
> Например assert очень активно используют в основных библиотеках самого питона. Их пишут и ревьювят те, кто считается, что питон более-менее знает.
Использование асертов, глобалок, построение логики вокруг try/except - не лучший подход и тактика, в большинстве случаев можно очень удобно обойтись и без этого.
То что это юзается в основных либах питона, не говорит о том, что это лучшая практика.
Аноним 27/06/20 Суб 18:33:29 1735340206
>>1735323
Да, вебом. На прошлом месте работы занимался в основном созданием api для разных CRM'ок, микросервисов и т.д.
Аноним 27/06/20 Суб 18:35:11 1735343207
>>1735309
Нет, это непитонично
Аноним 27/06/20 Суб 18:38:03 1735348208
>>1735336
>асертов
А тесты ты как делаешь лол? открою секрет: под капотом unittest и ему побоных сидят те же ассерты

>глобалок
Даже ФП не запрещает глобалки. Оно запрещает изменяемые глобальные состояния

>try/except
Настолько же базовый прием как и цикл for, очнись
Аноним 27/06/20 Суб 18:56:21 1735360209
>>1735348
> >асертов
> А тесты ты как делаешь лол? открою секрет: под капотом unittest и ему побоных сидят те же ассерты
Речь не про тесты, в тестах понятно что на этом все построено.
> >глобалок
> Даже ФП не запрещает глобалки. Оно запрещает изменяемые глобальные состояния
А кто запретит юному еблану изменить глобальную переменную локально?
Глобальные переменные - зло.
В погромировании много что не запрещено, но есть методы которые не без оснований считаются не лучшим подходом и это один из них.
> >try/except
> Настолько же базовый прием как и цикл for, очнись
На столько же базовый, да, на столько же не рекомендуется он для построения логики вокруг него. Эта штука отлично используется по прямому назначению - отловить ошибку и сделать безопасное завершение куска логики.

Можно делать все что угодно, что не запретит компилятор, но адекватность, красота, удобочитаемость, поддерживаемость некоторый решений вызовет трудности. Вот и все, собственно.
Аноним 27/06/20 Суб 19:06:03 1735369210
>>1735080
Возможно ты создал первую одновременно, оно упало, т.к. пыталось сделать внешний ключ перед созданием модели. Потом ты попытался по другому, но файл миграции с прошлой попыткой остался и оно все время пыталось применить его перед следующими изменениями.
Аноним 27/06/20 Суб 19:06:31 1735371211
>>1735360
Ассерты полезны для того, чтобы проверить, например, корректность передаваемых типов данных в функции и сами значения, то есть ошибки уровня "компиляции". То есть когда функция используется некорректно. И некоторые схожие вещи.

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

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

>А кто запретит юному еблану изменить глобальную переменную локально?
>Глобальные переменные - зло.
Это проблема еблана. Он может и методы в классе переписать, и много чего ещё. И проблема питона, в котором нет констант.

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


Аноним 27/06/20 Суб 19:23:27 1735385212
>>1735371
>Заведомо плохая идея ассерты для ошибок рантайма использовать - хотя бы потому, что их можно отключить.
Посмотрел, при этом и для типичных рантайм-ошибок активно используют ассерты в стандарной библиотеке.

Вообще, ассерт это лишь кратная форма проверки + выброс исключения. Но в одну строку и с понятным типом исключения. Ассерт не меняет логику кода.

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

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

Самая клиника - это фанатичные радетели за чистоту коду.
Аноним 28/06/20 Вск 02:33:02 1735640213
Не написал ли какой-нибудь добрый человек хорошую подробную книгу по Python, но не такую злоебучую и унылую, как у Лутца?
Аноним 28/06/20 Вск 04:13:50 1735665214
image.png (978Кб, 653x653)
653x653
image.png (355Кб, 474x316)
474x316
Аноним 28/06/20 Вск 04:14:15 1735666215
image.png (21Кб, 569x361)
569x361
Аноним 28/06/20 Вск 05:51:26 1735684216
Аноним 28/06/20 Вск 08:46:19 1735704217
>>1734304
Причем тут жабамразь, ты просто тупой.
В первом случае ты в list comprehension передаешь аргумент функции, а в другом игноришь переменную от list comprehension и используешь несуществующий аргумент.
Аноним 28/06/20 Вск 09:11:50 1735707218
Аноним 28/06/20 Вск 09:18:53 1735708219
>>1735666
Достаточно просто [1] * 10
Аноним 28/06/20 Вск 12:34:28 1735787220
>>1735640
как же вы заебали спрашивать это каждый тред

Лутц
Ромальо
Саммерфелд
Байт оф пайтон
Пайтон хард вей

Выбирай
Аноним 28/06/20 Вск 13:20:09 1735831221
image.png (5Кб, 426x245)
426x245
Аноним 28/06/20 Вск 13:26:23 1735837222
>>1735831
Выйди из треда нахуй
Аноним 28/06/20 Вск 13:29:08 1735839223
>>1735666
В теле класса не должно быть блоков кода, просто.
Вобще, не мучай питоновкие классы, это не жава.
Аноним 28/06/20 Вск 13:32:01 1735842224
Аноним 28/06/20 Вск 13:55:32 1735867225
image.png (541Кб, 620x425)
620x425
Аноним 28/06/20 Вск 14:29:14 1735902226
Как работают авторизация и аутентификация на веб-сайтах и в мобильных приложениях, которые хранят данные на сервере. Кстати, разницу между авторизацией и аутентификацией тоже надо понимать.

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


Эмм... и как же работает аутентификация или сессии под капотом? Для меня это магия
Аноним 28/06/20 Вск 14:38:30 1735916227
>>1735902
Работает очень просто.
Создаётся при авторизации ключ и его окончание времени жизни(записывается на сервере), этот ключ хранится у клиента в кукисах, при каждом запросе клиент должен передавать этот ключ для проверки на сервере. Сервер хранит инфу по этим ключам в памяти и при запросе от юзера проверяет наличие данного ключа и его актуальность(не сдох ли), если жив, то даёт доступ, если нет - 403 ошибка.
Вангую, что есть ещё какие-то периодические проверки этих ключей, шоб в памяти старое говно не хранить, во фреймворках всяких.
Аноним 28/06/20 Вск 14:42:02 1735923228
>>1735902
авторизация это просто проверка прав на конкретное действие, в rest-фреймворках вроде DRF в классах-контроллерах просто определяется permissions, каждый из который является кастомизируемым классом. В самом даунском варианте это проверка:
if object.owner != request.user:
raise 403Error

аутентификация - процесс "логина" в системе с помощью credentials, хуй знает что там именно происходит, но писать свою аналоговнетную аутентификацию как правило не имеет смысла
28/06/20 Вск 14:45:23 1735929229
Кто-нибудь может пояснить за потоки, процессы, асинхронность в питоне? В чём вообще разница между этими хуйнями? Особенно нахуя нужна асинхронность, если это теже потоки.
Аноним 28/06/20 Вск 14:56:18 1735933230
Что произойдет ели на одном серве я запущу несколько проектов, в каждом из которых юзается Celery?
Я ж во время настройки указываю переменную окружения, засовывая в нее ссылку на файл settings моег опроекта:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')

А что делать если проектов будет несколько? Переменная DJANGO_SETTINGS_MODULE перезапишется же
Аноним 28/06/20 Вск 15:12:13 1735953231
Здравствуйте!
Подскажите, пожалуйста, вот можно писать бота для всяких социалочек на джанго, создается апп в нем папка managment/commands и запускается потом приложение по той команде которую определили ему в этих командах, на сколько я понял из информации в интернете. А как его поцепить рядом с сервером? чтобы файл бота исполнялся вместе со стандартной runserver?
Аноним 28/06/20 Вск 16:05:43 1735994232
Murphys-Irish-S[...].jpg (146Кб, 1024x757)
1024x757
>>1735787
> Лутц
Просил посоветовать, что-то кроме унылого Лутца и первым пунктом он же.

> Пайтон хард вей
Такое себе. На любителя.

> Байт оф пайтон
Редкостное говно. Никому не советую. Think Python много лучше.

> Ромальо
> Саммерфелд
Спасибо, анон, посмотрю. Хочется чего-то фундаментального, но не такого заунывного, как у Лутца.
Аноним 28/06/20 Вск 17:41:00 1736053233
>>1733222 (OP)
Почему конструкция:
if os.listdir(dir) != []:
Валидна и мой скрипт работает, а коснтрукция:
if not os.listdir(dir):
Не работает?
Аноним 28/06/20 Вск 18:15:53 1736075234
Screenshot1.png (63Кб, 1125x829)
1125x829
28/06/20 Вск 19:16:28 1736117235
Двач, есть нормальная статья про асинхронность? Три года её не могу понять. Везде одни заметки пидорасов-хуесосов уровня хабра.
Аноним 28/06/20 Вск 19:47:24 1736138236
Аноним 28/06/20 Вск 19:50:55 1736142237
>>1736117
А в чём конкретно затык, что именно непонятно, можешь сформулировать?
Аноним 28/06/20 Вск 20:04:20 1736154238
Часто требуется сохранять много однотипных страниц для последующей обработки. Как бы это делать оптимально?
А то я сжал 7зипом 2 гб в 25 мб и слегка охуел.
В принципе, можно в какую-то key-value базу пихать гзипы, но это тоже не идеал.
Аноним 28/06/20 Вск 20:17:11 1736166239
imagenew.jpg (216Кб, 1200x798)
1200x798
Товарищи, тут такая проблема.
У меня есть претрейнед модели для распознавания ретина и йоло и код спижженный из интернета.
Но оба файла моделей не распознают знак аварийной остановки. Треугольнык который ебаный.
Как доучить?
Аноним 28/06/20 Вск 20:36:09 1736191240
>>1736154
>2 гб в 25 мб
Лол. они хоть открываются?
Аноним 28/06/20 Вск 20:40:40 1736204241
Untitled.png (5Кб, 197x324)
197x324
Аноним 28/06/20 Вск 20:42:05 1736207242
>>1736204
Забавно, надо знакомому сказать, а то тоже жалуется.
Аноним 28/06/20 Вск 20:45:18 1736219243
>>1736142
Ну вот типо есть aync def g(), в котором await f(). И пока f() выполняется, допустим секунд 10, то типо работает тот код, который вызвал g(). Но как он работает? В отдельном потоке? Но тогда, для какой функции создаётся отдельный поток, когда он создаётся, и вообще, в питоне же есть GIL, которая кладёт хуй на параллельность. Почему тогда код с await должен выполниться быстрее?

Ну и ещё, как я понимаю асинхронность пригодна только для выполнения запросов к серверу?
Аноним 28/06/20 Вск 20:53:36 1736229244
>>1736219
>2020
>дрочить на скорость
Аноним 28/06/20 Вск 21:00:11 1736240245
Билеты в кино: кинотеатр установил несколько вариантов цены на билеты в зависимости от возраста посетителя. Для посетителей младше 3 лет билет бесплатный; в возрасте
от 3 до 12 билет стоит $10; наконец, если возраст посетителя больше 12, билет стоит $15.
Напишите цикл, который предлагает пользователю ввести возраст и выводит цену билета.


Решил сделать так -
message = input("Print your age")
message = int(message)
if message < 3:
print("Price = 0$")
elif mes == [3, 12]:
print("Price = 10$")
else:
print("Price = 15$")


Но после второй строки терминал выводит ValueError: invalid literal for int() with base 10: ''
Чяднт?
И как можно иначе написать цикл?
Аноним 28/06/20 Вск 21:03:47 1736247246
>>1736240
try:
message = int(message)
except ValueError:
pass
Аноним 28/06/20 Вск 21:07:48 1736255247
Аноним 28/06/20 Вск 21:13:08 1736262248
Аноним 28/06/20 Вск 21:13:27 1736263249
>>1736255
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: ''

Аноним 28/06/20 Вск 21:14:44 1736264250
>>1736229
Мне-то вообще на неё посрать, но некоторые таки просто текут, когда выходит новый хуйнянейм фреймворк, на 5% быстрее, по которому нихуя документации нет, и сам он вчера вышел, и бегут всё на нём переписывать.

Но тут типо, используются потоки, то это равносильно обычному коду, и потоки по сути не нужны.
Аноним 28/06/20 Вск 21:17:21 1736270251
>>1736263
?

message = int(float(input("Print your age")))
if message < 3:
print("Price = 0$")
elif message == [3, 12]:
print("Price = 10$")
else:
print("Price = 15$")
Аноним 28/06/20 Вск 21:18:35 1736272252
>>1736264
Сомнительное развлечение для красноглазиков.
Аноним 28/06/20 Вск 21:18:35 1736273253
>>1736219
Нет, идея асинхронности в том, что есть специальный цикл выполнения заданий.

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

В тот момент, когда ты делаешь await (точнее await для future-task, но пока не существенно), в этом момент asyncio лезет в цикл заданий и смотрит, что там у него в очереди, и переключается на следующую задачу.

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

В этом ключевое отличие от обычной многопоточности. Там переключение происходит в случайный момент времени. Из-за чего возникают проблемы синхронизации, race conditions и т.п.

Как и многопоточность, асинхронность нужны для того, чтобы одновременно вести несколько потоков исполнения. Это не обязательно про производительность. Представь, что ты чат делаешь, где несколько клиентов к серверу подключены. Тебе их надо всех слушать и перекидывать сообщения от одного другому. Тут или многопоточность, или асинхронность.
28/06/20 Вск 21:37:40 1736295254
>>1736273
Но ведь долгие вычисления и с async будут выполняться столько же. Они же в том же потоке, а соответственно используют один процессор.
Аноним 28/06/20 Вск 21:42:19 1736305255
>>1736295
Да. Асинхронность никак не увеличит производительность завязанных на процессор задач.

Асинхронность - это один из механизмов переключения потоков исполнения, когда твоей программе необходимо обслуживать несколько потоков сразу.
Аноним 28/06/20 Вск 21:43:22 1736306256
>>1736305
А у нее есть подводные?
Аноним 28/06/20 Вск 21:46:45 1736311257
>>1736306
Везде они есть. В случае asyncio их немало.
Аноним 28/06/20 Вск 21:58:40 1736319258
>>1736305
А если допустим есть две async функции A и B. Как я понимаю, в функции A дойдёт до await, запустится функция B, в ней тоже дойдёт до await. А потом? Программа будет простаивать, пока не завершится один из await? Допустим, в функции B await завершился. Получается, после этого выполнится оставшийся код функции B, а затем основной код будет ждать, пока там доработает await в A, функция A, программа на этом завершится?
Аноним 28/06/20 Вск 22:04:06 1736330259
Аноним 28/06/20 Вск 22:07:45 1736338260
>>1736330
А можно ли самому написать функцию, которую можно будет вызвать с помощью await, или это работает только с asynctime и запросами к серверу?
Аноним 28/06/20 Вск 22:11:04 1736340261
>>1736338
Любую асинхронную функцию ты должен вызывать с помощью await
Аноним 28/06/20 Вск 22:19:09 1736348262
>>1736319
Оператор await означает "ждать результата функции". Ты можешь, в принципе, запустить функцию и не ждать её результата, например как
asyncio.create_task(some_function())

Идейный смысл оператора await - это "здесь я жду результата функции, при этом разрешаю в это время запустить другие потоки исполнения".
Аноним 28/06/20 Вск 22:22:56 1736352263
>>1736340
А если в ней внутри будет что-то вроде "много много вычислений"?

Допустим, такую функцию эвэйтят из функции A. На месте await управление тоже переходит к функции B? В которой вызывается await для ещё одной функции со множеством вычислений. После этого начинает наконец-то выполняться кода для функции, вызванной из A? Потом для функции, вызванной из B? А потом завершается функция A, функция B?
Аноним 28/06/20 Вск 22:24:58 1736355264
>>1736352
Если у тебя куча синхронного кода - ты пойдешь нахуй. Читай блет, там объяснено >>1736138
Аноним 28/06/20 Вск 22:27:16 1736358265
>>1736348
Но ведь в то же время вся асинхронность работает в одном потоке?

Тогда сразу же за "ждать результата функции" должно начаться собственно само выполнение этой функции. И тогда получается что во всём этом нет смысла. Или вы это время выполняться начинает какая-то левая функция, а выполнение ожидаемой функции отложено на неопределённый срок?
Аноним 28/06/20 Вск 22:31:47 1736363266
>>1736358
Асинхронность работает в одном потоке процессора, но внутри программы может быть несколько логических потоков исполнения. Одновременно работает один. Но потоков несколько. Периодически какой-нибудь приостанавливается, и отдаётся управление другому потоку.

Особенность async-await в том, что переключение возможно только в момент await (не всегда, чуть хитрее, тут подводные камни есть). В то время как в случае обычного threading исполнение может в произвольный момент времени переключиться.

Оператор await нужен для того, чтобы логика твоего кода смотрелась синхронной. Чтобы не было того callback-ада, как это на JS бывает, если не пользоваться там async-await, которые появились далеко не с начала.
Аноним 28/06/20 Вск 22:41:25 1736384267
>>1736363
Вроде начинаю понимать. Просто до этого было впечатление, что у этого всего есть только два варианта использования. Либо await asyncio.sleep(10), либо await request.get(google.com) а остальное смысла не имеет.

Так получается, в точке, где стоит await, поток выполнения может перейти на любое другое место в коде?

Т.е
1) может начать выполняться другая async функция с самого начала
2) может начать выполняться код после await где-нибудь в другой асинхронной функции, которая собственно уже выполнилась до await, и то, что было внутри await, в ней тоже выполнилось
3) а может начать выполняться какая-нибудь функция, которая раньше не выполнилась, т.к. перед ней стояли await, и на этом месте поток выполнения переключился
Аноним 28/06/20 Вск 22:44:48 1736389268
>>1736384
>либо await request.get(google.com)
Библиотека реквест синхронная, так ты сделать не сможешь
Аноним 28/06/20 Вск 22:59:02 1736412269
>>1736389
А остальное ок?

А асинхронная библиотеке для реквестов содержит что-то системное, и на самом питоне такое написать нельзя? Там типо к функции запроса периодически возвращается поток выполнения, и проверяет, не завершился ли запрос?
Аноним 28/06/20 Вск 23:18:57 1736430270
Здрасуй Двач суть такова: хочу питон-бота в тилеги с АПИ Двача.

Классы для этого API никто за историю доски не писал? Мне б одним глазком посмотреть.
Аноним 28/06/20 Вск 23:32:43 1736446271
>>1736412
Остальное ок.
Не ебу как именно устроено aiohttp (или другая библиотека для запросов) внутри, но почти все библиотеки питона синхронные и просто будут блокировать тебе исполнение асинхронного кода (пока ты не перейдешь на их асинхронные аналоги). Они и так на питоне, просто выполняются синхронно и блокируют выполнение.
Аноним 29/06/20 Пнд 00:08:08 1736490272
>>1736384
Исполнение кода любой функции, вызовов других функций, запуска задач через asyncio.create_task и др. идёт синхронно, не прерываясь, до тех пор, пока не встретиться await.

Причём специфика питона, что await должен быть для future-объекта (функция возвращает объект такого типа). Как только это происходит, исполнение блокируется и передаётся в менеджер по обработке задач. Этот менеджер смотрит на другие задачи, которые стоят заблокированные, и решает, кому передать исполнение. После чего та, другая, задача разблокируется. Примерно так.

future - это специальный объект, который может находиться в состоянии "ожидание" и в состоянии "завершён". Это то, что там происходит под капотом.

То есть идея проста. Есть задачи. Есть менеджер, который переключает задачи. Переключение с задачи А на задачу Б может произойти только в тот момент, когда задача А разрешит. Для этого она блокируется в месте вызова с await, и исполнение переходит к Б. Потом через какой-то момент Б делает тоже какой-то await, и исполнение переходит к А опять, она продолжает работу из заблокированного места, если там, конечно, результат уже готов.
Аноним 29/06/20 Пнд 01:01:35 1736515273
Блин, подскажет кто как правильнее работать с Гитом: находясь на даче где фактически не было интернета, дописал код в некоторых файлах, а пару новых файлов еще сверху докинул
Пришел домой, скопировал файлы в папку с проектом, заменив предыдущие, только хотел сделать git push, как он мне говорит что push rejected. Походу ему что-то не понравилось из-за замены доков. Как быть-то? Как файлы проекта объединять?
Аноним 29/06/20 Пнд 06:21:35 1736581274
Аноним 29/06/20 Пнд 07:16:49 1736593275
>>1736191
Ну так архиваторы и эффективны там, нде очень много очень похожих данных. А вот если ты будешь сжимать фапапку, в которой джипеги, пнг, гиф, мп4, вебп и вебм, то вообще не выставляй сжатие, его не будет.
Аноним 29/06/20 Пнд 07:45:24 1736598276
>>1736581
Что add? Я заменил исходные файлы на новые через Ctr+V, они уже были в Гите
Аноним 29/06/20 Пнд 09:26:44 1736623277
>>1736430
Бамп вопросу про API 2ch
Аноним 29/06/20 Пнд 09:48:06 1736630278
Аноним 29/06/20 Пнд 09:54:14 1736631279
image.png (956Кб, 900x600)
900x600
Аноним 29/06/20 Пнд 11:04:42 1736652280
Можно ли в питоне перехватывать события как в жс?
В dom-документе например можно поставить событие onclick="myFunction()" на любую button и когда юзер нажмет на нее, то запустится установленный коллбэк. А есть события по типу onkeydown которые срабатывают (внезапно) при нажатии на клавишу down
Как перехватывать такие события в Питоне? Про gui я пока и не говорю, как в терминале перехватить событие по типу onkeydown? Единственное что я видел как перехватывается и обрабатывается это ctr+C но это стандартное клавиатурное прерывание для интерпретаторов
Аноним 29/06/20 Пнд 11:23:08 1736658281
>>1733222 (OP)
Устанавливал кто левые пакеты js внутрь своего веб-приложения? Как это работает?
У меня есть приложуха на Джанге, как и куда установить дополнительный жс-пакет, который мне нужен? Допустим я сделаю npm install, но как потом использовать его скажем из файла index.js, лежащего в /static?
Аноним 29/06/20 Пнд 12:13:38 1736685282
>>1736652
Ты сам подумал, что написал?

У тебя server-side язык, как ты на нём будешь перехватывать события браузера? Ты и на node.js их перехватить не сможешь.
Аноним 29/06/20 Пнд 12:15:46 1736688283
>>1736652
>Про gui я пока и не говорю, как в терминале перехватить событие по типу onkeydown?
А, если про это, то смотри на всякие curses и т.п. терминальные вещи. В принципе это возможно, но есть зависимость от ОС и терминала, и не очень красиво это.

Логика работы с терминалом сильно отличается от логики работы в браузере.
Аноним 29/06/20 Пнд 12:21:25 1736692284
Есть функция вычисляющая и отображающая на графике рост населения в указанный промежуток. Мне нужно чтобы выводился год когда население перескочило отметку, допустим, 4.5 миллиарда человек, но ничего не выводится..

import matplotlib.pyplot as plt
from math import pi, atan
def arcctg(x):
arc = pi/2 - atan(x)
return(arc)
def population(t):
N = 172/45 arcctg((2000 - t) / 45)
return(N)

a = int(input())
b = int(input())
n = 100

h = (b - a) / (n - 1)
x_list = [a + h
i for i in range(n)]
f_list = [population(x) for x in x_list]
line = plt.plot(x_list, f_list)

#Вот тут ничего не выводится
for x in x_list:
if round(population(x)) == 4.5:
print(x)

plt.setp(line, color = 'blue', linewidth = 2)
plt.gca().spines["left"].set_position("center")
plt.gca().spines["bottom"].set_position("center")
plt.gca().spines["top"].set_visible(False)
plt.gca().spines["right"].set_visible(False)
plt.show()
Аноним 29/06/20 Пнд 12:25:08 1736699285
>>1736593
7z, насколько я помню, умеет строить словарь не для каждого файла отдельно, а общий. Благодаря этому заметно больше эффективность сжатия большого количества мелких однотипных файлов.

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

zip-архив - это в некотором роде файловая система, в котором лежат упакованные файлы
7z-архив - это скорее файловая система, упакованная в архив. То есть последовательность другая.

В принципе юниксовые tar + gz/bz дадут аналогичный эффект, как и 7z.

>>1736154
>А то я сжал 7зипом 2 гб в 25 мб и слегка охуел.
А что будет, если сжать обычным зипом? Или gzip, если в линуксе работаешь? Возможно ты и так получишь очень хорошее сжатие, пусть и меньше, чем 7z. Если ты сожмёшь с 2 гб до 200 мб вместо 25, это всё равно имеет смысл, но ты сможешь упаковывать и распаковывать файлы прозрачно, налету.

Смотри на модули gzip и bz2 в питоне.
Аноним 29/06/20 Пнд 12:29:32 1736705286
>>1736692
>if round(population(x)) == 4.5:
Ты округляешь до целого числа и пытаешься его сравнивать с дробным.

Как-минимум тебе надо делать round(population(x), 1) == 4.5 - это округление до 1 знака после точки

Но это очень багоёмко, опасно сравнивать явно нецелые числа.

Самое правильное сделать if population(x) >= 4.5. Если округлять, то брать модуль разности.
Аноним 29/06/20 Пнд 12:33:22 1736709287
>>1736705
>population(x) >= 4.5. Если округлять, то брать модуль разности.
Точнее, в случае, если ты хочешь выделить специфичную зону, то самое правильное делать
if 4.5 <= population(x) < 4.6:

И читаемо, и лишний действий нет, и достаточно гибко.

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

Условно, у тебя в один год может быть 4.43, а на следующий 4.66? и всё, зона утеряна. Поэтому тебе, скорее всего, надо именно искать больше, а потом сразу выставлять флаг, что зона найдена.
Аноним 29/06/20 Пнд 12:52:23 1736723288
>>1736658
>npm install, но как потом использовать его скажем из файла index.js, лежащего в /static?
Сбилдишь и подключишь в индекс, по-идее так
Аноним 29/06/20 Пнд 13:21:24 1736750289
>>1736699
Да это всё понятно, это т.н. солид архив с большим словарем, всё жмется как один большой файл, грубо говоря, так что все повторения, коих большая часть в хтмл, легко ужимаются.
Гзип же просто последовательно жмет скармливаемые ему данные.
Вот хотелось бы что-то среднее, лол.
Аноним 29/06/20 Пнд 14:22:26 1736809290
image.png (336Кб, 640x360)
640x360
Аноны, подключчил, значица тинькофф апи, получаю через стримминг (Streaming) японские свечи (объем, максимальная цена в свече, минимальная, уена входа в свечу, цена выхода), внимание вопрос:
Как то можно данные из стриминга выковыривать? Например цену входа и выхода сохранять в список?
Костыльный уродский бот КоДой 29/06/20 Пнд 14:23:03 1736810291
Господа, нужна помощь, написал простенького бота, что бы голд получать в игре небезызвестной,(но не в корстных целях, просто опробовать себя). Так вот суть, бот агрит мобом и собирает лут, координаты приходится костыльно выставлять. В голове есть идея, что бы он на клике по мобу записывал координат и потом (якобы) проводил прямую к моему персонажу, но не доводил до конца а останавливался где то радиусе, приблизительно, 100 пикселей. Вроде пытался через мат уравнения решать, но не получилось. Помогите конченому найти путь к истине
Аноним 29/06/20 Пнд 14:24:12 1736811292
>>1736809
Анон, в алготрейдинг пытаешься?
Аноним 29/06/20 Пнд 14:29:31 1736817293
>>1736750
Так может тебе просто парсить это дело и хранить html-шаблон и данные отдельно?
>>1736809
А чем проблема, обычный json же, не?
Аноним 29/06/20 Пнд 14:39:18 1736822294
>>1736817
Сначала распределенно выкачивается весь набор, потом уже разрабатывается и тестриуется парсинг.
Аноним 29/06/20 Пнд 15:40:25 1736915295
>>1736709
спасибо, из головы совсем вылетело >=
Аноним 29/06/20 Пнд 16:11:41 1736951296
Анон, насколько глубоко нужно знать python (именно сам язык, не фреймворки) чтобы устроиться миддлом? Я про стандартную библиотеку и разные питонячьи особенности языка.
Аноним 29/06/20 Пнд 16:26:54 1736967297
>>1736951
давай сразу тимлидом, чо уж там...
Аноним 29/06/20 Пнд 18:06:43 1737048298
Так блин, решил залезть в этот ваш питон чтобы наваять по-быстрому говно для бэка на flask или django
В темплейте закинул <script src"/main.js"> а после запуска браузер мне пиздит что такого файла якобы нет. Че это такое?
Аноним 29/06/20 Пнд 18:09:09 1737053299
>>1737048
если надо по быстрому, то лучше использовать то, что знаешь
а так скорее всего не указал серваку откуда брать main.js , мб надо указать путь к статике или типо того
Аноним 29/06/20 Пнд 18:12:38 1737058300
>>1737053
Какой еще путь к статике? Они в одной директории лежат
Аноним 29/06/20 Пнд 18:20:01 1737072301
>>1737058
Должна быть отдельная папка статик, эта папка должна быть указана в конфиге фласка, эту папку надо не забыать в хэдере подключить к ХТМЛу
Аноним 29/06/20 Пнд 18:37:42 1737084302
>>1736809
долбоеб не умеет в printscreen зато ебашит торгаша, спешите видеть.
>>1737058
А откуда фреймворк об этом знает, ебобобо? Так и напиши что SRC там-то, TEMPLATES - там-то.

<script type="text/javascript" src="{% static "js/my_external_script.js" %}"></script>
Аноним 29/06/20 Пнд 19:04:18 1737109303
>>1737048
>а после запуска браузер мне пиздит что такого файла якобы нет
Для начала проверь в консоли браузера, к чему он пытается обратиться. И проверь, что будет, если попробовать выкачать этот url.

Вопрос в настройке статики. Тут есть немного магии, своя в зависимости от фреймворка.
Аноним 29/06/20 Пнд 19:11:25 1737121304
изображение.png (2773Кб, 2000x2000)
2000x2000
Как доучить обученный файл моделей retina net или yolo?
Нужно чтобы распознавало аварийный треугольник. Она не знает такой знак.
Аноним 29/06/20 Пнд 20:57:56 1737214305
12345.png (7Кб, 642x153)
642x153
23456.png (34Кб, 955x414)
955x414
Не пойму нихрена. Есть функция на проверку айпишников. Почему в винде все айпишники в локальной сети, даже несуществующие возвращают result.returncode == 0 и соответственно True, а в линуксе всё отрабатывает без проблем и не сущестующие айпишники в локальной сети выводят False.

import subprocess
def ping_ip(ip):
result = subprocess.run('ping {}'.format(ip), shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
encoding='cp866')
if result.returncode == 0:
return True
else:
return False

print(ping_ip('172.88.1.253'))
Аноним 29/06/20 Пнд 21:29:58 1737251306
>>1737214
мы не знаем
заюзай pying, там вроде ок все
Аноним 29/06/20 Пнд 21:30:19 1737252307
Аноним 30/06/20 Втр 00:07:48 1737383308
Ебать, поставил простенький жс-скрипт в темплейт:

<script type="module" src="{% static 'index2.js' %}"></script>
<script src="{% static 'js/test1.js' %}"></script>

Внутри модуля index2.js обычная конструкция:
import {Sortable} from './@shopify/draggable'

При подгрузки страницы браузер в консоли выдает мне ошибку: Loading module from “http://localhost:8000/static/@shopify/draggable” was blocked because of a disallowed MIME type (“text/html”). Кто-то сталкивался? Погуглил, но там все вокруг Ноды-жс вертится, а у меня Джанго... Че это за хрень?
Аноним 30/06/20 Втр 00:14:53 1737386309
>>1737383
Тебя забанили в Гугл ? Middlware CORS
Аноним 30/06/20 Втр 00:44:51 1737408310
>>1737383
Апдейт: убрал багованный импорт, рандомно потыкал пакеты из node_modules, засовывая их в <script> и раз на 20й все внезапно заработало
Теперь могу официально именовать себя жс-разработчиком

>>1737386
Че? Вообще хуй знает что это, гордому жс-боярину не пристало мараться о такое
Аноним 30/06/20 Втр 00:50:16 1737410311
Аноним 30/06/20 Втр 00:54:07 1737413312
Сап, двач. Какие вопросы задают на middle/senior собеседованиях?
Аноним 30/06/20 Втр 00:59:57 1737419313
>>1737408
> Безопасность и изоляция данных во фронтенде
> гордому жс-боярину не пристало мараться о такое
))

Фиг с ней с джангой и ее middleware, но CORS - это достойная тема для изучения.
Аноним 30/06/20 Втр 01:14:45 1737427314
Аноним 30/06/20 Втр 02:13:48 1737451315
>>1737413
На самом деле, технические вопросы примерно такие же. Свежие выпускники без опыта точно так же могут отвечать на сложные вопросы.

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

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

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

Ну и иногда под этими лычками можно ожидать просто вопросы про достаточное или экспертное знание какой-нибудь технологии. Тут уж зависит от того, зачем им разработчик и насколько все в огне.
Аноним 30/06/20 Втр 04:29:25 1737495316
Докупил место в облаке и дозалил все книги треда из всех истоничков.
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6

Принимаю реквесты на книги от анона.
P.s. Было бы неплохо заняться и структурировать все книги по папкам и подпапкам.
Аноним 30/06/20 Втр 04:48:08 1737499317
>>1737451
Антон, немного странный вопрос:
Есть ебо-продуктовая компания, на 20 человек, основной упор на мобилку и юнити, есть 1.5 бэкэндера(я среди них). Задачи простые, типа добавить модели в БД, подключиться к апи и выкачать данные для маркетинга, запилить новые простые сервисы. Я вроде как мидол и собсна вопрос: есть ли, в таком контексте, шанс вырасти или лучше бежать и искать что-то лучше? По ЗП все ок, но вот унылые таски..
Аноним 30/06/20 Втр 05:08:55 1737504318
f1d1a443290f0be[...].png (59Кб, 1875x898)
1875x898
>>1733222 (OP)
Почему, когда в PyCharm я юзаю дебаггинг, то выскакивает ошибка "pydev debugger: process 30524 is connecting" (число может меняться). Как избавиться от неё, чтобы дебаг работал нормально? Пикрил.
Аноним 30/06/20 Втр 09:03:10 1737549319
>>1737495
Где пиратские сканы Лутца 5 издания?
Постоянно использую Седер_Н_Python_Экспресс_курс_3_е.pdf в качестве шпаргалки. Ничем особенным не выделяется, но маленькая и не перегружена подробностями.
Неплохо держать под рукой навигационный справочник рецептов : Бизли Д., Джонс Б. К. Python. Книга рецептов / пер. с анг. Б. В. Уварова. – М.: ДМК Пресс, 2019. – 648 с.: ил.
(не скан)
Так же был удивлен, что вместо кучи книг по pandas, лучшей оказалась самая древняя от самого создателя pandas Маккинни_У_Python_и_анализ_данных.pdf (скан, )
(вообще в pandas 1.0 кучу слегка поменяли интерфейсы и ряд примеров не заработает)

Аноним 30/06/20 Втр 09:21:55 1737557320
video2020-06-30[...].mp4 (1731Кб, 640x360, 00:00:16)
640x360
>>1736817
>json же, не?
Какой джэйсон, это стриминг. Видос отклеился. Эти строки ежесекундно появляются с изменениями непрерывно в течении всей торговой сессии.

>>1736811
Да какой там. Хотя бы сигнализатор для начала нормальный написать бы. А вообще задумки кое какие имеются, но без фанатизма.
Аноним 30/06/20 Втр 09:24:24 1737559321
>>1737084
>долбоеб не умеет в printscreen
Спасибо за вектор направления, но поясни поподробнее, гугл хуйню выдает по запросу python printscreen
Аноним 30/06/20 Втр 09:36:39 1737573322
Аноним 30/06/20 Втр 09:38:40 1737574323
>>1737557
У тебя твой "стриминг" печатает в терминал какой-то получаемый из апи объект, в виде справочника (dict). В чём проблема доставать из справочника нужные тебе цены?
out = {
\t'Цена открытия': dict,
\t'Цена закрытия': dict[c]
}
Аноним 30/06/20 Втр 09:39:15 1737575324
>>1737574
>\t'Цена открытия': dict,
\t'Цена открытия': dict[o],
Аноним 30/06/20 Втр 09:42:45 1737579325
image.png (233Кб, 709x226)
709x226
Аноним 30/06/20 Втр 09:46:46 1737580326
image.png (160Кб, 1856x873)
1856x873
>>1737575
Одно из двух: или я тупой, или я тупой.
Как прикрутить твоё решение к моему коду?
Аноним 30/06/20 Втр 09:49:47 1737582327
>>1737579
К сожалению ты слишком туп. Все просто было бы сделать через threading. Один тред слушает входящие данные, второй парсит, третий пишет в бд или файл для визуального разбора.
Я бы с таким набором mongo, redis, clickhouse использовал. SQL для истории, если потом строить графики поведения.

Я бы ещё и асинхроночки добавил, как у меня сейчас даже вебсервис на ней. Uvloop берешь и ебашишь.
Аноним 30/06/20 Втр 09:54:50 1737583328
>>1737582
Ну да, многопоточность мы еще не проходили и асинхронность тоже. Но можно же и в одном потоке это сделать пока что?
Куда прикрутить твоё \t'Цена открытия': dict? Или в одном потоке это прям ну вообще не прокатит?
Аноним 30/06/20 Втр 10:07:11 1737588329
Screenshot1.png (38Кб, 1479x371)
1479x371
>>1737580
Залезть в openapi_streaming, посмотреть какие ещё там есть функции, может там есть готовая функция экспорта данных куда-либо. Либо самому написать функцию, и вместо print_event вызывать.
Когда ты первый раз спросил, я вообще понял пикрил.
Аноним 30/06/20 Втр 10:15:20 1737597330
>>1737588
Ну нее, твой пикрил я и сам умею. Но вот странность, кроме указанных мной в исходнике, там больше нет функций. Можно добавить другую акию только (до 8 штук). Я и говорю, смотреть можно, а забрать нельзя
Аноним 30/06/20 Втр 10:22:42 1737607331
Аноним 30/06/20 Втр 10:27:10 1737609332
1304376955947.png (457Кб, 600x450)
600x450
>>1737557
>Видос
Чувак, ты так угараешь? Это какая-то постирония или уже метаирония?
Аноним 30/06/20 Втр 10:45:01 1737622333
>>1737609
Это я бабуин, записывал для другого бабуина вообще, не для треда, а типа "пасатри, как я могу"
Аноним 30/06/20 Втр 10:55:22 1737630334
>>1737609
нюфани в питон треде просто охуевшие
Аноним 30/06/20 Втр 10:57:36 1737631335
Аноним 30/06/20 Втр 11:15:38 1737649336
Нужно ли совать в гит директорию /.idea из пичарма? Или лучше в .gitignore ее?
Аноним 30/06/20 Втр 11:25:42 1737658337
>>1737649
Да нахуй она там нужна. Коммить только исходники
Аноним 30/06/20 Втр 11:49:29 1737683338
Screenshot1.png (40Кб, 1897x591)
1897x591
>>1737597
Ну как-то так, чтоб в прямом эфире это писалось пока не нагуглил.
Аноним 30/06/20 Втр 12:16:56 1737699339
>>1737683
Брат, спасибо, что заморочился, но мне не рандомные числа нужны, а конкретно из функции run_stream_consumer() из апишки openapi_client.openapi_streaming
Аноним 30/06/20 Втр 12:35:21 1737726340
>>1737699
Ты тупой? Я в качестве твоей функции run_stream_consumer() написал свою функцию, которая принтит рандомные котировки.
Вторая функция в другом процессе запускает первую функцию, перехватывая то, что она принтит. Сложить первое и второе надеюсь сможешь?
Аноним 30/06/20 Втр 12:51:31 1737750341
>>1737726
Я тупой, да. Сейчас попробую, спасибо
Аноним 30/06/20 Втр 13:01:04 1737759342
image.png (31Кб, 996x197)
996x197
>>1737683
Ну нет Popen в моём run_stream_consumer (и на PIPE уверен, заругается)
Аноним 30/06/20 Втр 13:06:04 1737762343
>>1737759
СОЗДАЙ ОТДЕЛЬНЫЙ ПИТОНОВСКИЙ ФАЙЛ, ОЛЕНЬ, YADOLBOEB.PY НАПРИМЕР, В ТОЙ ЖЕ ДИРЕКТОРИИ, ГДЕ ЛЕЖИТ streaming.py

И В НЕГО ЗАСУНЬ КОД:
import subprocess


with subprocess.Popen("streaming.py", bufsize=1, stdout=subprocess.PIPE, universal_newlines=True) as p:
for line in p.stdout:
print(f"Ленивый алгодаун {line}", end="")
Аноним 30/06/20 Втр 13:07:16 1737764344
image.png (40Кб, 1030x210)
1030x210
>>1737762
Сорян ,я в тот раз не ту пикчу прицепил
Аноним 30/06/20 Втр 13:07:33 1737765345
>>1737762
И ЗАПУСТИ ЕГО. ОТСТУПЫ ТОЛЬКО НЕ ПРОЕБИ.
Аноним 30/06/20 Втр 13:17:49 1737772346
Создать несколько тредов и в каждом намутить asyncio.loop - так вообще делают? Выглядит стремно
Аноним 30/06/20 Втр 13:20:21 1737774347
>>1737772
Звучит бессмысленно. Я бы понял ещё мультипроцесс.
Аноним 30/06/20 Втр 13:22:03 1737776348
image.png (58Кб, 879x388)
879x388
>>1737765
А вот с твоим subprocess тест
Аноним 30/06/20 Втр 13:40:25 1737787349
>>1737776
Либо вместо Popen попробуй run, либо добавь в код:
import sys

params = dict()
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
params['startupinfo'] = startupinfo

и добавь в параметры:
with subprocess.Popen(..., params)

Аноним 30/06/20 Втр 13:41:10 1737788350
>>1737787
>with subprocess.Popen(..., params)
перед params 2 звёздочки
Аноним 30/06/20 Втр 13:59:36 1737807351
image.png (72Кб, 965x474)
965x474
Аноним 30/06/20 Втр 14:41:59 1737834352
>>1737762
О, норм тема. А я могу так парсинг и запись в файл мутить для повышения производительности? Есть допустим основной скрипт streaming.py, который скачивает html файлы а затем subprocess.PIPE передает их второму скрипту parsing.py (который собственно и осуществляет вызов subprocess.Popen(["python", "streaming.py"],) и вот он уже парсит эти файлы и записывает нужные результаты в файл
Будет выигрыш в производительности?

(а если еще и написать 3й скрипт writing.py, который будет получать распарсенные данные от parsing.py и записывать их в файлы... так можно? Или смысла нет?)
Аноним 30/06/20 Втр 14:46:06 1737837353
Аноним 30/06/20 Втр 15:08:46 1737869354
>>1737834
чел научись сначала хоть как-то что-то делать а потом уже занимайся улучшением производительности
Аноним 30/06/20 Втр 15:17:57 1737881355
>>1737869
Бля, чел, успокойся, я вообще другой анон
Аноним 30/06/20 Втр 15:19:50 1737883356
>>1737881
По теме, только что попробовал. Процесс, который должен был занять ровно 10 секунд занял 10.3 секунды, пройдя двойной пайп. Подводных пока не заметил
Аноним 30/06/20 Втр 15:23:29 1737890357
>>1737499
Поговори со своим менеджером. Какие планы у компании, планируется ли что-нибудь и можешь ли ты в этом поучаствовать. Скажи, что тебе скучно, и тебе кажется, что твой рост замедляется. Если ты готов к какому-нибудь вызову, сообщи это. Во-первых, ты можешь случайно многое узнать о происходящем и возможно получить интересную работу не уходя с работы. Если ебо-продуктовая компания таких размеров не имеет абсолютно никаких планов, то я думаю, что это плохой знак.

Во-вторых, если ничего такого нет, у тебя есть прекрасная история на следующие собеседования: ты не развиваешься, по этому поводу ты вел переговоры с менеджментом и они зашли в тупик. У тебя есть опыт запиливания интеграций с апи и написания простых сервисов, так что с т. з. опыта проблем стать миддлом быть не должно.
Аноним 30/06/20 Втр 16:58:13 1738059358
>>1737881
тогда лучше сделать через очередь чем ебаться с пайпами
Аноним 30/06/20 Втр 17:00:54 1738066359
У меня в субд есть "список" постов, то есть у каждого поста есть свой порядковый номер order: от 0 и далее по возрастанию, по этим номерам они и выводятся юзеру (сделано с помощью джанго)

Проблема в том, что эти "номера приоритета" постоянно меняются, был у поста номер 3, а стал 7, остальные соответственно тоже сдвинулись: номера от 4 до 7 уменьшились на 1, то есть двух постов с одинаковым номером быть не может, это как индексы в python list. Когда обрабатываю данные на бэке такое часто получается что 2 номера "перекрываются" на небольшой промежуток времени и вылезет ошибка, если это поле order было создано с ограничением unique, поэтому сейчас я его убрал, но в будущем это чревато ошибками

Как сделать поле order с параметром unique но при этом безвылезающих ошибок во время обработки?
Аноним 30/06/20 Втр 17:13:47 1738104360
>>1738059
Пайпы же в разных процессах ебашат. В этом и профит. Причем самый первый процесс для закачки из сети может внутри ебошить асинхронку
Аноним 30/06/20 Втр 17:34:00 1738144361
>>1737890
Спасибо, антош.
С манагером разговаривал в анчале весны, тогда вообще все было тухло. По бэку крупных и долгосрочных планов нет, после небольших правок и роста клиентской базы надо будет заняться небольшой МЛ задачей и всьо, но там ебучий рандом форест, нихуя сложного. Мне предложили заняться мобильной разработкой на реакте, от чего я отказался.

Видимо, осенью придется все таки валить.
Аноним 30/06/20 Втр 18:40:45 1738204362
Аноны, пишу приложение на kivy под андроид. Apk buildozer'ом собирается без ошибок, но при запуске приложения оно сразу же падает. Посмотрел логи на телефоне, он пытается найти main.py по пути, который у меня используется на десктопе и ему это ясное дело неудаётся.
В buildozer.spec: source.dir = .
Собираю командой buildozer android debug
Что за нахуй, он ебанутый?
Аноним 30/06/20 Втр 19:42:18 1738295363
>>1738204 а каким образом ты умудрился собрать приложение без файла с которого начинается приложение main.py ?
это не ты ли тот ебанутый, что недавно в чате искал исполнителя "Склеить две программы в одну" ?
Аноним 30/06/20 Втр 20:30:35 1738342364
>>1738295
> это не ты ли тот ебанутый, что недавно в чате искал исполнителя "Склеить две программы в одну" ?
Нет

> а каким образом ты умудрился собрать приложение без файла с которого начинается приложение main.py ?
Не знаю, создал отдельную папочку кинул туда main.py и второй модуль, в консолечке вмонтировал эту папочку, написал buildozer init, поправил buildozer.spec(название, заголовок, требования и версию API установил 26, ибо на 27, он у меня усиленно не хочет собираться), и после этого написал buildozer android debug, началась сборка apk, после чего он написал что сборка окончена, апекашечка в папке bin. Я сделал что-то не так?
Аноним 30/06/20 Втр 20:38:21 1738354365
>>1738342
> в консолечке вмонтировал эту папочку
Ты наверное хуйни натворил в питоне с модулями и дело не в киви.
Исправь сначала все на десктопе

Чтобы проконтролировать систему сборки, распакуй обратно apk, распакуй private.mp3 (так выглядит kivy на самом деле, лол) и пересчитай файлы.
Аноним 30/06/20 Втр 20:45:52 1738363366
>>1738354
> Ты наверное хуйни натворил в питоне с модулями и дело не в киви.
> Исправь сначала все на десктопе
Да я хрен знает, что там исправлять, я в этом не разбираюсь. Сам скрипт запускается и работает, что в линуксе, что в виндовсе.
В общем сейчас попробую установить убунту и прям по инструкции поставить buildozer и попробовать собрать apk.
Аноним 30/06/20 Втр 21:07:27 1738393367
>>1738363
>Да я хрен знает, что там исправлять, я в этом не разбираюсь
Ну ахуеть. А как вообще ты программы тогда пишешь?

Надо разбираться с ошибкой, а не танцевать меняя тулзы как папуас.
Аноним 30/06/20 Втр 21:16:14 1738403368
>>1738393
> А как вообще ты программы тогда пишешь?
Ну а кто его знает, как-то пишу, бывает даже работают.
> Надо разбираться с ошибкой, а не танцевать меняя тулзы как папуас.
Дак я в душе не чаю в чем проблема и куда копать.
Что там может быть с пакетами, если их билдозер сам ставит (покрайне мере как я понял)? Может быть каких-то пактов в самой системе не хватает, но я гуглил аналоги пакетов для арчеподобных систем из инструкции для убунту и установил их. Может я что-то не то поставил или что-то не установил, но как это теперь узнать?
Сейчас попробовал ещё раз собрать и увидел в консоли сообщение о отсутствии install_libs. С этим может быть связано и что вообще такое эти install_libs?
Аноним 30/06/20 Втр 22:05:18 1738444369
kivy.jpg (6Кб, 259x194)
259x194
>>1738403
для kivy нужны железные яйца и стальная воля.
stackoverflow не поможет.
Я - тоже.
Аноним 30/06/20 Втр 22:42:19 1738475370
>>1737583
PIPE, Queue, socket, Kafka, RabbitMQ.
Если ты считаешь "мы не проходили" охуенным аргументом, то пиздуй-ка жарить картошку.
Я с нуля вливался во все. Увидел что одни и те же данные нужны многим сервисам и прикрутил rabbitmq, увидел что mysql не справляется с логированием - прикрутил clickhouse.
Если ты тупишь после того как тебе все разжевали учись собирать бигмак.
Аноним 30/06/20 Втр 22:51:06 1738483371
>>1738475
Ах да сервисы - модули. Работают и не знают друг о друге, но ожидают входных данных.
Пытался разгрузить уебищную MySQL 5.5, на два ядра два гига ведре, иначе каждый раз лезть приходилось туда, а вот 8.0 уже бодрее и то жалею, что решил MySQL оставить как СУБД. Говно полное.

Алгодебилу советую изучить Threading и не ебать мозг с PIPE..
Одна очередь на входящие данные вторая на исходящие.
Я бы запили так:
Parent - producer/consumer, но в виде процессов. Threading это упор в GIL. Когда лочится исполнение кода на какое то время, а играть семафорами уже ближе к байтоебству
Аноним 30/06/20 Втр 23:02:12 1738489372
>>1738444
Ещё и трипл

> для kivy нужны железные яйца и стальная воля
Да я уже как-то заметил
Аноним 30/06/20 Втр 23:46:13 1738512373
>>1738475
С каких это пор mysql не справляется с логгииованием? Ты ахуел?
Аноним 01/07/20 Срд 00:00:57 1738519374
Пиздец beatifulsoup уныло медленный. lxml поставил, вроде на него чистый и рекомендуют переходить, когда надоест.
Читал ещё советы про частичный парсинг через soupstrainer, есть польза от него?
Аноним 01/07/20 Срд 00:42:23 1738529375
>>1738512
Таблица 3 гига, хуйпиздаджигурда. 17 секунд выгрузка по партиции. Нахуй надо.
Аноним 01/07/20 Срд 01:03:59 1738540376
>>1738529
не знаешь где EXPLAIN запустить?
Аноним 01/07/20 Срд 11:42:50 1738752377
>>1733222 (OP)
Чем бы вы в питоне рисовали линии и буковки на экране?
Аноним 01/07/20 Срд 11:55:50 1738759378
Аноним 01/07/20 Срд 11:58:38 1738764379
>>1738759
Спасибо, милый человек :)
Аноним 01/07/20 Срд 13:42:54 1738884380
>>1738540
В DBA я не силен, explain запускал, индексы сделал, сделал даже партицию по weeknum, после первой выгрузки все снова поплыло.
Аноним 01/07/20 Срд 14:30:09 1738925381
За питоном будущее? Что на нем пишут кроме нейросеток? Смотрю, дохуя вакансий на него, стоит вкатываться?
Аноним 01/07/20 Срд 15:11:43 1738966382
>>1738925 язык-клей может склеить все. Перекатывайся. Лишним не будет.
Аноним 01/07/20 Срд 15:16:34 1738972383
>>1738925
Нет. Питон проебал async и теперь не нужен нигде кроме нейросеток.
Аноним 01/07/20 Срд 15:30:14 1738990384
image.png (1027Кб, 1062x1500)
1062x1500
начал изучать питон по этой книжечке, что скажете, анонасы?
мне пока все нравится, после каждой темы задания есть, на расслабончике по пару часиков в день заходит
Аноним 01/07/20 Срд 15:50:44 1739019385
Двач, в xcode можно ли скрипты python пошагово дебажить?
Аноним 01/07/20 Срд 16:01:26 1739040386
>>1738972
>Срд 15:16:34 №1738972383
>>>1738925
>Нет. Питон проебал async и теперь не нужен нигде кроме нейросеток.
Какой же ты сука долбоеб, просто ссал тебе на ебало
Аноним 01/07/20 Срд 17:02:35 1739137387
>>1738990
Книги это слишком медленно, лучше посмотри видоси от хауди хо учим пайтон за час на скорости 1,5х будет больше пользы, а потом сразу приступай к практике
Аноним 01/07/20 Срд 17:41:20 1739174388
Скомпилял через pyinstaller запускаю на другом пк, пишет что бы обратился к владельцу файла, вин 10, какого хуя?
Аноним 01/07/20 Срд 17:45:52 1739187389
Ребят, я что-то неправильно делаю или на Ubuntu в комплекте с питоном не идёт Tkinter? Попытался несколько раз запустить и пишет, мол модуля нет, вбил sudo aptitude install python3.8-tk шо-то скачалось и tkinter начал запускаться, что за дерьмо? Его же даже в pip нет, как мне узнать вообще, как его установить?
Аноним 01/07/20 Срд 18:10:56 1739222390
>>1739187
> я что-то неправильно делаю или на Ubuntu в комплекте с питоном не идёт Tkinter?
У меня в убунту с минимальной установкой даже pip3 не было, так что не удивлюсь
Аноним 01/07/20 Срд 18:31:08 1739253391
1
Аноним 01/07/20 Срд 18:46:33 1739271392
>>1739222
Дистрибутив для людей, говорили они... Легко использовать, утверждали они, никакой хуйни с поиском инфы в интернете, обещали они...
Аноним 01/07/20 Срд 18:46:42 1739272393
Двач, необходимо написать программу, которая будет брать массив данных из экселя и по нему вводить данные в отдельном приложении. Вопрос, как можно полученный из экселя массив данных вставлять в конкретные поля приложения? И как можно с помощью пайтона вообще редактировать конкретные поля и вводить данные
Аноним 01/07/20 Срд 19:20:34 1739307394
>>1739271
Ну дак для людей же, а не разработчиков. Программист не человек
Аноним 01/07/20 Срд 19:21:53 1739310395
Аноним 01/07/20 Срд 19:59:44 1739344396
>>1739272
Xlrd/xlwrt для .xls и openpyxl для xlsx
Аноним 01/07/20 Срд 20:18:45 1739359397
>>1739272
Pandas дохуя чего может,
Аноним 01/07/20 Срд 21:22:32 1739415398
>>1739271
Ты троллишь? Нужна готовая среда качай activepython или anaconda.
Аноним 01/07/20 Срд 21:26:18 1739420399
>>1739359
Pandas для визуализации больше, для датасаенс дебилов с jupyter вместо IDE. Ну и памяти потребляет в разы больше.
Я не вижу проблем выгружать данные как например умеет mysql-connector с атрибутом DictCursor() в виде словарей, где ключ это наименование столбцов. Априори не обосрешься.
Аноним 01/07/20 Срд 22:12:07 1739472400
>>1739272
Лучше pandas.
Потом в ячейках сделаешь вставку в буфер обмена винды и заебись интегрируешься.
А дебсов местных с ограниченным мышлением слушай поменьше. Pandas пригодится еще не раз.
Аноним 01/07/20 Срд 22:57:10 1739501401
>>1739472
>Винды
>Дебсы
raise ValueError
Аноним 01/07/20 Срд 23:04:48 1739505402
Я тот анон, который вчера жаловался на неправильные пути файла main.py (путь как на десктопе) в kivy android, и я олень. Не будьте как я.
На самом деле логи пытались мне сказать, что не хватает модулей. А неверные пути он скорей всего писал по причине того, что в апк копируются .pyc файлы, а созданы они были на пк.
В общем читайте логи внимательней. Всем добра
Аноним 01/07/20 Срд 23:13:44 1739509403
Господа, посоветуйте бесплатных интерактивных курсов по питону. Интересует и разработка и анализ данных. Цели вкатиться в разработку или дата сатанизм пока не стоит, слишком глубоко изучить их соответственно тоже, поэтому тратиться на платные курсы не хочу и надеюсь что есть годные бесплатные.
Цели - понять в целом принципы ЯП, разработки и анализа данных, чтобы мог хотя бы читать код и свободно общаться с разрабами и дата аналитиками.
Сейчас прохожу бесплатный курс на code academy, вроде годнота, но он супер поверхностный, рассчитан на 25 часов всего. Есть что-то пообъемнее и поглубже? Чтоб с задачами, практикой и возможностью свериться с эталонным кодом.
Аноним 02/07/20 Чтв 00:28:20 1739546404
>>1733222 (OP)
Блин, кто тут имел дело с Celery? Поставил себе в джанго эту ебень, а она отказывает отсылать e-mail. Причем я таки настроил cron на Celery: каждые 5 минут моя операция исправно запускается, так что утверждать что я где-то неверно настроил Celery не стоит, не работает именно отправка e-mail

Что именно происходит?При некоторых событиях во View вызывается мой таск send_celery_email.delay(), но вот вместо отправки email или хотя бы падения с ошибкой, джанго просто замирает блин и стоит на месте. С помощью могучего дебагачерез print я это и установил: джанго доходит до строчки с вызовом таска а дальше просто стоит, причем он даже не начинает исполнять тело таска (print на первой строчке не срабатывает). Че это такое? Может это с брокером redis что-то не так? Я хз
Аноним 02/07/20 Чтв 00:51:30 1739560405
>>1739546
1. Попытайся вызвать функцию без делея
2. Покажи как ты запускаешь селери
Аноним 02/07/20 Чтв 00:52:44 1739562406
Братцы, есть у кого "Автоматизация рутинных задач с помощью Python" в нормальном качестве? Точно знаю что существует, в сети одна и та-же версия где в оглавлении 60е страницы криво отсканены, хорошую версию никак не найду.
Аноним 02/07/20 Чтв 00:55:06 1739565407
Аноним 02/07/20 Чтв 02:34:18 1739606408
>>1739562
В шапке треда есть книги и там минимум две версии автоматизации задач.
Аноним 02/07/20 Чтв 08:38:17 1739647409
>>1739509
> читать код и свободно общаться с разрабами и дата аналитиками.
о зачем им с тобой общаться ? они уже законченная цепочка решения проблем.

По сатанизму нет курсов отвязанных от ML. Это как-то глупо крутить таблицы не имея цели их загрузки в модели. Этим прекрасно и на delphi занимались последние 25 лет.


Посмотри курсы по питону на stepik-е. Сделай там практические задачи
И курс по ML взять первую часть про вращение данным, а дальше не погружаться.
Аноним 02/07/20 Чтв 08:52:39 1739653410
>>1739505
тебе это и пытались донеси.
Сначала смотришь в логи, а потом совершаешь какие-то (тупые ) действия.
Аноним 02/07/20 Чтв 11:13:19 1739704411
>>1739606
Там одна и та-же версия(хуёвого качества)
Аноним 02/07/20 Чтв 11:34:59 1739725412
>>1739704
Перекатывайся на английские версии или страдай дальше.
Аноним 02/07/20 Чтв 11:37:35 1739729413
>>1738475
Ну да, наверное я раньше времени полез туда, про что еще не читал.

Алгодебил
Аноним 02/07/20 Чтв 11:39:17 1739733414
>>1739565
Библа cfonts, там же написано всё в коде
Аноним 02/07/20 Чтв 12:29:24 1739773415
Пилю auth сервис на django-oauth-toolkit и drf, в ресурсном сервисе на джанго настраиваю интроспект токенов через auth сервис. Поставил dot на ресурсный сервис - работает, но падла тащит все модели, они естественно не нужны. Начал копать в сторону кастомного интроспекта и конкретно запутался. Идея пайплайна для реквеста такая: если реквест с токеном - идём проверять, при положительном ответе смотрим, есть ли такой юзер в бд ресурсного сервиса и, если нет, создаём по информации из ответа. Где нужно делать реквест, а где хэндлер создания пользователя, которого ещё не существует локально? django middleware / drf authentication_class / django authentication_backend?
Аноним 02/07/20 Чтв 12:32:29 1739774416
>>1739773
господи, какая скукота. это в яндексе такое?
Аноним 02/07/20 Чтв 13:00:49 1739798417
>>1739774
Нет, самая обычная контора
Аноним 02/07/20 Чтв 14:57:31 1739908418
Кто-то пояснит, что за странная система миграций и orm в джанге?

Вчера создал новую модель Box, на которую кинул ForeignKey от уже существующей модели Customer. Эта срань падала с ошибкой ProgrammingError при попытке создать миграцию, причем даже если я вручную бы создал файл миграций и попытался сделать migrate, эта манда все равно бы мне показала эту ошибку. Почему? А само поле box = ForeignKey(to=Box, null=True) его вызывает! То есть его надо закомментить и только потом делать migrate, сука нахуя?

Также недавно работал с тестовым проектом из другого места, поэтому изменил в настройках основную БД с Postgres на sqlite (постгреса там не было), решил создать новое приложение через startapp, сын твари упал... Как думаете из-за чего? Из-за невалидного импорта ArrayField в models.py от другого приложения. С хуя ли? Я ему сказал новое приложение создать, его ебать не должно что да как импортируется в другом
Аноним 02/07/20 Чтв 20:06:24 1740099419
>>1733222 (OP)
>>1733222 (OP)
Суп народ

Есть одно тз:
https://docs.google.com/spreadsheets/d/1LFknKlNyarjpAwb5jm-9ZOHyi3zaXt-cadAUo39MSnA/edit?usp=sharing

Тут очевидно про звук что то. Что означают числа в столбце F - я хз.
Подскажите, от чего отталкиваться, чтобы найти особенности в данных? На что обратить внимание, что сделать в первую очередь?
Аноним 02/07/20 Чтв 20:18:39 1740111420
>>1739560
settings.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json',]
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

Запуск celery:
celery -A my_project worker -B -l INFO
Аноним 02/07/20 Чтв 20:35:18 1740124421
>>1740111
А без делея запускается?
Аноним 02/07/20 Чтв 21:04:19 1740146422
>>1740099
распарси F столбец на несколько столбцов,построй pairplot / scatterplot всех признаков со всеми, построй распределения всех признаков (distplot), посмотри если ли выбросы в данных, нарисуй кореляционныую матрицу, посмотри что с чем сильнее всего кореллирует, дальше делай выводы на основе того что видишь
Аноним 02/07/20 Чтв 21:35:14 1740183423
>>1740111
Сколько celery будет актуален? Джанго уже обоссан простейшими фреймворками c uvloop на борту. Где ещё нужен этот комбайн celery+rabbitmq/redis?
Аноним 02/07/20 Чтв 21:38:55 1740190424
>>1740111
Вернее такой вопрос. Будет ли выигрыш в передаче таска (асинхронный реквест + запись в БД) в celery из основного потока?
Аноним 02/07/20 Чтв 22:26:14 1740229425
>>1740146
Звучит нормес, пасиба
Аноним 02/07/20 Чтв 22:48:39 1740240426
>>1740124
>>1740111
Травлю кулстори: по какой-то причине таск фризит только когда я его объявляю через декоратор @shared_task
Когда в файле my_app.tasks я обозначил таск через:

from my_project.celery import app
@app.task(bind=True)

Все завелось и заработало. Естественно надо в таком случае передать аргумент self в функцию, т.к. он туда идет по дефолту
Аноним 02/07/20 Чтв 23:09:43 1740248427
>>1740240
Делал эмейл через шаред и спокойно работало, возможно хуйня где-то в другом месте
Аноним 02/07/20 Чтв 23:18:10 1740252428
>>1740248
Я хер знает, может версии какие-то несовместимы?
redis-server 3.0.6
celery 4.4.5
Django 3.0.7
redis(python) 3.5.3
Ubuntu 16.04
Аноним 02/07/20 Чтв 23:20:11 1740255429
>>1740252
В душе не ебу в чем конкретно проблема, мб ты автонахождение не включил, настроил не так, импортировал хуево. поэтому я уже раза 3 написал вызвать функцию без делэя, чтобы посмотреть в чем именно у тебя блять проблема
Аноним 02/07/20 Чтв 23:25:14 1740261430
Аноним 02/07/20 Чтв 23:28:18 1740265431
Так. Теперь киви приложение на андроид не может выполнить реквест, ругается что не может установить соединение. "HTTPSConnectionPool(host='myhostname', port=443): Max retries exceeded with url: myurl
(Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0xc85f1820>: Failed to establish a new connection: [Errno 7] No address associated with hostname'))"
И как бы да, мой хост был забанен любимым роскомпозором, но я перед запуском приложения подрубил впн на телефоне.
Причем самое смешное, что AsyncImage так же не может загрузить изображение, хотя я даже ради теста взял ссылку на изображение из поисковика. И всё это точно с этой же ошибкой. Такое чувство что моему приложение просто отключили интернет.
Кто-нибудь может подсказать почему такое происходит?
Аноним 02/07/20 Чтв 23:30:22 1740269432
>>1740265
Добавлю что на ПК всё опять же работает
Аноним 02/07/20 Чтв 23:33:55 1740274433
123.JPG (39Кб, 664x330)
664x330
Парни, простите за дурацкий вопрос. Второй день учу питон по самоучителям. Написал простой прогноз погоды с выводом того что одеть отталкиваясь от температуры (что бы девушка не спрашивала каждое утро что ей одеть, лол). Написал все на одном компьютере на версии 3.8.3, сейчас нахожусь на другом компе тут версия 3.4.3. Пытаюсь так же запустить программу с EXEшника она сразу закрывается, а в командной строке выдает пикрелейтед. Очень прошу, разъясните что он от меня хочет. Все модули в питон установились используемые (OWM, Pyinstaller).
Аноним 02/07/20 Чтв 23:36:17 1740277434
>>1740274
Он же тебе написал, что нет модуля с именем 'typing'. Херач pip install typing
Аноним 02/07/20 Чтв 23:36:40 1740278435
>>1740274
typing это стандартная либа начиная с 3.5
Аноним 02/07/20 Чтв 23:37:43 1740281436
>>1740261
Полгода Пичарма довольно дешево выходит - остальное хуйня
Аноним 02/07/20 Чтв 23:38:51 1740284437
>>1740278
Благодарю. У меня тут старый ноут с XP. На него 3.5 не встанет уже.
Аноним 02/07/20 Чтв 23:40:07 1740285438
>>1740284
Можешь его выкинуть и почикать эти типы.
Аноним 02/07/20 Чтв 23:53:52 1740306439
photo2020-05-31[...].jpg (135Кб, 720x1280)
720x1280
>>1740265
>No address associated with hostname
Аноним 02/07/20 Чтв 23:58:47 1740313440
>>1739725
Дык у меня upper intermediate, вся хуйня, просто вечерами как то влом иногда бывает на английском читать - кто бы что ни говорил, но это так или иначе часть ресурсов хавает.
Аноним 03/07/20 Птн 00:02:42 1740319441
>>1740313
Ну так это не худлит чтобы разбирать форму, там по делу пишут.
Аноним 03/07/20 Птн 00:05:30 1740322442
>>1740319
Дружище, я не против книг на английском, просто мне, сука, хочется вот эту вот конкретную книгу, понимаешь? В бумаге, возможно, куплю если не найду, но пока надежды не теряю.
Аноним 03/07/20 Птн 00:29:07 1740339443
image.png (1Кб, 175x54)
175x54
django + react
Они ебанутые?
Аноним 03/07/20 Птн 00:31:25 1740342444
Аноним 03/07/20 Птн 00:32:40 1740343445
>>1740255
Без делея все запускалось... С делеем он даже в тело таска не заходил. Пока буду через app.task сидеть (надеюсь я ничего не наебнул в долгосрочной перспективе)
Вообще говоря redis принимает и возвращает аргументы которые можно сериализовать в json, а как ему python object передать? Это вообще возможно или нинужно?
Аноним 03/07/20 Птн 00:39:40 1740346446
>>1740343
Тогда хуй знает, я помню у меня похожее было, но в итоге вроде оказалось что в самой функции проблемы были, хотя я точно уже и не помню. Попробуй полностью по документации пройтись, там для джанго фактически скопипастить все надо.
>python object передать? Это вообще возможно или нинужно?
Можешь сериализовать и закинуть, можешь взять сразу какую-нибудь django-redis, он сам за тебя будет сериализовать.
Аноним 03/07/20 Птн 00:41:01 1740348447
Аноним 03/07/20 Птн 00:53:23 1740360448
>>1740348
Да нет, самое то. Ты же не будешь писать какой-то выебистый фронт сразу на темплейтах джанго?
Аноним 03/07/20 Птн 00:55:22 1740362449
>>1740348
В чем проблема? У джанги куча модулей не связанных с фронтом, которые могут пригодится
Аноним 03/07/20 Птн 00:55:51 1740364450
>>1740348
Ну апиху спокойно можно накинуть на джанго, просто часть функционала не будешь использовать.
Аноним 03/07/20 Птн 00:59:19 1740366451
>>1737580
Ты же просто калбеки вешаешь на получение эвента, в чем проблема закбошить туда все что хочешь?
Аноним 03/07/20 Птн 01:15:54 1740375452
packages.png (9Кб, 186x281)
186x281
Псос, ебанул я такой pip download channels и он мне скачал штук 20 разных пакетов, как мне их всех перенести и установить на сторонней машине, где нет инета? Чтоб вбить 1 команду и питон сам правильно их поставил, не упав? (на выходные на дачу с херовым инетом поеду)
Аноним 03/07/20 Птн 02:00:44 1740406453
Аноним 03/07/20 Птн 02:48:50 1740412454
Аноним 03/07/20 Птн 09:50:37 1740472455
>>1740412
> 8026 This link has been deleted by the owner.
Аноним 03/07/20 Птн 12:38:08 1740522456
Знание вебсокетов важно любому бэкендеру или это лишнее?
Аноним 03/07/20 Птн 13:02:31 1740545457
Аноним 03/07/20 Птн 13:08:40 1740552458
>>1740522
>Знание вебсокетов важно любому бэкендеру
Аноним