Этого треда уже нет.
Это копия, сохраненная 6 февраля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №94 /python/ 1752122 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #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
2 1752129
Вкатившиеся аноны
Нюфани

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

опытные 300к/нс тоже предлагайте, а то шапка полная хуйня
3 1752138
>>52129
Раз уж про шапку, то бампану вопрос из прошлого треда

Аноны, недавно книги обновили в шапке, в новых есть Поваренная книга по Докеру, но она за 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
4 1752140
>>52129

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

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. Очень годно пишет, есть платные книги естественно.
5 1752148
Братаны, прислали тестовое: сделать на выбранном мною фреймворке мини веб-приложение где будет кнопка "авторизоваться", при нажатии на нее происходит oauth в контакте и показывается всякая ебень на этой же страничке
На чем пилить? Если б был свой кастомный crud, то все по хуйне, а так с вк взаимодействовать придется
6 1752153
>>52148
OAuth есть везде.
Ты про это говорил?
https://github.com/python273/vk_api
Какой у них стек сейчас на том и пили, ящитаю.
7 1752160
>>52129
С Awesome list обосрался, вот актуальный https://awesome-python.com/
1594824509623.jpeg101 Кб, 800x450
8 1752171
Анон, выручай! Вчера мне помогли код написать. Нужно всего лишь строчку желтым выводить. Подправь для вывода, плз.
https://pastebin.com/WszHK8yk

Вот тут написано, что было найдено в аналогичных скриптах, где вводится цветом. >>1751660 → Вся сложность в том, чтобы задать всю эту строчку, как переменную и просто присвоить ей цвет, как я понял.
9 1752206
>>52171
Поставь colorama и не еби мозг.
10 1752212
>>52171
print(f'\x1b[0;33;40mss://{encoded_uri.decode('utf-8')}{add}\x1b[0m')

Мне с format как-то приятнее в {} заключаются переменные

И гуглишь ты ооооочень хуево https://stackoverflow.com/questions/287871/how-to-print-colored-text-in-python
11 1752259
Я хуй знает куда обращаться с такими узкоспециализированными вопросами, но может в этом тредю найдутся люди которые поднимали сервер на Sanic внутри WSL.
12 1752264
>>52259
ну не sanic, но поднимал. Что надо-то?
13 1752267
Не можешь понять связку uvicorn-gunicorn что ли?
14 1752269
>>52264
Да какая-то куча трейсбеков при попытке это дело просто поднять. Хз какой 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 1752271
>>52269
А у тебя права на пользователя какие? От sudo запусти и все будет работать
16 1752281
>>52271
Да под sudo то же самое.
17 1752283
>>52281
Выбери порт 8082, значит тот чем-то занят.
18 1752287
>>52283
Да так можно вечно перебирать. Ладно, спасибо за помощь, хуй знает, это наверное в фреймворках какая-то проблема, есть какие-то особенности в их работе шо их в WSL не запустить, так как python3 -m http.server поднимает спокойно 0.0.0.0/8000 в терминале.
19 1752296
Имеет ли смысл юзать aiohttp вместо FastAPI или Starlette?
20 1752297
>>52153
Джанго и немного фласка у них. Но им вроде как похуй на мой выбор
Прост для питона есть ебалион oauth2 либ, каждой твари по паре, может кто уже пилил подобное, интересно на чем легче будет
21 1752314
>>52287
А у тебя какая версия? WSL2? В WSL1 вроде танцы с бубнами были для прокидывания localhost
22 1752315
>>52296
Нет. Это DIY фреймворк. Ещё тебе background tasks самому делать, Pydantic прикручивать и OpenAPI(Swagger). Смысл есть если именно под себя будешь пилить.
23 1752317
>>52297
Она уже идёт из коробки с Джанго.
24 1752319
Тут мне помогут с этим? >>1752280 →

Даже не знаю с чего начать и как.
25 1752324
>>52314
Вторая, но я до этого делал даунгрейд и пробовал на WSL 1.
26 1752329
>>52315

>Смысл есть если именно под себя будешь пилить.


А, то есть если я хочу вспонить как все это делается или научится, то в самый раз
27 1752335
>>1752280 →
Делаешь инициализирующую функцию где выбираешь радномно время запуска по какому нибудь промежутку юникстайма на конкретный день или как тебе хочется и формируешь таски. Потом берешь кронолибу, которая бы формировала таски в инициализирующей функции по указанному времени.
28 1752400
>>52319
while True:
if 0 < datetime.now().hour < 4:
# do
time.sleep(random.randomrange(0, 10, 1)
time.sleep(random.randomrange(0,10, 1)

Запускаешь скрипт и по проверке работает рутина, либо крон.
29 1752404
>>52329
Вспомнить что? Байтоебство? Тебе шашечки или ехать? Если ехать, то бери фреймворк готовый, если хочешь бенчами мериться и майнтейнить проект то aiohttp.
30 1752420
>>52400
Я другой нюфак в питоне и вообще программировании: а как работают while true функции? Как часто они проходят этот цикл? Сколько раз в минуту, например? Или они так не работают?
31 1752430
>>52420
Бесконечный цикл. time.sleep(2) заставляет приостановить выполнение на 2 секунды.
Напиши
while True:
print("Gvido was not right about switch statement")
time.sleep(1)
И потом попробуй другие значения. Выход из скрипта ctrl+c
32 1752439
>>52420
Сколько получится.
В старых играх считали время длинными циклами и потом они летали, как появились более быстрые процессоры, лол.
33 1752450
Во блин, как во Фласке запарсить текущий url? У меня после редиректа в параметрах url передаются данные (http://myhost.com/#user_id=228), как его оттуда вытащить? Когда делаю:

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

Он херню печатает:
/?
ImmutableMultiDict([])
34 1752453
>>52450
После # не передается на сервер, это клиентская хуйня.
35 1752454
Продублирую свой скрин из прошлого

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

Немного переделал, все работает, но правильно ли? Хз.
Вызов create_new_game тоже должен выглядть game = await create_new_game() ?
Так же экспериментально было установлено, что в load_questions нужна инструкия return, иначе будет None в переменной, по почему так? await f.read() ведь должен не только возвращать упревление, но и значение, разве нет?
36 1752465
>>52453
Лол и че делать? составлять жс-говнокод на клиенте?
Нафига вк такую хуйню замутила?
37 1752466
>>52319
В инит функцию пихать некомильфо. Возвращает же questions.

В if __name__== 'main':
loop = asyncio.get_event_loop()
game = Game(*args)
loop.run_until_complete(game.load_questions())
,А что вообще должно быть? Aiofiles иногда медленнее отрабатывает чем синхронная. Бывает и такое.
39 1752471
>>52465
Так работают т.н. SPA-сайты. Логика и интерфейсы на клиенте, на сервер ходят только за данными.
Можно повторять эти запросы, можно рендерить страницы каким-то селениумом и грабить готовые.
Я хз, что ты хочешь сделать.
40 1752473
>>52465
А ваще бери nginx и njs для парсинга. Один хуй в проде все через проксботает. ожет сразу js внедрять. Типо п
41 1752474
>>52473
Прокси работает. Сразу парсишь запрос и уже идёшь на нужный url, можешь хоть параметры в json перегнать, похуй.
Макака почини ебучую доску
42 1752491
>>52400
Блин,я неправильно пояснили в реквесте.

У меня два скрипта типа 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 минут.

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

Сразу на фриланс.ру идти? Мне кажется это все просто должно быть и вы напишете мне на халяву или подскажите что и как это безнадежно я пробовал несколько раз в программирование и не получается
43 1752495
>>52491
Какие там вероятности, блять.
time.sleep(random.randint(1800, 7200))
От полчаса до двух раномная пауза. Потом запускаеешь свои скрипты.
И ставишь в планировщике утром и вечером, например.
44 1752508
>>52122 (OP)
Анон ты вчера мне помог определить айпи используя https://api.ipify.org. А можно ли так же вытянуть, что за страна, и вставить, как значение в строчку вывода?
error.jpg28 Кб, 672x190
45 1752516
>>52212

>И гуглишь ты ооооочень хуево


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

Вот два вывода:

>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
46 1752518
>>52516
Поменяй внешние кавычки на двойные.
47 1752520
>>52518
Анон, ты красавчик! Спасибо тебе большое!
48 1752522
>>52508
Вот нашёл несколько апи.
https://ipgeolocation.io/
https://ipapi.co/#api
http://ip-api.com/json/?fields=61439

Подскажите код, чтобы вытащил название страны и в переменную ее записал для дальнейшего вывода.
49 1752543
>>52522
Делаем домашку и лабы ИТТ бесплатно и смс.

Сам делай, даю подсказку: тебе в ответ приходит JSON.
50 1752545
>>52543
Какую домашку? Я питон в жизни не изучал. Мне просто нужен скрипт, не более. Да и какие домашки, в школе питон что ли проходят? Да и каникулы.
51 1752571
>>52545
Так и зачем ты тогда сюда обратился? Ты данные можешь и curl получить и распарить строку
52 1752582
>>52545
https://pastebin.com/EKHutaPa

Сначала поставь requests, в стандартный набор не входит.
image.png15 Кб, 420x285
53 1752586
Помогите неофиту плес. Почему когда я перевожу строку с латиницей в байты, то получается:
b'abcdeg'
А когда перевожу строку с кириллицей:
b'\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5'
почему так нахуй?
54 1752594
>>52586
Потому что ascii входит в утф-8, а кириллица это мультибайтовая хуйня, энкод которой и дает твой результат.
56 1752617
>>52594
>>52597
Спасибо вам, запутался из-за того что ожидал что encode() вернет мне строку байтов:
encode('abcde') => 97 98 99 100 101
а он возвращает вообще какой то непонятный объект. Пришлось через for вытаскивать значения байтов.
Может у класса bytes есть какой то метод чтобы получить сами значения байтов?
57 1752619
>>52404

>Тебе шашечки или ехать?


Я просто хочу ПОЗНАТЬ КИШОЧКИ
58 1752621
>>52454

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


Юзай классовые методы типа такого
@classmethod
async def create(cls):
____connect = await create_connect()
____return cls(connect)
59 1752625
>>52617
Просто выдает принтабельные символы принтабельными, а так представление не имеет значения, может быть хоть так, хоть эдак.
Есть метод hex. Можешь прогонять вручную через list(bytestr).
60 1752627
>>52619
Ну хуй знает. Тебе ещё тонну handler'ов писать и в продакшен ты его никогда не запустишь. Видел недавно поломанную conda с сервисом на twisted. Ну охуеть чо, что-то лазили менять в API и все слетело
61 1752659
>>52597
>>52586
Я блять с пока с этими ебаными кодировками разбирался, реально себя контактером почувствовал.
https://www.youtube.com/watch?v=RirqnBUQTEU
62 1752660
>>52621
А хотя похуй, как у тебя тоже можно. Чёт вспомнил ws.prepare из aiohttp
63 1752667
>>52659
Это непростая тема и мало кто-то в ней действительно разбирается, в основном нужен какой-то злоебучий проект с этим связанный, чтобы влезть туда и таки прохвать чо почем.
64 1752791
Аноны, если вы знаете где скачать ПДФ/еПАБ кидайте прямые ссылки.

>>52138
Не нашел где скачать.
>>52140
Купил у него, если нужнен еще и русский - отпишитесь. https://ln2.sync.com/dl/c7d765e30/24666ji3-pdcyibnd-eyi4drny-97gq4y8m
65 1752813
>>52791

>Не нашел где скачать.


Хз как правильнее будет скинуть но вот https://dropmefiles.com/MB8Uy
Сравнить с первой не могу, т.к. первую не читал, но пока половину этой прочел - в принципе неплохо, если до этого с докером не работал, наверное, даже совсем неплохо будет. Подробные примеры, картинки, команды дает как легаси (которые почти во всех источниках), так и новые
66 1752818
>>52813
Скачал, скоро залью.
Пробежался по оглавлению и книге - выглядит неплохо, пойдет для в ката в докер, вместо листания документации и гугления. На первых парах, есесно.
67 1752857
>>52813
Пакт довольно стремная контора, я бы от них смотрел в последнюю очередь.
Хотя и там бывает годнота, потому что берут всё подряд.
68 1753084
В SQLAlchemy как присваивание поле происходит? Так же как в django orm?
some_object.name = "Some Name"

?
Потом метод .save или ему подобный надо вызывать?
69 1753092
Суп программач. Копипастаю из faq тренда. Как мне устанавливать модули питона пипом, чтоб модуль был доступен для всех пользователей?
Типа если я от админа в консоли cmd напишу pip install хуйнянейм, а потом из под юзера запущу питон, то он напишет, что модуля хуйнянейм нет. И приходится запускать питон от админа.
Пять минут в гугле ничего не нашел для винды.
Хелп.
70 1753109
>>53092
Ну ты общую директорию возьми ёпт, у каждого юзера должен быть прописан PYTHONPATH соответствующий.
Хотя я бы сразу на venv садился, ибо нехуй
71 1753225
аноны, какие в питоне два метода перегрузки операторов можно использовать для поддержки итераций в классах?
72 1753229
ля, когда захожу на погромач в питоновый тред плашка "избранное/топ тредов" чинится и снова отображает новые посты, мистика.
Привет аноны!
Подскажите, пожалуйста, материал по сериалайзерам джанго, не могу понять как собрать ответ вида
{user1:{phone1,phone2},user2:{phone4,phone6}}
из двух таблиц пользователи и телефоны.
73 1753245
>>52454
а чо это за цветовая тема такая? вскод?
74 1753257
>>53225
iter и next
75 1753297
>>53229
докладывю, разобрался. related_name проебал.
76 1753346
>>53297
А вот как ограничить набор телефонов по какому то префиксу я не нашел :(
Подскажите пожалуйста
77 1753363
>>53346
Это для ДРФ что ли? Можешь модифицировать get_queryset у вьюхи, чтобы выдавала нужные телефоны
78 1753387
>>53363
На сколько я понял глядя в доку по get_queryset этим фильтром мы уберем только в начальном сете данных что нам не нравится, в смысле получится отфильтровать имена. Может ошибаюсь.
Нашел для "вложенных" данных способ фильтровать https://stackoverflow.com/questions/28163556/how-do-you-filter-a-nested-serializer-in-django-rest-framework
79 1753405
>>52857
Не знал про Пакт, просто искал есть ли новое издание кукбука из шапки, думал мб по аналогии с питоновским кукбуком будет что-то интересное, а в итоге просто неплохая книжка для тех кто с докером не работал, с картинками, объяснениями, ссылками на документацию
80 1753411
>>52571
Не могу, т.к. у меня остальной скрипт на питоне. Тебе сложно написать несколько строчек решения?

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

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

https://pastebin.com/4zrpxT99 (страна должна в конце строки добавится, как #country (диез в этом случае обязательная часть, которая в итоговой строчке даст понять, что это страна)
81 1753430
Как в джанге нормальным способом пропатчить/замокать сеттингс работая с пайтест?

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

Всё что нужно - добавить в сеттингс один атрибут на время теста
82 1753447
>>53245
Редактор spacemacs, тема spacemacs dark
парпарпаопп.png101 Кб, 1269x770
83 1753537
Всем привет. Камрады пните в нужную сторону плиз. Есть таблица в экселе и также необходимо сделать в Power BI используя Python. Собственно вопрос питон позволяет сделать подобную визуализацию что бы потом можно было подтянуть данные из БД? Что читать ? Куда бежать? Заранее всем спасибо за ответ
84 1753547
>>53411
Тебя что не устраивает? Переменную объявил просто так.
Ты голову то включай. Посмотри API сервиса.
85 1753548
>>53537
Pandas
86 1753566
>>53537
есть такая дрочильня - redash.io . начни с нее. но она какая-то примитивная.

Или тебя заставляют именно в power bi разобраться? А там теперь есть встроенный питон? И сколько в итоге это будет стоить заказчику?
87 1753617
>>52122 (OP)
Подбросили тестовое:

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

Удаление и доступ к файлам осуществляются по этому хешу конечно же.
На чем пилить? В смысле - я б навалял подобное на Django но тут нужен "демон", че делать?
88 1753618
>>53617
ОСь какая?
89 1753619
>>53617
Смотря на какую это позицию.
Никто не будет против если ты выдашь в результате Dockerfile.
Но может там веб-макакинг?
90 1753620
>>53617
Ебать халява. Это откуда такое прилетело?

Это IO-bound, делай на aiohttp+aiofiles, если умеешь.
91 1753638
>>53618
Линух Дебиан канешн. Какая ж еще?
Под демоном скорее всего имеется ввиду обычный веб сервер (запускаемый через sudo service)

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

>>53620
Все что я делал на этих асинхронках это парсил разные сурсы и записывал инфу на драйв. Мне джангоближе
Хз кстати что делать с "хешем". Я б просто uuid намутил и хрен с ним
92 1753641
>>53638
1. Ну systemd тогда вот тебе и демон
2. Хэш позволить определить целостность файла, может это подразумевалось?
93 1753655
>>53638
Так на какую позицию это задание?
94 1753674
>>53638
Скорее всего предполагается, что хеш от содержимого файла даст его уникальное имя. Это будет работать как дедупликация: если много юзеров будут грузить одну и ту же смищную картинку, то система не будет дублировать ее данные, а зальет ее только один раз. Если взять от хеша первые несколько символов, то ты можешь создать подкаталог, в который положишь сам файл. Это нужно потому, что файловые системы обычно хуево переживают миллион файлов в одном каталоге. В каждый из подкаталогов будет падать примерно одинаковое количество файлов с хеш-именами, потому что каждая часть хеша имеет линейное вероятностное распределение.

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

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

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

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

Можешь сказать, что при неизвестном профиле нагрузки имеет смысл попилить задачу на две части: один демон будет принимать и складывать вообще все файлы на диск под временными именами, а второй демон будет просыпаться при определенных условиях (при достижении какого-то количества файлов >>И<< раз в несколько минут), чтобы прохешировать и дедуплицировать данные. При этом задачу именования файлов следует тоже разделить на две части: давать файлам имена по уидам, возвращать юзеру этот уид, а потом, когда хеш будет посчитан, сделать какие-то пометки в какой-нибудь бд про соотношения уида и содержимого.
94 1753674
>>53638
Скорее всего предполагается, что хеш от содержимого файла даст его уникальное имя. Это будет работать как дедупликация: если много юзеров будут грузить одну и ту же смищную картинку, то система не будет дублировать ее данные, а зальет ее только один раз. Если взять от хеша первые несколько символов, то ты можешь создать подкаталог, в который положишь сам файл. Это нужно потому, что файловые системы обычно хуево переживают миллион файлов в одном каталоге. В каждый из подкаталогов будет падать примерно одинаковое количество файлов с хеш-именами, потому что каждая часть хеша имеет линейное вероятностное распределение.

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

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

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

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

Можешь сказать, что при неизвестном профиле нагрузки имеет смысл попилить задачу на две части: один демон будет принимать и складывать вообще все файлы на диск под временными именами, а второй демон будет просыпаться при определенных условиях (при достижении какого-то количества файлов >>И<< раз в несколько минут), чтобы прохешировать и дедуплицировать данные. При этом задачу именования файлов следует тоже разделить на две части: давать файлам имена по уидам, возвращать юзеру этот уид, а потом, когда хеш будет посчитан, сделать какие-то пометки в какой-нибудь бд про соотношения уида и содержимого.
95 1753685
>>53641
Я через supervisor чаще пилил

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

>>53674
Спс, годно
В задании кстати не определено что это за "файлы" и каков их размер
96 1753703
>>53685
Раз не определено, то пиши в соответствии с ТЗ и приложи к этому пояснительную записку. Скорее всего от тебя ждут именно решения в лоб и будут не слишком рады, если ты начнешь задавать вопросы без решения. А вот показать, что у тебя есть мозг, все-таки стоит.
97 1753717
>>53685
Ну сейчас массовый перекат на systemd даже LTS, но внутрянка systemd конечно же отличается. Параметры там например сложнее задавать. Я пилил на systemd, так как ubuntu 18.04
98 1753724
>>53717
Делай /etc/conf.d/blabla с переменными окружения для сервиса и будет тебе счастье. Ну и еще override. Это не сильно отличается от rc.

Хотя systemd, конечно, говно.
99 1753732
>>53674
Нинада делать возвращение uuid вместо хеша, у нас так в соседнем отделе завалили чувака, который задачу не по ТЗ сделал, хотя все было хорошо
100 1753739
>>53732
Я же написал, что надо делать по ТЗ и приложить свои комментарии, ну.
101 1753797
Кстати, но есть же небольшая вероятность что хеши разных файлов совпадут. Как с таким борятся? В том же словаре питона эти файлы просто будут положены в одну "ячейку-массив" где после совпадения по хешу будет линейный поиск за время О(n), а как быть в остальных случаях?
102 1753804
>>53724
В systemd Environment задаётся
>>53797
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 операцию в таком случае,не?
103 1753907
>>53797
Такое можно специально скрафтить, а для реальных юзабельных файлов вряд ли возможно.
104 1753923
Ruby JavaScript-дебил вкатывается в тред. Много лет назад вкатился в кодинг через Рубин на Рельсах. Рельсировал недолго, а работу нашёл вообще фронтендером. Сейчас ищу что-то для быстрых бекенд прототипов с норм языком. Node.js естественно пробывал, но ощущения не те. Мозг сопротивляется писать иначе на ноде, чем для браузера. Типа язык тот же, но набор фич разный. В итоге вместо быстрого прототипа я в среднем сижу неделю и настраиваю проект (все эти линтеры/бабель/конфиги баз данных/ормы и т.д.). Помню в своё время как легко было фигачить круды на рельсах. Но рельсы официально ВСЁ. Поэтому выбор пал на Питончик. Аноны поясните чому тут такие сложные инструменты? Попробовал запилить хеллоу-круд на Джанге и началось:
1. Выбери виртуальную среду (venv/pyenv/virtualenv)
2. Выбери пакетный менеджер (pip/pipenv)
3. Создай ручками то/это/поправь конфиг

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

Питон учу чтобы перекатиться потом в дэйта сайенс
инбифо: яваскрипт-дебил может перекатиться только нахуй
105 1753970
>>53923

>1. Выбери виртуальную среду (venv/pyenv/virtualenv)


Чтобы не засирать машину десятками сторонних либ ты делаешь виртуальную среду, при переносе на сервер собрать список нужных либ можно 1 командой, а не вычленять и составлять его самому из всех либ что есть на ПК. Если работал на ноде, считай что с виртуальным складываешь все в node_modules в проекте, а не засираешь папками весь ПК

>2. Выбери пакетный менеджер (pip/pipenv)


Пользуйся пипом и не еби мозги

>3. Создай ручками то/это/поправь конфиг


Все равно все шаблонно идет везде
106 1754035
>>53923
1. pipenv тебе сразу ее создаст
2. pipenv сразу генерирует зависомсти и версионность пакетов
3. шаблонизируй хуле

Потом через pipenv проще будет разворачивать на проде (так обещают)
107 1754037
Как кстати сервится файл когда юзер запрашивает его через api? Раньше мне приходилось сервить только статику и картинки, с обоими задачами справлялся nginx, когда я ему просто передавал нужный url, а что если юзер запрашивает произвольный файл?
Открывать его через open(filename, "rb") норм? Это не дыра в безопасности? И не лишняя ли нагрузка на систему? Есть способы более эффективно сервить файлы в частности в джанго?
108 1754042
>>54037

> from django.http import FileResponse


>>> response = FileResponse(open('myfile.png', 'rb'))


А где там дыра? Ну так валидируй тип файла имя по regex.
Проверь что это именно имя файла.расширение а не /etc/groups
109 1754063
Если случайно активировать pycharm Pro чужим ключом, владелец ключа может получить доступ к проектам/исходникам?
110 1754124
Аноны, прошел курс по python на coursera от ВШЭ, было кучу задач по матеше и как такого опыта мало дало. Что посоветуете делать дальше?(P.S мне 17 лет, так что универ не вариант)
111 1754132
>>54124
А что ты хочешь? Если просто так изучаешь, то кури django. Делать свои веб приложение это хотя бы полезно
112 1754139
>>54132
Читал, что для data science нужна высшая матеша, думал попробовать на ruby, что про него скажешь?
113 1754147
>>54139

> думал попробовать на ruby


Нахуя.
Для этого есть python и R. По ним больше всего инфы, курсов и тд.
Дата сайенс очень чего в себя включает. Матеша нужная для машинного обучения, после первого курса норм зайдет, а так у тебя мотивации не хватит разобраться, думаю. Лучше тогда кеггл дрочить и уже потом разобраться как оно работает.
114 1754219
>>52122 (OP)
Слушайте, можно ли в теории реализовать такую задумку на питон kivy?

Приложение для интервального повторения повторения мат формул, значений тригонометрии, интегралов, возможность добавлять свои формулы, значение. Я использую подобное приложение для изучения инглиша, за месяц бустанул словарный запас от нищих 700 слов до 2.4к в реальности чуть меньше, но не намного.
115 1754293
>>54219
в теории можно все.
а разве нет универсальных приложений куда загружают эти файлы?
116 1754309
>>54147
Насколько сложно написать какого-нибудь несложного бота и что для этого нужно?
117 1754324
Как сделать ретраи в стиле DRY? Вместо вот такого:
while i <= 5:
....try:
........some_fucking_operation()
........break
....except:
........i += 1
.webm1,1 Мб, webm,
750x1058, 1:03
118 1754327
Как перестать писать скрипты и начать писать программы?
Непонятно, то ли знания ООП и паттернов проектирования страдают, то ли я в принципе не умею в питоню.
Начал писать файловый процессинг с валидацией и шифрованием, тем не менее кажется что мой код - некрасивая, кривая хуйня (костыль).
Чего не хватает, что почитать?
119 1754330
>>54324
Из этого отрывка не совсем понятно чего ты хочешь добиться.
DRY - по мне так из разряда того, что ты не должен копипастить свой код на разные методы.
Если есть что-то повторяющееся, то выноси в отдельные классы/методы и переиспользуй их.
120 1754331
>>54324
Поставь tenacity
.webm10,2 Мб, webm,
441x567, 2:35
121 1754333
>>54309
Почитать пару док по либам, как они работают, и собственно всё.
На первом этапе думаю этого хватит.
Остальные технические нюансы узнаешь в процессе, если они тебе понадобятся.
122 1754334
>>54327
Про рефакторинг почитать. GoF - refactoring.guru, про "паттерны" через builtin на medium есть примеры.
123 1754335
>>54309

>Насколько сложно написать какого-нибудь несложного бота


Ровно настолько же, насколько сложного бота ты хочешь написать.

>что для этого нужно?


Чем писать, на чём писать, время чтобы писать, еду и питьё, доступ в интернет (опционально).
124 1754336
>>54309
Можешь написать жука-спредовика. Мне мой в своё время на пару пива за день наскребал. находил штук 20 полудохлых монет с большим спредом и небольшой активностью, и держал крайние позиции. Не знаю, будет ли сейчас работать. Года 4 назад дело было.
125 1754338
>>54330
вконце забыл sleep(1)
Смысл в том, чтобы повторять выполнение некоторых операций some_fucking_operation(), если они вернут исключение. Операции могут быть разные в разных мястах, и для каждой строки такую обвязку писать неправильно. А штатного метода типа декоратора @repeat(5) для отдельной строки кода не нашел.
.webm12,3 Мб, webm,
660x720, 1:46
126 1754340
>>54334
Паттерны с guru и брал , в принципе, там классно описано, мне нравится.
Знаешь, такое чувство, что в коде слишком много императивщины.
Я пытаюсь прикрутить объекты, но основной каркас получается как последовательность инструкций - это так у всех, или только у меня?
Собственно я один на проекте и подчерпнуть знания не у кого особо.
Листаю гит, смотрю как опытные дядьки делают, но чет не особо выходит, как по мне.

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

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

не хочется юзать простой словарь - там не понятно какие ключи есть, а каких нет
.webm3,3 Мб, webm,
1280x720, 2:47
127 1754342
>>54338
Может у тебя изначальный поход немного не тот?
Зачем тебе повторять некоторые операции несколько раз подряд.
Если это решение каких-то проблем с сетью, то ты можешь на более низком уровне абстракции эти репиты сделать, а потом во всех high level методах переиспользовать один метод, который будет репитить операцию, если не получил ответ например.
128 1754348
>>54342
Ну пусть будет деление на n, где n - случайное число, или работа с файлом, который может быть занят, или таймаут какой-нибудь, да тысячи применений, а метод по сути универсальный.
129 1754350
Как упорядочить информацию о питоне и его обширных стандартных библиотеках и стоит ли вообще этим заниматься? Я то все время просто гуглю "how to do X in python", и точечно смотрю что я могу сделать и с помощью чего, а что нет и надо искать либы в pip. Меня такой подход не подводил, но что на собесе по этому поводу спрашивают? Я же не скажу им на интервью: "сейчас, загуглю, поищу в доках минут 15 и скажу ответ". Или вот такие вещи как дата классы. Новая фишка, совсем необязательная, столкнулся с ней на моем проекте. Так бы вообще про них не узнал, а выглядит полезно. И сколько еще такого, что просто не найти, так как гайды двух и трехлетней давности?
130 1754352
>>54350
Вот тоже интересно. Без фильтра по дате в поисковике уже никуда, времена такие. Но всё равно этого мало.
131 1754408
Неофит на связи.
Как мне задать множество чисел, например множество K от 1010 до 1020, при этом не храня все промежуточные значения?
132 1754409
>>54408
10^10 до 10^20
быстрофикс
133 1754411
>>54408
И что с ними делать предполагается?
134 1754412
>>54408

>Как мне задать множество чисел, например множество K от 1010 до 1020, при этом не храня все промежуточные значения?


Через генераторы же: range(10^10, 10^20). Значения будут вычисляться по мере надобности.
135 1754415
>>54411
Допустим, мне требуется проверить принадлежность объекта к заданным большим множествам
136 1754416
>>54415
Можно сделать класс и в нем реализовать метод __contains__, тогда можно будет проверять через n in obj.
137 1754418
>>54416
Кстати, стандартный range это уже умеет, оказывается, лол.
138 1754420
>>54418

>range это уже умеет


Во бля, мне именно это и надо было, спасибо.
139 1754432
Сап дорогие аноны.На связи ньюфаг, который просит помощи у достопочтенных анонов.Суть задачи такова: есть список рандомных строк, и нужно написать функцию которая принимает этот список и возвращает среднюю длину слов в этом списке.Я код накатал, но не пойму в чем ошибка что он не работает.Помогите пожалуйста.Вот то что у меня получилось:

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)
140 1754433
>>54350

>Я то все время просто гуглю "how to do X in python",


так сделай pip install howdoi
лол.
141 1754436
>>54432
У тебя вообще какая-то бессмыслица.
Вот как-то так.
sum(len(el) for el in lst) / len(lst)
142 1754437
>>54350
Я для любой технологии собираю книжки формата cookbook.
Читаешь оглавление. Примерно запоминаешь что такие то классы задач описаны и потом при необходимости вчитываешься.

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

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

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

Вообще не вижу тут особой проблемы. Поиск новых библиотек так часто у тебя происходит? Со временем ты их все узнаешь и перестанешь беспокоиться.
Screenshot187.jpg13 Кб, 420x171
143 1754438
>>54433
кстате, программа бомбовая.
ну реально же самый частый вопрос программиста - с фильтром по stackoverflow
144 1754441
>>54436
Пожалуй ты прав.По твоему варианту вижу что я вообще не то делаю.Спасибо дорогой анон за помощь.Добра тебе няш)
15950114571340.jpg10 Кб, 329x331
145 1754611
Шарит кто за pytest?
Пробую запустить файст text_name.py через cmd командой pytest -v а он мне PermissionError: [WinError 5] Отказано в доступе
В чем прикол? От имени администратора пробовал запускать, конечно. Дал админу полный доступ к дискам и файлам, не помогает
146 1754615
>>54611
было бы проще если бы ты написал полную команду вместе с ошибкой
image.png62 Кб, 970x448
147 1754625
>>54615
Вот
148 1754711
Что можно почитать про компьютерное зрение для python 3.x?
149 1754732
>>54711
там же где и про python 2.x - библиотека opencv

но вообще, нынче модно image embeding и облачное зрение.
Загружается в Гугл картинку - получаешь текст описания.
(и продаешь последние штаны чтобы иметь возможность оплачивать счета GCP)
150 1754744
>>54441
А мне вот интеерсен ход мыслей в твоём варианте. Чисто ради фана.
151 1754758
>>54432

>if i in lst:


к чему эта проверка вообще? что ты ей хотел сделать?
152 1754764
Почему на слудющем шаге ноль записывается в каждый вложенный список массива game_board, а не только лишь в тот единственный на котором остановилась итерация ?
2020-07-18 210509-Greenshot.png21 Кб, 1088x676
153 1754765
Почему на слудющем шаге ноль записывается в каждый вложенный список массива game_board, а не только лишь в тот единственный на котором остановилась итерация ?
2020-07-18 211756-Greenshot.png54 Кб, 1600x900
154 1754768
Получается вот так
155 1754769
>>54765
потому что каждый вложенный список у тебя по-сути является ссылкой на один и тот же объект
156 1754771
>>54765
Потому что для каждого условия один и тот же m
image.png17 Кб, 514x297
157 1754781
>>54765
>>54769
Если тебе нужно поле 6 на 7, организуй через два генератора списков
158 1754794
>>54769
Не понял, нихуя. i == 0, это первый список из массива. И я записываею в этот список цифру, почему записывает и в следующий ведь до i == 2 еще не дошло. Схуя ли он лезет в каждый вообще ?
159 1754798
>>54781
ок буду знать что так можно спс
160 1754803
>>54781
Только нахуя это делать если так меньше писать ??
161 1754806
>>54771
Для какого каждого условия ? Если один шаг и каждый список меняется
162 1754808
>>54794
Потому что каждый список у тебя - это один и тот же объект, а не 6 разных
163 1754810
>>54808
То есть мой массив и вот этот массив >>54781 это разное или что ?
164 1754813
>>54808
Да действительно, пздц спс
165 1754814
>>54781
Терь я осознал твой ответ царский, спс
166 1754817
>>54810
Анон в >>54781 создает разные массивы, ты же создаешь 1 и просто несколько раз его размножаешь, но по сути это все еще 1 и тот же массив.
Aa3iDjTFo2k.jpg73 Кб, 604x477
167 1754819
Всем спс, cнимаю шляпу в благодарочке
168 1754905
>>52430
switch на словаре пашет норм но выглядит уебищно
169 1754906
Как в Джанго или в другом веб приложении сделать перенаправление с www сразу на этот же ресурс но без приставки www?
У меня просто https://myresource.com бесит когда добавляется www и ничего не открывается
170 1754913
>>54906
Пара строчек в nginx.
171 1754920
>>54913
Каких же?
173 1754928
Двачане, как найти стажировку по путону, если я студяга работяга закончивший 2 курс. И сколько времени нужно потратить на получение знания для прохождения стажировки успешного допустим с нуля, хотя не совсем так, ибо в других языках опыта немного есть. На плюсах год сидел по долгу учёбы, потом семак java дрочил и js пол годика. Но всё дальше лабораторок не заходило, что грустно. Вот решил в питон вкат оформлять тотальнофинальный так что задаю вопрос сюда. Алсо как питон для спортивного программирования, а то после курса дискретки хуяка стоит на это. Прямо хочется попробовать. И если не трудно там около роудмап какой-нибудь мне дебилу. Буду премного благодарен, а так же с меня как обычно ни-ху-я
174 1754932
>>54928
Пиздец твою речь читать сложно крч не осилил дальше вопроса

> Двачане, как найти стажировку по путону


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

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

бесплатные стажировки шли нахуй
175 1754937
>>54928

> как найти стажировку по путону


Джаст гугл ит.

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


Зависит только от тебя.

> Алсо как питон для спортивного программирования


Медленный, из преимуществ только длинка.

> И если не трудно там около роудмап какой-нибудь мне дебилу.


Джаст гугл ит.
176 1754946
Господа, помогите понять как в сериализаторе ДРФ сделать обратную вложенность. Вот у меня есть модель "сеансы" которая определяется внешним ключом к "фильмам" и в.к. к "кинотеатрам". Если я беру стандартный пример из доки. Во вьюхе беру "фильмы" и собираю сериализатор по этой модели с дополнительными полями "сеансы" которые получаю через обратную привязку и указанием в поле "фильмы" модели "сеансы" related_name.
Получается я разобрал свои "сеансы" по фильмам, а как разобрать "сеансы" по фильмам и по кинотеатрам одновременно, чтобы была структура такого вида {фильмы: [фильм1:{названиеФильма, ещеКакиетоДанные, кинотеатры: [ кинотекатр1:{названиеКинотеатра, ещеКакиетоДанные, сеансы: [ сеанс1:{данные1бданные2}]}]}]}
177 1754956
>>54937
Сори что доёбываю своей шизофазией, но не подскажешь +- набор знаний для успешного прохождения стажировки?
178 1754960
Гайс! Начальство въебало говна и решило, что я прогроммист и в общем надо автоматизировать обработку эксель файлов.
Помогите понять логику того, что надо сделать.
Короче, есть 300-400 одинаковых по структуре эксель файловс разными названиями офк, их надо объединить в один и по нескольким столбцам просуммировать соответствующие ячейки т.е. чтобы в итоговых ячейке С2-С100 была сумма всех С2-С100 из этих файлов.
Какой алгоритм для такой хуйни будет?
179 1754964
>>54932

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


Через год он перекатится максимум на 60, если в ДС.
180 1754968
>>54956
Бля, я потерял письмо с заданием, которое мне давали для стажировки в мыло. Могу просто покидать вакансии стажировок из телеги, где есть питон
181 1754970
>>54960
Читаешь по очереди и хранишь-считаешь в структурах, потом в конце пишешь структуру в финальный файл.
182 1754974
>>54968
А можешь сам канал со стажировками кинуть? А то чёт уже стыдно что так тебя доебал
183 1754977
>>54974
Ты не сможешь к нему присоединиться, канал приватный и коннектится к нему можно было только тем, кто на курсы от мыла ходил.
184 1754982
>>54977
Ну тогда покидай, если не трудно...
185 1754984
>>54977
А то я почекал со скринов в гугле, вакансий таких нигде нет, так что видимо это пожилая инсайд инфа
.png88 Кб, 378x778
187 1754987
>>54984
Это все этого года вакансии. Просто скорее всего их в открытом доступе нет.
Энивей чел спрашивал про то, что нужно знать для стажировки с питоном.
188 1754995
>>53547
Я не шарю в питоне. Будь бабло щас, заказал бы у фрилансера этот тупой скрипт. Но на мели. Помоги анон, поделюсь парочкой впсок для впн. Можешь свой поднять или можешь моими шс пользоваться. Просто заебался уже вручную каждый раз делать. Так хоть скрипт будет рутиную работу сокращать.

В идеале еще хочу, чтобы вывод конечной строчки помимо выводил куар прямо в терминал. Опять же примеры нашел, но не ебу
189 1754996
>>53547>>54995
Ну вот я смог нарыть например, как тащить джейсон

>import requests


>response = requests.get("http://ip-api.com/json/")


>response.raise_for_status()


>print(response.json())



А дальше? Как из этого словаря вытащить страну и в переменную его закинуть, чтобы в конечный вывод вывести, включая переменную?
190 1754998
>>54995
https://pastebin.com/31qJU7Wp
Строчки 16, 22, это то, что я добавил. Я бы от халявной впски не отказался. Пиши в телеге @besteady отвечу, если надо ещё как-то поправить
191 1754999
>>54987
Рубрика вопросы от ретарда продолжается.
А с какого момента можно считать, что я знаю питон и могу кидать заявку, а то питон как и почти любой другой яп это ебучий океан бесконечного познания и досконально его знать скорее всего нельзя
192 1755005
>>54998
Только я наркоман. В 22 не нужно было добавлять. Поправил.
193 1755008
>>54999

> А с какого момента можно считать, что я знаю питон и могу кидать заявку,


Вот тут я кстати не смогу ответить. Но вообще это наверное можно нагуглить, какие вопросы спрашивают на собесах по питону.
image.png45 Кб, 621x273
194 1755011
>>54946
Я нахуячил говна и палок во вьюхе перебором 2диктов. И мне стыдно :(
195 1755013
>>55011
А нет! Не двух, а трех! теперь еще тоскливее.
196 1755030
>>54946
Не совсем понял структуру моделей, но если судить по примеру с JSON`ом, то делай по возрастающей, сериализатор к сеансу, потом сериализатор к кинотеатрам, в котором поле сеансы сериализуется с помощью прошлого, потом также для фильма.
197 1755072
>>55030
Я так же размышлял, но видимо мне не хватило мозгов это реализовать. В доке приведен пример где "агрегрирующая" модель(типа сверху json идет из первого ключа к последующим) выводит в себе другую модель.
если провести аналогию, то "альбом"в примере, это мой "кинотеатр", а "трэк" - это "сеанс".
Вот подобное одиночное я могу соорудить, а что-то отличное от доки я сделать не могу. Типа собрать кинотеатры по сеансам, я хз как.
Если подскажите, что гуглить или как делать буду благодарен.
198 1755084
>>55072

>Вот подобное одиночное я могу соорудить, а что-то отличное от доки я сделать не могу


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

>Типа собрать кинотеатры по сеансам, я хз как.


Фильтр по квери параметрам?
199 1755136
>>54998
Добавь try...except иначе на таймауте или недоступности все будет крашиться. Например глюк DNSresolver или задержки на линии.
Я попадал на такое с aiohttp.
>>54995
Сразу нельзя было сказать? Но на твоем месте я бы попробовал вкатиться в скриптоебство. Просто потому что в следующей реализации что-то поменяется или придется что-то расширить.
Понятно что сейчас у тебя "дедлайн", но так-то азы выкурить легко.
200 1755140
Это сводный отчёт что-ли? Представь что все файлы у тебя это листы excel. Скриптом читаешь (скорее всего придется делать мультипоток) все файлы, сохраняешь в массивах необходимое и потом пишешь в итоговый (сводны отчёт) файл.
Однако если количество ячеек (т.е. массивы разные по размерам) придется приводить их эталону. Например если массив А имеет 20 элементов, а массив В 18 элементов, то либо ты создаёшь маппинг А['А1':10, 'A3':20]..... B['A1':30, 'A2':10]...., либо считаешь сразу, что если в сводном ячейка есть, а в исходном нет, то добавляешь в массив исходного значение 0 с индексом отсутствующего элемента. Как-то так. Попробуй нарисовать, мне лень.
201 1755285
>>54960
Это вообще в самом екселе делается спокойно. погугли
202 1755326
>>54960
openpyxl
203 1755327
>>55072
Сериализатор внутри сериализатора
204 1755389
>>54960
открываешь exel файл в pandas, сохраняешь данные в этом файле в отдельный дата фрейм где будут хранится все объединенные файлы, потом открываешь следующий exel файл и конкатинируешь его к тому дата фрейму, потом как нибудь посчитаешь сумму по строчкам или столбцам смотря как тебе надо
image.png9 Кб, 402x174
205 1755429
Вкатыш на связи. Файлы объектов это итераторы? что тогда вызывает метод __next__() ?
206 1755437
Как создать внутри класса счетчик его экземпляров?..
Ну допустим у меня есть переменная класса MyClass.counter и она увеличивается при каждом вызову __init__, но как ее уменьшать при удалении?..
207 1755440
Привет, как удалить строку в файле, зная её номер. К сожалению встроенного простого средства для этого я не нашёл.
Конечно можно сперва прочитать при помощи readlines
Затем удалить элемент по индексу
и получившуюся парашу записать в файл переписав всё содержимое
Может быть знаете вы знаете более изящный способ?
208 1755462
Есть ли какой-то cheat sheet чтобы проверить работу или наличие какой-либо стандартной функции или либы для конкретной версии питона. Проект работает на 3.5.9, но совместим с 3.6.8 и пишу на нем. Хотел использовать fстринги, но заметил что они только в 3.6 появились. Не хочу все время ловить ошибки на CI/CD.
209 1755490
>>55437
__del__, но переменная != экземпляр, а все передачи значений в питоне идут по ссылкам
210 1755491
>>55440
можно открыть в режиме a дойти курсором до нужного места и начать с него перезаписывать
211 1755492
>>55462
сделай в venv такую же версию как и на проде
212 1755529
>>55136

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


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

>Добавь try...except


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

>>54998
Напишу.
213 1755539
>>55429
Да, можно делать for line in fh
>>55429
Поэтому можно делать так ^, через тот же enumerate, построчно читая и записывая и пропустив нужную строчку.
.jpg80 Кб, 1920x1080
214 1755654
Какой пайтоновсвкий фреймворк для GUI посоветуете, чтобы максимально быстро и беспроблемно забабахать вот такой простенький интерфейс, как на пикрелейтед? По сути, слегка интерактивную таблицу. В ячейки периодически текст выводится.
215 1755656
>>55654
Ах, да, ещё чтобы с ресайзом по минимуму пердолиться пришлось.
216 1755677
>>55654
PyQT5
217 1755813
>>55654
дефолтный tkinter
image.png33 Кб, 664x274
218 1755817
>>55327
>>55084
Ребята спасибо, но видимо я слишком туп чтобы это сделать
upd:

>Сериализатор внутри сериализатора


Переопределение метода помогло, спасибо
219 1755863
>>55654
вообще-то, в guizero есть grid. попробуй.

Проблема сверхбыстрых фреймворков, что они частенько оказываются недостаточно полными и ты все равно попадаешь в дыру.
20200720130813.jpg514 Кб, 1078x1592
220 1755877
Ммм, как же обожаю эти вакансии "без опыта"
221 1755882
>>55877
Норм. А че? Там нужно знать питон и статистику в рамках вуза.
Дальше ковыряешь вилкой данные и подносишь на блюдечке настоящему ML-щику.
До нейросеток не допустят еще 5 лет.
Screenshot20200720-131815Samsung Internet.jpg126 Кб, 1078x680
222 1755904
>>55877
Вот это получше будет
дс2
223 1755907
>>55904
Это на госслужбе?
224 1755916
>>52122 (OP)
Можно в шапку добавить перевод документации 3.x https://pythoner.name/
225 1755939
Там альфу джанги 3.1 с асинхронными вьюхами выкатили
https://docs.djangoproject.com/en/3.1/releases/3.1/
Есть вообще существенная разница между деплоем wsgi и asgi приложений? Раньше только с синхронными дело имел
226 1755948
Аноны, какими атрибутами я могу прочитать файл?
227 1756008
Относительно простого задеплоеного проекта на Джанго со 100% коверейджом и простеньким фронт-ендом на Вью достаточно, что хотя пройти на собес?
228 1756156
+= это python way или лучше так не надо?
229 1756178
>>56156
В PEP8 используют, но не для строк - там лучше не надо
image.png84 Кб, 1046x83
230 1756191
Чем вариант с пика отличается от
print (name + "написал" + book)?
или в каких ситуациях второе используется?
232 1756201
>>56197
эхх...
красота...
233 1756231
>>55907
Какая-то госпараша в ДС2, ага
Я вот перекатываюсь тоже с "госслужбы". Концерн Алмаз-Антей, если че. Но тут пока такой хуйни нет
234 1756234
>>56008
1. Хрюша может просто скипнуть твое резюме без объсянения причин
2. Надо будет выполнить тестовое прежде чем попасть на собес
3. Помимо пистона придется расшарить еще N дисциплин, например базовую настройку серваков, протоколы, sql и nosql бд, линух, докеры (опционально)
235 1756287
Можно как-нибудь посылать запросы с одного и того же айпи всегда? Или только за бабло наверное? Пишу тут программку чтобы статистику из дрочильни загружать, а там апи токен к ip адресу привзан какого-то хера, а он меняется постоянно разумеется.
236 1756292
>>56287
аренда vps
купить статический айпи у провайдера
если ответ не важен, то можно подменять
237 1756301
>>56287

>а там апи токен к ip адресу привзан какого-то хера


Епт, регаешь серв, пишешь вебхук на фласке. Problems?
238 1756330
Антоха, как сделать вот такое отложенное поведение:

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

сам я ещё никогда ничего толкового не делал с асинком или потоками, так что не знаю как подойти к этому. возможно есть какой хитрый функционал в стандартной библиотеке, но я не знаю.
239 1756367
>>56292
>>56301
Ну я и говорю что за бабло. Ок, спасибо. Просто не такая уж важная информация, чтоб за неё платить. Хотел просто попробовать бота написать, а идей не было. Вот подумал типа можно бота сделать, который статистику об игре будет выводить или про кланы.
Хотя вот 2 дня токен не обновлял, а он работает до сих пор.
240 1756402
>>56367
На хероку можно поднять бесплатную хуитку, но я не уверен, что там будет статический айпи. Можешь попробовать.
241 1756417
Вообще, я тут ещё всё это захотел в класс запихать чтоб круто типа. Гляньте плз, так вообще делают? По-моему удобно. Я типа создаю игрока, а потом всякими методами что надо получаю.
А потом можно будет создать класс про кланы и унаследоваться от этого класса и типа к каждому игроку клана применять методы игрока. Я правильно понимаю суть ООП, лел? Ну типа норм в конструктор запихивать запрос, сохранять весь ответ, а потом уже применять к этим данным методы?
>>56287
image.png5 Кб, 421x45
242 1756419
>>56330
stateful method погугли
243 1756468
>>56419
что-то одна хуйня гуглится
244 1756486
>>56417
Сорян, хрень какую-то написал. Чего я там наследовать буду, если запрос в конструкторе. Надо будет просто для каждого игрока в клане свой объект создавать и все.
245 1756540
Пацаны, помогите с матрицами, нихуя не понимаю. Нужно обойти матрицу и найти кратчайший путь от первого элемента к последнему. Патрица NxM Крашусь уже на попытке обойти матрицу, так как ебашусь об границу, а как проверить границу матрицы - хз. Я понимаю, что должно получиться что-то типа дерева и в конце минимальный находим и все. Помогите плиз
246 1756567
>>55939
А в чем смысл асинхронных вьюх-то? Внутри ж все равно синхронный код сидит
247 1756634
>>56567
Сразу все поменять сложно, поэтому постепенно делают. Сейчас можно уже в каких-то отдельных вьюхах пробовать мутить, потом ещё че добавят. Так шаг за шагом и релизнуть через год-два
248 1756637
>>56540
try except IndexError
Ну или магия if i < N and j < M
249 1756646
>>56540
Ты попробуй себя прочитать и понять, что ты написал. Может сам до идей каких дойдёшь.

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

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

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

Вот видишь, сколько вопросов. Если ты ответишь на них, вероятно ты сам решение придумаешь. А пока не ответишь, только гадать остаётся.
250 1756836
Как на низком уровне обрабатывать (принимать и отсылать) rest-запросы в Питоне?
Я нахерачил несколько View на джанго rest но это не дает особого понимания работы всего механизма
251 1756858
>>56836
напиши не на джанго а на werkzeug каком-нибудь
252 1756872
>>56567

Ээээ, ну можно вот это спиздить например и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)
253 1756873
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? У меня программа построена так, что она войдет только в одно условие на каждом проходе цикла, но я хотел еще сделать чтобы она не проверяла на соответствие остальные условия, после того как нашла что хотела. Или питон это сам делает?
254 1756884
>>56873

>Нужны ли тут continue?


Нет.
255 1756913
>>56836
Ты же просто можешь код модуля посмотреть. Алло, это же интерпретируемый язык.
256 1756993
надо ли ебаться с локами, например на изменение множества, при использовании asyncio?
257 1757010
>>56993
если не создаешь копии объектов, то по-хорошему надо.
258 1757037
>>56836
Какие кстати есть нормальные бэкенд фреймворки для Пистона в 2020 кроме Джанго? Предпочтительно с асинхронностью
Просто смотреть в сети этот лол, по числу звезд на гитхабе например Фласк стоит на 1м месте среди всех питоновских фреймворков, но бля Фласк это ж тупое говно тупого говна
259 1757045
>>57037
Пистон не для бэкенда, учи джаву
260 1757049
>>57045

>джаву


>2020


Ммм, щас бы говна навернуть
261 1757089
Дорогие аноны, прошел курс от ВШЭ и хочу спросить, что делать дальше? Основу понял, но не уверен, что это вся. Так вот вопрос, стоит ли переходить на следующий уровень, а именно django или лучше почитать больше литературы?
262 1757140
>>57089

>курс от ВШЭ


Если в этом курсе не было: баз данных, контейнеров, линуха, базовых алгоритмов, TCP/IP, основ борцовской техники и мастер-класса Гордона Рамзи, то курс твой и выеденного яйца не стоит
263 1757146
Сап аноны,
Вот есть сайт, на котором через время появится кнопка, однако на данный момент ее код отсутствует и появится лишь с обновлением. Возможно ли как-то прописать код для нажатия этой кнопки заранее? То есть прога будет работать и при обнове сайта она находит кнопку и нажимает ее.
Если нет, то вопрос другой - как на Manjaro заставить выдавать звуки? На винде был winsound, тут же не понятно, print('\a') и подобные команды для alert звука не срабатывают. Причем на винде\онлайн компиляторе работает и видимо именно ОС блокирует этот звук
264 1757148
>>57146

>То есть прога будет работать и при обнове сайта она находит кнопку и нажимает ее


Исполняемый код внутрь <script> засунуть?..
265 1757152
>>57148
А как я буду обращаться к кнопке если не знаю ее id? Идея вообще была, что селениум открывает браузер и находит ее, только как все это реализуется без знания того как будет выглядеть код кнопки не ясно
266 1757159
>>57045
Питон для бэкэнда самое то.
267 1757186
Епт, че-то не пойму, pydantic это только для валидации данных? Качественно на нем БД сделать нельзя?
268 1757195
>>57186

> pydantic это только для валидации данных


да

> Качественно на нем БД сделать нельзя


шта
269 1757210
>>57037
Самый "взрослый" это 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.
270 1757216
>>57210
в peewee завезли асинх?
271 1757217
>>57210

>Nginx идёт с поддержкой JS внутри,


это какой-то новодел для пидоров.
nginx идет с поддержкой lua .
272 1757222
>>57216
Кривой. Есть peewee-async. GINO пока только postgres поддерживает, хотя это самый адекватный вариант. Tortoise ORM двигается медленно (сука, каламбур) в версиях, но поддерживает все SQL кроме корпоративных и хочет взять лавры SQLAlchemy но в асинхронке.
В peewee хоть связи объектов нормально можно выстроить.
Как вариант... Возможно. Вообще перекат на GraphQL и тогда похуй на все.
273 1757223
>>57222

> GraphQL


мне оч нравится он идеологически, но вот писать эти query резолверы выглядит как шаг назад по сравнению с пайдентик+фастапи.
Если есть опыт, то не подскажешь чего годного погуглить чтобы сделать графкл апи?
274 1757226
>>57217
Как по мне вещь годная. Сразу шлак отсеиваешь или статикой отвечаешь. return 202/204 например (inb4 никто не смотрит статус коды)
275 1757229
>>57223
Сам пока ковыряю, на FastAPI есть документация или была.
Я только по документации учу. Ещё issues смотрю, там часто решения проскакивают.
276 1757378
>>57210
Совсем FastAPI не зашел, ну его нахуй. Aiohttp/falcon/flask - ван лав.
Gino это отдельный пиздец, мне иногда казалось, что это говно нихуя не продакшен-рэди.
На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ, а ебли меньше.
Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже.

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

Вопрос знатокам:
Какие реальные задачи помогает решить использование асинхронного веб-фреймворка, в отличие от синхронного?
277 1757381
>>57146

>как на Manjaro заставить выдавать звуки


Любым плеером?
278 1757453
>>56913
Там черт ногу сломает
279 1757455
>>57210

>gunicorn + uvicorn


Это ж взаимоисключающие параграфы
Либо одно, либо другое
280 1757457
>>57223

>мне оч нравится он идеологически,


Переизобретение SQL для джаваскриптодебилов?
чем? это же полностью ебанутая хуйня, которая со временем пройдет
281 1757464
>>57457
"GraphQL заменит REST точно так же как MongoDB заменил Postgres"
Screenshot20200720-161139Samsung Internet.jpg206 Кб, 1078x687
282 1757466
Вот кстати немного мудрости от залетного зумерка с Хабра, который возбудился от фразы "GraphQL" но не воодушевился "нормальной формой", ибо на одной мухосранской конфе с нее повели носом
283 1757486
>>57466
Не помню на память, какая нормальная форма о чём, но все они о том, чтобы избежать дублирования данных, чтобы не хранить те данные, которые можно получить из других.

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

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

Все эти GraphQL... Красивая идея, но реально ведь масса проблем с перерасходом ресурсов, с безопасностью и другим. Конечно круто, что пользователь может запросить любые данные, но за каждым запросом стоят ресурсы по его обработке, возможные оптимизации запросов, права доступа и т.п. В итоге получается, что просто нельзя позволять произвольный доступ к данным, надо втыкать костыли и оптимизации. В мечты о вселенском счастье начинают приходить проблемы реальной жизни.
284 1757498
>>57089
Курс говно
285 1757530
>>57378
А ты ждешь что если нумерация 1., а не 0., то это готовое к продакшену?

>Совсем FastAPI не зашел


Ну хуй знает. А что именно не так? Он под влиянием Джанго и Фласки же создавался.

>На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ


Это даже нагрузкой нельзя считать.

>Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже.


А что там у тебя такое CPU bound? Asyncio это же вообще про другое.

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

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 нормально работает.
286 1757550
>>57378

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 сразу на выброс
286 1757550
>>57378

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 сразу на выброс
287 1757566
>>57550
Мда, ну такое себе, спасибо, антош.
>>57530

> А ты ждешь что если нумерация 1., а не 0., то это готовое к продакшену?


Тогда не понимаю чому ты ее тут указал, она ж не готова для спокойного запуска и работы.
peewee неплоха, но чот непривычно после алхимии.
АсинкПГ норм, но привязка к постгресу не всем подходит.

> >Совсем FastAPI не зашел


> Ну хуй знает. А что именно не так? Он под влиянием Джанго и Фласки же создавался.


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

> >На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ


> Это даже нагрузкой нельзя считать.


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

> >Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже.


> А что там у тебя такое CPU bound?


> Asyncio это же вообще про другое.


Хм, у меня - ничего, фласк запускаю с uwsgi и он создаёт процессы/потоки, в них идёт обработка запросов, поэтому и потребление ЦПУ возрастает.
288 1757570
>>57498
Информативно. Не скажешь, почему он такой?
289 1757574
>>57566

>Хм, у меня - ничего, фласк запускаю с uwsgi и он создаёт процессы/потоки, в них идёт обработка запросов, поэтому и потребление ЦПУ возрастает.


Например, у тебя будет по 300-400 запросов в секунду в базу, засирать все процессами/потоками можно только ограниченно. Так же тебе не дадут всемогущий цпу и для оптимизации утилизации ресурсов юзается асинхронность, т.к. все эти 300 запросов можно обрабатывать в одном потоке.
290 1757592
>>57574
Когда будет пиковая нагрузка в 60%+ по ЦПУ я возьму новый сервер и сделаю балансировку запросов через нжинкс. Она и сейчас есть, но джаст фор фан.
Но суть я уловил.
Для небольших проектов хватает синхронных фреймворков, но опыт работы с асинхронными - жирный плюс.
291 1757594
>>57566
Ну ты хотел разницу увидеть ASGI/WSGI вот она, а чем асинхронные либы отличаются от обычных тебе >>57574 рассказал.

Если сравнивать треды и корутины, то тут без бенчмарков все ясно, просто посмотри на htop. Даже в idle режиме полный пиздец творится.
>>57592

>Когда будет пиковая нагрузка в 60%+ по ЦПУ


Ну везет, хули. А бывает и так:
перенесли все с Windows 2016 с 2/4 core 4 Gb на писюльку 4/4 (Celeron) с 4Gb, но уже на Linux. Так там охуенно удалось развернуться и въебать Process и разелить логику с монолита на отдельные сервисы. Когда говорил: "а не дешевле ли взять одну хорошую машину и запустить все в Docker" мне сказали что денег не запланировано, баста.

По сути это 10 объектов с такими вот мини серверами. Каждый со своей логикой и задачами.
292 1757596
>>57594
Ну и вдовесок. Задача такая чтобы логика отрабатывалась именно на локальных серверах, единый йоба сервер нельзя. Нет гарантированного канала связи. В ином случае все бизнес процессы встают колом.
293 1757602
>>57592

>Когда будет пиковая нагрузка в 60%+ по ЦПУ я возьму новый сервер


А потом тебе девопс говорит, что бы ты шел нахуй и переписывал свой говнокод, т.к. на новый сервис денег не выделили
294 1757603
>>57602
на новый сервер
фикс
295 1757619
>>57602
Время разработчика стоит дороже.
296 1757621
>>57570
Если ты прошел и не понял, то могу только посочувствовать
297 1757622
>>57619
У фласка/фаст-апи примерно одинаковая скорость разработки
298 1757624
>>57619
Потому тебе дают фреймворки и инструментарий, чтобы не городить велосипед.

Ты же должен понимать, что если куча данных бизнес-логики хранится в памяти (даже не NoSQL), а просто в виде словарей, объектов тем больше у тебя ресурсов требуется. И не всегда это решение лучше чем чтение с диска или по сети.
299 1757647
>>57619
Мы таким зарплатную карту прямо в Amazon AWS заводим.
300 1757661
Раз тут асинхронная шняга пошла, то вопрос, как вы решеаете проблему гонки в микросервисах?
Я вижу два варианта:
Первый, завести хранилище типа etcd и при апдейте делать проверку лока и реджектить запрос. Из минусов я вижу сетевые задержки и новую точку падения.
Второй, делать шардирование по ключу между несколькими инстансами и выполнять их последовательно. Тут минусы в настройке балансировщика (хз даже что тут юзать, на ум только кафка какая нибудь приходит) и более сложная реализация (хотя может и нет, так как никогда такого не делал)
301 1757683
>>57621
Ясно, понятно, никакой конкретики. А так, я новичок и мне не понятен твой бугурт в мою сторону. Я же не могу понять, хороший ли этот курс или нет, т.к. другого я не видел.
Screenshot186.jpg45 Кб, 810x434
302 1757748
>>57661
MYSQL LOCK TABLE FOR UPDATE

ахаха блядь.

че за тупые вопросы? Никак они не решают. Проебывают данные.
Как и вся индустрия.
303 1757787
народ, вопрос по Django
Передаю в Шаблон некий контекст(к примеру 100 записей из Модели запросом Model.objects.all())
Как из шаблона вызвать к примеру - Model.objects.all()[-10]
То есть мне надо 10 последних записей нарисовать в шаблоне циклом
304 1757789
>>57748

>MySQL


ну допустим
https://habr.com/ru/post/238119/
305 1757792
>>57787
Там же в документации описано, братиш

>Entry.objects.all()[:5]

306 1757833
однозначно
307 1757854
>>57661
в микросервисах есть такой паттерн как sage (саги / повествования)
погугли
308 1757866
>>57602
Сервер стоит 5-10-15$.
Если выросла нагрузка == пришли клиенты == получили прибыль. Либо бизнесс одобряет горизонтальное масштабирование и загребание $$$ дальше, либо нахуй.
309 1757873
>>57866

>== пришли клиенты


>== получили прибыль


пришли боты. Твой алгоритм?
310 1757874
>>57866

> 5-10-15$


с двумя гигами оперативы?
311 1757876
>>57873
въебать 1млн$ в безопасность
312 1757896
Как попасть на работу джуну ? Живу в дс2, смотрю объявления на хх, так без опыта там их штук 20, 10 из которых занесло туда кривым поиском и ищут там с +3 года опыта.
313 1757902
Посмотрел я такой про fastapi и решил заделать на нем бота для телеги (логика связана с обращениями к вк через их апи) но сцуко че-то взять в толк не могу: обращения к бд же внутри роутов через Алхимию будут синхронными... как добиться асинхронного чтения из бд?..
314 1757905
>>57896
https://career.habr.com/vacancies/1000060250

>>57902
GINO, peewee-async, tortoise-orm.
А если хуита на палке, то просто пиши statement.
315 1757906
>>57902
aiomysql, aiopg,...

Если ты пришел с Django я чот разочарован. Настолько привыкли что все out of the box? Прямо отдельная каста, лол.
image.png7 Кб, 647x155
316 1757909
>>57905
Пиздец. Что же рыночек так порешал то а.
317 1757914
>>57909

>Что же рыночек так порешал то


На западе тонны перекатывающихся в веб парашу дата саенсистов/аналитиков /матанофизикохимиков/ебланивших компутер саинтестов и инженеров некуда девать
318 1757918
Есть какие нибудь способы обхода javascript'a для парсинга кроме webdriver'a selenium'a?(да я знаю что порой лучше юзать api когда это возможно)
319 1757930
320 1757953
>>57918
Для ажахов и подобной хуйни проще подсматривать и повторять запросы, так даже проще.
Исполнять жабаскрипт в большинстве случаев нужно только для всяких челленджей и подобных защитных шняг. Для них тоже можно обойтись без браузера и гонять через ноду.
321 1757994
Мне надо проитерировать список, и на каждой итерации проверять элемент, следующий за текущим. Как это сделать?

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

Вариант не рабочий, потому что index(i) ищет первое вхождение, а элементы могут повторяться.
322 1757995
>>57994
Есть мысль завести переменную-счетчик, но не слишком ли это колхоз?
323 1757997
>>57994
Через enumerate получи индексы.
Можно ещё зипнуть с сдвигом.
324 1757999
>>57997
О! Я и забыл про нее. Сознательно старался обходить enumerate, zip и map после того, как узнал про listcomp-ы.
325 1758012
>>57874
Ну допустим.
>>57873
Клиенты == занесли деньги
А борьба с ботами это отдельная тема.
326 1758049
>>58012

>1CPU


Дешевле стак из малинок сделать, лол.
327 1758056
>>58049
Да, ведь это одно и тоже.
328 1758161
Няши, а чем в 2K20 году пользоваться в качестве ORM?

Я когда-то давно пользовал SqlAlchemy, но тогда мне не было никакой нужды в миграциях и версионировании БД...
329 1758188
>>58161
SQLAlchemy, PonyORM
330 1758193
В скрипте запускаю мейн с n=4. Каждый таск делается 3 секунды.
Если делать как на первом пике, то выдаёт Task was destroyed but it is pending! потому что скрипт выполнился за 1 секунду и таски не успели сделаться(я так понимаю).
На втором пике с костылем в виде слипа всё норм работает.

Как сделать нормально? Уже спать надо, и не могу сообразить к чему тут надо хуй shield приложить
331 1758197
>>58193
Думай что может блокировать. Полный код выложи
332 1758206
>>58193
Я не асинхронщик, но что то дофига вопросов. Если у тебя функция мейн асинхронная, то откуда и как ты ее вызываешь? Почему луп создается внутри мейна? Как ты саму функцию мейн в луп положишь? Насколько я знаю, луп ДОЛЖЕН быть только один.
333 1758212
>>58206
Он же не создаёт луп, а берет активный.
Да и лупов может быть несколько, только луп внутри лупа создать нельзя, на сколько помню, ну или я с трэдами путаю.
334 1758213
>>58212
Да, виноват
335 1758291
>>58193
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 добавят, так как сейчас херня без задач.
336 1758297
Что должен рейзить __getitem()__ если айтема нет в объекте, или просто вернуть None? Где об этом можно прочитать.
337 1758299
>>58297

>For mapping types, if key is missing (not in the container), KeyError should be raised.


Нашел.
Screenshot146.jpg148 Кб, 1000x1138
338 1758303
Посоны, решил посмотреть как в старших классах анализируют производительность бекенда с 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 есть, но я их не хочу
339 1758327
Еще одна концептуциальная проблемища:

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

То есть, у меня есть php fpm access.log, где посчитаны доскольнально cpu time и еще два лога в котором точного идентификатора позволяющего объединить запросы в принципе нет.
Но если смотреть глазами, то понятно какой запрос где. Можно объединить по IP и времени (а по script ptah нельзя, так как там всегда index.php )
Просто время будет отличаться на миллисекунды.
(А может и больше. Иногда сервак может начать тормозить особенно сильно)
340 1758342
Как мне скипнуть в декораторе 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
Screen Shot 2020-07-23 at 11.29.34.png94 Кб, 814x642
341 1758344
ss-analytics-data.jpg497 Кб, 1920x1080
342 1758350
>>58327
нашел в доке какой-то pandas.merge_asof
ебаться-сраться! слава ебаным бигдата богам!
343 1758359
>>58303
https://stackoverflow.com/questions/25049667/how-to-generate-a-json-log-from-nginx

В JSON как вариант. Парсер есть нативный.
344 1758418
Питоногоспода, я не программист, но периодически возникает желание помониторить и понаблюдать некоторые процессы в социалках.
Везде пишут, что питон хорош для начинающего лоха и что им можно парсить ресурсы.
Или есть что-то более подходящее для моего случая? Кроме хакселя.
Собирать инфу хочу с блогспота, жж, фб, вк, ютуба и т.п.
345 1758435
>>58359
чето не заработало. у меня не такой новый nginx.
но спасибо за идею. в другой конфигурации попробую json.
346 1758442
>>58291
Флаг дебага что-то вообще ничего не дал.
Но я всё равно нашел решение кмк - мейн закрывался после того как generator отработал, и ему похуй, что там таски ещё крутятся. Поэтому надо их ждать; добавил это в строчках 17, 18.
код: https://pastebin.com/M149Lpyd
347 1758448
>>58359
пардон, все работает. Эта директива уже старая.
Охуенная идея! спасибо
348 1758450
>>58418
scrapy, документации официальная очень толстенная.
у ВК есть свой API, у ФБ тоже. Я так понимаю как раз защита от ботов коим scrapy и является.
>>58442
Значит в 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 и все по новой блять
349 1758452
>>58448
Но ты учти что у тебя файлы пиздец какие огромные будут, ротацию делай обязательно или сращу складывай в БД.
Я ничего лучше не придумал как взять для этого Yandex Clickhouse. Клиентов овердохуя, работает по HTTP, есть реализация ORM и asyncio (не ORM).
При том можно брать JSON файл и сразу пихать в таблицу.
Можно вообще нативным клиентом для линуха по Cron отрабатывать

>clickhouse-client -n --query="SET input_format_skip_unknown_fields=1; INSERT INTO event FORMAT JSONEachRow;"

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

https://github.com/b2wdigital/aiologger
351 1758466
>>58450
scrapy не для этого, и тем более не для нуба.
352 1758488
>>58452
это жи pandas, бро. на ноутбуке посчитается.
мне не яндекс устраиваться.
353 1758505
>>58450

>Ты mutable объект что ли изменяешь


Нет, код же прикрепил.
Этот код - подзадача на пути решения другой, которую я придумал.

>Я вот тоже теперь штудирую high level методы для asyncio в Python 3.8, только привык к чему-то уже меняют


Ага, я меняю свой майндсет yield-based корутин на asyncio, и мне пока второе привлекательнее выглядит, более user-friendly.
354 1758518
Хм, а если БД стоит на удаленном хосте а не на локальной машине, то по идее для запиливания базовой асинхронности достаточно просто посылать асинхронные request-ы к ней через cursor = await Model.query(data), ведь так? Так кто-то делает?
355 1758523
>>58518

> если БД стоит на удаленном хосте а не на локальной машине


А разница какая?
356 1758548
>>58523
Разница в том, что запрос идет не сразу на ssd а в сеть. Пока он летит в сети, можно другие задачи исполнять. Даже если бд не поддерживает параллельное исполнение операций и ставит локи на каждый запрос, серваку будет похрен, пока от бд не придет response, он может обслуживать других клиентов
357 1758551
>>58548
И? Че ты мозги ебешь?
всю дорогу в вебе это срали на это и никогда не писали асинхронно.
Сайты открывались и всем было заебись.
А тут им внезапно в джанге понадобилась асинхронность
358 1758552
Анончики, как учить джангу лучше всего? Может-быть есть курсы какие хорошие?, и можете подкинуть задач для реализации, чтобы я попутно изучая мог это прорабатывать? Хочу в будущем бэком заниматься на питоне.
359 1758555
>>58551
Какая джанга блять? Мне вообще похуй на нее. Сейчас на Starlette стараюсь пилить
360 1758577
>>58555
Малаца. Разница между БД на localhost и remote какая? Ну latency.

host127.0.0.1The host name or IP address of the MySQL server.
port3306The 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мс если канал не полное дерьмо.
Какая тут разница в реализации если ты абстрагируешься от конкретики? Сейчас БД на локальной ноде, потом хуяк и на ноде в удаленном ДЦ, а у тебя кода заточен под единичный случай.
361 1758589
>>58577

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


ахах.
на самом деле в большинстве случаев - да.
ну в стандартной сишной либе mysql это так так работает. волшебное имя.
362 1758721
>>58589
Учтем что Linux конечно же лучше и надежнее других систем, но unix_socket в отличие от inet_socket сразу же дает ограничения.
Допустим есть кейс, когда надо разнести прложение на составляющие. Возможно нам даже дадут выделенный сервер для БД, а возможно заставят страдать хуйней и паковать вещи и пиздовать на улицу все в контейнеры, которые ну допустим запущены на той же машине. Тогда что? У тебя изоляция сред, вот прокинутый маршрут до контейнера и все. К1: БД#1 К2:БД#2 K3:Бизнес логика К4:Веб хуйня.
И ебись как хочешь. В принципе это и на железе можно и нужно так делать (есть опыт говнокода, который потом со слезами на глазах разносил согласно логики)
Скриншот 23-07-2020 225917.png142 Кб, 790x438
363 1758833
Смотрю витео с ютубчика про бинарные операторы. Остановился конкретно на НЕ ака ~ (отрицание). Поясните, какой смысл менять знаки на противоположные, если в итоге можно было просто поменять знак и прибавить 1 к последнему разряду? Какой толк от этого числа с противоположными знаками?
364 1759108
>>58359
что-то я разочаровался в этой ссанине.
дело в том, что pandas.read_csv можно научить засасывать файлы и потом обрабатывать колонки, а js нужно построчно читать.

Не оч. вдохновляет. Как бы загружать именно одной операцией такой файл со строками json ?
365 1759185
>>59108
Анончики, где кстати можно почитать/посмотреть как с помощью pandas работают с файлами? А то все нахваливают.
366 1759198
>>58577
А че такого в unix сокетах? Если процесс не общается с сетью а общается лишь с другим процессом то unix_socket маст хэв
Screenshot189.jpg114 Кб, 1036x929
367 1759223
>>59185
Так как же как и с одним файлом. Делаешь glob и в цикле read_excel или еще какой-нибудь read_csv.
Обучалок довольно много, но они все будут про рафинированные датасеты. Нахваливают не работу с файлами, а последующую обработку данных из файлов.
368 1759224
>>59198
ну типа не docker aware.
не cloud native.
не пыщ-пыщ.
не на кончиках пальцев.
369 1759228
Сап двач. Есть хромовский плагин с логин формой. Как залогиниться на джанго сервер? Ведь просто взять инпуты из формы и сунуть в пост реквест я не могу.
370 1759242
Так всё, время пришло, я определился с языком и мне очень зашел пайтон из всех бекэнд языков. Лутца прочитал, всё понял, применил на практике. Вопрос, мне еще пару лет назад понравилась паста про вкат в питон. Есть ли смысл сейчас ему следовать? Хиккующие выблядки будут мне сосать?
photo2019-10-3006-47-40.jpg144 Кб, 1134x1044
371 1759249
>>59242
не понимаю как у человека осилившего оба тома Лутца могут еще возникать какие-то вопросы. Ты уже должен был устроиться джуном на 300-й странице
372 1759250
>>59242
просто ищешь вакансии со стеком на котором бы хотел работать, пробуешься, сосешь, понимаешь что надо подтянуть

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

паста там чисто для рофлов и устарела немного уже (гевенты и торнады не такие популярные нынче)
373 1759259
>>59108
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 сразу загружает данные и формирует объекты свои.

>>59198

>Если процесс не общается с сетью


Но надо же тогда предлагать два варианта подключения к сервисам, не?

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

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

LOGIN ='Abu'
PASSWORD='makaka'

и с ними сверяйся.
373 1759259
>>59108
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 сразу загружает данные и формирует объекты свои.

>>59198

>Если процесс не общается с сетью


Но надо же тогда предлагать два варианта подключения к сервисам, не?

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

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

LOGIN ='Abu'
PASSWORD='makaka'

и с ними сверяйся.
374 1759287
>>59249
>>59250
Спасибо, поискал, нашел вакансию стажером, буду к собесу готовиться. Хотя по стеку, который они требуют ощущение, что я буду стажером стажера).
375 1759311
>>59259
а , я чет не заметил что в read_json можно передать открытый файл, но имя файла как в read_csv нельзя.

Тогда все ок.
376 1759463
>>59311
На заре своего долбоебизма (ну хули там память, процессорное время. У меня 6 ядер и 24 гига!) Я пробовал SQLAlchemy + pandas для того чтобы заливать таблицу в MySQL. Это... Пиздец. Вот прям пиздец-пиздец. Объект pandas в памяти оставляет такой слепок, что реально думаешь податься в байтоебство. При том там была таблица xls ну наверное 300х30.
С json боюсь не лучше будет, ну потом сам посмотришь.
У меня просто было 3+Гб логов со всех сервисов за месяц. И тогда уже херово настроенный MySQL захлёбывается.
377 1759473
Какие есть стандарты сокращения названий стран кроме ISO 3166?
378 1759479
Какие-то профиты от OrderedDict в новых версиях пистона есть? Там же по дефолту ключи словаря упорядоченны. Почему он до сих пор не depricated?
379 1759484
Немного байтоебский вопрос: если я напишу декоратор для функций, который замеряет их время исполнения и захочу делать import time только внутри scope этой самой функции, то модуль будет импортироваться при каждом определении функции? Или даже при каждом вызове декорированной функции? Просадок по производительности не будет?
380 1759491
>>59484
Зачем внутри логики это делать? И чем тебя unittest не устраивает? Там же и замеришь скорость выполнения.
381 1759495
>>59491
Дело не в конкретном вызове import time, я про любые импорты сторонних библиотек внутри скоупа функций-декораторов
382 1759516
>>59479
Меня заинтересовал этот вопрос. Согласно документации отличия есть:
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, но вот пока свои отличия у них есть
383 1759523
>>59484
Хороший вопрос.

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

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

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

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

Как мне получить их? С селениумом не хочу ебаться.
385 1759561
characteristics = ("Сила:", strength, "Здоровье", health,"Ловкость", dexterity, "Мудрость", wisdom, end="")
Почему выдаёт ошибку?

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

Подскажите пожалуйста
386 1759611
>>59561
end параметр для print(), а у тебя объект вообще кортеж.
387 1759612
>>59495
Нарушение PEP8 да и потом банально такой говнокод сложнее будет читать. Из-за таких вот хуяк-хуяк как хочу так и пишу (camelCase имена переменных и методов) потом вылезают дебильные ошибки.
Я бы накорню такую хуйню запретил. Банальное неуважение к чужому труду.
388 1759636
>>59560
Пишу опять.
Я понял что можно выполнить жс код в консоле чтобы он передвинул на следующую страницу, а в какой библиотеке я также смогу отправить на сервер выполнение жс кода чтобы он мне прислал новые html данные?

В requests_html такое есть? Исполнять код можно?
389 1759641
>>59612
А у меня автор книжки советует. "Automate Boring Stuff with Python 3"

Also, в PyCharm какой оптимальный способ пробовать новые хелловорды и прочие учебные примеры? не создавать же каждый раз проект? Но плодить говнофайлы внутри проекта тоже вроде как-то не выход... Советы?
390 1759643
Есть вопрос по aiohttp_session
Добавил мидлвеар по инструкции. При каждом обновлении страницы пользователем воздается новая сессия (пик 1).
Кука на клиент не приходит (пик 2).
Чому так?
391 1759644
>>59636
Ебать. Нашел другой способ сделать. Все, отлично.
392 1759648
>>59612
Импорты внутри функций и классов - норма
393 1759649
>>59643
Походу, надо самому ложить, все ок, пардон
394 1759650
>>59641

> Also, в PyCharm какой оптимальный способ пробовать новые хелловорды и прочие учебные примеры? не создавать же каждый раз проект? Но плодить говнофайлы внутри проекта тоже вроде как-то не выход... Советы?


Бамп
395 1759680
>>59641
плодить говнофайлы внутри говнопроэкта
396 1759689
>>59648
>>59641
Нахуй стандарты, ведь не запрещено. Много что интерпретатор позволяет, но раз вам нравится говнокод, так и быть.
https://www.python.org/dev/peps/pep-0008/
397 1759690
>>59641
chapter1 | file1; file2
chapter3 | file1;...

Логически раскидай, если не создаёшь виртуальные среды
398 1759703
>>59463
У тебя какие-то фантомные боли и широкие выводы по одному неудачному эксперименту.
В целом, охуенно ,pandas , охуенно быстр.
Ведь он использует numpy, а тот байтоебский.
399 1759719
>>59703
Скорее всего на на 3.8 с обновлением посмотреть. Но всяко pandas это визуализация.
400 1759752
Сап аноны, ньюфаг на связи.Собственно пришел к умным людям за помщью.Есть задача: сделать функцию, которая принимает список строк, эта функция должна вернуть список, в котором содержатся самые длинные слова в этих строках.
Собственно нашел вариант, но совсем туплю в том как его доработать под свои нужды.Помогите пожалуйста с этим.Сам вариант:
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
401 1759769
>>59752
words = [word for el in lst for word in el.split()]
words.sort(key=len, reverse=True)
1479757635510.webm4,7 Мб, webm,
320x240, 2:24
403 1759952
Как думаете, что нужно добавить, изменить? Реквестирую советы по повышению скорости кодирования видео.

https://colab.research.google.com/drive/1DwsBbRiwYnymEePzcNOpWZ8kwk2_EHwg?usp=sharing
404 1759960

>>> 0.1 + 0.2


0.30000000000000004

как называется эта дрисня, напомните?
405 1759962
>>59952
И какой практический кейс этого?
406 1759963
>>59960
Сложение.
407 1759964
>>59962
Разделение музыки на инструментальную и вокальную партии.
.png1 Мб, 1000x1000
408 1759966
409 1759967
>>59966
Затем
410 1759968
>>59967
Ну вот тебе и ответ, что об этом можно думать. Я бы мог затестить, загрузить трек, но и что дальше. Как мне понять хорошо это получилось или нет, если я не знаю чего я хотел добиться этим.
412 1760002
>>59690
По проекту на главу?

Виртуальные среды же оверкилл будут, да?
413 1760063
>>60002
По модулю на главу или логическую херь. Виртуальная среда оверкилл, можешь для тренировки попробовать
414 1760086
>>59963
пашшел ты
async код из синхронной функции 415 1760171
Петян, использую стороннюю либу, которой нужно передать функцию, либа иногда дёргает этот калбек. Мне нужно в нём вызвать асинхронный код, то есть передавать управление. как это делается?

https://pastebin.com/6vWbFa9n
416 1760174
>>60171
никак, но можешь попробовать подрочить asyncio.get_event_loop() и asyncio.ensure_task() иногда получается
418 1760201
419 1760205
>>60201
Если питон 3.7+ то в синхронной функции просто вызываешь асинхронную через asyncio.run()
420 1760253
Че за ссанина, почему я не могу просто импортировать модуль из той же папки через 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'), но файл же бля лежит прямо в ней нахуй
421 1760283
Можно ли записать компактнее условные выражения подобного вида? Что-то ничего в голову не приходит.

if A:
____if B:
________...
____else:
________...
else:
____if B:
________...
____else:
________...
422 1760304
>>52315

> background tasks самому делать


aiojobs

> Pydantic прикручивать


Так ли это сложно?

> OpenAPI(Swagger)


Тут сыглы, сам немало кода написал. Но там история такая, что библиотек хороших нет, не специфично aiohttp.
423 1760306
>>60283
Можно, но не нужно.
>>60253
Он тебе говорит, что относительные импорты можно только в пределах пакаджа. Это там где ты инит.пу расставил. Это блядь не путь в файловой системе, чтобы ../../../../etc/passwd импортировать.
424 1760310
>>59960
Это называется числа с плавающей точкой IEEE 754. Эта хуйня такая прямо в железе, там ограниченное количество бит и бинарное представление, которое не всегда хорошо мапится на десятичное.
425 1760311
>>59484
Импорты кешируются. Будет быстро.
Screenshot from 2020-07-26 02-09-43.png75 Кб, 826x305
426 1760316
Стикер63 Кб, 200x200
427 1760317
>>59473
ГОСТ 7.67
428 1760320
>>58833
Если у тебя железо с другим стандартом целых чисел, то обосрёшься. Ещё этот оператор можно к своим типам прикручивать, вроде в алхимии есть.
429 1760354
Я вот сижу пержу, думаю запилисть MultiDict - это как обычный словарь, но ключей для каждой записи несколько. Предыстория такова - есть путь к файлу, и имя проекта в файле (не совпадает с именем, может содержать любые символы и тд). Нужен эффективный поиск как по пути файла, так и по названию.Можно, конечно, хранить все это дело в бд, с индексами по двум столбцам, но что то не хочется. А так сделал мультисловарь - типо {(key1, key2): 'blabla'}. Сет, конечно, можно вроде как ключ использовать, но вот искать только во одной части нет. Каккие идеи?
430 1760366
>>60354
{key1: 'blabla',key2: 'blabla'}
431 1760374
>>60354
{key1: 'blabla',key2: 'blabla'}
{'blabla' : [key1, key2]}
432 1760446
>>60306

>Это там где ты инит.пу расставил


Сколько времени еще будет жить этот дурацкий стереотип, даже интересно
433 1760448
>>60446
люди до сих пор class MyClass(object) пишут
434 1760451
>>60446
И чем же он дурацкий?
435 1760453
>>60451
тем что люди ориентируются не на действующий порядок импорта, а на свой выдуманный
436 1760490
>>60453
Поясни, я тебя не понимаю. Какой порядок по твоему мнению выдуманный и неправильный, а какой правильный.
437 1760541
https://proglib.io/p/python-code-analysis/

Так бля, я походу в танке. Вот тут рассказывают про дохренища линтеров для кода, но я просто юзаю PyCharm и он мне в подробностях в реальном времени все подсвечивает. Ни разу не юзал эти "линтеры". Что за прикол?
438 1760548
>>60541
Ну так в пайчарм встроена парочка из этих линтеров. Ты всю жизнь ими считай пользовался, но не знал. Отдельно они особенно нужны если ты хочешь по рукам пиздить ждунов при каждом коммите.
439 1760568
>>60490
И создал Гвидо Python и стала всем вокруг хорошо
Каждый мог писать код как ему вздумается
И каждый мог вкатиться в ОйТи
И пришли инфоцыгане и стали коммерцией заниматься
На седьмой год взъерепинилось коммьюнити
Негоже говнокодить как вздумается, правила нужны
И создали PEP8 и было радостно программистам
Но горько взрыдали вкатывальщики, не осилили они PEP8
И ересь понесли инфоцыгане выдумав свои правила

Так понятнее?
440 1760575
>>60490
https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html
там конкретно о том что изменилось в py3.3 и о том что init теперь необязателен
в последних питонах пакет для импорта - это папка вне зависимостии от наличия инитпу
441 1760599
>>60575
Ты вообще в курсе для чего эти неймспейсы создавались?

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



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

Неймспейсы же нужны чтобы ты мог кусками ставить какой-нибудь огроменный пакадж типа zope и чтобы общий инитпай не перетирался при каждой установке и не удалялся при каждом сносе.
442 1760612
>>60575
К примеру, когда ты делаешь 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


Гайды от зумеров. Кайф.
443 1760632
>>60599
разговор про init py и что поведение импорта поменялось, а ты про неймспейсы, избежание повторного импорта, zope, сносы, каталоги, пайтонпас

что ты сказать хочешь? какой месседж мне передать?
444 1760636
>>60612

>Гайды от зумеров. Кайф.


сам какой лвл?
445 1760662
>>60632
Да тебе хоть в глаза ссы, всё божья роса. Там почти нихуя не поменялось и инит живее всех живых. Просто добавили возможность зумерам стрелять себе в колено, а они и не против.
446 1760672
>>60662

> Там почти нихуя не поменялось


ты так думаешь?

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


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

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

> К примеру, когда ты делаешь 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 и далее. И так каждый раз на каждый модуль. Это не простые проходы по файлам у тебя в проектике.


буду повторять
447 1760673
Сап посоны, как создать бота в телеге на питоне?
448 1760676
>>60673
гуглишь статью о том как создать бота
выполняешь тоже что и автор
понимаешь че куда

потом делаешь своего бота по аналогии
449 1760679
>>60672
Окей, если технически тебе мозги вставить нельзя, давай гуманитарно. Найди мне на docs.python.org фразу что инитпу устарел, все срочно перекатываемся на простые каталоги с модулями.
450 1760681
>>60679
где я говорил что инитпу устарел?
451 1760686
>>60681
О, начались лавирования. Давай хотя бы что он необязателен, или, цитата, "давно не нужен".
452 1760692
>>60686

> О, начались лавирования


кек

> Давай хотя бы что он необязателен


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

https://docs.python.org/3/reference/import.html#regular-packages
https://docs.python.org/3/glossary.html#term-namespace-package

package это не то место где ты поставил инитпу
453 1760695
>>60692
Ну теперь давай, зачем нужны regular packages, если уже есть namespaced packages?
454 1760699
>>60695

> Давай хотя бы что он необязателен


я тебе дал, ты обосрался

> зачем нужны regular packages, если уже есть namespaced packages


я знаю, а ты сам как думаешь?
455 1760702
>>60699
Ну конечно знаешь, я же тебе три поста выше всё на пальцах разложил.
456 1760704
>>60699
как устроена конструкция a, b = b, а
типо меняет ли она с временной переменной или использует йоба алгоритмы типа xor?
457 1760708
>>60702
ты про это?

> К примеру, когда ты делаешь 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 когда-нибудь
Screenshot from 2020-07-26 15-34-18.png13 Кб, 447x148
458 1760710
>>60704
Загрузили в стек, прокрутили, высрали из стека.
459 1760711
>>60704

> йоба алгоритмы типа xor


хех
460 1760714
>>60708
Нет, ты ещё один пост выше возьми.

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



Дальше объяснение чем плохо использовать неймспейсы для всего.
461 1760716
>>60714

> Неймспейсы же нужны чтобы ты мог кусками ставить какой-нибудь огроменный пакадж типа zope и чтобы общий инитпай не перетирался при каждой установке и не удалялся при каждом сносе.


так это полная хуйня, какой инитпай кем перетирается?
462 1760720
>>60708

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


Ой какой ты смищной. Я уже пуд соли сожрал на импортах вплоть до реализации своего --import-- чтобы сделать сэндбокс не делай так, оно всё равно не безопасно, из банального пустого кортежа можно получить доступ даже к аллаху. Инит расставлять обязательно, кроме случая когда ты знаешь для чего ты его оттуда убрал. Ну можешь ещё в наколеночных проектах не делать, в принципе работать будет, но не более.
463 1760724
>>60720

> Я уже пуд соли сожрал на импортах вплоть до реализации своего --import-- чтобы сделать сэндбокс


а мог просто прочитать доку
464 1760729
>>60716
Ну смотри. Делаешь ты отдельные пакеты для СУБпакаджей. Чтобы можно было 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. Вот для такого случая нужны неймспейсы.
465 1760731
>>60724
И что бы я там начитал, лол? Ну-ка, раскрывай мысль.
466 1760734
467 1760738
>>60734
И как мне это поможет сделать сэндбокс, гений? Я в курсе неймспейсов ещё с момента когда приняли пеп.
468 1760751
>>60738
понимал бы о чем речь хотя бы
469 1760760
>>60751
Спасибо, просветил. А то я, темнота такая, не узнал бы никогда.
470 1760765
>>60760

> Спасибо


не за что, если что всегда в треде
471 1760767
>>60765
Дай сапог-то поцелую.
472 1760780
>>60767
Ты говна норм поел сегодня, так что в следующий раз
как рот помоешь
473 1760788
>>60780
Да уж, это точно. Больше на этой параше ничем делиться не буду. Ебитес тут сами.
474 1760803
>>60788

> Больше на этой параше ничем делиться не буду


ведешь себя как взрослый человек
475 1760931
>>60366
Гениально. Так и сделаю.
476 1760941
>>58452
бля, меня жаба задушила хранить гигабайты json.
переделал эту дрочильню опять на простой классический лог запросов с дополнительными колонками

не стоит время программиста такой растраты.
477 1760973
>>60941
Ну ты можешь банально форматировать строку '/n /r'.
Хорошо когда у тебя формат логов всегда совпадает. Я например записывал request/response в виде JSON, traceback тоже в него выводил.
Как итог были колонки logDateTime (DateTime(, logDate(Date), logLevel(String), logSource(String), logData(String). Партиция была по logDate, logLevel, logSource. В итоге нормально все хранится.
Ну и выводить удобно. Дело вкуса. По-хорошему вообще надо брать готовые инструменты, если ресурсы позволяют.
478 1761102
Кто нибудь может поучить программированию за не слишком большую денежку? В первую очередь интересует, как работать с def и try/except надо объяснить прям на пальцах. Условно могу писать совсем прямые скрипты, да и то в основном на селениум. А информацию по работе с def try/except я не понимаю без нормального объяснения с примерами. Нужно чтоб я мог задавать тупые вопросы, а мне них легко и понятно отвечали. Учусь быстро и схватываю на лету, когда есть конкретные примеры и конкретика
479 1761115
Что скажете про restx для flask? что в проде юзается flask + marshmallow? глянул restx там чот сложный парсинг аргументов
480 1761140
>>61102
Меня бы кто научил.
Я пришел в этом в году в этот тред и до сих пор удивляюсь.
Рандомохуи узнавшие про 2+2 претендуют на каких-то жуниоров.
Я в сто раз больше знаю, но боюсь что-то предлагать, потому что не могу себя оценить.
95% постов из серии ололо палка-палка-огуречик-получилось что?
Раз в месяц тут бывают ровные пасаны, от постов которых я чувствую тепло в писечке.
Как стать таким же и заработать мильйон? Все задатки у меня есть, не хвататет пафоса и университетского понимания ебучих формул.
Как стать таким, не ходя в офис к бородачам?
481 1761144
>>61102
Тут 75% треда из тупых вопросов, возьми какую-нибудь книгу или видеокурс на рутрекере и учи, могу посоветовать "[tceh] Разработчик на Python", там довольно понятно чел объяснял, правда не помню с самых ли основ, и учи, тупые вопросы как и остальные задавай сюда.
>>61140
Ну так попробовал бы сходить на собеседование, анон, вдруг твоих знаний как раз и хватит
482 1761148
>>61144
Да неудобно задавать тупые вопросы. Было бы проще заплатить по 500 р за урок, чтоб объяснили нормально то, что хочу знать на самом деле. Книги и курсы - пиздец гавно, уровня print("2+2")
if = 4
print("ok")
else
print(not ok)

Это ж пиздец, этому учат по 2 месяца, нахуй оно надо
483 1761152
>>61144
Я хикка и не хочу не собеседования, но суммы вроде 140к в год меня будоражат. На апворке у меня 15к в год и это более чем для моего мухосранска, а тут в десять раз больше.
А тут ещё масковские ололо-жуниоры набегают в тред со своими зарплатами, вот я и думаю.
484 1761154
>>61152
А ты сможешь научить работать с def, try/except и так по мелочи?
485 1761155
>>61148
Я не знаю на какие курсы и книги ты натыкался, но тот же цех там у него вроде был от основ самого питона до бд, легкого фронта и разных полезных либ.

>Да неудобно задавать тупые вопросы


Анонимная борда, хули тут неудобного. Слишком неудобно - открой приватный режим.
>>61152

>Я хикка и не хочу не собеседования


Многие кампании разрешают работу из дома, прособеседуйся а потом сколько хочешь хиккуй.
486 1761156
>>61155
Неудобно в том плане, что задать тупой вопрос на борде - получить тупой ответ != уметь/знать. Надо чтоб норм объяснили и показали
487 1761157
>>61154
Я добрался до разбора байткода различных вариантов, но академичного знания не хватило для разбора сишных исходников.
А так бы я вам доставлял инсайды как всё работает. Этого очень не хватает в среде питонистов.
488 1761158
>>61156
Задаешь тупой вопрос - получаешь ответ что не так или ссылку на статью где объясняют.
489 1761171
Анон, вызывал ли у тебя когда-нибудь страх сам процесс обучения?

Изучаю алгоритмы и структуры данных на питоне и часто ловлю себя на том, что не могу усидеть на одном месте, когда хочу написать что-нибудь своё или делаю что-то по памяти: появляется какая-то пустота в груди, из-за чего приходится вставать и бездумно ходить по дому или лихорадочно переключаться на вкладку с информационным мусором. Может быть это и не страх, но точно какое-то обеспокоенное чувство.
490 1761175
>>61171
У меня неудобство в груди, неровное дыхание, напряжение в глазах. Планирую вкатиться на родительскую шею.
491 1761176
>>61171
Не так страшен черт как его кличут, скорей всего то что ты описал это прокастинация
492 1761178
>>61171
Конечно, решается просто - ставь перед собой какие-то мини цели, мне помогает. Типо - 1 глава - 20 минут всякой хуеты в инете, хождения и т.д., но сначала именно 1 глава, какой бы скучной она не была.
493 1761227
Че делать? Нахуячил пиздатый скрипт, зарилил через pyinstaller exe файл, скидываю на другой пк с вин10, вылетает хуета от смарт скрина типа невозможно запустить, какого хуя? Смартскрин отключить не могу, нет доступа
494 1761238
>>61227
кликни на "more info" или "подробнее" или че там показывает, и запусти принудительно
IMG0159.HEIC1,9 Мб, 2932x1710
495 1761260
>>61238
Да нихуя ничего нет
496 1761324
Как в Питоне "подписывать" данные с помощью секретного ключа? И как их потом дешифровать?
497 1761326
>>61260
винда 32бита?
498 1761327
>>61326
64, писал и компилировал в минте
499 1761328
>>61326
Бля неужели 32 битный питон воткнулся при установке?
500 1761346
Понимаю, что многие сейчас обоссут меня или засыпят помоями, но все же, при наличии средних знаний и желании для начала выучить синтаксис, а также при наличии свободных средств, стоит ли купить курсы на Яндекс Практикуме по пайтону?
Деньги есть с основной высокооплачиваемой работы не связанной с IT. 85к они просят не проблема отдать. Хочу наставничества и хорошего обучения азам. Жду совета анона. Всем спасибо.
501 1761357
502 1761409
>>61346

> желании для начала выучить синтаксис


https://docs.python.org/3/tutorial/index.html
Деньги когда отправишь?
503 1761437
>>61102
try выполняет блок кода и except'ом ты просто обрабатываешь ожидаемые ошибки ЕКСЕПШЕНЫ, finally выполняешь обязательный блок кода, допустим нужно те обработать логику деления на 0 шобы не пейсать не красивый if пишешь експет ДивБауЗиро и выводишь сообщение
504 1761470
Чет tkinter мемный. Все элементы по центру, но два рандомных - прогресс бар и фрейм, съебались в лево, хотя нигде не указывал им это делать.
505 1761472
>>61327

>64, писал и компилировал в минте


Каким образом? У pyinstaller же убрали возможность кросс-компиляции.
506 1761482
>>61472

> Каким образом


pyinstaller —onefile 2ch.py
Вроде так было дело
507 1761488
>>60710
ну я тож туда смарел, только не особо понял шо за байт код, есть статья про то как читать это? или всё шо нужно знать так ето стек который грузит все ето?
508 1761511
Кто перекат спиздил? Где он?
509 1761512
>>61511
Нахуй мне еще тут не ответили
510 1761571
>>61488
Что там смотреть, конструкция вроде a,b = b,a это на самом деле тупли, т.е. (a,b) = (b,a). Производится упаковка и распаковка туплей.
511 1761670
512 1761676
Если тут сидят "что мне почитать чтобы ебашить на пихоне как настоящий кодер" сразу пиздуйте на Medium/Habr и смотрите кто и что реализовывал, хоть тот же Хуяндекс в Я.Такси. В живом мире недостаточно просто кодить все на питухоне, часто придется подбирать и другой инструмент для реализации.

Ящитаю обязательно к ознакомлению Redis/Memcached MySQL/PostgeSQL, RabbitMQ/Kafka. Иначе когда спросят а как вы реализовывали NoSQL можно будет жиденько обосраться.
Ну и хотя бы раз попробовать Jinja2 Templator и понять что это сука прошлый век и рендерить не на клиенте это моветон.
513 1761690
>>61676
Насрал терминами и рад.
514 1761713
>>61690
Какими терминами, братиш? Все гуглится и есть в тех же примерах Django Celery/Redis или Celery/RabbitMQ.
NoSQL даже в педивикии описан.
OLAP и OLTP там же и с примерами.
Хуже чем r/learnpython, пиздец. Пора перекатываться в Go/Julia
515 1761816
>>61346

>85к они просят


лол
кек
516 1761820
>>61676

>Memcached


Нинужон когда есть редис

>MySQL


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

>RabbitMQ


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

>Kafka


Когда будет нужон, тогда и штудируй. А так смысла нет
517 1761875
>>61820
Ты жопочтец?
Redis как MQ можно использовать, вот только дохуя чего нет в отличие от RabbitMQ.
MySQL ещё много где используется. Миграция на Postgres возможна, но не тебе решать когда это делать и будет ли от этого выгода. Хотя если на галере, то похуй.
Я не говорил о штудировать. Я говорил о том, чтобы посмотреть реальные живые примеры, а не дрочево Automating Boring Stuff. Пощупать библиотеки хотя бы на примерах.
518 1761878
>>61346

>Портфолио из 6 веб-сервисов.


Вместе они дадут полноценный онлайн-продукт — аналог Netflix
Ну охуеть, то-то они слились в порыве страсти с kinopoiskhd. Я не знаю кто эту хуйню затеял, но на Хабре вполне адекватные посты от хуяндекса бывают. Тут же просто очередной хайптрейн по курсам, ещё и C++ для хайлоад предлагают, а не go (политика, кек).
519 1761883
Привет ребятки, студент-любитель джавы в треде. Есть небольшой опыт работы в компании(стажировка) на Спринге. Следующий вопрос: Почему вам нравится питон? Просто, куда не глянь я со своей колокольни не могу найти плюсов. С питоном сталкивался в школе(ЕГЭ на нём писал) и в универе(курс Теории Автоматического Управления) - с каждым разом убеждался, что язык полная х*а для чего-либо больше Хелло Ворлда:
- Отсутсвие статической типизации - из-за чего нету нормального аутокомплита в ИДЕ, да и вообще писать неприятно(Да, есть аннотации типов, но они работают через одно место)
- Язык медленный
- Многопоточность только для IO
- ООП полное уг (Даже в JS лучше)
- Долбанные __self__, и прочая фигня(Такое даже в C редко встречается)

Так вот, какие у него киллер-фичи за которые вы его любите? У C/C++ наприер - прямой доступ к памяти и скорость работы(при хорошо написанном коде), Java/C# - очень легко писать код, который легко поддерживать(Чистый код так сказать). И так с большинством языков. Помогите найти плюсы, предстоит на нём учить курс Machine Learning а сука так не хочется к этому языку прикасаться - расскажите о нём всё самое красочное, чтобы меня отпустило. Спасибо
520 1761888
>>61883

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


Детский сад
521 1761890
>>61883
Тут недавно пробегал жабовик, нахваливал питон и рассказывал, как всё плохо в этих ваших жабах, лол.
522 1761892
>>61883
Все завязывается на том, как и где ты используешь язык. Можно сколько угодно орать, что Хаскел для тру-мужигов, но количество вакансий говорит об обратном
На Пистоне удобно писать автоматизационные скрипты (часто для линуха), нейронки, управлять кластерами Биг Даты и ебошить микросервисы-апишки (к вопросу "медленности" - тот же FastAPI держится на уровне с Нодой и как правило фреймворк оказывается "медленным" в первую очередь потому что ты делаешь уебанский server-side рендеринг темплейтов или юзаешь неоптимизированные ORM-запросы а не из-за фреймворка как такового, никого не волнует сколько раз за секунду твоя параша может высрать plain text "Hello world")

>предстоит на нём учить курс Machine Learning


Ну так ебошь курс не на Питоне. Ой, погодите-ка, остальные курсы ведь каличное УГ и вакансий для них 1.5 штуки
523 1761900
>>61883

>из-за чего нету нормального аутокомплита в ИДЕ


В пайчарме все работает, только для своих функций надо использовать type hints. Для локальных переменных внутри функций необязательно.

>Язык медленный


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

>Многопоточность только для IO


Есть multiprocessing, пусть и со своими подводными. Но в целом согласен.

>ООП полное уг (Даже в JS лучше)


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

>Долбанные __self__, и прочая фигня


Это небольшие придирки.

>Так вот, какие у него киллер-фичи за которые вы его любите


Во-первых, на нем быстрее всего решать задачи, будь то нейронка, веб сайт или небольшая утилита. Если ты пишешь проект самостоятельно и он меньше 10k LOC, то выбирать надо однозначно питон. Для машоба, дата саенса и прототипирования в целом - однозначно питон. Во-вторых, к нему самое большое количество библиотек на все случаи жизни. В-третьих, у него есть REPL и соответственно возможность дописывать код прямо в рантайме.
524 1761911
>>61820

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


Аноны, объясните, так почему Постгрес, а не Мускул? Видел что все бенчмарки веб-фрейморков питона на нем, но почему именно?
525 1761968
>>61900

>он меньше 10k LOC


По моему опыту - когда программа становится больше 200 строк, программирование на питоне превращается в боль.
526 1761992
>>61968
Ты просто совсем не умеешь программировать.
527 1762007
>>61992
/thread

Я не понимаю этого нытья. Паттерны им показали, используй.
Пук-пук простыня-спагетти. А то что жава превращается в огромный package с abstractshitnumber1.java concreteshitfornumber2.java с им нормально.
1 класс 1 файл. Почему? Нахуй идите, мы так захотели.
Хочешь расширить функционал? Поебись сначала.
Не принадлежит package?
java.shitforproject.interfaces.implementation.huipizda.commercial.govno. Каеф.
528 1762102
>>61883

>ООП полное уг (Даже в JS лучше)


ты просто не осилил.
529 1762103
>>62102
Нахуй тут ооп?
530 1762110
Как часто придется юзать ооп патерны? Конструкторы деструкторы, и прочую ооп мутатень? Стоит ли заострять на этой теме большое время?
531 1762120
>>62110
Сука проебался тредом, это должно быть в пхп(
532 1762253
Сап. Знаю основы python, но только недавно определился с сферой - машинное обучение и AI в общем. Есть тут челы, которые шарят за эту тему? Мне бы хотя бы примерный путь обучения(литературка, курсы). Сейчас еще в самом треде машинного посмотрю, но решил сразу в python написать.
533 1762389
Кто ещё использует mypy? Блять, что за логика у него ебанутая? Почему если у функции аргумент Dict[str, Union[int, str]], то объект Dict[str, str] на вход этой функции -- НИСАВМИСТИМА. Блять, как же от него бомбит. Вложенный TypedDict тоже через жопу работает, так как он считает, что значения, возвращаемые .items() -- это экземпляры object. Чего блять? Я аннотации для кого указывал?!
Говно какое-то блять. 2 дня пишешь код, потом как мудак ещё 2 дня пишешь тесты и занимаешься хуйнёй с этими ебучими аннотациями, чтобы эта хуйня ошибки сыпать перестала. Ну в рот его ебать, я за аннотации, конечно, но когда они начинают почем зря мозги ебать, нахуй оно надо тогда ёпт?
535 1762584
>>62110
>>62120
Постоянно. Потому что пыхеры ебанулись на этой теме
в динамическом блять языке, ахуеть
536 1762585
Аноны, пытаюсь нахуярить скрапер, чтобы собирать с одного сайта изображения, проблема в том, что адрес у них с blob: и нормально скачать их не выходит. Что с этой хуетой делать? Единственные советы что нашел
https://stackoverflow.com/questions/47424245/how-to-download-an-image-with-python-3-selenium-if-the-url-begins-with-blob
предлагают конвертить эту хуйню с помощью выполнения JS-кода драйвером, как-то аккуратнее это сделать нельзя?
537 1762587
>>62585
Сайт скинь.
538 1762597
>>62585
Можно поинтересоваться, зачем тебе именно Селениум? bs4 не катит?
539 1762600
>>62587
blob:https://mangaplus.shueisha.co.jp/927020c2-35df-472a-939b-7793bd2f2f48 - одно из изображений
>>62597
Потому что requests не умеет выполнять ЖС + кликать по кнопкам и прочей хуйне.
540 1762625
Тред утонул или удален.
Это копия, сохраненная 6 февраля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски