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

Ответить в тред Ответить в тред
Питон тред №94 /python/ Аноним 15/07/20 Срд 17:05:18 17521221
768px-Python-lo[...].png 34Кб, 768x768
768x768
unnamed.jpg 78Кб, 512x341
512x341
scale1200.jpeg 66Кб, 461x604
461x604
176ec51a1258621[...].png 172Кб, 570x390
570x390
Тред, посвящённый языку программирования Питон, #94

Предыдущий: >>1741714 (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
Аноним 15/07/20 Срд 17:08:28 17521292
Вкатившиеся аноны
Нюфани

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

опытные 300к/нс тоже предлагайте, а то шапка полная хуйня
Аноним 15/07/20 Срд 17:15:01 17521383
>>1752129
Раз уж про шапку, то бампану вопрос из прошлого треда

Аноны, недавно книги обновили в шапке, в новых есть Поваренная книга по Докеру, но она за 2015-2016 год, читал кто ее - актуально, или лучше прочитать 2е издание книги от "Ken Cochrane, Jeeva S. Chelladhurai and Neependra K Khare" за 2018 год?
https://www.packtpub.com/free-ebooks/virtualization-and-cloud/docker-cookbook-second-edition/9781788626866
Аноним 15/07/20 Срд 17:17:55 17521404
>>1752129

по-моему малому опыту, но уже испытанных на себе граблях:

1) refactoring.guru добавь. На торрентах есть его 600 рублевая книжка.
2) вот эту хуйню https://pythonawesome.com/
и вот эту https://github.com/vinta/awesome-python
3) https://github.com/aio-libs
https://github.com/MagicStack/uvloop
вот эту хуйню для вкатывальщиков в asyncio
4) Ну прям разжевали и положили
https://medium.com/python-features

ну и ссылки на dev.to, dbader.org. Очень годно пишет, есть платные книги естественно.
Аноним 15/07/20 Срд 17:26:38 17521485
Братаны, прислали тестовое: сделать на выбранном мною фреймворке мини веб-приложение где будет кнопка "авторизоваться", при нажатии на нее происходит oauth в контакте и показывается всякая ебень на этой же страничке
На чем пилить? Если б был свой кастомный crud, то все по хуйне, а так с вк взаимодействовать придется
Аноним 15/07/20 Срд 17:31:04 17521536
Аноним 15/07/20 Срд 17:41:17 17521607
Аноним 15/07/20 Срд 17:48:33 17521718
1594824509623.jpeg 101Кб, 800x450
800x450
Анон, выручай! Вчера мне помогли код написать. Нужно всего лишь строчку желтым выводить. Подправь для вывода, плз.
https://pastebin.com/WszHK8yk


Вот тут написано, что было найдено в аналогичных скриптах, где вводится цветом. >>1751660 → Вся сложность в том, чтобы задать всю эту строчку, как переменную и просто присвоить ей цвет, как я понял.
Аноним 15/07/20 Срд 18:20:31 17522069
>>1752171
Поставь colorama и не еби мозг.
Аноним 15/07/20 Срд 18:28:04 175221210
Аноним 15/07/20 Срд 19:30:16 175225911
Я хуй знает куда обращаться с такими узкоспециализированными вопросами, но может в этом тредю найдутся люди которые поднимали сервер на Sanic внутри WSL.
Аноним 15/07/20 Срд 19:39:21 175226412
>>1752259
ну не sanic, но поднимал. Что надо-то?
Аноним 15/07/20 Срд 19:47:28 175226713
Не можешь понять связку uvicorn-gunicorn что ли?
Аноним 15/07/20 Срд 19:50:05 175226914
>>1752264
Да какая-то куча трейсбеков при попытке это дело просто поднять. Хз какой host и port параметр указывать: 127.0.0.1/8080, 0.0.0.0/8080, localhost/81, ничего не подходит, я эти параметры минут 30 перебирал. А трейсбек один и тот же:
File "uvloop/loop.pyx", line 1879, in create_connection
File "uvloop/loop.pyx", line 1858, in uvloop.loop.Loop.create_connection
ConnectionRefusedError: [Errno 111] Connection refused

Я уже по всем фреймворкам и кейвордам загуглил. Потом пошел, достал ноутбук с 20.04 убунтой, как и версия wsl: все запустилось. Как он может connection refused к локалхосту выводить?
Аноним 15/07/20 Срд 19:51:54 175227115
>>1752269
А у тебя права на пользователя какие? От sudo запусти и все будет работать
Аноним 15/07/20 Срд 20:05:28 175228116
>>1752271
Да под sudo то же самое.
Аноним 15/07/20 Срд 20:08:11 175228317
>>1752281
Выбери порт 8082, значит тот чем-то занят.
Аноним 15/07/20 Срд 20:21:49 175228718
>>1752283
Да так можно вечно перебирать. Ладно, спасибо за помощь, хуй знает, это наверное в фреймворках какая-то проблема, есть какие-то особенности в их работе шо их в WSL не запустить, так как python3 -m http.server поднимает спокойно 0.0.0.0/8000 в терминале.
Аноним 15/07/20 Срд 20:41:35 175229619
Имеет ли смысл юзать aiohttp вместо FastAPI или Starlette?
Аноним 15/07/20 Срд 20:44:45 175229720
>>1752153
Джанго и немного фласка у них. Но им вроде как похуй на мой выбор
Прост для питона есть ебалион oauth2 либ, каждой твари по паре, может кто уже пилил подобное, интересно на чем легче будет
Аноним 15/07/20 Срд 21:26:05 175231421
>>1752287
А у тебя какая версия? WSL2? В WSL1 вроде танцы с бубнами были для прокидывания localhost
Аноним 15/07/20 Срд 21:27:32 175231522
>>1752296
Нет. Это DIY фреймворк. Ещё тебе background tasks самому делать, Pydantic прикручивать и OpenAPI(Swagger). Смысл есть если именно под себя будешь пилить.
Аноним 15/07/20 Срд 21:28:09 175231723
>>1752297
Она уже идёт из коробки с Джанго.
Аноним 15/07/20 Срд 21:31:59 175231924
Тут мне помогут с этим? >>1752280 →

Даже не знаю с чего начать и как.
Аноним 15/07/20 Срд 21:38:35 175232425
>>1752314
Вторая, но я до этого делал даунгрейд и пробовал на WSL 1.
Аноним 15/07/20 Срд 21:42:57 175232926
>>1752315
>Смысл есть если именно под себя будешь пилить.
А, то есть если я хочу вспонить как все это делается или научится, то в самый раз
Аноним 15/07/20 Срд 22:01:15 175233527
>>1752280 →
Делаешь инициализирующую функцию где выбираешь радномно время запуска по какому нибудь промежутку юникстайма на конкретный день или как тебе хочется и формируешь таски. Потом берешь кронолибу, которая бы формировала таски в инициализирующей функции по указанному времени.
Аноним 15/07/20 Срд 23:30:30 175240028
>>1752319
while True:
if 0 < datetime.now().hour < 4:
# do
time.sleep(random.randomrange(0, 10, 1)
time.sleep(random.randomrange(0,10, 1)

Запускаешь скрипт и по проверке работает рутина, либо крон.
Аноним 15/07/20 Срд 23:34:07 175240429
>>1752329
Вспомнить что? Байтоебство? Тебе шашечки или ехать? Если ехать, то бери фреймворк готовый, если хочешь бенчами мериться и майнтейнить проект то aiohttp.
Аноним 15/07/20 Срд 23:55:49 175242030
>>1752400
Я другой нюфак в питоне и вообще программировании: а как работают while true функции? Как часто они проходят этот цикл? Сколько раз в минуту, например? Или они так не работают?
Аноним 16/07/20 Чтв 00:03:12 175243031
>>1752420
Бесконечный цикл. time.sleep(2) заставляет приостановить выполнение на 2 секунды.
Напиши
while True:
print("Gvido was not right about switch statement")
time.sleep(1)
И потом попробуй другие значения. Выход из скрипта ctrl+c
Аноним 16/07/20 Чтв 00:11:38 175243932
>>1752420
Сколько получится.
В старых играх считали время длинными циклами и потом они летали, как появились более быстрые процессоры, лол.
Аноним 16/07/20 Чтв 00:22:55 175245033
Во блин, как во Фласке запарсить текущий url? У меня после редиректа в параметрах url передаются данные (http://myhost.com/#user_id=228), как его оттуда вытащить? Когда делаю:

print(request.full_path)
или
print(request.args)

Он херню печатает:
/?
ImmutableMultiDict([])
Аноним 16/07/20 Чтв 00:26:49 175245334
>>1752450
После # не передается на сервер, это клиентская хуйня.
Аноним 16/07/20 Чтв 00:28:29 175245435
Screenshot20200[...].png 30Кб, 622x250
622x250
Screenshot20200[...].png 66Кб, 725x527
725x527
Продублирую свой скрин из прошлого

Сам метод init тоже что ли надо указывать как async?
---

Немного переделал, все работает, но правильно ли? Хз.
Вызов create_new_game тоже должен выглядть game = await create_new_game() ?
Так же экспериментально было установлено, что в load_questions нужна инструкия return, иначе будет None в переменной, по почему так? await f.read() ведь должен не только возвращать упревление, но и значение, разве нет?
Аноним 16/07/20 Чтв 00:49:46 175246536
>>1752453
Лол и че делать? составлять жс-говнокод на клиенте?
Нафига вк такую хуйню замутила?
Аноним 16/07/20 Чтв 00:50:35 175246637
>>1752319
В инит функцию пихать некомильфо. Возвращает же questions.


В if __name__== 'main':
loop = asyncio.get_event_loop()
game = Game(*args)
loop.run_until_complete(game.load_questions())
,А что вообще должно быть? Aiofiles иногда медленнее отрабатывает чем синхронная. Бывает и такое.
Аноним 16/07/20 Чтв 00:53:10 175246838
Аноним 16/07/20 Чтв 00:54:27 175247139
>>1752465
Так работают т.н. SPA-сайты. Логика и интерфейсы на клиенте, на сервер ходят только за данными.
Можно повторять эти запросы, можно рендерить страницы каким-то селениумом и грабить готовые.
Я хз, что ты хочешь сделать.
Аноним 16/07/20 Чтв 00:56:10 175247340
>>1752465
А ваще бери nginx и njs для парсинга. Один хуй в проде все через проксботает. ожет сразу js внедрять. Типо п
Аноним 16/07/20 Чтв 00:57:44 175247441
>>1752473
Прокси работает. Сразу парсишь запрос и уже идёшь на нужный url, можешь хоть параметры в json перегнать, похуй.
Макака почини ебучую доску
Аноним 16/07/20 Чтв 01:37:03 175249142
>>1752400
Блин,я неправильно пояснили в реквесте.

У меня два скрипта типа perviy_script.py и vtoroi_script.py. запускаю через консолечку, правый клик в папке python3 perviy_script.py user loh pass pidor ковыряюсь в носу жду, потом правым кликом в другой папке типа python3 vtoroi_script.py linage2_bot_run

И он работает 10 мин и выключается.

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

Я так понял рандом должен быть на основе время в системе и вероятности, типа в 16:00 вероятность 50%, в 2часа ночи вероятность 10% и при позитвном отклике вероятности добавить рандомно от 1 до 30 минут к началу запуска что бы не было заметно что чётко включает каждый день сразу в 00 минут.

И как это сделать? Я в программировании ноль....

Сразу на фриланс.ру идти? Мне кажется это все просто должно быть и вы напишете мне на халяву или подскажите что и как это безнадежно я пробовал несколько раз в программирование и не получается
Аноним 16/07/20 Чтв 01:42:49 175249543
>>1752491
Какие там вероятности, блять.
time.sleep(random.randint(1800, 7200))
От полчаса до двух раномная пауза. Потом запускаеешь свои скрипты.
И ставишь в планировщике утром и вечером, например.
Аноним 16/07/20 Чтв 02:45:27 175250844
>>1752122 (OP)
Анон ты вчера мне помог определить айпи используя https://api.ipify.org. А можно ли так же вытянуть, что за страна, и вставить, как значение в строчку вывода?
Аноним 16/07/20 Чтв 03:05:54 175251645
error.jpg 28Кб, 672x190
672x190
>>1752212
>И гуглишь ты ооооочень хуево
Я это нагугли еще вчера, и нихуя у меня не получилось. Твой код тоже не сработал.

Вот два вывода:
>print('ss://%s' % encoded_uri.decode('utf-8') + add)
>print(f'\x1b[0;33;40mss://{encoded_uri.decode('utf-8')}{add}\x1b[0m')

На всякий случай вот еще раз полный код с твоей последней строчкой https://pastebin.com/4zrpxT99
Аноним 16/07/20 Чтв 03:14:30 175251846
>>1752516
Поменяй внешние кавычки на двойные.
Аноним 16/07/20 Чтв 03:29:49 175252047
>>1752518
Анон, ты красавчик! Спасибо тебе большое!
Аноним 16/07/20 Чтв 03:36:08 175252248
Аноним 16/07/20 Чтв 06:57:53 175254349
>>1752522
Делаем домашку и лабы ИТТ бесплатно и смс.

Сам делай, даю подсказку: тебе в ответ приходит JSON.
Аноним 16/07/20 Чтв 07:13:03 175254550
>>1752543
Какую домашку? Я питон в жизни не изучал. Мне просто нужен скрипт, не более. Да и какие домашки, в школе питон что ли проходят? Да и каникулы.
Аноним 16/07/20 Чтв 09:33:32 175257151
>>1752545
Так и зачем ты тогда сюда обратился? Ты данные можешь и curl получить и распарить строку
Аноним 16/07/20 Чтв 10:09:36 175258252
Аноним 16/07/20 Чтв 10:16:02 175258653
image.png 15Кб, 420x285
420x285
Помогите неофиту плес. Почему когда я перевожу строку с латиницей в байты, то получается:
b'abcdeg'
А когда перевожу строку с кириллицей:
b'\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5'
почему так нахуй?
Аноним 16/07/20 Чтв 10:26:58 175259454
>>1752586
Потому что ascii входит в утф-8, а кириллица это мультибайтовая хуйня, энкод которой и дает твой результат.
Аноним 16/07/20 Чтв 10:34:20 175259755
Аноним 16/07/20 Чтв 11:02:50 175261756
>>1752594
>>1752597
Спасибо вам, запутался из-за того что ожидал что encode() вернет мне строку байтов:
encode('abcde') => 97 98 99 100 101
а он возвращает вообще какой то непонятный объект. Пришлось через for вытаскивать значения байтов.
Может у класса bytes есть какой то метод чтобы получить сами значения байтов?
Аноним 16/07/20 Чтв 11:02:57 175261957
>>1752404
>Тебе шашечки или ехать?
Я просто хочу ПОЗНАТЬ КИШОЧКИ
Аноним 16/07/20 Чтв 11:05:04 175262158
>>1752454
>Сам метод init тоже что ли надо указывать как async?
Юзай классовые методы типа такого
@classmethod
async def create(cls):
____connect = await create_connect()
____return cls(connect)
Аноним 16/07/20 Чтв 11:13:51 175262559
>>1752617
Просто выдает принтабельные символы принтабельными, а так представление не имеет значения, может быть хоть так, хоть эдак.
Есть метод hex. Можешь прогонять вручную через list(bytestr).
Аноним 16/07/20 Чтв 11:17:55 175262760
>>1752619
Ну хуй знает. Тебе ещё тонну handler'ов писать и в продакшен ты его никогда не запустишь. Видел недавно поломанную conda с сервисом на twisted. Ну охуеть чо, что-то лазили менять в API и все слетело
Аноним 16/07/20 Чтв 11:49:28 175265961
Аноним 16/07/20 Чтв 11:50:10 175266062
>>1752621
А хотя похуй, как у тебя тоже можно. Чёт вспомнил ws.prepare из aiohttp
Аноним 16/07/20 Чтв 12:00:53 175266763
>>1752659
Это непростая тема и мало кто-то в ней действительно разбирается, в основном нужен какой-то злоебучий проект с этим связанный, чтобы влезть туда и таки прохвать чо почем.
Аноним 16/07/20 Чтв 13:53:10 175279164
Аноним 16/07/20 Чтв 14:04:09 175281365
>>1752791
>Не нашел где скачать.
Хз как правильнее будет скинуть но вот https://dropmefiles.com/MB8Uy
Сравнить с первой не могу, т.к. первую не читал, но пока половину этой прочел - в принципе неплохо, если до этого с докером не работал, наверное, даже совсем неплохо будет. Подробные примеры, картинки, команды дает как легаси (которые почти во всех источниках), так и новые
Аноним 16/07/20 Чтв 14:07:03 175281866
>>1752813
Скачал, скоро залью.
Пробежался по оглавлению и книге - выглядит неплохо, пойдет для в ката в докер, вместо листания документации и гугления. На первых парах, есесно.
Аноним 16/07/20 Чтв 14:26:39 175285767
>>1752813
Пакт довольно стремная контора, я бы от них смотрел в последнюю очередь.
Хотя и там бывает годнота, потому что берут всё подряд.
Аноним 16/07/20 Чтв 18:03:46 175308468
В SQLAlchemy как присваивание поле происходит? Так же как в django orm?
some_object.name = "Some Name"

?
Потом метод .save или ему подобный надо вызывать?
Аноним 16/07/20 Чтв 18:11:10 175309269
Суп программач. Копипастаю из faq тренда. Как мне устанавливать модули питона пипом, чтоб модуль был доступен для всех пользователей?
Типа если я от админа в консоли cmd напишу pip install хуйнянейм, а потом из под юзера запущу питон, то он напишет, что модуля хуйнянейм нет. И приходится запускать питон от админа.
Пять минут в гугле ничего не нашел для винды.
Хелп.
Аноним 16/07/20 Чтв 18:29:13 175310970
>>1753092
Ну ты общую директорию возьми ёпт, у каждого юзера должен быть прописан PYTHONPATH соответствующий.
Хотя я бы сразу на venv садился, ибо нехуй
Аноним 16/07/20 Чтв 20:24:58 175322571
аноны, какие в питоне два метода перегрузки операторов можно использовать для поддержки итераций в классах?
Аноним 16/07/20 Чтв 20:32:46 175322972
ля, когда захожу на погромач в питоновый тред плашка "избранное/топ тредов" чинится и снова отображает новые посты, мистика.
Привет аноны!
Подскажите, пожалуйста, материал по сериалайзерам джанго, не могу понять как собрать ответ вида
{user1:{phone1,phone2},user2:{phone4,phone6}}
из двух таблиц пользователи и телефоны.
Аноним 16/07/20 Чтв 20:49:34 175324573
>>1752454
а чо это за цветовая тема такая? вскод?
Аноним 16/07/20 Чтв 21:07:32 175325774
Аноним 16/07/20 Чтв 21:55:13 175329775
>>1753229
докладывю, разобрался. related_name проебал.
Аноним 16/07/20 Чтв 23:01:27 175334676
>>1753297
А вот как ограничить набор телефонов по какому то префиксу я не нашел :(
Подскажите пожалуйста
Аноним 16/07/20 Чтв 23:23:17 175336377
>>1753346
Это для ДРФ что ли? Можешь модифицировать get_queryset у вьюхи, чтобы выдавала нужные телефоны
Аноним 17/07/20 Птн 00:07:52 175338778
>>1753363
На сколько я понял глядя в доку по get_queryset этим фильтром мы уберем только в начальном сете данных что нам не нравится, в смысле получится отфильтровать имена. Может ошибаюсь.
Нашел для "вложенных" данных способ фильтровать https://stackoverflow.com/questions/28163556/how-do-you-filter-a-nested-serializer-in-django-rest-framework
Аноним 17/07/20 Птн 00:51:59 175340579
>>1752857
Не знал про Пакт, просто искал есть ли новое издание кукбука из шапки, думал мб по аналогии с питоновским кукбуком будет что-то интересное, а в итоге просто неплохая книжка для тех кто с докером не работал, с картинками, объяснениями, ссылками на документацию
Аноним 17/07/20 Птн 01:03:53 175341180
>>1752571
Не могу, т.к. у меня остальной скрипт на питоне. Тебе сложно написать несколько строчек решения?

>>1752582
Не понял что это за скрипт? Ты в нем прописал айпи. Мне лишь надо, чтобы на впске, когда мой скрипт на питоне запускается, то он тащил в скрипт айпи + название страны.

С айпи мне помогли. По сути мне нужно, чтобы добавлялась еще одна переменная в строку вывода, а именно страна. Анон, будь аноном, помоги анону!

https://pastebin.com/4zrpxT99 (страна должна в конце строки добавится, как #country (диез в этом случае обязательная часть, которая в итоговой строчке даст понять, что это страна)
Аноним 17/07/20 Птн 01:55:31 175343081
Как в джанге нормальным способом пропатчить/замокать сеттингс работая с пайтест?

override_settings не работает с пайтестом.
Пач django.conf.settings ничего не даёт.

Всё что нужно - добавить в сеттингс один атрибут на время теста
Аноним 17/07/20 Птн 03:21:05 175344782
>>1753245
Редактор spacemacs, тема spacemacs dark
Аноним 17/07/20 Птн 08:23:33 175353783
парпарпаопп.png 101Кб, 1269x770
1269x770
Всем привет. Камрады пните в нужную сторону плиз. Есть таблица в экселе и также необходимо сделать в Power BI используя Python. Собственно вопрос питон позволяет сделать подобную визуализацию что бы потом можно было подтянуть данные из БД? Что читать ? Куда бежать? Заранее всем спасибо за ответ
Аноним 17/07/20 Птн 08:40:58 175354784
>>1753411
Тебя что не устраивает? Переменную объявил просто так.
Ты голову то включай. Посмотри API сервиса.
Аноним 17/07/20 Птн 08:41:29 175354885
Аноним 17/07/20 Птн 09:28:20 175356686
>>1753537
есть такая дрочильня - redash.io . начни с нее. но она какая-то примитивная.

Или тебя заставляют именно в power bi разобраться? А там теперь есть встроенный питон? И сколько в итоге это будет стоить заказчику?
Аноним 17/07/20 Птн 11:08:02 175361787
>>1752122 (OP)
Подбросили тестовое:

Реализовать демон, который предоставит HTTP API для загрузки, скачивания и удаления файлов
- получив файл от клиента, демон возвращает в отдельном поле http
response хэш загруженного файла
- демон сохраняет файл на диск в следующую структуру каталогов:
​ ​ ​ store/ab/abcdef12345... где в конце - хеш

Удаление и доступ к файлам осуществляются по этому хешу конечно же.
На чем пилить? В смысле - я б навалял подобное на Django но тут нужен "демон", че делать?
Аноним 17/07/20 Птн 11:10:56 175361888
Аноним 17/07/20 Птн 11:12:17 175361989
>>1753617
Смотря на какую это позицию.
Никто не будет против если ты выдашь в результате Dockerfile.
Но может там веб-макакинг?
Аноним 17/07/20 Птн 11:13:04 175362090
>>1753617
Ебать халява. Это откуда такое прилетело?

Это IO-bound, делай на aiohttp+aiofiles, если умеешь.
Аноним 17/07/20 Птн 11:53:22 175363891
>>1753618
Линух Дебиан канешн. Какая ж еще?
Под демоном скорее всего имеется ввиду обычный веб сервер (запускаемый через sudo service)

>>1753619
С докером я на вы

>>1753620
Все что я делал на этих асинхронках это парсил разные сурсы и записывал инфу на драйв. Мне джангоближе
Хз кстати что делать с "хешем". Я б просто uuid намутил и хрен с ним
Аноним 17/07/20 Птн 11:56:20 175364192
>>1753638
1. Ну systemd тогда вот тебе и демон
2. Хэш позволить определить целостность файла, может это подразумевалось?
Аноним 17/07/20 Птн 12:03:58 175365593
>>1753638
Так на какую позицию это задание?
Аноним 17/07/20 Птн 12:20:37 175367494
>>1753638
Скорее всего предполагается, что хеш от содержимого файла даст его уникальное имя. Это будет работать как дедупликация: если много юзеров будут грузить одну и ту же смищную картинку, то система не будет дублировать ее данные, а зальет ее только один раз. Если взять от хеша первые несколько символов, то ты можешь создать подкаталог, в который положишь сам файл. Это нужно потому, что файловые системы обычно хуево переживают миллион файлов в одном каталоге. В каждый из подкаталогов будет падать примерно одинаковое количество файлов с хеш-именами, потому что каждая часть хеша имеет линейное вероятностное распределение.

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

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

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

2) Хоть задача передачи и складывания файлов является IO-зависимой, подсчет хешей будет CPU-зависимым, так что при одновременно загружаемом большом числе маленьких файлов или меньшем числе больших, система встанет раком из-за подсчетов.

Можешь сказать, что при неизвестном профиле нагрузки имеет смысл попилить задачу на две части: один демон будет принимать и складывать вообще все файлы на диск под временными именами, а второй демон будет просыпаться при определенных условиях (при достижении какого-то количества файлов >>И<< раз в несколько минут), чтобы прохешировать и дедуплицировать данные. При этом задачу именования файлов следует тоже разделить на две части: давать файлам имена по уидам, возвращать юзеру этот уид, а потом, когда хеш будет посчитан, сделать какие-то пометки в какой-нибудь бд про соотношения уида и содержимого.
Аноним 17/07/20 Птн 12:33:02 175368595
>>1753641
Я через supervisor чаще пилил

>>1753655
Джун это. На пистоне прогаю около 1.5 лет но о вкате стал задумываться не так давно. Специальность которую я закончил была связана с инфокоммуникациями поэтому бэкграунд по сетям у меня уже был, но на ней ловить нечего, по крайней мере в России

>>1753674
Спс, годно
В задании кстати не определено что это за "файлы" и каков их размер
Аноним 17/07/20 Птн 12:43:39 175370396
>>1753685
Раз не определено, то пиши в соответствии с ТЗ и приложи к этому пояснительную записку. Скорее всего от тебя ждут именно решения в лоб и будут не слишком рады, если ты начнешь задавать вопросы без решения. А вот показать, что у тебя есть мозг, все-таки стоит.
Аноним 17/07/20 Птн 12:54:49 175371797
>>1753685
Ну сейчас массовый перекат на systemd даже LTS, но внутрянка systemd конечно же отличается. Параметры там например сложнее задавать. Я пилил на systemd, так как ubuntu 18.04
Аноним 17/07/20 Птн 13:02:24 175372498
>>1753717
Делай /etc/conf.d/blabla с переменными окружения для сервиса и будет тебе счастье. Ну и еще override. Это не сильно отличается от rc.

Хотя systemd, конечно, говно.
Аноним 17/07/20 Птн 13:14:02 175373299
>>1753674
Нинада делать возвращение uuid вместо хеша, у нас так в соседнем отделе завалили чувака, который задачу не по ТЗ сделал, хотя все было хорошо
Аноним 17/07/20 Птн 13:18:03 1753739100
>>1753732
Я же написал, что надо делать по ТЗ и приложить свои комментарии, ну.
Аноним 17/07/20 Птн 13:49:57 1753797101
Кстати, но есть же небольшая вероятность что хеши разных файлов совпадут. Как с таким борятся? В том же словаре питона эти файлы просто будут положены в одну "ячейку-массив" где после совпадения по хешу будет линейный поиск за время О(n), а как быть в остальных случаях?
Аноним 17/07/20 Птн 13:55:23 1753804102
>>1753724
В systemd Environment задаётся
>>1753797
The hash of a file is the hash of its contents. Metadata such as the file name, timestamps, permissions, etc. have no influence on the hash. Assuming a non-broken cryptographic hash, two files have the same hash if and only if they have the same contents.

Это тот же файл будет. Пропусти I/O операцию в таком случае,не?
Аноним 17/07/20 Птн 15:11:06 1753907103
>>1753797
Такое можно специально скрафтить, а для реальных юзабельных файлов вряд ли возможно.
Аноним 17/07/20 Птн 15:37:53 1753923104
Ruby JavaScript-дебил вкатывается в тред. Много лет назад вкатился в кодинг через Рубин на Рельсах. Рельсировал недолго, а работу нашёл вообще фронтендером. Сейчас ищу что-то для быстрых бекенд прототипов с норм языком. Node.js естественно пробывал, но ощущения не те. Мозг сопротивляется писать иначе на ноде, чем для браузера. Типа язык тот же, но набор фич разный. В итоге вместо быстрого прототипа я в среднем сижу неделю и настраиваю проект (все эти линтеры/бабель/конфиги баз данных/ормы и т.д.). Помню в своё время как легко было фигачить круды на рельсах. Но рельсы официально ВСЁ. Поэтому выбор пал на Питончик. Аноны поясните чому тут такие сложные инструменты? Попробовал запилить хеллоу-круд на Джанге и началось:
1. Выбери виртуальную среду (venv/pyenv/virtualenv)
2. Выбери пакетный менеджер (pip/pipenv)
3. Создай ручками то/это/поправь конфиг

Я что-то не так делаю? Есть ли что-то для яваскрипт-дебилов наподобие рельсов?

Питон учу чтобы перекатиться потом в дэйта сайенс
инбифо: яваскрипт-дебил может перекатиться только нахуй
Аноним 17/07/20 Птн 16:36:35 1753970105
>>1753923
>1. Выбери виртуальную среду (venv/pyenv/virtualenv)
Чтобы не засирать машину десятками сторонних либ ты делаешь виртуальную среду, при переносе на сервер собрать список нужных либ можно 1 командой, а не вычленять и составлять его самому из всех либ что есть на ПК. Если работал на ноде, считай что с виртуальным складываешь все в node_modules в проекте, а не засираешь папками весь ПК
>2. Выбери пакетный менеджер (pip/pipenv)
Пользуйся пипом и не еби мозги
>3. Создай ручками то/это/поправь конфиг
Все равно все шаблонно идет везде
Аноним 17/07/20 Птн 18:21:13 1754035106
>>1753923
1. pipenv тебе сразу ее создаст
2. pipenv сразу генерирует зависомсти и версионность пакетов
3. шаблонизируй хуле

Потом через pipenv проще будет разворачивать на проде (так обещают)
Аноним 17/07/20 Птн 18:21:43 1754037107
Как кстати сервится файл когда юзер запрашивает его через api? Раньше мне приходилось сервить только статику и картинки, с обоими задачами справлялся nginx, когда я ему просто передавал нужный url, а что если юзер запрашивает произвольный файл?
Открывать его через open(filename, "rb") норм? Это не дыра в безопасности? И не лишняя ли нагрузка на систему? Есть способы более эффективно сервить файлы в частности в джанго?
Аноним 17/07/20 Птн 18:29:32 1754042108
>>1754037
> from django.http import FileResponse
>>> response = FileResponse(open('myfile.png', 'rb'))
А где там дыра? Ну так валидируй тип файла имя по regex.
Проверь что это именно имя файла.расширение а не /etc/groups
Аноним 17/07/20 Птн 18:49:26 1754063109
Если случайно активировать pycharm Pro чужим ключом, владелец ключа может получить доступ к проектам/исходникам?
Аноним 17/07/20 Птн 20:11:33 1754124110
Аноны, прошел курс по python на coursera от ВШЭ, было кучу задач по матеше и как такого опыта мало дало. Что посоветуете делать дальше?(P.S мне 17 лет, так что универ не вариант)
Аноним 17/07/20 Птн 20:28:08 1754132111
>>1754124
А что ты хочешь? Если просто так изучаешь, то кури django. Делать свои веб приложение это хотя бы полезно
Аноним 17/07/20 Птн 20:34:28 1754139112
>>1754132
Читал, что для data science нужна высшая матеша, думал попробовать на ruby, что про него скажешь?
Аноним 17/07/20 Птн 20:41:21 1754147113
>>1754139
> думал попробовать на ruby
Нахуя.
Для этого есть python и R. По ним больше всего инфы, курсов и тд.
Дата сайенс очень чего в себя включает. Матеша нужная для машинного обучения, после первого курса норм зайдет, а так у тебя мотивации не хватит разобраться, думаю. Лучше тогда кеггл дрочить и уже потом разобраться как оно работает.
Аноним 17/07/20 Птн 22:15:15 1754219114
>>1752122 (OP)
Слушайте, можно ли в теории реализовать такую задумку на питон kivy?

Приложение для интервального повторения повторения мат формул, значений тригонометрии, интегралов, возможность добавлять свои формулы, значение. Я использую подобное приложение для изучения инглиша, за месяц бустанул словарный запас от нищих 700 слов до 2.4к в реальности чуть меньше, но не намного.
Аноним 17/07/20 Птн 23:58:47 1754293115
>>1754219
в теории можно все.
а разве нет универсальных приложений куда загружают эти файлы?
Аноним 18/07/20 Суб 00:36:51 1754309116
>>1754147
Насколько сложно написать какого-нибудь несложного бота и что для этого нужно?
Аноним 18/07/20 Суб 00:52:21 1754324117
Как сделать ретраи в стиле DRY? Вместо вот такого:
while i <= 5:
....try:
........some_fucking_operation()
........break
....except:
........i += 1
Аноним 18/07/20 Суб 00:56:05 1754327118
.webm 1160Кб, 750x1058, 00:01:03
750x1058
Как перестать писать скрипты и начать писать программы?
Непонятно, то ли знания ООП и паттернов проектирования страдают, то ли я в принципе не умею в питоню.
Начал писать файловый процессинг с валидацией и шифрованием, тем не менее кажется что мой код - некрасивая, кривая хуйня (костыль).
Чего не хватает, что почитать?
Аноним 18/07/20 Суб 01:00:56 1754330119
>>1754324
Из этого отрывка не совсем понятно чего ты хочешь добиться.
DRY - по мне так из разряда того, что ты не должен копипастить свой код на разные методы.
Если есть что-то повторяющееся, то выноси в отдельные классы/методы и переиспользуй их.
Аноним 18/07/20 Суб 01:01:04 1754331120
Аноним 18/07/20 Суб 01:03:15 1754333121
.webm 10452Кб, 441x567, 00:02:35
441x567
>>1754309
Почитать пару док по либам, как они работают, и собственно всё.
На первом этапе думаю этого хватит.
Остальные технические нюансы узнаешь в процессе, если они тебе понадобятся.
Аноним 18/07/20 Суб 01:03:31 1754334122
>>1754327
Про рефакторинг почитать. GoF - refactoring.guru, про "паттерны" через builtin на medium есть примеры.
Аноним 18/07/20 Суб 01:08:00 1754335123
>>1754309
>Насколько сложно написать какого-нибудь несложного бота
Ровно настолько же, насколько сложного бота ты хочешь написать.

>что для этого нужно?
Чем писать, на чём писать, время чтобы писать, еду и питьё, доступ в интернет (опционально).
Аноним 18/07/20 Суб 01:09:11 1754336124
>>1754309
Можешь написать жука-спредовика. Мне мой в своё время на пару пива за день наскребал. находил штук 20 полудохлых монет с большим спредом и небольшой активностью, и держал крайние позиции. Не знаю, будет ли сейчас работать. Года 4 назад дело было.
Аноним 18/07/20 Суб 01:12:31 1754338125
>>1754330
вконце забыл sleep(1)
Смысл в том, чтобы повторять выполнение некоторых операций some_fucking_operation(), если они вернут исключение. Операции могут быть разные в разных мястах, и для каждой строки такую обвязку писать неправильно. А штатного метода типа декоратора @repeat(5) для отдельной строки кода не нашел.
Аноним 18/07/20 Суб 01:18:34 1754340126
.webm 12563Кб, 660x720, 00:01:46
660x720
>>1754334
Паттерны с guru и брал , в принципе, там классно описано, мне нравится.
Знаешь, такое чувство, что в коде слишком много императивщины.
Я пытаюсь прикрутить объекты, но основной каркас получается как последовательность инструкций - это так у всех, или только у меня?
Собственно я один на проекте и подчерпнуть знания не у кого особо.
Листаю гит, смотрю как опытные дядьки делают, но чет не особо выходит, как по мне.

Один из вопросов конфигурации - жескто волнует.
Вот у меня есть yaml файл конфигов, как мне заебись описать структуру таким образом, чтобы у меня все поля были описаны по типу гошной структуры.
Типо если я напишу:

class Config:
class DataSource:
url: str
username: str
password: str
...
а потом прочитаю yaml файл с помощью pyyaml, и запишу в поля класса, это нормально будет?

не хочется юзать простой словарь - там не понятно какие ключи есть, а каких нет
Аноним 18/07/20 Суб 01:29:17 1754342127
.webm 3392Кб, 1280x720, 00:02:47
1280x720
>>1754338
Может у тебя изначальный поход немного не тот?
Зачем тебе повторять некоторые операции несколько раз подряд.
Если это решение каких-то проблем с сетью, то ты можешь на более низком уровне абстракции эти репиты сделать, а потом во всех high level методах переиспользовать один метод, который будет репитить операцию, если не получил ответ например.
Аноним 18/07/20 Суб 01:59:13 1754348128
>>1754342
Ну пусть будет деление на n, где n - случайное число, или работа с файлом, который может быть занят, или таймаут какой-нибудь, да тысячи применений, а метод по сути универсальный.
Аноним 18/07/20 Суб 02:02:48 1754350129
Как упорядочить информацию о питоне и его обширных стандартных библиотеках и стоит ли вообще этим заниматься? Я то все время просто гуглю "how to do X in python", и точечно смотрю что я могу сделать и с помощью чего, а что нет и надо искать либы в pip. Меня такой подход не подводил, но что на собесе по этому поводу спрашивают? Я же не скажу им на интервью: "сейчас, загуглю, поищу в доках минут 15 и скажу ответ". Или вот такие вещи как дата классы. Новая фишка, совсем необязательная, столкнулся с ней на моем проекте. Так бы вообще про них не узнал, а выглядит полезно. И сколько еще такого, что просто не найти, так как гайды двух и трехлетней давности?
Аноним 18/07/20 Суб 02:06:07 1754352130
>>1754350
Вот тоже интересно. Без фильтра по дате в поисковике уже никуда, времена такие. Но всё равно этого мало.
Аноним 18/07/20 Суб 08:05:45 1754408131
Неофит на связи.
Как мне задать множество чисел, например множество K от 1010 до 1020, при этом не храня все промежуточные значения?
Аноним 18/07/20 Суб 08:07:02 1754409132
>>1754408
10^10 до 10^20
быстрофикс
Аноним 18/07/20 Суб 08:14:36 1754411133
>>1754408
И что с ними делать предполагается?
Аноним 18/07/20 Суб 08:17:06 1754412134
>>1754408
>Как мне задать множество чисел, например множество K от 1010 до 1020, при этом не храня все промежуточные значения?
Через генераторы же: range(10^10, 10^20). Значения будут вычисляться по мере надобности.
Аноним 18/07/20 Суб 08:30:38 1754415135
>>1754411
Допустим, мне требуется проверить принадлежность объекта к заданным большим множествам
Аноним 18/07/20 Суб 08:38:26 1754416136
>>1754415
Можно сделать класс и в нем реализовать метод __contains__, тогда можно будет проверять через n in obj.
Аноним 18/07/20 Суб 08:48:19 1754418137
>>1754416
Кстати, стандартный range это уже умеет, оказывается, лол.
Аноним 18/07/20 Суб 09:37:29 1754420138
>>1754418
>range это уже умеет
Во бля, мне именно это и надо было, спасибо.
Аноним 18/07/20 Суб 10:21:33 1754432139
Сап дорогие аноны.На связи ньюфаг, который просит помощи у достопочтенных анонов.Суть задачи такова: есть список рандомных строк, и нужно написать функцию которая принимает этот список и возвращает среднюю длину слов в этом списке.Я код накатал, но не пойму в чем ошибка что он не работает.Помогите пожалуйста.Вот то что у меня получилось:

lst = ['Samsung', 'Apple', 'Sony', 'Nokia', 'HTC','Xiaomi']

def avg(lst):
for i in lst:
if i in lst:
return sum(len(i)/float(len(i)))

avg(lst)
Аноним 18/07/20 Суб 10:23:01 1754433140
>>1754350
>Я то все время просто гуглю "how to do X in python",
так сделай pip install howdoi
лол.
Аноним 18/07/20 Суб 10:32:13 1754436141
>>1754432
У тебя вообще какая-то бессмыслица.
Вот как-то так.
sum(len(el) for el in lst) / len(lst)
Аноним 18/07/20 Суб 10:38:27 1754437142
>>1754350
Я для любой технологии собираю книжки формата cookbook.
Читаешь оглавление. Примерно запоминаешь что такие то классы задач описаны и потом при необходимости вчитываешься.

Конечно, они имеют тенденцию устаревать. Но можно же с нее начинать. Там точно отфильтрована масса.
Эта в 2013 написана :

Python. Книга рецептов / пер. с анг. Б. В. Уварова. – М.: ДМК Пресс,
и страниц не очень много - 648

Ну а после pip, нужно выработать некое чувство оценки github.
Метрики - звездочки, активность разработчиков, набор открытых и закрытых issues.


Вообще не вижу тут особой проблемы. Поиск новых библиотек так часто у тебя происходит? Со временем ты их все узнаешь и перестанешь беспокоиться.
Аноним 18/07/20 Суб 10:40:24 1754438143
Screenshot187.jpg 13Кб, 420x171
420x171
>>1754433
кстате, программа бомбовая.
ну реально же самый частый вопрос программиста - с фильтром по stackoverflow
Аноним 18/07/20 Суб 10:54:38 1754441144
>>1754436
Пожалуй ты прав.По твоему варианту вижу что я вообще не то делаю.Спасибо дорогой анон за помощь.Добра тебе няш)
Аноним 18/07/20 Суб 14:58:10 1754611145
15950114571340.jpg 10Кб, 329x331
329x331
Шарит кто за pytest?
Пробую запустить файст text_name.py через cmd командой pytest -v а он мне PermissionError: [WinError 5] Отказано в доступе
В чем прикол? От имени администратора пробовал запускать, конечно. Дал админу полный доступ к дискам и файлам, не помогает
Аноним 18/07/20 Суб 15:01:53 1754615146
>>1754611
было бы проще если бы ты написал полную команду вместе с ошибкой
Аноним 18/07/20 Суб 15:05:46 1754625147
image.png 62Кб, 970x448
970x448
Аноним 18/07/20 Суб 16:08:49 1754711148
Что можно почитать про компьютерное зрение для python 3.x?
Аноним 18/07/20 Суб 16:32:07 1754732149
>>1754711
там же где и про python 2.x - библиотека opencv

но вообще, нынче модно image embeding и облачное зрение.
Загружается в Гугл картинку - получаешь текст описания.
(и продаешь последние штаны чтобы иметь возможность оплачивать счета GCP)
Аноним 18/07/20 Суб 16:48:52 1754744150
>>1754441
А мне вот интеерсен ход мыслей в твоём варианте. Чисто ради фана.
Аноним 18/07/20 Суб 17:07:26 1754758151
>>1754432
>if i in lst:
к чему эта проверка вообще? что ты ей хотел сделать?
Аноним 18/07/20 Суб 17:12:21 1754764152
Почему на слудющем шаге ноль записывается в каждый вложенный список массива game_board, а не только лишь в тот единственный на котором остановилась итерация ?
Аноним 18/07/20 Суб 17:13:39 1754765153
2020-07-18 2105[...].png 21Кб, 1088x676
1088x676
Почему на слудющем шаге ноль записывается в каждый вложенный список массива game_board, а не только лишь в тот единственный на котором остановилась итерация ?
Аноним 18/07/20 Суб 17:16:42 1754768154
2020-07-18 2117[...].png 54Кб, 1600x900
1600x900
Получается вот так
Аноним 18/07/20 Суб 17:17:14 1754769155
>>1754765
потому что каждый вложенный список у тебя по-сути является ссылкой на один и тот же объект
Аноним 18/07/20 Суб 17:17:47 1754771156
>>1754765
Потому что для каждого условия один и тот же m
Аноним 18/07/20 Суб 17:23:22 1754781157
image.png 17Кб, 514x297
514x297
>>1754765
>>1754769
Если тебе нужно поле 6 на 7, организуй через два генератора списков
Аноним 18/07/20 Суб 17:35:31 1754794158
>>1754769
Не понял, нихуя. i == 0, это первый список из массива. И я записываею в этот список цифру, почему записывает и в следующий ведь до i == 2 еще не дошло. Схуя ли он лезет в каждый вообще ?
Аноним 18/07/20 Суб 17:37:55 1754798159
>>1754781
ок буду знать что так можно спс
Аноним 18/07/20 Суб 17:40:48 1754803160
>>1754781
Только нахуя это делать если так меньше писать ??
Аноним 18/07/20 Суб 17:44:30 1754806161
>>1754771
Для какого каждого условия ? Если один шаг и каждый список меняется
Аноним 18/07/20 Суб 17:47:58 1754808162
>>1754794
Потому что каждый список у тебя - это один и тот же объект, а не 6 разных
Аноним 18/07/20 Суб 17:50:35 1754810163
>>1754808
То есть мой массив и вот этот массив >>1754781 это разное или что ?
Аноним 18/07/20 Суб 17:53:08 1754813164
>>1754808
Да действительно, пздц спс
Аноним 18/07/20 Суб 17:54:10 1754814165
>>1754781
Терь я осознал твой ответ царский, спс
Аноним 18/07/20 Суб 17:54:49 1754817166
>>1754810
Анон в >>1754781 создает разные массивы, ты же создаешь 1 и просто несколько раз его размножаешь, но по сути это все еще 1 и тот же массив.
Аноним 18/07/20 Суб 17:56:29 1754819167
Aa3iDjTFo2k.jpg 73Кб, 604x477
604x477
Всем спс, cнимаю шляпу в благодарочке
Аноним 18/07/20 Суб 19:52:30 1754905168
>>1752430
switch на словаре пашет норм но выглядит уебищно
Аноним 18/07/20 Суб 19:55:41 1754906169
Как в Джанго или в другом веб приложении сделать перенаправление с www сразу на этот же ресурс но без приставки www?
У меня просто https://myresource.com бесит когда добавляется www и ничего не открывается
Аноним 18/07/20 Суб 20:09:53 1754913170
Аноним 18/07/20 Суб 20:16:10 1754920171
Аноним 18/07/20 Суб 20:21:41 1754925172
Аноним 18/07/20 Суб 20:24:53 1754928173
Двачане, как найти стажировку по путону, если я студяга работяга закончивший 2 курс. И сколько времени нужно потратить на получение знания для прохождения стажировки успешного допустим с нуля, хотя не совсем так, ибо в других языках опыта немного есть. На плюсах год сидел по долгу учёбы, потом семак java дрочил и js пол годика. Но всё дальше лабораторок не заходило, что грустно. Вот решил в питон вкат оформлять тотальнофинальный так что задаю вопрос сюда. Алсо как питон для спортивного программирования, а то после курса дискретки хуяка стоит на это. Прямо хочется попробовать. И если не трудно там около роудмап какой-нибудь мне дебилу. Буду премного благодарен, а так же с меня как обычно ни-ху-я
Аноним 18/07/20 Суб 20:28:46 1754932174
>>1754928
Пиздец твою речь читать сложно крч не осилил дальше вопроса

> Двачане, как найти стажировку по путону
читаешь про стеки-хуеки, пробуешь, понимаешь чем хочешь заниматься. Составляешь резюме, смотришь на hh вакансии, рассылаешь по тем которые максимально подходят тому чем ты хочешь заниматься. Первый год работай за символическое бабло в районе 20к-40к, потом можешь перекатываться на человеческую 100к

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

бесплатные стажировки шли нахуй
Аноним 18/07/20 Суб 20:31:08 1754937175
>>1754928
> как найти стажировку по путону
Джаст гугл ит.
> И сколько времени нужно потратить на получение знания для прохождения стажировки успешного допустим с нуля, хотя не совсем так, ибо в других языках опыта немного есть.
Зависит только от тебя.
> Алсо как питон для спортивного программирования
Медленный, из преимуществ только длинка.
> И если не трудно там около роудмап какой-нибудь мне дебилу.
Джаст гугл ит.
Аноним 18/07/20 Суб 20:39:03 1754946176
Господа, помогите понять как в сериализаторе ДРФ сделать обратную вложенность. Вот у меня есть модель "сеансы" которая определяется внешним ключом к "фильмам" и в.к. к "кинотеатрам". Если я беру стандартный пример из доки. Во вьюхе беру "фильмы" и собираю сериализатор по этой модели с дополнительными полями "сеансы" которые получаю через обратную привязку и указанием в поле "фильмы" модели "сеансы" related_name.
Получается я разобрал свои "сеансы" по фильмам, а как разобрать "сеансы" по фильмам и по кинотеатрам одновременно, чтобы была структура такого вида {фильмы: [фильм1:{названиеФильма, ещеКакиетоДанные, кинотеатры: [ кинотекатр1:{названиеКинотеатра, ещеКакиетоДанные, сеансы: [ сеанс1:{данные1бданные2}]}]}]}
Аноним 18/07/20 Суб 20:59:12 1754956177
>>1754937
Сори что доёбываю своей шизофазией, но не подскажешь +- набор знаний для успешного прохождения стажировки?
Аноним 18/07/20 Суб 21:06:10 1754960178
Гайс! Начальство въебало говна и решило, что я прогроммист и в общем надо автоматизировать обработку эксель файлов.
Помогите понять логику того, что надо сделать.
Короче, есть 300-400 одинаковых по структуре эксель файловс разными названиями офк, их надо объединить в один и по нескольким столбцам просуммировать соответствующие ячейки т.е. чтобы в итоговых ячейке С2-С100 была сумма всех С2-С100 из этих файлов.
Какой алгоритм для такой хуйни будет?
Аноним 18/07/20 Суб 21:10:57 1754964179
>>1754932
>Первый год работай за символическое бабло в районе 20к-40к, потом можешь перекатываться на человеческую 100к
Через год он перекатится максимум на 60, если в ДС.
Аноним 18/07/20 Суб 21:16:05 1754968180
.png 109Кб, 643x748
643x748
.png 245Кб, 639x721
639x721
.png 144Кб, 634x660
634x660
.png 321Кб, 638x739
638x739
>>1754956
Бля, я потерял письмо с заданием, которое мне давали для стажировки в мыло. Могу просто покидать вакансии стажировок из телеги, где есть питон
Аноним 18/07/20 Суб 21:18:37 1754970181
>>1754960
Читаешь по очереди и хранишь-считаешь в структурах, потом в конце пишешь структуру в финальный файл.
Аноним 18/07/20 Суб 21:22:22 1754974182
>>1754968
А можешь сам канал со стажировками кинуть? А то чёт уже стыдно что так тебя доебал
Аноним 18/07/20 Суб 21:25:01 1754977183
>>1754974
Ты не сможешь к нему присоединиться, канал приватный и коннектится к нему можно было только тем, кто на курсы от мыла ходил.
Аноним 18/07/20 Суб 21:32:42 1754982184
>>1754977
Ну тогда покидай, если не трудно...
Аноним 18/07/20 Суб 21:33:22 1754984185
>>1754977
А то я почекал со скринов в гугле, вакансий таких нигде нет, так что видимо это пожилая инсайд инфа
Аноним 18/07/20 Суб 21:35:58 1754986186
.png 390Кб, 632x825
632x825
.png 488Кб, 635x822
635x822
.png 631Кб, 632x809
632x809
.png 745Кб, 634x766
634x766
Аноним 18/07/20 Суб 21:37:30 1754987187
.png 88Кб, 378x778
378x778
>>1754984
Это все этого года вакансии. Просто скорее всего их в открытом доступе нет.
Энивей чел спрашивал про то, что нужно знать для стажировки с питоном.
Аноним 18/07/20 Суб 21:45:51 1754995188
>>1753547
Я не шарю в питоне. Будь бабло щас, заказал бы у фрилансера этот тупой скрипт. Но на мели. Помоги анон, поделюсь парочкой впсок для впн. Можешь свой поднять или можешь моими шс пользоваться. Просто заебался уже вручную каждый раз делать. Так хоть скрипт будет рутиную работу сокращать.

В идеале еще хочу, чтобы вывод конечной строчки помимо выводил куар прямо в терминал. Опять же примеры нашел, но не ебу
Аноним 18/07/20 Суб 21:52:25 1754996189
>>1753547>>1754995
Ну вот я смог нарыть например, как тащить джейсон
>import requests
>response = requests.get("http://ip-api.com/json/")
>response.raise_for_status()
>print(response.json())

А дальше? Как из этого словаря вытащить страну и в переменную его закинуть, чтобы в конечный вывод вывести, включая переменную?
Аноним 18/07/20 Суб 21:56:36 1754998190
>>1754995
https://pastebin.com/31qJU7Wp
Строчки 16, 22, это то, что я добавил. Я бы от халявной впски не отказался. Пиши в телеге @besteady отвечу, если надо ещё как-то поправить
Аноним 18/07/20 Суб 21:58:37 1754999191
>>1754987
Рубрика вопросы от ретарда продолжается.
А с какого момента можно считать, что я знаю питон и могу кидать заявку, а то питон как и почти любой другой яп это ебучий океан бесконечного познания и досконально его знать скорее всего нельзя
Аноним 18/07/20 Суб 22:06:27 1755005192
>>1754998
Только я наркоман. В 22 не нужно было добавлять. Поправил.
Аноним 18/07/20 Суб 22:08:13 1755008193
>>1754999
> А с какого момента можно считать, что я знаю питон и могу кидать заявку,
Вот тут я кстати не смогу ответить. Но вообще это наверное можно нагуглить, какие вопросы спрашивают на собесах по питону.
Аноним 18/07/20 Суб 22:10:06 1755011194
image.png 45Кб, 621x273
621x273
>>1754946
Я нахуячил говна и палок во вьюхе перебором 2диктов. И мне стыдно :(
Аноним 18/07/20 Суб 22:12:36 1755013195
>>1755011
А нет! Не двух, а трех! теперь еще тоскливее.
Аноним 18/07/20 Суб 22:34:23 1755030196
>>1754946
Не совсем понял структуру моделей, но если судить по примеру с JSON`ом, то делай по возрастающей, сериализатор к сеансу, потом сериализатор к кинотеатрам, в котором поле сеансы сериализуется с помощью прошлого, потом также для фильма.
Аноним 18/07/20 Суб 23:23:06 1755072197
image.png 90Кб, 809x730
809x730
image.png 41Кб, 712x342
712x342
>>1755030
Я так же размышлял, но видимо мне не хватило мозгов это реализовать. В доке приведен пример где "агрегрирующая" модель(типа сверху json идет из первого ключа к последующим) выводит в себе другую модель.
если провести аналогию, то "альбом"в примере, это мой "кинотеатр", а "трэк" - это "сеанс".
Вот подобное одиночное я могу соорудить, а что-то отличное от доки я сделать не могу. Типа собрать кинотеатры по сеансам, я хз как.
Если подскажите, что гуглить или как делать буду благодарен.
Аноним 18/07/20 Суб 23:35:42 1755084198
>>1755072
>Вот подобное одиночное я могу соорудить, а что-то отличное от доки я сделать не могу
Так просто сделай одиночное, а потом добавь еще 1 слой, там же в доках показано как сделать их еще и для записи.
>Типа собрать кинотеатры по сеансам, я хз как.
Фильтр по квери параметрам?
Аноним 19/07/20 Вск 00:51:02 1755136199
>>1754998
Добавь try...except иначе на таймауте или недоступности все будет крашиться. Например глюк DNSresolver или задержки на линии.
Я попадал на такое с aiohttp.
>>1754995
Сразу нельзя было сказать? Но на твоем месте я бы попробовал вкатиться в скриптоебство. Просто потому что в следующей реализации что-то поменяется или придется что-то расширить.
Понятно что сейчас у тебя "дедлайн", но так-то азы выкурить легко.

Аноним 19/07/20 Вск 01:02:53 1755140200
Это сводный отчёт что-ли? Представь что все файлы у тебя это листы excel. Скриптом читаешь (скорее всего придется делать мультипоток) все файлы, сохраняешь в массивах необходимое и потом пишешь в итоговый (сводны отчёт) файл.
Однако если количество ячеек (т.е. массивы разные по размерам) придется приводить их эталону. Например если массив А имеет 20 элементов, а массив В 18 элементов, то либо ты создаёшь маппинг А['А1':10, 'A3':20]..... B['A1':30, 'A2':10]...., либо считаешь сразу, что если в сводном ячейка есть, а в исходном нет, то добавляешь в массив исходного значение 0 с индексом отсутствующего элемента. Как-то так. Попробуй нарисовать, мне лень.
Аноним 19/07/20 Вск 10:49:14 1755285201
>>1754960
Это вообще в самом екселе делается спокойно. погугли
Аноним 19/07/20 Вск 12:48:26 1755326202
Аноним 19/07/20 Вск 12:51:08 1755327203
>>1755072
Сериализатор внутри сериализатора
Аноним 19/07/20 Вск 15:16:58 1755389204
>>1754960
открываешь exel файл в pandas, сохраняешь данные в этом файле в отдельный дата фрейм где будут хранится все объединенные файлы, потом открываешь следующий exel файл и конкатинируешь его к тому дата фрейму, потом как нибудь посчитаешь сумму по строчкам или столбцам смотря как тебе надо
Аноним 19/07/20 Вск 17:13:10 1755429205
image.png 9Кб, 402x174
402x174
Вкатыш на связи. Файлы объектов это итераторы? что тогда вызывает метод __next__() ?
Аноним 19/07/20 Вск 17:36:09 1755437206
Как создать внутри класса счетчик его экземпляров?..
Ну допустим у меня есть переменная класса MyClass.counter и она увеличивается при каждом вызову __init__, но как ее уменьшать при удалении?..
Аноним 19/07/20 Вск 17:38:24 1755440207
Привет, как удалить строку в файле, зная её номер. К сожалению встроенного простого средства для этого я не нашёл.
Конечно можно сперва прочитать при помощи readlines
Затем удалить элемент по индексу
и получившуюся парашу записать в файл переписав всё содержимое
Может быть знаете вы знаете более изящный способ?
Аноним 19/07/20 Вск 18:12:57 1755462208
Есть ли какой-то cheat sheet чтобы проверить работу или наличие какой-либо стандартной функции или либы для конкретной версии питона. Проект работает на 3.5.9, но совместим с 3.6.8 и пишу на нем. Хотел использовать fстринги, но заметил что они только в 3.6 появились. Не хочу все время ловить ошибки на CI/CD.
Аноним 19/07/20 Вск 18:58:47 1755490209
>>1755437
__del__, но переменная != экземпляр, а все передачи значений в питоне идут по ссылкам
Аноним 19/07/20 Вск 19:00:15 1755491210
>>1755440
можно открыть в режиме a дойти курсором до нужного места и начать с него перезаписывать
Аноним 19/07/20 Вск 19:00:37 1755492211
>>1755462
сделай в venv такую же версию как и на проде
Аноним 19/07/20 Вск 20:14:45 1755529212
>>1755136
>Понятно что сейчас у тебя "дедлайн", но так-то азы выкурить легко.
Нет никакого дедлайна. Я для себя это делаю. Просто нехуй заняться, застрял из-за вируса, и без впн нихуя не работает. Заодно и решил настроить скрипт, т.к. пробую разных хостеров и утомился каждый раз вручную прописывать.

>Добавь try...except
Так помоги, добавь. А то может чел выше не увидит.

>>1754998
Напишу.


Аноним 19/07/20 Вск 20:25:50 1755539213
>>1755429
Да, можно делать for line in fh
>>1755429
Поэтому можно делать так ^, через тот же enumerate, построчно читая и записывая и пропустив нужную строчку.
Аноним 20/07/20 Пнд 01:12:37 1755654214
.jpg 80Кб, 1920x1080
1920x1080
Какой пайтоновсвкий фреймворк для GUI посоветуете, чтобы максимально быстро и беспроблемно забабахать вот такой простенький интерфейс, как на пикрелейтед? По сути, слегка интерактивную таблицу. В ячейки периодически текст выводится.
Аноним 20/07/20 Пнд 01:15:17 1755656215
>>1755654
Ах, да, ещё чтобы с ресайзом по минимуму пердолиться пришлось.
Аноним 20/07/20 Пнд 02:54:13 1755677216
Аноним 20/07/20 Пнд 11:04:41 1755813217
Аноним 20/07/20 Пнд 11:22:30 1755817218
image.png 33Кб, 664x274
664x274
>>1755327
>>1755084
Ребята спасибо, но видимо я слишком туп чтобы это сделать
upd:
>Сериализатор внутри сериализатора
Переопределение метода помогло, спасибо
Аноним 20/07/20 Пнд 12:46:00 1755863219
>>1755654
вообще-то, в guizero есть grid. попробуй.

Проблема сверхбыстрых фреймворков, что они частенько оказываются недостаточно полными и ты все равно попадаешь в дыру.
Аноним 20/07/20 Пнд 13:11:18 1755877220
20200720130813.jpg 514Кб, 1078x1592
1078x1592
Ммм, как же обожаю эти вакансии "без опыта"
Аноним 20/07/20 Пнд 13:18:12 1755882221
>>1755877
Норм. А че? Там нужно знать питон и статистику в рамках вуза.
Дальше ковыряешь вилкой данные и подносишь на блюдечке настоящему ML-щику.
До нейросеток не допустят еще 5 лет.
Аноним 20/07/20 Пнд 13:41:33 1755904222
Screenshot20200[...].jpg 126Кб, 1078x680
1078x680
>>1755877
Вот это получше будет
дс2
Аноним 20/07/20 Пнд 13:42:25 1755907223
Аноним 20/07/20 Пнд 13:56:23 1755916224
Аноним 20/07/20 Пнд 14:17:31 1755939225
Там альфу джанги 3.1 с асинхронными вьюхами выкатили
https://docs.djangoproject.com/en/3.1/releases/3.1/
Есть вообще существенная разница между деплоем wsgi и asgi приложений? Раньше только с синхронными дело имел
Аноним 20/07/20 Пнд 14:22:29 1755948226
Аноны, какими атрибутами я могу прочитать файл?
Аноним 20/07/20 Пнд 15:45:50 1756008227
Относительно простого задеплоеного проекта на Джанго со 100% коверейджом и простеньким фронт-ендом на Вью достаточно, что хотя пройти на собес?
Аноним 20/07/20 Пнд 18:34:22 1756156228
+= это python way или лучше так не надо?
Аноним 20/07/20 Пнд 19:10:15 1756178229
>>1756156
В PEP8 используют, но не для строк - там лучше не надо
Аноним 20/07/20 Пнд 19:29:33 1756191230
image.png 84Кб, 1046x83
1046x83
Чем вариант с пика отличается от
print (name + "написал" + book)?
или в каких ситуациях второе используется?
Аноним 20/07/20 Пнд 19:36:33 1756197231
Аноним 20/07/20 Пнд 19:39:07 1756201232
Аноним 20/07/20 Пнд 20:15:21 1756231233
>>1755907
Какая-то госпараша в ДС2, ага
Я вот перекатываюсь тоже с "госслужбы". Концерн Алмаз-Антей, если че. Но тут пока такой хуйни нет
Аноним 20/07/20 Пнд 20:17:53 1756234234
>>1756008
1. Хрюша может просто скипнуть твое резюме без объсянения причин
2. Надо будет выполнить тестовое прежде чем попасть на собес
3. Помимо пистона придется расшарить еще N дисциплин, например базовую настройку серваков, протоколы, sql и nosql бд, линух, докеры (опционально)
Аноним 20/07/20 Пнд 21:17:44 1756287235
Можно как-нибудь посылать запросы с одного и того же айпи всегда? Или только за бабло наверное? Пишу тут программку чтобы статистику из дрочильни загружать, а там апи токен к ip адресу привзан какого-то хера, а он меняется постоянно разумеется.
Аноним 20/07/20 Пнд 21:21:21 1756292236
>>1756287
аренда vps
купить статический айпи у провайдера
если ответ не важен, то можно подменять
Аноним 20/07/20 Пнд 21:32:21 1756301237
>>1756287
>а там апи токен к ip адресу привзан какого-то хера
Епт, регаешь серв, пишешь вебхук на фласке. Problems?
Аноним 20/07/20 Пнд 22:07:25 1756330238
Антоха, как сделать вот такое отложенное поведение:

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

сам я ещё никогда ничего толкового не делал с асинком или потоками, так что не знаю как подойти к этому. возможно есть какой хитрый функционал в стандартной библиотеке, но я не знаю.
Аноним 20/07/20 Пнд 22:53:09 1756367239
>>1756292
>>1756301
Ну я и говорю что за бабло. Ок, спасибо. Просто не такая уж важная информация, чтоб за неё платить. Хотел просто попробовать бота написать, а идей не было. Вот подумал типа можно бота сделать, который статистику об игре будет выводить или про кланы.
Хотя вот 2 дня токен не обновлял, а он работает до сих пор.
Аноним 20/07/20 Пнд 23:18:51 1756402240
>>1756367
На хероку можно поднять бесплатную хуитку, но я не уверен, что там будет статический айпи. Можешь попробовать.
Аноним 20/07/20 Пнд 23:30:55 1756417241
1.png 162Кб, 1600x900
1600x900
2.png 146Кб, 1600x900
1600x900
Вообще, я тут ещё всё это захотел в класс запихать чтоб круто типа. Гляньте плз, так вообще делают? По-моему удобно. Я типа создаю игрока, а потом всякими методами что надо получаю.
А потом можно будет создать класс про кланы и унаследоваться от этого класса и типа к каждому игроку клана применять методы игрока. Я правильно понимаю суть ООП, лел? Ну типа норм в конструктор запихивать запрос, сохранять весь ответ, а потом уже применять к этим данным методы?
>>1756287
Аноним 20/07/20 Пнд 23:33:03 1756419242
image.png 5Кб, 421x45
421x45
Аноним 21/07/20 Втр 00:29:07 1756468243
>>1756419
что-то одна хуйня гуглится
Аноним 21/07/20 Втр 01:55:35 1756486244
>>1756417
Сорян, хрень какую-то написал. Чего я там наследовать буду, если запрос в конструкторе. Надо будет просто для каждого игрока в клане свой объект создавать и все.
Аноним 21/07/20 Втр 08:41:57 1756540245
Пацаны, помогите с матрицами, нихуя не понимаю. Нужно обойти матрицу и найти кратчайший путь от первого элемента к последнему. Патрица NxM Крашусь уже на попытке обойти матрицу, так как ебашусь об границу, а как проверить границу матрицы - хз. Я понимаю, что должно получиться что-то типа дерева и в конце минимальный находим и все. Помогите плиз
Аноним 21/07/20 Втр 10:19:13 1756567246
>>1755939
А в чем смысл асинхронных вьюх-то? Внутри ж все равно синхронный код сидит
Аноним 21/07/20 Втр 12:20:43 1756634247
>>1756567
Сразу все поменять сложно, поэтому постепенно делают. Сейчас можно уже в каких-то отдельных вьюхах пробовать мутить, потом ещё че добавят. Так шаг за шагом и релизнуть через год-два
Аноним 21/07/20 Втр 12:22:00 1756637248
>>1756540
try except IndexError
Ну или магия if i < N and j < M
Аноним 21/07/20 Втр 12:34:12 1756646249
>>1756540
Ты попробуй себя прочитать и понять, что ты написал. Может сам до идей каких дойдёшь.

Как у тебя матрица задана? В каком формате она тебе передаётся? Что ты подразумеваешь под "обойти матрицу"?

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

Что такое "кратчайший путь"? Как ты считаешь длину пути, метрика какая?

Вот видишь, сколько вопросов. Если ты ответишь на них, вероятно ты сам решение придумаешь. А пока не ответишь, только гадать остаётся.
Аноним 21/07/20 Втр 16:07:43 1756836250
Как на низком уровне обрабатывать (принимать и отсылать) rest-запросы в Питоне?
Я нахерачил несколько View на джанго rest но это не дает особого понимания работы всего механизма
Аноним 21/07/20 Втр 16:32:53 1756858251
>>1756836
напиши не на джанго а на werkzeug каком-нибудь
Аноним 21/07/20 Втр 17:02:31 1756872252
>>1756567

Ээээ, ну можно вот это спиздить например иp Starlette и забыть про Celery

async def coro1():
await asyncio.sleep(5)

async def coro2():
await asyncio.sleep(3)

@app.get('/')
async def asyncio_view(request):
tasks = BackgroundTasks()
tasks.append(coro1)
return Response('Response now and tasks after!', background=tasks)

Аноним 21/07/20 Втр 17:02:42 1756873253
list = [1, 2, 3]
for a in list:
if a == 1:
do something
continue
elif a == 2:
do something
continue
elif a == 3:
do something
continue
else:
do something

Нужны ли тут continue? У меня программа построена так, что она войдет только в одно условие на каждом проходе цикла, но я хотел еще сделать чтобы она не проверяла на соответствие остальные условия, после того как нашла что хотела. Или питон это сам делает?
Аноним 21/07/20 Втр 17:25:41 1756884254
>>1756873
>Нужны ли тут continue?
Нет.
Аноним 21/07/20 Втр 17:53:47 1756913255
>>1756836
Ты же просто можешь код модуля посмотреть. Алло, это же интерпретируемый язык.
Аноним 21/07/20 Втр 19:13:00 1756993256
надо ли ебаться с локами, например на изменение множества, при использовании asyncio?
Аноним 21/07/20 Втр 19:30:15 1757010257
>>1756993
если не создаешь копии объектов, то по-хорошему надо.
Аноним 21/07/20 Втр 20:01:53 1757037258
>>1756836
Какие кстати есть нормальные бэкенд фреймворки для Пистона в 2020 кроме Джанго? Предпочтительно с асинхронностью
Просто смотреть в сети этот лол, по числу звезд на гитхабе например Фласк стоит на 1м месте среди всех питоновских фреймворков, но бля Фласк это ж тупое говно тупого говна
Аноним 21/07/20 Втр 20:19:22 1757045259
>>1757037
Пистон не для бэкенда, учи джаву
Аноним 21/07/20 Втр 20:21:37 1757049260
>>1757045
>джаву
>2020
Ммм, щас бы говна навернуть
Аноним 21/07/20 Втр 20:50:20 1757089261
Дорогие аноны, прошел курс от ВШЭ и хочу спросить, что делать дальше? Основу понял, но не уверен, что это вся. Так вот вопрос, стоит ли переходить на следующий уровень, а именно django или лучше почитать больше литературы?
Аноним 21/07/20 Втр 21:38:19 1757140262
>>1757089
>курс от ВШЭ
Если в этом курсе не было: баз данных, контейнеров, линуха, базовых алгоритмов, TCP/IP, основ борцовской техники и мастер-класса Гордона Рамзи, то курс твой и выеденного яйца не стоит
Аноним 21/07/20 Втр 21:44:31 1757146263
Сап аноны,
Вот есть сайт, на котором через время появится кнопка, однако на данный момент ее код отсутствует и появится лишь с обновлением. Возможно ли как-то прописать код для нажатия этой кнопки заранее? То есть прога будет работать и при обнове сайта она находит кнопку и нажимает ее.
Если нет, то вопрос другой - как на Manjaro заставить выдавать звуки? На винде был winsound, тут же не понятно, print('\a') и подобные команды для alert звука не срабатывают. Причем на винде\онлайн компиляторе работает и видимо именно ОС блокирует этот звук
Аноним 21/07/20 Втр 21:46:00 1757148264
>>1757146
>То есть прога будет работать и при обнове сайта она находит кнопку и нажимает ее
Исполняемый код внутрь <script> засунуть?..
Аноним 21/07/20 Втр 21:55:21 1757152265
>>1757148
А как я буду обращаться к кнопке если не знаю ее id? Идея вообще была, что селениум открывает браузер и находит ее, только как все это реализуется без знания того как будет выглядеть код кнопки не ясно
Аноним 21/07/20 Втр 22:00:19 1757159266
>>1757045
Питон для бэкэнда самое то.
Аноним 21/07/20 Втр 22:32:30 1757186267
Епт, че-то не пойму, pydantic это только для валидации данных? Качественно на нем БД сделать нельзя?
Аноним 21/07/20 Втр 22:52:40 1757195268
>>1757186
> pydantic это только для валидации данных
да

> Качественно на нем БД сделать нельзя
шта
Аноним 21/07/20 Втр 23:05:57 1757210269
>>1757037
Самый "взрослый" это FastAPI. Нагрузили всем необходимым, но можно и на Starlette делать (FastAPI на его основе сделан).
Sanic вроде как ещё быстрее, но количество issues удручает. Aiohttp нормальный такой скелет для создания своего фреймворка.
Да и погуглить можно python3 asyncio web.
У FastAPI и Sanic ооочень годная документация. У FastAPI есть свой CookieCutter образ как для Django.
В комплекте FastaAPI+VueJS.
Как запускаться: Linux, так как uvloop на шиндоус не завезли и uvicorn дропает поддержку IOCP + nginx + gunicorn + uvicorn + starlette/fastapi.
Nginx идёт с поддержкой JS внутри, так что дохуя можно и там валидировать или же изменять запросы на сам бэк. Gunicorn это WSGI, а uvicorn ASGI и занимается как раз uvloop петлей и другой логикой для асинхронного фреймворка. Вот так на пальцах.
Для ORM GINO или peewee.
Аноним 21/07/20 Втр 23:13:29 1757216270
>>1757210
в peewee завезли асинх?
Аноним 21/07/20 Втр 23:13:52 1757217271
>>1757210
>Nginx идёт с поддержкой JS внутри,
это какой-то новодел для пидоров.
nginx идет с поддержкой lua .
Аноним 21/07/20 Втр 23:21:17 1757222272
>>1757216
Кривой. Есть peewee-async. GINO пока только postgres поддерживает, хотя это самый адекватный вариант. Tortoise ORM двигается медленно (сука, каламбур) в версиях, но поддерживает все SQL кроме корпоративных и хочет взять лавры SQLAlchemy но в асинхронке.
В peewee хоть связи объектов нормально можно выстроить.
Как вариант... Возможно. Вообще перекат на GraphQL и тогда похуй на все.
Аноним 21/07/20 Втр 23:23:41 1757223273
>>1757222
> GraphQL
мне оч нравится он идеологически, но вот писать эти query резолверы выглядит как шаг назад по сравнению с пайдентик+фастапи.
Если есть опыт, то не подскажешь чего годного погуглить чтобы сделать графкл апи?
Аноним 21/07/20 Втр 23:25:14 1757226274
>>1757217
Как по мне вещь годная. Сразу шлак отсеиваешь или статикой отвечаешь. return 202/204 например (inb4 никто не смотрит статус коды)
Аноним 21/07/20 Втр 23:29:32 1757229275
>>1757223
Сам пока ковыряю, на FastAPI есть документация или была.
Я только по документации учу. Ещё issues смотрю, там часто решения проскакивают.
Аноним 22/07/20 Срд 05:30:25 1757378276
>>1757210
Совсем FastAPI не зашел, ну его нахуй. Aiohttp/falcon/flask - ван лав.
Gino это отдельный пиздец, мне иногда казалось, что это говно нихуя не продакшен-рэди.
На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ, а ебли меньше.
Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже.

Мимодругойанон

Вопрос знатокам:
Какие реальные задачи помогает решить использование асинхронного веб-фреймворка, в отличие от синхронного?
Аноним 22/07/20 Срд 05:31:16 1757381277
>>1757146
>как на Manjaro заставить выдавать звуки
Любым плеером?
Аноним 22/07/20 Срд 10:01:13 1757453278
>>1756913
Там черт ногу сломает
Аноним 22/07/20 Срд 10:05:27 1757455279
>>1757210
>gunicorn + uvicorn
Это ж взаимоисключающие параграфы
Либо одно, либо другое
Аноним 22/07/20 Срд 10:10:33 1757457280
>>1757223
>мне оч нравится он идеологически,
Переизобретение SQL для джаваскриптодебилов?
чем? это же полностью ебанутая хуйня, которая со временем пройдет
Аноним 22/07/20 Срд 10:30:45 1757464281
>>1757457
"GraphQL заменит REST точно так же как MongoDB заменил Postgres"
Аноним 22/07/20 Срд 10:33:10 1757466282
Screenshot20200[...].jpg 206Кб, 1078x687
1078x687
Вот кстати немного мудрости от залетного зумерка с Хабра, который возбудился от фразы "GraphQL" но не воодушевился "нормальной формой", ибо на одной мухосранской конфе с нее повели носом
Аноним 22/07/20 Срд 11:02:17 1757486283
>>1757466
Не помню на память, какая нормальная форма о чём, но все они о том, чтобы избежать дублирования данных, чтобы не хранить те данные, которые можно получить из других.

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

Надо хорошо понимать все плюсы и минусы, та вещь, которую в теории надо знать. Академическая наука.

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

Аноним 22/07/20 Срд 11:19:07 1757498284
Аноним 22/07/20 Срд 12:06:15 1757530285
>>1757378
А ты ждешь что если нумерация 1., а не 0., то это готовое к продакшену?
>Совсем FastAPI не зашел
Ну хуй знает. А что именно не так? Он под влиянием Джанго и Фласки же создавался.
>На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ
Это даже нагрузкой нельзя считать.
>Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже.
А что там у тебя такое CPU bound? Asyncio это же вообще про другое.


>>1757455
Я тоже так считал.

As a general rule, you probably want to:

Run uvicorn --reload from the command line for local development.
Run gunicorn -k uvicorn.workers.UvicornWorker for production.
Additionally run behind Nginx for self-hosted deployments.
Finally, run everything behind a CDN for caching support, and serious DDOS protection.

Сами разрабы так советуют. В принципе uvicorn за nginx reverse-proxy нормально работает.





Аноним 22/07/20 Срд 12:53:31 1757550286
>>1757378

https://www.starlette.io/background/
https://flask.palletsprojects.com/en/1.1.x/patterns/celery/

Вся разница по сути. Ну или если хреновый вариант (почему я смотрю в сторону GraphQL) и для выдачи результата нужен запрос в несколько БД (MySQL, PostgreSQL/Redis), то можно их выполнить таким образом

async def get_from_rdbs(id):
data = .... # коннектимся и получаем результат, надо делать обработчики ошибок и прерванного коннекта
return id, data

async def get_from_memory_db(id):
data=.... # то же самое

async def log_operation(log_data:str):
# пишем асинхронным логгером запись, что были запрошены данные тогда-то и тогда, можно ошибки записать сюда

@app.get('/user/{id}')
async get_user_by_id(id):
tasks = BackgroundTasks()
tasks.add_tasks(log_operation('Requested data of user ID {id}')
gathering_tasks = []
gathering_tasks.append(get_from_rdbs(id)
gathering_tasks.append(get_from_memory_db(id)
rdbs_result, memorydb_result = await asyncio.gather(*tasks)

return JSONResponse({'SQL':rdbs_result, 'Redis':memorydb_result}, background=tasks)
Сначала ответ, потом логирование. Возможно Celery в этом плане лучше, так как в pending tasks в таком случае ничего бы не было. А так добавился таск логирования.

Используем асинхронные библиотеки чтобы не блокировало asyncio loop. SQLAlchemy сразу на выброс



Аноним 22/07/20 Срд 13:31:20 1757566287
>>1757550
Мда, ну такое себе, спасибо, антош.
>>1757530
> А ты ждешь что если нумерация 1., а не 0., то это готовое к продакшену?
Тогда не понимаю чому ты ее тут указал, она ж не готова для спокойного запуска и работы.
peewee неплоха, но чот непривычно после алхимии.
АсинкПГ норм, но привязка к постгресу не всем подходит.
> >Совсем FastAPI не зашел
> Ну хуй знает. А что именно не так? Он под влиянием Джанго и Фласки же создавался.
Под влиянием то да, как-то жерез жопу сделано, как по мне.
> >На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ
> Это даже нагрузкой нельзя считать.
Можно. Во-первых это не малые значения, во-вторых каждый запрос ещё идёт в бд, что тоже даёт нагрузку.
> >Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже.
> А что там у тебя такое CPU bound?
> Asyncio это же вообще про другое.
Хм, у меня - ничего, фласк запускаю с uwsgi и он создаёт процессы/потоки, в них идёт обработка запросов, поэтому и потребление ЦПУ возрастает.
Аноним 22/07/20 Срд 13:35:21 1757570288
>>1757498
Информативно. Не скажешь, почему он такой?
Аноним 22/07/20 Срд 13:38:32 1757574289
>>1757566
>Хм, у меня - ничего, фласк запускаю с uwsgi и он создаёт процессы/потоки, в них идёт обработка запросов, поэтому и потребление ЦПУ возрастает.
Например, у тебя будет по 300-400 запросов в секунду в базу, засирать все процессами/потоками можно только ограниченно. Так же тебе не дадут всемогущий цпу и для оптимизации утилизации ресурсов юзается асинхронность, т.к. все эти 300 запросов можно обрабатывать в одном потоке.
Аноним 22/07/20 Срд 13:54:09 1757592290
>>1757574
Когда будет пиковая нагрузка в 60%+ по ЦПУ я возьму новый сервер и сделаю балансировку запросов через нжинкс. Она и сейчас есть, но джаст фор фан.
Но суть я уловил.
Для небольших проектов хватает синхронных фреймворков, но опыт работы с асинхронными - жирный плюс.
Аноним 22/07/20 Срд 13:58:36 1757594291
>>1757566
Ну ты хотел разницу увидеть ASGI/WSGI вот она, а чем асинхронные либы отличаются от обычных тебе >>1757574 рассказал.

Если сравнивать треды и корутины, то тут без бенчмарков все ясно, просто посмотри на htop. Даже в idle режиме полный пиздец творится.
>>1757592
>Когда будет пиковая нагрузка в 60%+ по ЦПУ
Ну везет, хули. А бывает и так:
перенесли все с Windows 2016 с 2/4 core 4 Gb на писюльку 4/4 (Celeron) с 4Gb, но уже на Linux. Так там охуенно удалось развернуться и въебать Process и разелить логику с монолита на отдельные сервисы. Когда говорил: "а не дешевле ли взять одну хорошую машину и запустить все в Docker" мне сказали что денег не запланировано, баста.

По сути это 10 объектов с такими вот мини серверами. Каждый со своей логикой и задачами.
Аноним 22/07/20 Срд 13:59:56 1757596292
>>1757594
Ну и вдовесок. Задача такая чтобы логика отрабатывалась именно на локальных серверах, единый йоба сервер нельзя. Нет гарантированного канала связи. В ином случае все бизнес процессы встают колом.
Аноним 22/07/20 Срд 14:06:56 1757602293
>>1757592
>Когда будет пиковая нагрузка в 60%+ по ЦПУ я возьму новый сервер
А потом тебе девопс говорит, что бы ты шел нахуй и переписывал свой говнокод, т.к. на новый сервис денег не выделили
Аноним 22/07/20 Срд 14:07:12 1757603294
>>1757602
на новый сервер
фикс
Аноним 22/07/20 Срд 14:25:31 1757619295
>>1757602
Время разработчика стоит дороже.
Аноним 22/07/20 Срд 14:26:51 1757621296
>>1757570
Если ты прошел и не понял, то могу только посочувствовать
Аноним 22/07/20 Срд 14:26:56 1757622297
>>1757619
У фласка/фаст-апи примерно одинаковая скорость разработки
Аноним 22/07/20 Срд 14:30:22 1757624298
>>1757619
Потому тебе дают фреймворки и инструментарий, чтобы не городить велосипед.

Ты же должен понимать, что если куча данных бизнес-логики хранится в памяти (даже не NoSQL), а просто в виде словарей, объектов тем больше у тебя ресурсов требуется. И не всегда это решение лучше чем чтение с диска или по сети.
Аноним 22/07/20 Срд 15:09:51 1757647299
>>1757619
Мы таким зарплатную карту прямо в Amazon AWS заводим.
Аноним 22/07/20 Срд 15:30:35 1757661300
Раз тут асинхронная шняга пошла, то вопрос, как вы решеаете проблему гонки в микросервисах?
Я вижу два варианта:
Первый, завести хранилище типа etcd и при апдейте делать проверку лока и реджектить запрос. Из минусов я вижу сетевые задержки и новую точку падения.
Второй, делать шардирование по ключу между несколькими инстансами и выполнять их последовательно. Тут минусы в настройке балансировщика (хз даже что тут юзать, на ум только кафка какая нибудь приходит) и более сложная реализация (хотя может и нет, так как никогда такого не делал)
Аноним 22/07/20 Срд 15:55:02 1757683301
>>1757621
Ясно, понятно, никакой конкретики. А так, я новичок и мне не понятен твой бугурт в мою сторону. Я же не могу понять, хороший ли этот курс или нет, т.к. другого я не видел.
Аноним 22/07/20 Срд 16:31:05 1757748302
Screenshot186.jpg 45Кб, 810x434
810x434
>>1757661
MYSQL LOCK TABLE FOR UPDATE

ахаха блядь.


че за тупые вопросы? Никак они не решают. Проебывают данные.
Как и вся индустрия.
Аноним 22/07/20 Срд 17:02:07 1757787303
народ, вопрос по Django
Передаю в Шаблон некий контекст(к примеру 100 записей из Модели запросом Model.objects.all())
Как из шаблона вызвать к примеру - Model.objects.all()[-10]
То есть мне надо 10 последних записей нарисовать в шаблоне циклом
Аноним 22/07/20 Срд 17:02:36 1757789304
Аноним 22/07/20 Срд 17:05:24 1757792305
>>1757787
Там же в документации описано, братиш
>Entry.objects.all()[:5]
Аноним 22/07/20 Срд 17:58:45 1757833306
однозначно
Аноним 22/07/20 Срд 18:19:56 1757854307
>>1757661
в микросервисах есть такой паттерн как sage (саги / повествования)
погугли
Аноним 22/07/20 Срд 18:49:00 1757866308
>>1757602
Сервер стоит 5-10-15$.
Если выросла нагрузка == пришли клиенты == получили прибыль. Либо бизнесс одобряет горизонтальное масштабирование и загребание $$$ дальше, либо нахуй.
Аноним 22/07/20 Срд 18:55:21 1757873309
>>1757866
>== пришли клиенты
>== получили прибыль
пришли боты. Твой алгоритм?
Аноним 22/07/20 Срд 18:55:27 1757874310
>>1757866
> 5-10-15$
с двумя гигами оперативы?
Аноним 22/07/20 Срд 18:56:11 1757876311
>>1757873
въебать 1млн$ в безопасность
Аноним 22/07/20 Срд 19:13:14 1757896312
Как попасть на работу джуну ? Живу в дс2, смотрю объявления на хх, так без опыта там их штук 20, 10 из которых занесло туда кривым поиском и ищут там с +3 года опыта.
Аноним 22/07/20 Срд 19:20:00 1757902313
Посмотрел я такой про fastapi и решил заделать на нем бота для телеги (логика связана с обращениями к вк через их апи) но сцуко че-то взять в толк не могу: обращения к бд же внутри роутов через Алхимию будут синхронными... как добиться асинхронного чтения из бд?..
Аноним 22/07/20 Срд 19:22:13 1757905314
Аноним 22/07/20 Срд 19:23:25 1757906315
>>1757902
aiomysql, aiopg,...

Если ты пришел с Django я чот разочарован. Настолько привыкли что все out of the box? Прямо отдельная каста, лол.
Аноним 22/07/20 Срд 19:27:10 1757909316
image.png 7Кб, 647x155
647x155
>>1757905
Пиздец. Что же рыночек так порешал то а.
Аноним 22/07/20 Срд 19:36:47 1757914317
>>1757909
>Что же рыночек так порешал то
На западе тонны перекатывающихся в веб парашу дата саенсистов/аналитиков /матанофизикохимиков/ебланивших компутер саинтестов и инженеров некуда девать
Аноним 22/07/20 Срд 19:42:14 1757918318
Есть какие нибудь способы обхода javascript'a для парсинга кроме webdriver'a selenium'a?(да я знаю что порой лучше юзать api когда это возможно)
Аноним 22/07/20 Срд 19:57:09 1757930319
Аноним 22/07/20 Срд 20:24:27 1757953320
>>1757918
Для ажахов и подобной хуйни проще подсматривать и повторять запросы, так даже проще.
Исполнять жабаскрипт в большинстве случаев нужно только для всяких челленджей и подобных защитных шняг. Для них тоже можно обойтись без браузера и гонять через ноду.
Аноним 22/07/20 Срд 21:27:14 1757994321
Мне надо проитерировать список, и на каждой итерации проверять элемент, следующий за текущим. Как это сделать?

for i in items:
....if i != items[items.index(i)+1]:
...

Вариант не рабочий, потому что index(i) ищет первое вхождение, а элементы могут повторяться.
Аноним 22/07/20 Срд 21:28:21 1757995322
>>1757994
Есть мысль завести переменную-счетчик, но не слишком ли это колхоз?
Аноним 22/07/20 Срд 21:29:07 1757997323
>>1757994
Через enumerate получи индексы.
Можно ещё зипнуть с сдвигом.
Аноним 22/07/20 Срд 21:30:27 1757999324
>>1757997
О! Я и забыл про нее. Сознательно старался обходить enumerate, zip и map после того, как узнал про listcomp-ы.
Аноним 22/07/20 Срд 21:50:34 1758012325
Screenshot from[...].png 45Кб, 1435x410
1435x410
Screenshot from[...].png 27Кб, 1003x242
1003x242
>>1757874
Ну допустим.
>>1757873
Клиенты == занесли деньги
А борьба с ботами это отдельная тема.
Аноним 22/07/20 Срд 22:33:28 1758049326
>>1758012
>1CPU
Дешевле стак из малинок сделать, лол.
Аноним 22/07/20 Срд 22:44:38 1758056327
>>1758049
Да, ведь это одно и тоже.
Аноним 23/07/20 Чтв 00:28:08 1758161328
Няши, а чем в 2K20 году пользоваться в качестве ORM?

Я когда-то давно пользовал SqlAlchemy, но тогда мне не было никакой нужды в миграциях и версионировании БД...
Аноним 23/07/20 Чтв 01:37:10 1758188329
Аноним 23/07/20 Чтв 02:17:13 1758193330
pic1.PNG 21Кб, 869x174
869x174
pic2.PNG 24Кб, 842x186
842x186
В скрипте запускаю мейн с n=4. Каждый таск делается 3 секунды.
Если делать как на первом пике, то выдаёт Task was destroyed but it is pending! потому что скрипт выполнился за 1 секунду и таски не успели сделаться(я так понимаю).
На втором пике с костылем в виде слипа всё норм работает.

Как сделать нормально? Уже спать надо, и не могу сообразить к чему тут надо хуй shield приложить
Аноним 23/07/20 Чтв 02:38:07 1758197331
>>1758193
Думай что может блокировать. Полный код выложи
Аноним 23/07/20 Чтв 03:52:09 1758206332
>>1758193
Я не асинхронщик, но что то дофига вопросов. Если у тебя функция мейн асинхронная, то откуда и как ты ее вызываешь? Почему луп создается внутри мейна? Как ты саму функцию мейн в луп положишь? Насколько я знаю, луп ДОЛЖЕН быть только один.
Аноним 23/07/20 Чтв 04:35:04 1758212333
>>1758206
Он же не создаёт луп, а берет активный.
Да и лупов может быть несколько, только луп внутри лупа создать нельзя, на сколько помню, ну или я с трэдами путаю.
Аноним 23/07/20 Чтв 04:38:23 1758213334
Аноним 23/07/20 Чтв 10:11:50 1758291335
>>1758193
asyncio.create_task(coro, *, name=None)¶
Wrap the coro coroutine into a Task and schedule its execution. Return the Task object.

If name is not None, it is set as the name of the task using Task.set_name().

The task is executed in the loop returned by get_running_loop(), RuntimeError is raised if there is no running loop in current thread.

This function has been added in Python 3.7. Prior to Python 3.7, the low-level asyncio.ensure_future() function can be used instead:

Пробуй так и запускай asyncio.run(main()) в debug=True. Иначе так и будешь гадать.
Loop пока нужен для того чтобы сигналы ловить, asyncio.run без обработчиков идет, но думаю в 3.9 добавят, так как сейчас херня без задач.
Аноним 23/07/20 Чтв 10:19:39 1758297336
Что должен рейзить __getitem()__ если айтема нет в объекте, или просто вернуть None? Где об этом можно прочитать.
Аноним 23/07/20 Чтв 10:20:53 1758299337
>>1758297
>For mapping types, if key is missing (not in the container), KeyError should be raised.
Нашел.
Аноним 23/07/20 Чтв 10:28:49 1758303338
Screenshot146.jpg 148Кб, 1000x1138
1000x1138
Посоны, решил посмотреть как в старших классах анализируют производительность бекенда с nginx
https://www.nginx.com/blog/using-nginx-logging-for-application-performance-monitoring/

Получил такой лог
"23/Jul/2020:10:21:58 +0300" client=5.45.207.108 host=siski.piski.ru method=GET request="GET /big-black-mamas/nedorogo/standartnye HTTP/1.1" request_length=263 status=301 bytes_sent=2234 body_bytes_sent=5 referer=- user_agent="Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" upstream_addr=127.0.0.1:9000 upstream_status=301 request_time=5.021 upstream_response_time=5.021 upstream_connect_time=0.000 upstream_header_time=5.021

Как такой лог эффективно распарсить в pandas ?
Придется построчную читалку на питоне городить или можно раз-раз ?(как и все в пандас)

Там еще какие-то модули в nginx plus есть, но я их не хочу
Аноним 23/07/20 Чтв 11:06:57 1758327339
Еще одна концептуциальная проблемища:

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

То есть, у меня есть php fpm access.log, где посчитаны доскольнально cpu time и еще два лога в котором точного идентификатора позволяющего объединить запросы в принципе нет.
Но если смотреть глазами, то понятно какой запрос где. Можно объединить по IP и времени (а по script ptah нельзя, так как там всегда index.php )
Просто время будет отличаться на миллисекунды.
(А может и больше. Иногда сервак может начать тормозить особенно сильно)
Аноним 23/07/20 Чтв 11:27:44 1758342340
Как мне скипнуть в декораторе self, чтобы декоратор одинаково работал и для обычных функций и для методов класса?

def fetch_user():
def decorator(func):
@functools.wraps(func)
def wrapper(user, args, kwargs):
# do smth with user
return func(user,
args, kwargs)
return wrapper
return decorator

В таком виде этот декоратор хорошо работает:

@fetch_user()
def foo(user):
pass

А в таком принимает self за user и падает:

class Foo:
@fetch_user()
def bar(self, user):
pass
Аноним 23/07/20 Чтв 11:30:03 1758344341
Screen Shot 202[...].png 94Кб, 814x642
814x642
Аноним 23/07/20 Чтв 11:44:18 1758350342
ss-analytics-da[...].jpg 497Кб, 1920x1080
1920x1080
>>1758327
нашел в доке какой-то pandas.merge_asof
ебаться-сраться! слава ебаным бигдата богам!
Аноним 23/07/20 Чтв 11:55:53 1758359343
Аноним 23/07/20 Чтв 12:44:41 1758418344
Питоногоспода, я не программист, но периодически возникает желание помониторить и понаблюдать некоторые процессы в социалках.
Везде пишут, что питон хорош для начинающего лоха и что им можно парсить ресурсы.
Или есть что-то более подходящее для моего случая? Кроме хакселя.
Собирать инфу хочу с блогспота, жж, фб, вк, ютуба и т.п.
Аноним 23/07/20 Чтв 12:56:28 1758435345
>>1758359
чето не заработало. у меня не такой новый nginx.
но спасибо за идею. в другой конфигурации попробую json.
Аноним 23/07/20 Чтв 13:02:41 1758442346
>>1758291
Флаг дебага что-то вообще ничего не дал.
Но я всё равно нашел решение кмк - мейн закрывался после того как generator отработал, и ему похуй, что там таски ещё крутятся. Поэтому надо их ждать; добавил это в строчках 17, 18.
код: https://pastebin.com/M149Lpyd
Аноним 23/07/20 Чтв 13:09:21 1758448347
>>1758359
пардон, все работает. Эта директива уже старая.
Охуенная идея! спасибо
Аноним 23/07/20 Чтв 13:09:35 1758450348
>>1758418
scrapy, документации официальная очень толстенная.
у ВК есть свой API, у ФБ тоже. Я так понимаю как раз защита от ботов коим scrapy и является.
>>1758442
Значит в IDE что-то не включил или в environment

There are several ways to enable asyncio debug mode:

Setting the PYTHONASYNCIODEBUG environment variable to 1.

Using the -X dev Python command line option.

Passing debug=True to asyncio.run().

Calling loop.set_debug().

Я так и подумал что ты не ждал таски. Ты mutable объект что ли изменяешь? gather может выплевывать или отрабатывать exception.
Я вот тоже теперь штудирую high level методы для asyncio в Python 3.8, только привык к чему-то уже меняют. Выйдет 3.9 и все по новой блять
Аноним 23/07/20 Чтв 13:14:44 1758452349
>>1758448
Но ты учти что у тебя файлы пиздец какие огромные будут, ротацию делай обязательно или сращу складывай в БД.
Я ничего лучше не придумал как взять для этого Yandex Clickhouse. Клиентов овердохуя, работает по HTTP, есть реализация ORM и asyncio (не ORM).
При том можно брать JSON файл и сразу пихать в таблицу.
Можно вообще нативным клиентом для линуха по Cron отрабатывать
>clickhouse-client -n --query="SET input_format_skip_unknown_fields=1; INSERT INTO event FORMAT JSONEachRow;"
Аноним 23/07/20 Чтв 13:22:14 1758456350
Алсо, тут ребята запилии свой логгер на базе logging, который сразу в JSON формате пишет и добавляет немного асинхронки. На самом деле они пишут, что это не полная асинхронность, но зато сразу обычный синтаксис для корутины.

https://github.com/b2wdigital/aiologger

Аноним 23/07/20 Чтв 13:36:48 1758466351
>>1758450
scrapy не для этого, и тем более не для нуба.
Аноним 23/07/20 Чтв 14:21:08 1758488352
>>1758452
это жи pandas, бро. на ноутбуке посчитается.
мне не яндекс устраиваться.
Аноним 23/07/20 Чтв 14:53:10 1758505353
>>1758450
>Ты mutable объект что ли изменяешь
Нет, код же прикрепил.
Этот код - подзадача на пути решения другой, которую я придумал.

>Я вот тоже теперь штудирую high level методы для asyncio в Python 3.8, только привык к чему-то уже меняют
Ага, я меняю свой майндсет yield-based корутин на asyncio, и мне пока второе привлекательнее выглядит, более user-friendly.
Аноним 23/07/20 Чтв 15:19:23 1758518354
Хм, а если БД стоит на удаленном хосте а не на локальной машине, то по идее для запиливания базовой асинхронности достаточно просто посылать асинхронные request-ы к ней через cursor = await Model.query(data), ведь так? Так кто-то делает?
Аноним 23/07/20 Чтв 15:31:21 1758523355
>>1758518
> если БД стоит на удаленном хосте а не на локальной машине
А разница какая?
Аноним 23/07/20 Чтв 16:15:17 1758548356
>>1758523
Разница в том, что запрос идет не сразу на ssd а в сеть. Пока он летит в сети, можно другие задачи исполнять. Даже если бд не поддерживает параллельное исполнение операций и ставит локи на каждый запрос, серваку будет похрен, пока от бд не придет response, он может обслуживать других клиентов
Аноним 23/07/20 Чтв 16:17:44 1758551357
>>1758548
И? Че ты мозги ебешь?
всю дорогу в вебе это срали на это и никогда не писали асинхронно.
Сайты открывались и всем было заебись.
А тут им внезапно в джанге понадобилась асинхронность
Аноним 23/07/20 Чтв 16:20:18 1758552358
Анончики, как учить джангу лучше всего? Может-быть есть курсы какие хорошие?, и можете подкинуть задач для реализации, чтобы я попутно изучая мог это прорабатывать? Хочу в будущем бэком заниматься на питоне.
Аноним 23/07/20 Чтв 16:26:21 1758555359
>>1758551
Какая джанга блять? Мне вообще похуй на нее. Сейчас на Starlette стараюсь пилить
Аноним 23/07/20 Чтв 16:49:09 1758577360
>>1758555
Малаца. Разница между БД на localhost и remote какая? Ну latency.

host 127.0.0.1 The host name or IP address of the MySQL server.
port 3306 The TCP/IP port of the MySQL server. Must be an integer.
unix_socket The location of the Unix socket file.

На localhost ты через unix_socket что ли коннектишься? Вряд ли.

Ну будет отклик не 0.02мс, а аж 0.1мс если канал не полное дерьмо.
Какая тут разница в реализации если ты абстрагируешься от конкретики? Сейчас БД на локальной ноде, потом хуяк и на ноде в удаленном ДЦ, а у тебя кода заточен под единичный случай.
Аноним 23/07/20 Чтв 16:58:38 1758589361
>>1758577
>На localhost ты через unix_socket что ли коннектишься? Вряд ли.
ахах.
на самом деле в большинстве случаев - да.
ну в стандартной сишной либе mysql это так так работает. волшебное имя.
Аноним 23/07/20 Чтв 19:47:44 1758721362
>>1758589
Учтем что Linux конечно же лучше и надежнее других систем, но unix_socket в отличие от inet_socket сразу же дает ограничения.
Допустим есть кейс, когда надо разнести прложение на составляющие. Возможно нам даже дадут выделенный сервер для БД, а возможно заставят страдать хуйней и паковать вещи и пиздовать на улицу все в контейнеры, которые ну допустим запущены на той же машине. Тогда что? У тебя изоляция сред, вот прокинутый маршрут до контейнера и все. К1: БД#1 К2:БД#2 K3:Бизнес логика К4:Веб хуйня.
И ебись как хочешь. В принципе это и на железе можно и нужно так делать (есть опыт говнокода, который потом со слезами на глазах разносил согласно логики)
Аноним 23/07/20 Чтв 23:05:39 1758833363
Скриншот 23-07-[...].png 142Кб, 790x438
790x438
Смотрю витео с ютубчика про бинарные операторы. Остановился конкретно на НЕ ака ~ (отрицание). Поясните, какой смысл менять знаки на противоположные, если в итоге можно было просто поменять знак и прибавить 1 к последнему разряду? Какой толк от этого числа с противоположными знаками?
Аноним 24/07/20 Птн 11:46:56 1759108364
>>1758359
что-то я разочаровался в этой ссанине.
дело в том, что pandas.read_csv можно научить засасывать файлы и потом обрабатывать колонки, а js нужно построчно читать.

Не оч. вдохновляет. Как бы загружать именно одной операцией такой файл со строками json ?
Аноним 24/07/20 Птн 13:58:26 1759185365
>>1759108
Анончики, где кстати можно почитать/посмотреть как с помощью pandas работают с файлами? А то все нахваливают.
Аноним 24/07/20 Птн 14:19:37 1759198366
>>1758577
А че такого в unix сокетах? Если процесс не общается с сетью а общается лишь с другим процессом то unix_socket маст хэв
Аноним 24/07/20 Птн 14:55:11 1759223367
Screenshot189.jpg 114Кб, 1036x929
1036x929
>>1759185
Так как же как и с одним файлом. Делаешь glob и в цикле read_excel или еще какой-нибудь read_csv.
Обучалок довольно много, но они все будут про рафинированные датасеты. Нахваливают не работу с файлами, а последующую обработку данных из файлов.
Аноним 24/07/20 Птн 14:56:17 1759224368
>>1759198
ну типа не docker aware.
не cloud native.
не пыщ-пыщ.
не на кончиках пальцев.
Аноним 24/07/20 Птн 15:01:31 1759228369
Сап двач. Есть хромовский плагин с логин формой. Как залогиниться на джанго сервер? Ведь просто взять инпуты из формы и сунуть в пост реквест я не могу.
Аноним 24/07/20 Птн 15:19:16 1759242370
Так всё, время пришло, я определился с языком и мне очень зашел пайтон из всех бекэнд языков. Лутца прочитал, всё понял, применил на практике. Вопрос, мне еще пару лет назад понравилась паста про вкат в питон. Есть ли смысл сейчас ему следовать? Хиккующие выблядки будут мне сосать?
Аноним 24/07/20 Птн 15:29:37 1759249371
photo2019-10-30[...].jpg 144Кб, 1134x1044
1134x1044
>>1759242
не понимаю как у человека осилившего оба тома Лутца могут еще возникать какие-то вопросы. Ты уже должен был устроиться джуном на 300-й странице
Аноним 24/07/20 Птн 15:30:47 1759250372
>>1759242
просто ищешь вакансии со стеком на котором бы хотел работать, пробуешься, сосешь, понимаешь что надо подтянуть

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

паста там чисто для рофлов и устарела немного уже (гевенты и торнады не такие популярные нынче)
Аноним 24/07/20 Птн 15:44:00 1759259373
>>1759108
js? нихуя не понял из твоего потока мыслей

df.to_json(orient='split')
'{"columns":["col 1","col 2"],
"index":["row 1","row 2"],
"data":[["a","b"],["c","d"]]}'
pd.read_json(_, orient='split')
col 1 col 2
row 1 a b
row 2 c d

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_json.html

Вообще pandas сразу загружает данные и формирует объекты свои.

>>1759198
>Если процесс не общается с сетью
Но надо же тогда предлагать два варианта подключения к сервисам, не?

>>1759228
ПОЛУЧАЙ
@
ВАЛИДИРУЙ

Получил аргументы через input, пошел проверил есть ли такой юзер в БД, отдал токен авторизационный например. Хоть в константе напиши

LOGIN ='Abu'
PASSWORD='makaka'

и с ними сверяйся.

Аноним 24/07/20 Птн 16:21:31 1759287374
>>1759249
>>1759250
Спасибо, поискал, нашел вакансию стажером, буду к собесу готовиться. Хотя по стеку, который они требуют ощущение, что я буду стажером стажера).
Аноним 24/07/20 Птн 16:54:08 1759311375
>>1759259
а , я чет не заметил что в read_json можно передать открытый файл, но имя файла как в read_csv нельзя.

Тогда все ок.
Аноним 24/07/20 Птн 20:25:24 1759463376
>>1759311
На заре своего долбоебизма (ну хули там память, процессорное время. У меня 6 ядер и 24 гига!) Я пробовал SQLAlchemy + pandas для того чтобы заливать таблицу в MySQL. Это... Пиздец. Вот прям пиздец-пиздец. Объект pandas в памяти оставляет такой слепок, что реально думаешь податься в байтоебство. При том там была таблица xls ну наверное 300х30.
С json боюсь не лучше будет, ну потом сам посмотришь.
У меня просто было 3+Гб логов со всех сервисов за месяц. И тогда уже херово настроенный MySQL захлёбывается.
Аноним 24/07/20 Птн 20:48:48 1759473377
Какие есть стандарты сокращения названий стран кроме ISO 3166?
Аноним 24/07/20 Птн 21:08:09 1759479378
Какие-то профиты от OrderedDict в новых версиях пистона есть? Там же по дефолту ключи словаря упорядоченны. Почему он до сих пор не depricated?
Аноним 24/07/20 Птн 21:19:49 1759484379
Немного байтоебский вопрос: если я напишу декоратор для функций, который замеряет их время исполнения и захочу делать import time только внутри scope этой самой функции, то модуль будет импортироваться при каждом определении функции? Или даже при каждом вызове декорированной функции? Просадок по производительности не будет?
Аноним 24/07/20 Птн 21:36:19 1759491380
>>1759484
Зачем внутри логики это делать? И чем тебя unittest не устраивает? Там же и замеришь скорость выполнения.
Аноним 24/07/20 Птн 21:49:15 1759495381
>>1759491
Дело не в конкретном вызове import time, я про любые импорты сторонних библиотек внутри скоупа функций-декораторов
Аноним 24/07/20 Птн 22:25:16 1759516382
>>1759479
Меня заинтересовал этот вопрос. Согласно документации отличия есть:
1. У OrderedDict есть методы для изменения порядка в словаре
2. Обычный dict и OrderedDict по разному реализованы: обычный dict эффективно выполняет свои функции как словаря, то есть быстрый поиск элементов, эффективное хранение, и все такое, а поддержка порядка элементов вторична, в свою очередь OrderedDict эффективно осуществляет изменение порядка элементов, а все остальное для него вторично.
3. OrderedDict при операции сравнения учитывает порядок элементов, то есть:
>>> {"a": 1, "b":2} == {"b": 2, "a": 1} #Для обычных словарей порядок не важен
True
>>> OrderedDict({"a": 1, "b":2}) == OrderedDict({"b": 2, "a": 1}) #Для OrderedDict порядок важен
False
>>> OrderedDict({"a": 1, "b":2}) == {"b": 2, "a": 1} #Для OrderedDict и обычного словаря, внезапно, порядок опять не важен
True
4. До версии 3.8 к обычным словарям нельзя было применять reversed

https://docs.python.org/3.8/library/collections.html#ordereddict-objects

Возможно, в каких-то отдаленных версиях обычный словарь и вберет в себя все полезное от OrderedDict, и OrderedDict запретят, ввели же в обыне словари поддержку порядка и reversed, но вот пока свои отличия у них есть
Аноним 24/07/20 Птн 22:32:33 1759523383
>>1759484
Хороший вопрос.

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

При импорте ведь исполняется весь код импортируемого модуля. Он исполнится только один раз.

Надо изучать стандарт, что при этом реально происходит, я имею в виду механизм копирования имён функций в пространство имён, откуда ты импортируешь, но подозреваю, что это просто копирование одной глобальной переменной, объекта-модуля. Соответственно, накладных расходов считай и нет.
Аноним 24/07/20 Птн 23:16:53 1759560384
Привет.

Вот у меня есть сайт где переход на следующие страницы осуществляется не в url (типо не site.com/pages/1..2..3), а с помощью js'а. Поэтому я нихуя не могу получить данные на следующей страницу

Как мне получить их? С селениумом не хочу ебаться.
Аноним 24/07/20 Птн 23:22:26 1759561385
characteristics = ("Сила:", strength, "Здоровье", health,"Ловкость", dexterity, "Мудрость", wisdom, end="")
Почему выдаёт ошибку?

Почему если для эксперимента написать print("123", 123, end="")
ошибку не выдаёт?

Подскажите пожалуйста
Аноним 25/07/20 Суб 00:08:35 1759611386
>>1759561
end параметр для print(), а у тебя объект вообще кортеж.
Аноним 25/07/20 Суб 00:12:25 1759612387
>>1759495
Нарушение PEP8 да и потом банально такой говнокод сложнее будет читать. Из-за таких вот хуяк-хуяк как хочу так и пишу (camelCase имена переменных и методов) потом вылезают дебильные ошибки.
Я бы накорню такую хуйню запретил. Банальное неуважение к чужому труду.
Аноним 25/07/20 Суб 01:25:23 1759636388
>>1759560
Пишу опять.
Я понял что можно выполнить жс код в консоле чтобы он передвинул на следующую страницу, а в какой библиотеке я также смогу отправить на сервер выполнение жс кода чтобы он мне прислал новые html данные?

В requests_html такое есть? Исполнять код можно?
Аноним 25/07/20 Суб 02:00:11 1759641389
>>1759612
А у меня автор книжки советует. "Automate Boring Stuff with Python 3"


Also, в PyCharm какой оптимальный способ пробовать новые хелловорды и прочие учебные примеры? не создавать же каждый раз проект? Но плодить говнофайлы внутри проекта тоже вроде как-то не выход... Советы?
Аноним 25/07/20 Суб 02:03:54 1759643390
Screenshot20200[...].png 12Кб, 454x244
454x244
Screenshot20200[...].png 70Кб, 1048x665
1048x665
Есть вопрос по aiohttp_session
Добавил мидлвеар по инструкции. При каждом обновлении страницы пользователем воздается новая сессия (пик 1).
Кука на клиент не приходит (пик 2).
Чому так?
Аноним 25/07/20 Суб 02:05:25 1759644391
>>1759636
Ебать. Нашел другой способ сделать. Все, отлично.
Аноним 25/07/20 Суб 02:14:06 1759648392
>>1759612
Импорты внутри функций и классов - норма
Аноним 25/07/20 Суб 02:15:32 1759649393
>>1759643
Походу, надо самому ложить, все ок, пардон
Аноним 25/07/20 Суб 02:18:17 1759650394
>>1759641
> Also, в PyCharm какой оптимальный способ пробовать новые хелловорды и прочие учебные примеры? не создавать же каждый раз проект? Но плодить говнофайлы внутри проекта тоже вроде как-то не выход... Советы?
Бамп
Аноним 25/07/20 Суб 06:29:07 1759680395
>>1759641
плодить говнофайлы внутри говнопроэкта
Аноним 25/07/20 Суб 07:19:35 1759689396
Аноним 25/07/20 Суб 07:23:08 1759690397
>>1759641
chapter1 | file1; file2
chapter3 | file1;...

Логически раскидай, если не создаёшь виртуальные среды
Аноним 25/07/20 Суб 08:18:13 1759703398
>>1759463
У тебя какие-то фантомные боли и широкие выводы по одному неудачному эксперименту.
В целом, охуенно ,pandas , охуенно быстр.
Ведь он использует numpy, а тот байтоебский.
Аноним 25/07/20 Суб 09:07:42 1759719399
>>1759703
Скорее всего на на 3.8 с обновлением посмотреть. Но всяко pandas это визуализация.
Аноним 25/07/20 Суб 10:56:02 1759752400
Сап аноны, ньюфаг на связи.Собственно пришел к умным людям за помщью.Есть задача: сделать функцию, которая принимает список строк, эта функция должна вернуть список, в котором содержатся самые длинные слова в этих строках.
Собственно нашел вариант, но совсем туплю в том как его доработать под свои нужды.Помогите пожалуйста с этим.Сам вариант:
ef longest_entry(lst):
total_entries = len(lst)
current_entry = 0
longest_length = 0
while current_entry < total_entries:
this_entry = len(str(lst[current_entry]))
if int(this_entry) > int(longest_length):
longest_length = this_entry
longest_entry = current_entry
current_entry += 1
return longest_length
Аноним 25/07/20 Суб 11:53:31 1759769401
>>1759752
words = [word for el in lst for word in el.split()]
words.sort(key=len, reverse=True)
Аноним 25/07/20 Суб 14:27:54 1759863402
Аноним 25/07/20 Суб 15:28:48 1759952403
1479757635510.webm 4832Кб, 320x240, 00:02:24
320x240
Аноним 25/07/20 Суб 15:39:20 1759960404
>>> 0.1 + 0.2
0.30000000000000004

как называется эта дрисня, напомните?
Аноним 25/07/20 Суб 15:42:37 1759962405
>>1759952
И какой практический кейс этого?
Аноним 25/07/20 Суб 15:43:56 1759963406
Аноним 25/07/20 Суб 15:46:45 1759964407
>>1759962
Разделение музыки на инструментальную и вокальную партии.
Аноним 25/07/20 Суб 15:49:48 1759966408
.png 1073Кб, 1000x1000
1000x1000
Аноним 25/07/20 Суб 15:51:08 1759967409
Аноним 25/07/20 Суб 15:53:49 1759968410
>>1759967
Ну вот тебе и ответ, что об этом можно думать. Я бы мог затестить, загрузить трек, но и что дальше. Как мне понять хорошо это получилось или нет, если я не знаю чего я хотел добиться этим.
Аноним 25/07/20 Суб 16:07:02 1759973411
Аноним 25/07/20 Суб 16:47:48 1760002412
>>1759690
По проекту на главу?

Виртуальные среды же оверкилл будут, да?
Аноним 25/07/20 Суб 18:29:10 1760063413
>>1760002
По модулю на главу или логическую херь. Виртуальная среда оверкилл, можешь для тренировки попробовать
Аноним 25/07/20 Суб 19:23:02 1760086414
async код из синхронной функции Аноним 25/07/20 Суб 22:00:09 1760171415
Петян, использую стороннюю либу, которой нужно передать функцию, либа иногда дёргает этот калбек. Мне нужно в нём вызвать асинхронный код, то есть передавать управление. как это делается?

https://pastebin.com/6vWbFa9n
Аноним 25/07/20 Суб 22:05:31 1760174416
>>1760171
никак, но можешь попробовать подрочить asyncio.get_event_loop() и asyncio.ensure_task() иногда получается
Аноним 25/07/20 Суб 22:34:22 1760193417
Аноним 25/07/20 Суб 22:49:09 1760201418
Аноним 25/07/20 Суб 22:53:08 1760205419
>>1760201
Если питон 3.7+ то в синхронной функции просто вызываешь асинхронную через asyncio.run()
Аноним 26/07/20 Вск 00:19:21 1760253420
Че за ссанина, почему я не могу просто импортировать модуль из той же папки через from .settings import DATABASE_URI:
ImportError: attempted relative import with no known parent package

А также не могу произвести импорт вроде: from myproject.settings import DATABASE_URI - в таком случае он говорит что myproject не существует(No module named 'myproject'), но файл же бля лежит прямо в ней нахуй
Аноним 26/07/20 Вск 01:23:01 1760283421
Можно ли записать компактнее условные выражения подобного вида? Что-то ничего в голову не приходит.

if A:
____if B:
________...
____else:
________...
else:
____if B:
________...
____else:
________...
Аноним 26/07/20 Вск 01:56:08 1760304422
>>1752315
> background tasks самому делать
aiojobs
> Pydantic прикручивать
Так ли это сложно?
> OpenAPI(Swagger)
Тут сыглы, сам немало кода написал. Но там история такая, что библиотек хороших нет, не специфично aiohttp.
Аноним 26/07/20 Вск 02:01:29 1760306423
>>1760283
Можно, но не нужно.
>>1760253
Он тебе говорит, что относительные импорты можно только в пределах пакаджа. Это там где ты инит.пу расставил. Это блядь не путь в файловой системе, чтобы ../../../../etc/passwd импортировать.
Аноним 26/07/20 Вск 02:04:12 1760310424
>>1759960
Это называется числа с плавающей точкой IEEE 754. Эта хуйня такая прямо в железе, там ограниченное количество бит и бинарное представление, которое не всегда хорошо мапится на десятичное.
Аноним 26/07/20 Вск 02:05:26 1760311425
>>1759484
Импорты кешируются. Будет быстро.
Аноним 26/07/20 Вск 02:10:02 1760316426
Screenshot from[...].png 75Кб, 826x305
826x305
Аноним 26/07/20 Вск 02:11:01 1760317427
Стикер 63Кб, 200x200
200x200
Аноним 26/07/20 Вск 02:14:28 1760320428
>>1758833
Если у тебя железо с другим стандартом целых чисел, то обосрёшься. Ещё этот оператор можно к своим типам прикручивать, вроде в алхимии есть.
Аноним 26/07/20 Вск 03:40:24 1760354429
Я вот сижу пержу, думаю запилисть MultiDict - это как обычный словарь, но ключей для каждой записи несколько. Предыстория такова - есть путь к файлу, и имя проекта в файле (не совпадает с именем, может содержать любые символы и тд). Нужен эффективный поиск как по пути файла, так и по названию.Можно, конечно, хранить все это дело в бд, с индексами по двум столбцам, но что то не хочется. А так сделал мультисловарь - типо {(key1, key2): 'blabla'}. Сет, конечно, можно вроде как ключ использовать, но вот искать только во одной части нет. Каккие идеи?
Аноним 26/07/20 Вск 04:01:07 1760366430
Аноним 26/07/20 Вск 04:07:32 1760374431
>>1760354
{key1: 'blabla',key2: 'blabla'}
{'blabla' : [key1, key2]}
Аноним 26/07/20 Вск 11:11:05 1760446432
>>1760306
>Это там где ты инит.пу расставил
Сколько времени еще будет жить этот дурацкий стереотип, даже интересно
Аноним 26/07/20 Вск 11:14:51 1760448433
>>1760446
люди до сих пор class MyClass(object) пишут
Аноним 26/07/20 Вск 11:30:50 1760451434
>>1760446
И чем же он дурацкий?
Аноним 26/07/20 Вск 11:36:18 1760453435
>>1760451
тем что люди ориентируются не на действующий порядок импорта, а на свой выдуманный
Аноним 26/07/20 Вск 12:41:42 1760490436
>>1760453
Поясни, я тебя не понимаю. Какой порядок по твоему мнению выдуманный и неправильный, а какой правильный.
Аноним 26/07/20 Вск 13:29:17 1760541437
https://proglib.io/p/python-code-analysis/

Так бля, я походу в танке. Вот тут рассказывают про дохренища линтеров для кода, но я просто юзаю PyCharm и он мне в подробностях в реальном времени все подсвечивает. Ни разу не юзал эти "линтеры". Что за прикол?
Аноним 26/07/20 Вск 13:35:10 1760548438
>>1760541
Ну так в пайчарм встроена парочка из этих линтеров. Ты всю жизнь ими считай пользовался, но не знал. Отдельно они особенно нужны если ты хочешь по рукам пиздить ждунов при каждом коммите.
Аноним 26/07/20 Вск 13:46:31 1760568439
>>1760490
И создал Гвидо Python и стала всем вокруг хорошо
Каждый мог писать код как ему вздумается
И каждый мог вкатиться в ОйТи
И пришли инфоцыгане и стали коммерцией заниматься
На седьмой год взъерепинилось коммьюнити
Негоже говнокодить как вздумается, правила нужны
И создали PEP8 и было радостно программистам
Но горько взрыдали вкатывальщики, не осилили они PEP8
И ересь понесли инфоцыгане выдумав свои правила

Так понятнее?
Аноним 26/07/20 Вск 13:48:34 1760575440
Аноним 26/07/20 Вск 14:05:26 1760599441
>>1760575
Ты вообще в курсе для чего эти неймспейсы создавались?

> Namespace packages are designed to support being split across multiple directories (and hence found via multiple sys.path entries)

То есть, пакадж с инитпай находится через sys.path lookup ровно один раз, дальше все его модули и субпакаджи будут фиксированно внутри этого каталога.

Неймспейсы же нужны чтобы ты мог кусками ставить какой-нибудь огроменный пакадж типа zope и чтобы общий инитпай не перетирался при каждой установке и не удалялся при каждом сносе.
Аноним 26/07/20 Вск 14:20:23 1760612442
>>1760575
К примеру, когда ты делаешь from jopa import govno, если jopa это неймспейс то попробуется целый десяток путей вместо одного: ./jopa/govno.py /usr/lib/python/jopa/govno.py /home/user/.local/lib/python/jopa/govno.py /usr/local/lib/python/jopa/govno.py и далее. И так каждый раз на каждый модуль. Это не простые проходы по файлам у тебя в проектике.

Ну и в целом, ты всегда ограничен sys.path. Нельзя так просто, без привлечения importlib взять любой файл из любого места в системе.

> chrisyeh96
Гайды от зумеров. Кайф.
Аноним 26/07/20 Вск 14:45:56 1760632443
>>1760599
разговор про init py и что поведение импорта поменялось, а ты про неймспейсы, избежание повторного импорта, zope, сносы, каталоги, пайтонпас

что ты сказать хочешь? какой месседж мне передать?
Аноним 26/07/20 Вск 14:48:04 1760636444
>>1760612
>Гайды от зумеров. Кайф.
сам какой лвл?
Аноним 26/07/20 Вск 14:59:07 1760662445
>>1760632
Да тебе хоть в глаза ссы, всё божья роса. Там почти нихуя не поменялось и инит живее всех живых. Просто добавили возможность зумерам стрелять себе в колено, а они и не против.
Аноним 26/07/20 Вск 15:06:29 1760672446
>>1760662
> Там почти нихуя не поменялось
ты так думаешь?

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

напомню, разговор о том что инитпу давно не нужен и вопрос антуана был сколько еще эту устаревшую инфу + собственные фантазии вроде
> К примеру, когда ты делаешь from jopa import govno, если jopa это неймспейс то попробуется целый десяток путей вместо одного: ./jopa/govno.py /usr/lib/python/jopa/govno.py /home/user/.local/lib/python/jopa/govno.py /usr/local/lib/python/jopa/govno.py и далее. И так каждый раз на каждый модуль. Это не простые проходы по файлам у тебя в проектике.
буду повторять
Аноним 26/07/20 Вск 15:06:40 1760673447
Сап посоны, как создать бота в телеге на питоне?
Аноним 26/07/20 Вск 15:09:33 1760676448
>>1760673
гуглишь статью о том как создать бота
выполняешь тоже что и автор
понимаешь че куда

потом делаешь своего бота по аналогии
Аноним 26/07/20 Вск 15:14:17 1760679449
>>1760672
Окей, если технически тебе мозги вставить нельзя, давай гуманитарно. Найди мне на docs.python.org фразу что инитпу устарел, все срочно перекатываемся на простые каталоги с модулями.
Аноним 26/07/20 Вск 15:15:09 1760681450
>>1760679
где я говорил что инитпу устарел?
Аноним 26/07/20 Вск 15:18:51 1760686451
>>1760681
О, начались лавирования. Давай хотя бы что он необязателен, или, цитата, "давно не нужен".
Аноним 26/07/20 Вск 15:24:34 1760692452
Аноним 26/07/20 Вск 15:25:44 1760695453
>>1760692
Ну теперь давай, зачем нужны regular packages, если уже есть namespaced packages?
Аноним 26/07/20 Вск 15:27:06 1760699454
>>1760695
> Давай хотя бы что он необязателен
я тебе дал, ты обосрался

> зачем нужны regular packages, если уже есть namespaced packages
я знаю, а ты сам как думаешь?
Аноним 26/07/20 Вск 15:30:01 1760702455
>>1760699
Ну конечно знаешь, я же тебе три поста выше всё на пальцах разложил.
Аноним 26/07/20 Вск 15:30:52 1760704456
>>1760699
как устроена конструкция a, b = b, а
типо меняет ли она с временной переменной или использует йоба алгоритмы типа xor?
Аноним 26/07/20 Вск 15:33:04 1760708457
>>1760702
ты про это?
> К примеру, когда ты делаешь from jopa import govno, если jopa это неймспейс то попробуется целый десяток путей вместо одного: ./jopa/govno.py /usr/lib/python/jopa/govno.py /home/user/.local/lib/python/jopa/govno.py /usr/local/lib/python/jopa/govno.py и далее. И так каждый раз на каждый модуль. Это не простые проходы по файлам у тебя в проектике.

> Ну и в целом, ты всегда ограничен sys.path. Нельзя так просто, без привлечения importlib взять любой файл из любого места в системе.
так нихуя не объясняет зачем нужен инитпу

вот я и хочу чтобы ты разобрался и эволюционировал из кода в стиле
> import govno
в что-то хорошее

у тебя пытливый ум может быть даже сможешь стать ручным qa когда-нибудь
Аноним 26/07/20 Вск 15:34:54 1760710458
Screenshot from[...].png 13Кб, 447x148
447x148
>>1760704
Загрузили в стек, прокрутили, высрали из стека.
Аноним 26/07/20 Вск 15:35:25 1760711459
>>1760704
> йоба алгоритмы типа xor
хех
Аноним 26/07/20 Вск 15:36:29 1760714460
>>1760708
Нет, ты ещё один пост выше возьми.

> пакадж с инитпай находится через sys.path lookup ровно один раз

Дальше объяснение чем плохо использовать неймспейсы для всего.
Аноним 26/07/20 Вск 15:40:47 1760716461
>>1760714
> Неймспейсы же нужны чтобы ты мог кусками ставить какой-нибудь огроменный пакадж типа zope и чтобы общий инитпай не перетирался при каждой установке и не удалялся при каждом сносе.
так это полная хуйня, какой инитпай кем перетирается?
Аноним 26/07/20 Вск 15:41:58 1760720462
>>1760708
> у тебя пытливый ум может быть даже сможешь стать ручным qa когда-нибудь
Ой какой ты смищной. Я уже пуд соли сожрал на импортах вплоть до реализации своего --import-- чтобы сделать сэндбокс не делай так, оно всё равно не безопасно, из банального пустого кортежа можно получить доступ даже к аллаху. Инит расставлять обязательно, кроме случая когда ты знаешь для чего ты его оттуда убрал. Ну можешь ещё в наколеночных проектах не делать, в принципе работать будет, но не более.
Аноним 26/07/20 Вск 15:44:03 1760724463
>>1760720
> Я уже пуд соли сожрал на импортах вплоть до реализации своего --import-- чтобы сделать сэндбокс
а мог просто прочитать доку
Аноним 26/07/20 Вск 15:46:08 1760729464
>>1760716
Ну смотри. Делаешь ты отдельные пакеты для СУБпакаджей. Чтобы можно было pip install yoba_core yoba_gui yoba_daemon, но при этом не завозить в систему yoba_sound yoba_render. Вот чтобы эта хрень импортировалась через from yoba import gui тебе, по старой системе нужен yoba/--init--.py. И такой же инит нужно во всех yoba__xxx пакаджах сделать. То есть, пакаджи будут конфликтовать по этому файлу, хотя он может быть у всех одинаковый, в том числе пустой. Когда ты сделаешь pip uninstall yoba_daemon, оно удалит в том числе этот инит, чем сломает уже установленные yoba_core и yoba_gui. Вот для такого случая нужны неймспейсы.
Аноним 26/07/20 Вск 15:46:45 1760731465
>>1760724
И что бы я там начитал, лол? Ну-ка, раскрывай мысль.
Аноним 26/07/20 Вск 15:48:13 1760734466
Аноним 26/07/20 Вск 15:49:50 1760738467
>>1760734
И как мне это поможет сделать сэндбокс, гений? Я в курсе неймспейсов ещё с момента когда приняли пеп.
Аноним 26/07/20 Вск 15:55:50 1760751468
>>1760738
понимал бы о чем речь хотя бы
Аноним 26/07/20 Вск 15:58:56 1760760469
>>1760751
Спасибо, просветил. А то я, темнота такая, не узнал бы никогда.
Аноним 26/07/20 Вск 16:03:33 1760765470
>>1760760
> Спасибо
не за что, если что всегда в треде
Аноним 26/07/20 Вск 16:05:10 1760767471
>>1760765
Дай сапог-то поцелую.
Аноним 26/07/20 Вск 16:16:21 1760780472
>>1760767
Ты говна норм поел сегодня, так что в следующий раз
как рот помоешь
Аноним 26/07/20 Вск 16:22:43 1760788473
>>1760780
Да уж, это точно. Больше на этой параше ничем делиться не буду. Ебитес тут сами.
Аноним 26/07/20 Вск 16:36:06 1760803474
>>1760788
> Больше на этой параше ничем делиться не буду
ведешь себя как взрослый человек
Аноним 26/07/20 Вск 19:05:52 1760931475
>>1760366
Гениально. Так и сделаю.
Аноним 26/07/20 Вск 19:14:10 1760941476
>>1758452
бля, меня жаба задушила хранить гигабайты json.
переделал эту дрочильню опять на простой классический лог запросов с дополнительными колонками

не стоит время программиста такой растраты.
Аноним 26/07/20 Вск 19:53:13 1760973477
>>1760941
Ну ты можешь банально форматировать строку '/n /r'.
Хорошо когда у тебя формат логов всегда совпадает. Я например записывал request/response в виде JSON, traceback тоже в него выводил.
Как итог были колонки logDateTime (DateTime(, logDate(Date), logLevel(String), logSource(String), logData(String). Партиция была по logDate, logLevel, logSource. В итоге нормально все хранится.
Ну и выводить удобно. Дело вкуса. По-хорошему вообще надо брать готовые инструменты, если ресурсы позволяют.
Аноним 26/07/20 Вск 23:18:24 1761102478
Кто нибудь может поучить программированию за не слишком большую денежку? В первую очередь интересует, как работать с def и try/except надо объяснить прям на пальцах. Условно могу писать совсем прямые скрипты, да и то в основном на селениум. А информацию по работе с def try/except я не понимаю без нормального объяснения с примерами. Нужно чтоб я мог задавать тупые вопросы, а мне них легко и понятно отвечали. Учусь быстро и схватываю на лету, когда есть конкретные примеры и конкретика
Аноним 26/07/20 Вск 23:26:00 1761115479
Что скажете про restx для flask? что в проде юзается flask + marshmallow? глянул restx там чот сложный парсинг аргументов
Аноним 27/07/20 Пнд 00:17:51 1761140480
>>1761102
Меня бы кто научил.
Я пришел в этом в году в этот тред и до сих пор удивляюсь.
Рандомохуи узнавшие про 2+2 претендуют на каких-то жуниоров.
Я в сто раз больше знаю, но боюсь что-то предлагать, потому что не могу себя оценить.
95% постов из серии ололо палка-палка-огуречик-получилось что?
Раз в месяц тут бывают ровные пасаны, от постов которых я чувствую тепло в писечке.
Как стать таким же и заработать мильйон? Все задатки у меня есть, не хвататет пафоса и университетского понимания ебучих формул.
Как стать таким, не ходя в офис к бородачам?
Аноним 27/07/20 Пнд 00:39:59 1761144481
>>1761102
Тут 75% треда из тупых вопросов, возьми какую-нибудь книгу или видеокурс на рутрекере и учи, могу посоветовать "[tceh] Разработчик на Python", там довольно понятно чел объяснял, правда не помню с самых ли основ, и учи, тупые вопросы как и остальные задавай сюда.
>>1761140
Ну так попробовал бы сходить на собеседование, анон, вдруг твоих знаний как раз и хватит
Аноним 27/07/20 Пнд 00:47:05 1761148482
>>1761144
Да неудобно задавать тупые вопросы. Было бы проще заплатить по 500 р за урок, чтоб объяснили нормально то, что хочу знать на самом деле. Книги и курсы - пиздец гавно, уровня print("2+2")
if = 4
print("ok")
else
print(not ok)

Это ж пиздец, этому учат по 2 месяца, нахуй оно надо
Аноним 27/07/20 Пнд 00:48:53 1761152483
>>1761144
Я хикка и не хочу не собеседования, но суммы вроде 140к в год меня будоражат. На апворке у меня 15к в год и это более чем для моего мухосранска, а тут в десять раз больше.
А тут ещё масковские ололо-жуниоры набегают в тред со своими зарплатами, вот я и думаю.
Аноним 27/07/20 Пнд 00:49:53 1761154484
>>1761152
А ты сможешь научить работать с def, try/except и так по мелочи?
Аноним 27/07/20 Пнд 00:55:51 1761155485
>>1761148
Я не знаю на какие курсы и книги ты натыкался, но тот же цех там у него вроде был от основ самого питона до бд, легкого фронта и разных полезных либ.
>Да неудобно задавать тупые вопросы
Анонимная борда, хули тут неудобного. Слишком неудобно - открой приватный режим.
>>1761152
>Я хикка и не хочу не собеседования
Многие кампании разрешают работу из дома, прособеседуйся а потом сколько хочешь хиккуй.
Аноним 27/07/20 Пнд 00:58:05 1761156486
>>1761155
Неудобно в том плане, что задать тупой вопрос на борде - получить тупой ответ != уметь/знать. Надо чтоб норм объяснили и показали
Аноним 27/07/20 Пнд 00:58:25 1761157487
>>1761154
Я добрался до разбора байткода различных вариантов, но академичного знания не хватило для разбора сишных исходников.
А так бы я вам доставлял инсайды как всё работает. Этого очень не хватает в среде питонистов.
Аноним 27/07/20 Пнд 01:00:37 1761158488
>>1761156
Задаешь тупой вопрос - получаешь ответ что не так или ссылку на статью где объясняют.
Аноним 27/07/20 Пнд 02:03:34 1761171489
Анон, вызывал ли у тебя когда-нибудь страх сам процесс обучения?

Изучаю алгоритмы и структуры данных на питоне и часто ловлю себя на том, что не могу усидеть на одном месте, когда хочу написать что-нибудь своё или делаю что-то по памяти: появляется какая-то пустота в груди, из-за чего приходится вставать и бездумно ходить по дому или лихорадочно переключаться на вкладку с информационным мусором. Может быть это и не страх, но точно какое-то обеспокоенное чувство.
Аноним 27/07/20 Пнд 02:06:13 1761175490
>>1761171
У меня неудобство в груди, неровное дыхание, напряжение в глазах. Планирую вкатиться на родительскую шею.
Аноним 27/07/20 Пнд 02:06:17 1761176491
>>1761171
Не так страшен черт как его кличут, скорей всего то что ты описал это прокастинация
Аноним 27/07/20 Пнд 02:12:34 1761178492
>>1761171
Конечно, решается просто - ставь перед собой какие-то мини цели, мне помогает. Типо - 1 глава - 20 минут всякой хуеты в инете, хождения и т.д., но сначала именно 1 глава, какой бы скучной она не была.
Аноним 27/07/20 Пнд 07:47:48 1761227493
Че делать? Нахуячил пиздатый скрипт, зарилил через pyinstaller exe файл, скидываю на другой пк с вин10, вылетает хуета от смарт скрина типа невозможно запустить, какого хуя? Смартскрин отключить не могу, нет доступа
Аноним 27/07/20 Пнд 08:25:17 1761238494
>>1761227
кликни на "more info" или "подробнее" или че там показывает, и запусти принудительно
Аноним 27/07/20 Пнд 09:03:38 1761260495
IMG0159.HEIC 1988Кб, 2932x1710
2932x1710
>>1761238
Да нихуя ничего нет
Аноним 27/07/20 Пнд 09:38:50 1761324496
Как в Питоне "подписывать" данные с помощью секретного ключа? И как их потом дешифровать?
Аноним 27/07/20 Пнд 09:42:00 1761326497
Аноним 27/07/20 Пнд 09:42:35 1761327498
>>1761326
64, писал и компилировал в минте
Аноним 27/07/20 Пнд 09:43:55 1761328499
>>1761326
Бля неужели 32 битный питон воткнулся при установке?
Аноним 27/07/20 Пнд 10:06:17 1761346500
Понимаю, что многие сейчас обоссут меня или засыпят помоями, но все же, при наличии средних знаний и желании для начала выучить синтаксис, а также при наличии свободных средств, стоит ли купить курсы на Яндекс Практикуме по пайтону?
Деньги есть с основной высокооплачиваемой работы не связанной с IT. 85к они просят не проблема отдать. Хочу наставничества и хорошего обучения азам. Жду совета анона. Всем спасибо.
Аноним 27/07/20 Пнд 10:19:21 1761357501
Аноним 27/07/20 Пнд 11:57:11 1761409502
Аноним 27/07/20 Пнд 12:56:15 1761437503
>>1761102
try выполняет блок кода и except'ом ты просто обрабатываешь ожидаемые ошибки ЕКСЕПШЕНЫ, finally выполняешь обязательный блок кода, допустим нужно те обработать логику деления на 0 шобы не пейсать не красивый if пишешь експет ДивБауЗиро и выводишь сообщение
Аноним 27/07/20 Пнд 14:00:34 1761470504
Чет tkinter мемный. Все элементы по центру, но два рандомных - прогресс бар и фрейм, съебались в лево, хотя нигде не указывал им это делать.
Аноним 27/07/20 Пнд 14:03:19 1761472505
>>1761327
>64, писал и компилировал в минте
Каким образом? У pyinstaller же убрали возможность кросс-компиляции.
Аноним 27/07/20 Пнд 14:17:24 1761482506
>>1761472
> Каким образом
pyinstaller —onefile 2ch.py
Вроде так было дело
Аноним 27/07/20 Пнд 14:31:17 1761488507
>>1760710
ну я тож туда смарел, только не особо понял шо за байт код, есть статья про то как читать это? или всё шо нужно знать так ето стек который грузит все ето?
Аноним 27/07/20 Пнд 14:53:14 1761511508
Кто перекат спиздил? Где он?
Аноним 27/07/20 Пнд 14:54:18 1761512509
>>1761511
Нахуй мне еще тут не ответили
Аноним 27/07/20 Пнд 16:05:07 1761571510
>>1761488
Что там смотреть, конструкция вроде a,b = b,a это на самом деле тупли, т.е. (a,b) = (b,a). Производится упаковка и распаковка туплей.
Аноним 27/07/20 Пнд 18:16:33 1761670511
Аноним 27/07/20 Пнд 18:25:37 1761676512
Если тут сидят "что мне почитать чтобы ебашить на пихоне как настоящий кодер" сразу пиздуйте на Medium/Habr и смотрите кто и что реализовывал, хоть тот же Хуяндекс в Я.Такси. В живом мире недостаточно просто кодить все на питухоне, часто придется подбирать и другой инструмент для реализации.

Ящитаю обязательно к ознакомлению Redis/Memcached MySQL/PostgeSQL, RabbitMQ/Kafka. Иначе когда спросят а как вы реализовывали NoSQL можно будет жиденько обосраться.
Ну и хотя бы раз попробовать Jinja2 Templator и понять что это сука прошлый век и рендерить не на клиенте это моветон.
Аноним 27/07/20 Пнд 18:36:55 1761690513
>>1761676
Насрал терминами и рад.
Аноним 27/07/20 Пнд 19:21:36 1761713514
>>1761690
Какими терминами, братиш? Все гуглится и есть в тех же примерах Django Celery/Redis или Celery/RabbitMQ.
NoSQL даже в педивикии описан.
OLAP и OLTP там же и с примерами.
Хуже чем r/learnpython, пиздец. Пора перекатываться в Go/Julia
Аноним 27/07/20 Пнд 21:34:42 1761816515
>>1761346
>85к они просят
лол
кек
Аноним 27/07/20 Пнд 21:37:16 1761820516
>>1761676
>Memcached
Нинужон когда есть редис

>MySQL
Ты кучу раз ошибся в написании "PostgreSQL"

>RabbitMQ
Ты блин Редис сначала освой

>Kafka
Когда будет нужон, тогда и штудируй. А так смысла нет
Аноним 27/07/20 Пнд 22:41:39 1761875517
>>1761820
Ты жопочтец?
Redis как MQ можно использовать, вот только дохуя чего нет в отличие от RabbitMQ.
MySQL ещё много где используется. Миграция на Postgres возможна, но не тебе решать когда это делать и будет ли от этого выгода. Хотя если на галере, то похуй.
Я не говорил о штудировать. Я говорил о том, чтобы посмотреть реальные живые примеры, а не дрочево Automating Boring Stuff. Пощупать библиотеки хотя бы на примерах.
Аноним 27/07/20 Пнд 22:47:14 1761878518
>>1761346
>Портфолио из 6 веб-сервисов.
Вместе они дадут полноценный онлайн-продукт — аналог Netflix
Ну охуеть, то-то они слились в порыве страсти с kinopoiskhd. Я не знаю кто эту хуйню затеял, но на Хабре вполне адекватные посты от хуяндекса бывают. Тут же просто очередной хайптрейн по курсам, ещё и C++ для хайлоад предлагают, а не go (политика, кек).
Аноним 27/07/20 Пнд 22:53:34 1761883519
Привет ребятки, студент-любитель джавы в треде. Есть небольшой опыт работы в компании(стажировка) на Спринге. Следующий вопрос: Почему вам нравится питон? Просто, куда не глянь я со своей колокольни не могу найти плюсов. С питоном сталкивался в школе(ЕГЭ на нём писал) и в универе(курс Теории Автоматического Управления) - с каждым разом убеждался, что язык полная х*а для чего-либо больше Хелло Ворлда:
- Отсутсвие статической типизации - из-за чего нету нормального аутокомплита в ИДЕ, да и вообще писать неприятно(Да, есть аннотации типов, но они работают через одно место)
- Язык медленный
- Многопоточность только для IO
- ООП полное уг (Даже в JS лучше)
- Долбанные __self__, и прочая фигня(Такое даже в C редко встречается)

Так вот, какие у него киллер-фичи за которые вы его любите? У C/C++ наприер - прямой доступ к памяти и скорость работы(при хорошо написанном коде), Java/C# - очень легко писать код, который легко поддерживать(Чистый код так сказать). И так с большинством языков. Помогите найти плюсы, предстоит на нём учить курс Machine Learning а сука так не хочется к этому языку прикасаться - расскажите о нём всё самое красочное, чтобы меня отпустило. Спасибо
Аноним 27/07/20 Пнд 23:15:10 1761888520
>>1761883
> Помогите найти плюсы, предстоит на нём учить курс Machine Learning а сука так не хочется к этому языку прикасаться - расскажите о нём всё самое красочное, чтобы меня отпустило
Детский сад
Аноним 27/07/20 Пнд 23:19:07 1761890521
>>1761883
Тут недавно пробегал жабовик, нахваливал питон и рассказывал, как всё плохо в этих ваших жабах, лол.
Аноним 27/07/20 Пнд 23:20:52 1761892522
>>1761883
Все завязывается на том, как и где ты используешь язык. Можно сколько угодно орать, что Хаскел для тру-мужигов, но количество вакансий говорит об обратном
На Пистоне удобно писать автоматизационные скрипты (часто для линуха), нейронки, управлять кластерами Биг Даты и ебошить микросервисы-апишки (к вопросу "медленности" - тот же FastAPI держится на уровне с Нодой и как правило фреймворк оказывается "медленным" в первую очередь потому что ты делаешь уебанский server-side рендеринг темплейтов или юзаешь неоптимизированные ORM-запросы а не из-за фреймворка как такового, никого не волнует сколько раз за секунду твоя параша может высрать plain text "Hello world")

>предстоит на нём учить курс Machine Learning
Ну так ебошь курс не на Питоне. Ой, погодите-ка, остальные курсы ведь каличное УГ и вакансий для них 1.5 штуки
Аноним 27/07/20 Пнд 23:34:06 1761900523
>>1761883
>из-за чего нету нормального аутокомплита в ИДЕ
В пайчарме все работает, только для своих функций надо использовать type hints. Для локальных переменных внутри функций необязательно.
>Язык медленный
Для большинства задач это не имеет значения, а когда имеет, то для питона есть куча библиотек написанных на крестах. Тот же Numpy работает не медленнее, чем код написанный на C++. В крайнем случае можешь сам написать тяжелый кусок кода на крестах.
>Многопоточность только для IO
Есть multiprocessing, пусть и со своими подводными. Но в целом согласен.
>ООП полное уг (Даже в JS лучше)
Чего конкретно не хватает? Питон не заставляет следовать ООП парадигмам - как хочешь, так и пиши, но для такого языка это наоборот хорошо. Есть множественное наследование вместо интерфейсов как на джаве, что заебись.
>Долбанные __self__, и прочая фигня
Это небольшие придирки.
>Так вот, какие у него киллер-фичи за которые вы его любите
Во-первых, на нем быстрее всего решать задачи, будь то нейронка, веб сайт или небольшая утилита. Если ты пишешь проект самостоятельно и он меньше 10k LOC, то выбирать надо однозначно питон. Для машоба, дата саенса и прототипирования в целом - однозначно питон. Во-вторых, к нему самое большое количество библиотек на все случаи жизни. В-третьих, у него есть REPL и соответственно возможность дописывать код прямо в рантайме.
Аноним 27/07/20 Пнд 23:47:02 1761911524
>>1761820
>Ты кучу раз ошибся в написании "PostgreSQL"
Аноны, объясните, так почему Постгрес, а не Мускул? Видел что все бенчмарки веб-фрейморков питона на нем, но почему именно?
Аноним 28/07/20 Втр 04:40:32 1761968525
>>1761900
>он меньше 10k LOC
По моему опыту - когда программа становится больше 200 строк, программирование на питоне превращается в боль.
Аноним 28/07/20 Втр 06:38:05 1761992526
>>1761968
Ты просто совсем не умеешь программировать.
Аноним 28/07/20 Втр 07:48:38 1762007527
>>1761992
/thread

Я не понимаю этого нытья. Паттерны им показали, используй.
Пук-пук простыня-спагетти. А то что жава превращается в огромный package с abstractshitnumber1.java concreteshitfornumber2.java с им нормально.
1 класс 1 файл. Почему? Нахуй идите, мы так захотели.
Хочешь расширить функционал? Поебись сначала.
Не принадлежит package?
java.shitforproject.interfaces.implementation.huipizda.commercial.govno. Каеф.
Аноним 28/07/20 Втр 10:47:03 1762102528
>>1761883
>ООП полное уг (Даже в JS лучше)
ты просто не осилил.
Аноним 28/07/20 Втр 10:53:13 1762103529
Аноним 28/07/20 Втр 11:12:54 1762110530
Как часто придется юзать ооп патерны? Конструкторы деструкторы, и прочую ооп мутатень? Стоит ли заострять на этой теме большое время?
Аноним 28/07/20 Втр 11:26:03 1762120531
>>1762110
Сука проебался тредом, это должно быть в пхп(
Аноним 28/07/20 Втр 14:27:51 1762253532

Сап. Знаю основы python, но только недавно определился с сферой - машинное обучение и AI в общем. Есть тут челы, которые шарят за эту тему? Мне бы хотя бы примерный путь обучения(литературка, курсы). Сейчас еще в самом треде машинного посмотрю, но решил сразу в python написать.
Аноним 28/07/20 Втр 16:53:19 1762389533
Кто ещё использует mypy? Блять, что за логика у него ебанутая? Почему если у функции аргумент Dict[str, Union[int, str]], то объект Dict[str, str] на вход этой функции -- НИСАВМИСТИМА. Блять, как же от него бомбит. Вложенный TypedDict тоже через жопу работает, так как он считает, что значения, возвращаемые .items() -- это экземпляры object. Чего блять? Я аннотации для кого указывал?!
Говно какое-то блять. 2 дня пишешь код, потом как мудак ещё 2 дня пишешь тесты и занимаешься хуйнёй с этими ебучими аннотациями, чтобы эта хуйня ошибки сыпать перестала. Ну в рот его ебать, я за аннотации, конечно, но когда они начинают почем зря мозги ебать, нахуй оно надо тогда ёпт?
Аноним 28/07/20 Втр 20:19:46 1762550534
Аноним 28/07/20 Втр 21:05:11 1762584535
>>1762110
>>1762120
Постоянно. Потому что пыхеры ебанулись на этой теме
в динамическом блять языке, ахуеть
Аноним 28/07/20 Втр 21:09:33 1762585536
Аноны, пытаюсь нахуярить скрапер, чтобы собирать с одного сайта изображения, проблема в том, что адрес у них с blob: и нормально скачать их не выходит. Что с этой хуетой делать? Единственные советы что нашел
https://stackoverflow.com/questions/47424245/how-to-download-an-image-with-python-3-selenium-if-the-url-begins-with-blob
предлагают конвертить эту хуйню с помощью выполнения JS-кода драйвером, как-то аккуратнее это сделать нельзя?
Аноним 28/07/20 Втр 21:10:46 1762587537
Аноним 28/07/20 Втр 21:23:05 1762597538
>>1762585
Можно поинтересоваться, зачем тебе именно Селениум? bs4 не катит?
Аноним 28/07/20 Втр 21:25:43 1762600539
Аноним 28/07/20 Втр 21:54:48 1762625540
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов