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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №93 /python/ 1741714 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #93

Предыдущий: >>1733222 (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 1741930
Флудера отправили на порашу? Гуд. в следующий раз, гайз: каждому такому ребенку, сходящему с ума на карантине, кидается репорт с формулировкой "систематический шитпостинг и флуд", модер приходит и отправляет его назад в /b

По теме: где-то объясняется как намутить fullstack приложение на Джанго и каким-нибудь js-фреймворке? Туториалы, что находятся в сети, представляют собой в основном видосы длительностью 1-3 часа. Лучше бы была статья, объясняющая азы, особенно по части жаваскрипта
3 1741939
>>41930

>Лучше бы была статья, объясняющая азы, особенно по части жаваскрипта


Ну так возьми любую статью по фреймовку на ЖС, начни с какого-нибудь Вью, он очень дружелюбен для вката. Дальше пишешь апи для джанго. Фронт раздаешь Nginx`ом как статику, все запросы к беку перенаправляешь к Джанго - все
4 1741970
>>41930
Первая ссылка в гугле:
https://tproger.ru/translations/developing-app-with-flask-and-vue-js/
Если не понравится - поищу свежие статьи от Miguel Grinberg, как раз он недавно хуярил тематику Vue + Flask.

Для джанги сам найдешь, думаю.
5 1741972
6 1742008
>>1741613 →

> Это равносильно выключению https, когда возникли "какие-то проблемы с сертификатом"



Нет.
Csrf-атака это когда админу-человеку подсовывают url и он радостно тыкает своими куками и дропает базу.
Нет человека - нет запроса.

Пробуй в любом api яндекса(аппелирование к авторитету на анонимной борде) найти csrf-токен или что-то подобное. Его там нет.
yandex-csrf.png40 Кб, 564x265
7 1742048
>>42008
В api csrf токен не нужен, там уже есть oauth и http-заголовок для него. На фронтах у Яндекса есть csrf-токены или проверка каптчи во всех мутирующих запросах. На скрине я пошёл в passport.yandex.ru и поменял свой адрес.
8 1742058
>>42048
Документацию на любой машинный с csrf покажи
9 1742066
>>42065 (Del)
На их сайте?
10 1742155
>>1741275 →
Насколько я знаю, да.
Но т.к. издательтво орайли захватили успешные менеджеры и они скатились от локомотива опенсорса к типовому инфобарыге по подписке, то сам понимаешь.
93585de07f310b0d1afc939f4213b056.jpg3 Кб, 965x405
11 1742205
Месяц назад зашел в тред, к программированию имел никакое отношение. Спасибо анонам которые помогали и отвечали на вопросы. Сегодня написал классическую "змейку", поле игры организовал через двумерный список с словарем внутри, для состояний каждой клетки, в главном цикле пару раз пробегал по каждому элементу списка. Собственно вопрос, такая организация "Ок" или "неОк"?
12 1742207
>>42205

>Собственно вопрос, такая организация "Ок" или "неОк"?


Сам как думаешь, это игрушка для портативного железа 80-х
15939057799100.jpg19 Кб, 965x405
13 1742210
>>42205

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


Зачем хранить все поле игры? Достаточно хранить отмеченные точки и направление движения.
14 1742236
>>41714 (OP)
Господа питонисты, здравствуйте.
В общем, посмотрел я в шапке информацию о вкате на хабре, посмотрел еще пару статей и видео о том, что читать/смотреть для вката. Ну, думаю, есть пара книжек и курсов, которые мелькают у всех в рекомендациях, начну, наверное, с них. Потом решил проверить треды, что писали ананасы, – и вы то поносите одну книгу, то другую. То укус питона - говно для говноедов, то Лутц уебище водяное. То какие-то курсы хороши, то это вообще говнище ебаное. Я вообще нихуя не понял в итоге, с чего начинать.
Посоветуйте, пожалуйста, аноны, какие книги читать для начала, да и с заделом на продолжение? Может, какие курсы можно посмотреть? Я так понял, российские курсы вы поносите. А какие пиндосские курсы посоветуете? С английским всё хорошо.
Питон мне понадобится довольно сильно, и нужны довольно хорошие в нем знания. Зарабатывать питоном вообще не собираюсь пока. Сейчас он нужен в качестве приложения к основной области, для курсовой.
15 1742237
>>42236
Насчёт книг:
В прошлый тред ворвалась маня и поносила топ книгу - укус питона. Не слушай маню, слушай шапку треда. Недавно обновил укус питона до свежей версии.
Лутц - долго и нужно, если диплом у тебя через 5 лет, то можешь начать читать лутца.

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

Хорошие зарубежные курсы, может кто-то подскажет. Было бы неплохо их в шапку добавить

С хорошим знанием англицкого - учиться будет легко.
16 1742247
>>42237
Спасибо! То есть, получается, начинать с укуса питона, а дальше что читать? Насколько я понимаю, там совсем базовые знания для новичков, а что дальше после этого читать, если не Лутца на 1000 страниц? В ЧаВо есть ссылка на хабр, там человек сразу говорит читать Лутца, потом говорит еще про 2 книги, ссылки на которые не открываются, а авторы не приведены насколько я понял, под "Язык программирования Python" он имел в виду книгу Россума, Дрейка, Оркидача? это что-то из разряда маст рид? что он имел в виду под "Основы программирования на Python. Учебник. Вводный курс" я так и не понял а потом уже справочник по питону, опять, на ~900 страниц.
В итоге я в смятении, что читать после укуса питона.

Аноны, кто ещё знает, подскажите, пожалуйста, курсы русские/пиндосские по питону для начинающих ну и, собственно, с заделом на углубленное изучение. Просто я совсем не ебу, гикбрейнсы, хуейнсы, датакэпмы, что из них хорошее, а что плохое.
image.png6 Кб, 965x405
17 1742278
>>42210
пфффф че за лох бля. нормальные пацаны хранят так
18 1742367
>>42247
Ты для начала полностью прочти укус питона, сделай все примеры и задания, дальше принимайся за Джанго, потом уже можешь потихоньку искать работку, я сам так вкатился, на следующей неделе будет год как работаю бекенд разработчиком, время очень быстро летит.
19 1742377
Памагити, у меня питон не выводится в терминале. Делал всё по инструкции в видеокурсе.
20 1742381
>>42377
поставь анаконду и не выебывайся
21 1742382
>>42381
Всё заработало. Я тыкнул Run на альшифте и теперь могу тыкать Run просто на шифте. Магия какая-то.
22 1742394
>>42247
После укуса могу посоветовать саммерфилда немного почитать. Но вообще, быстрее начинай решать задачки и писать программы, в шапке есть для этого неплохие платформы.
Что читать дальше - зависит от области которая тебя интересует.

>>42367
Какая зп?
23 1742431
>>42377
пиши в консоль python lesson4.py а не просто lesson4.py
24 1742448
Обращаюсь за помощью. Я вкатывальщик ньюфаг, сейчас прохожу курс от JetBrains и за проект выбрал крестики-нолики. Вот сейчас у меня задача определить победа\проигрыш\ничья и т.д. И стал вопрос как это сделать. Я то могу сделать это через множество if-else, но мне кажется это не очень. Что мне нужно подтянуть чтобы решить? Алгоритмы или что?
25 1742528
>>42448
По другому в общем и не сделаешь.
Можно сделать тупли проверяемых позиций и проверять в цикле, например.
26 1742613
Объясните пожалуйста на языке доступном для пятилетнего ребёнка.
print("text" + "text" \ + "text") - выдаёт ошибку
print("text" + "text" \
+ "text") - работает

Почему выдаёт ошибку в первом варианте и зачем вообще нужен этот слэш? Я разобрался с \a, \n, \t но в остальных ситуация, я не понимаю зачем он вообще.
Например зачем при написании
print(" \'text\' "), если можно просто написать print(" 'text' ")?
27 1742665
>>42613
Можешь воспринимать / в конце строки как экранирование перевода строки.
28 1742691
Спасибо!
29 1742775
>>42448
Паттерн такой может быть. Делаешь функцию-отображение
field_line(num) --> line
то есть занумеровать все возможные линии, их в случае поля 3x3 будет 8 штук, и получать эту линию по номеру

А линию уже легко проверять на то, выигрышная она или проигрышная. Просто циклом по ней проходишь и считаешь, сколько там крестиков и ноликов. Можно и для 3x3, и для больших полей и линий длины 5.

На этом же принципе ты можешь и стратегию игры строить, простейший алгоритм. В частности, предотвращать возможность противнику собрать линию, находить хорошие ходы и т.п.
30 1742782
(оффтоп) А что за сочная мадам приспускает трусики на оп-пике?
И где найти её фуллфронт?
31 1742822
>>42782
Тоже оффтоп. Вот здесь, например:
https://dangerousminds.net/comments/salvador_dalis_bizarre_but_sexy_photoshoot_for_playboy_1973

Это фото 1973 года, не уверен, что она по-прежнему такая же сочная.
54156847684105.png14 Кб, 1022x460
32 1742885
>>41714 (OP)
У меня есть пара мыслей насчет парсера: еще после прошлого треда наклепал небольшую версию парсера, реализованную на пайпах subprocess.Popen и как следствие - мультипроцессинге. Походу мультипроцессинг в Питоне на пайпах весьма годный (но только если не выходить за рамки конвеера)

У нас есть Leacher, который отправляет запросы к сторонним ресурсами и получает json-ы либо html страницы, если ситуация позволяет, то он может даже работать в асинхронном loop, есть Worker он осуществляет парсинг документа (с помощью bs4 если это html) и передает результат к Writer, который создает нужные директории, файлы и осуществляет запись (также может работать через aiofiles)

Большая доля нагрузки ложится именно на Worker, документов может приходить разом много и их надо вовремя распарсить, так почему бы не сделать 2го или 3го Worker-а? Можно ли с помощью subprocess перенаправить вывод сразу в 3 места так, чтобы результат отдавался по очереди сначала в 1й, потом во 2й, затем в 3й и после снова в 1й Worker? (ну или как-нибудь иначе, главное чтоб нагрузка была распределена)
33 1742898
блять какие есть вакансии питониста кроме обоссанного мной же бэкэнда и обдистаного моим преподом дата сайнсом как панацеей 21 века. Я ебал. Охуенный язык, охуенно читабельный, охуенно много библиотек, охуенно много проектов на гит хабе, охуенно много качественного по но блять ебучий хх ру не знает нихуя кроме бэкЭнда и искусственного интеллекта в моей жопе Урал если че екб там челик
34 1742899
>>42898
А нахуй он ещё нужен? Скрипты писать?
35 1742904
>>42899
Я ебу что-ли? Знал бы не спрашивал. Тесты на селениуме, боты всяких телег дискордов, парсеры, многопоточные обработчики, спамеры, какая-нибудь хуйня с безопасностью.
36 1742907
>>42898
QA, бэк, дата инжиниринг, машоб, прикладнйо скриптинг. Все.
Еще остаются: десктоп (плавно отмирающий и явно не для питона), фронт (за жсом целиком), геймдев (зашкварная хуйня сама по себе), мобилки (тут изощряются но в основном кроме Жабы/Котлина/Свифта тут ничто не живет)
37 1742909
>>42907
На что из этого реально устроиться имея диплом и около начальные знания ?
38 1742910
>>42909
Какой еще "диплом" лол? Бакалавр заборостроительного по специальности "кампухтир саинз" это потешная степень и не более

>около начальные знания


Сразу нахуй
39 1742912
>>42910
Ну блять не заборостроительного конечно но около того нас и всяким алгоритмам учат, графы хуяфы, машинное обучение тоже было правда называлось искуссвенным интеллектом че такое класы знаю про всякие наследования вкурсе, пару залуп для упрощения жизни писал мб этого хватит для Джуна-нихуя-не-знаю плотите зп пожалуйста
40 1742913
>>42885

>отдавался по очереди сначала в 1й, потом во 2й, затем в 3й и после снова в 1й Worker? (ну или как-нибудь иначе, главное чтоб нагрузка была распределена)


RabbitMQ какой-нибудь прихуярь, где твой личер будет продюсером, а воркеров перенести на косьюмеров
41 1742931
>>42885
>>42913
Двачую этого.
Если рэбит зажирно - ЗероМК есть.
42 1742965
>>42822
Огонь! Спасибо.
43 1742987
>>42931
Что с celery?
44 1743005
>>42987
Тебе и простого Реббита хватит
45 1743015
>>42987
Ну бери и Селери если надо периодичные задания пилить.
Не забудь про Flower тогда уж.
46 1743030
>>42782
Это Гвидо же!
image.png63 Кб, 1209x213
47 1743032
Аноны, сервис на запрос возвращает вот такую штуку, на что это больше похоже и как можно расшифровать?
48 1743033
>>43032
iv это initialization vector, а ct можно предположить, что ciphertext, т.е. зашифрованное значение в base64.
Вероятно, AES. Так что ищи ключик.
49 1743034
>>43033
Угу, и правда AES.
Я правильно понимаю что ключ должен лежать где-то в ЖС-коде?
Ибо структура такая:
На фронте жму кнопку, делается аякс-запрос на сервер, оттуда приходят эти данные(ключи что скинул) и затем на фронте выводится инфа.
Больше никаких запросов на бэк не ходит.

Опытным путем вычислил, что ключ секретный - `cp` пикрил, но вот место где эта переменная инициализируется не нашел, видимо в ЖС-тред надо идти.
Я охуел от ЖСа, после пистона - просто пиздец.
IMG20200706060055982.png111 Кб, 1836x512
50 1743035
51 1743037
>>43034
Посмотри на самой странице, скорее всего оно динамеческое для сессии, например, как csrf-токен.
52 1743081
Изучаю нейросети по мануалам, столкнулся с проблемой схоронения меток классификатора
https://pastebin.com/uayHYSxQ
Суть в том что если поставить exit(0) до функции
model.add(Dense(1024, input_shape=(3072,), activation="sigmoid"))
метки сохраняются, если не ставить то файл пустой, в чём может быть проблема?
53 1743084
>>43081
P.S.
Переписал код на:
with open(args["label_bin"], 'wb') as f:
pickle.dump(lb, f)
Сохраняет нормально
54 1743133
памагити, как реализовать в джанге выкладывание постов с пикчами через админку. Проблема в пикчах, способы с форумов 2015 года не помогают
55 1743177
>>43133
Очень дельная инфа, бро (нет)
Вангую у тебя не скачан Pillow или ты не поставил в поле blank=True

>>41714 (OP)
Каковы подводные запуска сразу 3х джанго-приложений на одном виртуальном хостинге с gunicorn? Все 3 обращаются к Postgres но к разным ДБ канешн. В распоряжении 2 ядра и 2 ГБ озу
56 1743180
никто не знает как проект pycharm запускать на компе без данного ПО? т.к. чтобы было окружение для простого запуска главного файла.py
57 1743185
>>43180
Пучарм делает стандартный venv, его и используй.
58 1743196
>>43177

> Каковы подводные запуска сразу 3х джанго-приложений на одном виртуальном хостинге с gunicorn? Все 3 обращаются к Postgres но к разным ДБ канешн. В распоряжении 2 ядра и 2 ГБ озу


А нагрузка какая? Все от етого зависит.
Но я бы БД не запускал на том же сервере что и аппа.
59 1743210
>>43185
спасибо, помогло
60 1743238
Котаны, изучаю корутины и теоретическую основу async io.
Правильно ли я понимаю, что чтобы добиться конкурентности в рамках одного треда на корутинах - необходимо чтобы все времязатратные функции были не блокирующими? Т.е. корутины не решают проблему блокирующих операций, они вместо этого требуют, чтобы все длительные операции были неблокирующими, и все подключенные либы соответственно тоже?
61 1743263
62 1743266
>>43196

> Но я бы БД не запускал на том же сервере что и аппа.


Но это как? Как они будут обращаться к друг другу. Это же виртуальные серваки, а не реальные соединенные проводами.
63 1743270
>>43263
Тогда вопрос в догонку:
Нахер нужен мультитрединг, если там все равно GIL тру асинхронности не дает, а накладных расходов больше?
64 1743273
>>43266
Пиздец.
Иди основы про БД почитай.
65 1743276
money=int(input("..."))
if money:
print("...")
else:
print("...")

Выражение: if money > 0 ,было бы для меня понятно.
Я правильно понимаю, что переменная с функцией int и аргументом 0, для интерпритатора false по дефолту?
Спасибо.
66 1743281
>>43273
Какие? У меня был курс бд.
Ответь нормально, зачем выебываешься
67 1743284
>>43281

> У меня был курс бд.


Я ебал, курс у него был, а ты наверное на курсе том и не был.

> Какие?


Как подключаться к БД.
68 1743286
>>43177
SuspiciousFileOperation at ПУТЬ
69 1743289
>>43284
А, точно. Но удаленный доступ вообще не для этого нужен. Какой в этом смысл, это же просто задержку работы увеличит.

> Я ебал, курс у него был, а ты наверное на курсе том и не был.


Курс про бд это ACID, аномалии, нормальные формы, какие структуры лежат за бд и тд.
70 1743295
>>43289

> Но удаленный доступ вообще не для этого нужен.


Нет.

> Какой в этом смысл, это же просто задержку работы увеличит.


Если две стойки стоят в одном ДЦ и объединены в одну сеть, ты уверен что заметишь задержки?
Смысл в распределении нагрузок.
71 1743303
>>43295

> Нет.


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

> Если две стойки стоят в одном ДЦ и объединены в одну сеть, ты уверен что заметишь задержки?


> Смысл в распределении нагрузок.


Ват? Виртуальные серваки объединены в сеть? Это если наверное только специально заказывать у хостинга такие. А так смысл виртуальных серваков как раз в том, что они изолированы. Коннект будет через интернет, очень весело да.
72 1743310
>>43276

>Я правильно понимаю, что переменная с функцией int и аргументом 0, для интерпритатора false по дефолту?


Да. Но лучше так не делать.
73 1743314
>>43303
Сто лет уже можно строить внутренние инфраструктуры у облачных провайдеров.
Да и если спавнить отдельные серваки в одной локации, они всё равно будут в одной автономной системе провайдера без оверхеда по сети.
74 1743319
>>43303

>Виртуальные серваки объединены в сеть?


Пока ты не хостишь базу данных и веб-сервер у разных провайдеров - да, они объеденные, о какой изоляции ты говоришь? Ну да, на пол миллисекунды будет медленнее, чем если два компа напрямую соеденить шнурком, но все равно ты хуй заметишь. А если использовать серверлесс БД то еще и быстрее может выйти.
75 1743320
>>43310
По-моему, везде рекомендуются эти неявные проверки.
Единственное, что я предпочитаю, это записи вроде num % 1000 == 0, в этом случае действительно наглянее, чем not.
76 1743327
А куда в джанго можно вставить код, который будет в цикле выполнятся?
77 1743400
>>43196

>Но я бы БД не запускал на том же сервере что и аппа.


Почему нет? Что за карго-культ?

На отдельный сервер есть смысл выносить тогда, когда сервер БД каким-то специальным образом сконфигурирован, там специальные диски-raid, и т.п. При этом один сервер БД обслуживает много разных приложений.

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

Это требует разных конфигураций.

Разделять на виртуальные сервера смысла почти нет. Это не увеличит ни надёжность, ни производительность. Может упростить обслуживание и развёртывание в каких-то случаях.

При этом проблемы добавляются. Например если БД на отдельном сервере, то по-хорошему уже должен быть защищённый коннект. А это дополнительные ресурсы и возня. И не только это.
78 1743404
>>43314

>они всё равно будут в одной автономной системе провайдера


Не мешай понятия. Автономная система, AS, это понятие из маршрутизации (BGP семейство), как определять политику доставки пакетов по группам сетей. В одной автономной сети могут находиться сети, физически очень далёкие друг от друга, с очень большим пингом.

Особого оверхеда в сети нет, подключение по tcp с рамках localhost сравнимо по скорости с unix-сокетами, unix-сокеты сейчас даже не сколько для скорости, сколько для защиты используют, можно выставить владельца и права доступа на unix-сокет, а на tcp порт нельзя (точнее только с помощью специальных файерволлов можно, система-зависимых). Но если у тебя соединения между разными серверами, то их надо защищать, это стандарты безопасности просто, а вот это требует дополнительной работы.

Локальная сеть гипотетически тоже может быть перегружена, тут тоже риски добавляются.
79 1743429
>>43081
У тебя ошибка: вместо f.close надо f.close(). Нафига ты полез в нейросети делая такие глупые ошибки я не понимаю.
80 1743486
>>43400

>Почему нет?


Ох, видел сколько кушоет Постгрес когда запускает вакуум и прочее?
Вынося БД на отдельный сервер или отдавая БД на откуп провайдеру(не очень нравится) ты снимаешь часть головной боли связанной с ней и с поддержкой/настройкой сервера и апы. Безусловно это можно не делать если приложение использует 1,5 анона, но если идет нормальная нагрузка - это бэст практис. А я именно о таком случае говорю.

> Что за карго-культ?


Ну вот такой, повсеметный и подтвержденный культ. Как и запуск БД не под докером. Я не спец по БД поэтому предпочитаю доверять людям которые ебутся с ними 24/7 и пишут новую логику для них. Я конкретно про Постгрес, т.к. использую его + рашко-разрабы довольно часто выступают на конференциях и рассказывают что к чему и как.
81 1743492
>>43032
Аноны, опять я на связи.
Значит разобрался и нашел ключ для дешифрации данных, даже получилось их извлечь, правда только ЖС-либой - CryptoJS, пикрил №2.
А вот питоновскими либами нихуя не выходит. Как и различными анлаен-сервисами.
Так же выснил что юзается - cbc.
Пикрил №1 вроде как возврщает ответ, байты, но при попытке их декодировать получается ебучая каша.

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

Ключ - c3b2d44cd6efe3020a54b0cbb53786ce
Собсна остальные поля - https://pastebin.com/tdKJGnqS
82 1743507
>>43492
Как видно, там участвует ещё некая соль, которая у тебя имеется как s, как-то оно там ещё хуевертится дополнительно.
83 1743512
>>43507
Вот здесь есть реализация на похапе именно под эту либу, что-то там перехешируют дополнительно, мне лень разбираться.
https://github.com/meetio/cryptojs-aes/blob/master/cryptojs-aes.php
84 1743531
>>43507
>>43512
Короче там пезда и отсутствие нормальной совместимости.
Пришел к выводу что проще локально выполнить кусок ЖС кода и через него дешифровать данные.
Спасибо, антош, за помощь.
image.png45 Кб, 891x284
85 1743534
>>43531
Бля, и сразу попадание
86 1743549
while not username:
while username:

Я не могу понять, смысл этих утверждения.
Например если бы переменная username имела аргумент, было бы понятно.
while username <= 1, или что-то в таком духе.

а так, while username ЧТО?

Объясните пожалуйста, как для умственно отсталого.
87 1743551
>>43549
В булевом контексте любой объект кастится в тру или фолс, вот там небольшой списочек фолсов, все остальные тру.
https://docs.python.org/3/library/stdtypes.html#truth-value-testing
DjcKuqpU8AEzdw1.jpg323 Кб, 991x1500
88 1743558
>>43319

>серверлесс БД


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

Я вообще слабо понимаю значения словечек вроде "ОБЛАЧНЫЙ" и "СЕРВЕРЛЕСС".
VPS - это уже сразу СЕРВЕРЛЕСС или только ОБЛАЧНО?
А докер и k8s (в которых нужно нихуёво ебаться с сетью и прочими очень "серверными"/"сисадминскими" вещами)?
89 1743561
>>43551
Спасибо за ответ.
Изначальная моя переменная имеет следующий вид
username=""
это false, потому как "" в списке false по дефолту.
Следовательно выражение:
while username:
буквально означает запуск и работу цикла, до тех пор, пока переменная возвращает false
а выражение:
while not username:
до тех пор, пока переменная возвращает true.
Как только, например через input, переменная получает хоть один символ, цикл начинает выполнять следующие выражения.
Правильно?
90 1743645
>>43561
не читал вопросов и ответов от других анонов

крч if x, while x ждут что вместо x будет переменная типа bool, но так как питон зело удобный есть правила приведения типов к этому бул

по сути
if username это тоже что if bool(username) а вот этот bool(username) у каждого типа разный

для строк это username != ""
для списков это x != []

поэтому я и говорю что питон не очень подходит как первый язык
91 1743659
Хм, как при подключении через ssh держать несколько инстанцов терминала?
Поясню таки: обычно при разработке в том же джанго на моей машине у меня было разом включено 4-5 сессий с терминалом: в одном работает manage.py runserver, в другом воркер celery, в третьем redis-server, в четвертом я в manage.py shell копаюсь, а пятый для общей разработки и curl-ов. Как такое мутить при подключении к хостингу?.. мне 5 раз из разных терминалов приконнектиться через ssh к серву?
92 1743668
>>43659
screen, tmux, terminator
93 1743700
>>43659

>Как такое мутить при подключении к хостингу?.. мне 5 раз из разных терминалов приконнектиться через ssh к серву?


А нахуя тебе такое делать на хостинге, ты же понимаешь, что как только ты закроешь 1 терминал у тебя все ебнется, а держать их открытыми постоянно - хуета
94 1743714
>>43659

Вопрос в догонку:
Через пару минут неактивности, терминал зависает, що как фиксать?
Мимодругойанон
95 1743746
Поцаны. Послушайте. А что если. А что если я буду vdom рендерить на пистоне? Это нормально же, да? Ничего такого страшного, да?
А еще, есть какие-нибудь фреймворки вроде blazor?
96 1743756
>>43561
Да, всё так.

>>43659
tmux самый удобный. Можно выучить десяток хоткеев и пользоваться, но он умеет очень дохуя всего ещё.
97 1743759
>>43714
Тоже tmux. Если у тебя терминал отвалится,то всё останется работать. Потом можно подключиться обратно.
98 1744045
>>43759
Спасибо, ща буду пробовать как оно.
99 1744076
>>43659
Нужно 5 терминалов - открываешь 5 терминалов.
К чем проблема? Ахуеть вообще.
Ты мышкой не владеешь? Тебя пугает число 5?
100 1744078
>>43714
Ищещь где в putty настройка пинга. И роутер нормальный домой купи.
101 1744083
>>44076
Зачем с умным видом отвечать хуйню, если ты не знаешь?
102 1744093
>>44078
Я на линупсе, роутер норм.
103 1744155
Анон, почему везде пишут что питон это раздутый пузырь и работы на нем нет, только лаба1 для школьников? Это такой тролинг от тру-ъ программистов?
104 1744168
>>44155
На заборе хуй пишут, будешь?
Работа есть, но не для вкатышей с хекслета.
105 1744236
Друзья, такой тупой новичковыйц вопрос:
Как вернуть ИМЯ инстанса класса внутри метода?

Я уже опробовал __repr__() __str__() и даже просто self
В результате возвращает такую вот парашу

><__main__.Neuronet object at 0x7fa4c4e2c040>

106 1744263
>>43714
>>44093
Попробуй
ssh -o ServerAliveInterval=5 myhost.com
это делать пинг внутри протокола ssh, чтобы соединение не обрывалось.
107 1744302
>>44236
что такое имя инстанса?

тип class A(): ...
a = A()

ты хочешь сделать что-что вроде
a.__huita__ и получить "a"

так нельзя сделать
108 1744328
>>44302
Именно эта __хуита__ мне и нужна для того чтобы вывести данные в файл с таким же именем каково имя объекта.
Я понимаю что на один и тот же объект могут ссылаться несколько имён. Однако моей проблемы это понимание не решает.
109 1744330
Допустим, есть вот такой json:
{"data":{"test":[
{
"date":"2020-07-07T00:00:00",
"time":"10-05",
"foo":"bar 1",
},
{
"date":"2020-07-07T00:00:00",
"time":"11-50",
"foo":"bar 1",
},
{
"date":"2020-07-08T00:00:00",
"time":"13-35",
"foo":"bar 2",
}
]}}

Нужно получить вот такой вывод (то есть сгруппировать по дате):
2020-07-07:
10-05: bar 1
11-50: bar 1

2020-07-08:
13-35: bar 2

Как это сделать?
109 1744330
Допустим, есть вот такой json:
{"data":{"test":[
{
"date":"2020-07-07T00:00:00",
"time":"10-05",
"foo":"bar 1",
},
{
"date":"2020-07-07T00:00:00",
"time":"11-50",
"foo":"bar 1",
},
{
"date":"2020-07-08T00:00:00",
"time":"13-35",
"foo":"bar 2",
}
]}}

Нужно получить вот такой вывод (то есть сгруппировать по дате):
2020-07-07:
10-05: bar 1
11-50: bar 1

2020-07-08:
13-35: bar 2

Как это сделать?
111 1744335
>>44328
Ты ведь знаешь, что можно просто погуглить и найти ответ на твой вопрос за 5 секунд?
112 1744339
>>44335
Хотя не совсем понял твой вопрос, имя инстанса это уже хуйня какая-то
114 1744350
Эй вкатуны, как поживаете? 300к\с рубите уже на питончике али вы ржаные гречневые с манямирком?
115 1744353
>>44328
честно говоря мы не понимаем хули тебе надо, напиши плз код как это должно работать

потому что __huita__ существует только для классов, функций и модулей и называется __name__, у экземпляров классов такой штуки нет
разве что
obj.__class__.__name__
116 1744393
>>44353
Что есть инстанс? Объект. Если сделать override __repr__ для конструктора то задача будет решена

class Factory:
def __init__(self):
self.__name = 'factory'
self.__id = 1

def __repr__(self):
return f'{self__name}{self.__id}'

concrete_a = Factory()
assert repr(concrete_a) == 'factory1'
117 1744397
>>44083
Потому что проблемы нет и это надо донести
118 1744400
>>44093
Роутер не дропает сессии если ему хватает все
119 1744401
>>44393
Проверено в repl.it
[code]
class Factory:
def __init__(self):
self.__name = 'factory'

def __repr__(self):
return self.__name

concrete = Factory()

print(repr(concrete) == 'factory')

[/code]
120 1744403
>>44400
Ты теоретизируешь. Коннекты дропать может кто угодно, и твой хостинг, и твой провайдер. Их реально дропают.
121 1744405
>>44401
Ну ебана...

class Factory:
def __init__(self):
self.__name = 'factory'

def __repr__(self):
return self.__name

concrete = Factory()

print(repr(concrete) == 'factory')
122 1744407
>>44405
ты автор этого
>>44236
вопроса?
123 1744408
>>44403
в путинской россии один провайдер - ростелеком и он не дропает.
Никому не нужны тупые проблемы из-за обрывающихся соединений.
Это всегда клиентская проблема.
124 1744410
>>44407
Нет. Почему спрашиваешь?
125 1744414
>>44353
Жаль, буду думать дальше
126 1744416
>>44410
странный вопрос, странный ответ
127 1744418
>>44414
а нахуя тебе оно надо?
128 1744419
>>44416
Вопрос был в том, как дать инстансу название. Я и дал ответ. Что не так? Не знаете что такое override метода?
129 1744423
>>44419
Это мне пригодится когда буду писать load() из файла. Спасибо.
130 1744427
>>44423
А какая вообще задача стоит?
131 1744432
>>44419
Название же статическое в любом случае будет, смысл тогда в этой хуете? И нахуя репр явно вызывать, вы че
132 1744437
>>44432
Генерируй через UUID уникальное, хули. Хоть через timestamp.
Ты какой-то душный.

А как ты без repr сделаешь call к нужному методу? Я же говорю, можно и через @property все расписать и понятнее будет
133 1744440
>>44437

>Генерируй через UUID уникальное, хули. Хоть через timestamp.


Я мимочел, изначальный вопрос анона был именно в имени переменной насколько я понял, а не класса.

>А как ты без repr сделаешь call к нужному методу?


Тут хуйню сказал, соглашусь, имел в виду что логичнее обращаться к str()
134 1744441
>>44408
А схуяли ты думаешь что я из россии?
С роутером все Ок.
Т.к. на работе тоже самое, как минимум.
135 1744457
>>44440
Насчет __str__ согласен, так как __repr__ должен содержать название класса.

Enum? Но надо писать метод для выдачи
136 1744459
>>44440
Хуевый вариант это дергать globals()

a =1
b =2

print(globals())

GLOBALS = globals()

print(GLOBALS['a'])

Костыль, но задача выполнена, лол.
137 1744475
>>44441
ну так купи услуги у тех у кого не глючит.
последний раз я пинг в ssh настраивал 10 лет назад, потому что в очередной прошивке dir-300 решили экономить память при раздаче торентов.
138 1744494
>>44408
Провайдеров много. Большинство дропает. И на хостингах дропают.

Как минимум сейчас норма, что многие подключены не напрямую, а через роутер или NAT провайдера. У МГТС так, у мобильных операторов.

Они по-определению дропают. Потому что NAT не может забивать себе адресную таблицу слишком большим количеством путей.

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

Решение есть, опция -o ServerAliveInterval=10
эта опция говорил, чтобы ssh каждые 10 секунд посылал keep-alieve пакет, если нет трафика. Можно прописать в конфиг и не думать после этого.
139 1744527
>>42394

> Какая зп?



Сперва была 50к, сейчас подняли до 80к, самое смешное что как подняли то стали поступать другие предложения, вот сейчас в процессе прохождения собеседования в другую контору там 100к обещали. Не ДС и не ДС 2, но миллионик.
140 1744603
>>44494
Да пусть настроит. Но он должен знать,
что дропают только обоссанные хохлятские хостинги. ОС посылает этот "пинг" без участия приложения с интервалом 45-60 секунд
Скриншот 08-07-2020 003649.png5 Кб, 999x558
141 1744712
Каким образом питон делит - 4 // 3 и дает - 2. Что за хуйня?
142 1744741
>>44712
Округляется к меньшему целому.
143 1744798
>>44712
а вот и вкатывальщики, которые не осилили деление с остатком. Пока есть вы, я не боюсь конкуренци.
144 1744824
>>44798
Пиздец тайное знание.
Вообще не помню, была ли когда-нибудь потребность использовать его в реальном проекте.
145 1744826
>>44824
Попадается.
146 1744829
>>44826
Например? Какие профиты по сравнению с флоатом?
147 1744849
Двач, выручай
С помощью opencv удалось вывести картинку экрана в окно. Теперь стоит задача определить, находится ли конкретная картинка на экране. Пробовал через cv2.matchTemplate, но он дает сравнивать только 2 картинки. А нужно, что в реальном времени считывалось через запись экрана. Ниже код, через который записываю экран. Умоляю, помогите. В пайтоне полный ноль, уже несколько дней бьюсь, гугл не помогает.

printscreen = np.array(ImageGrab.grab(bbox=(30,80,960,500)))
cv2.imshow('window',cv2.cvtColor(printscreen, cv2.COLOR_BGR2RGB))
148 1744881
>>44829
Что бы не хранить дробную часть, когда данные должны быть в натуральных значениях
149 1744882
>>44829

>деление нацело


>профиты по сравнению с флоатом


шта
150 1744886
>>44076

>мышкой


>ssh


Это само по себе прикольно, но да хуй с ним, вероятно ты подразумевал немного иное (но все равно сказал хуйню)
Суть в запуске даймонов: редиса, celery и т.п. удачи сделать это "просто открыв 5 терминалов"
151 1744887
>>43700
Даймоны, не?
152 1744893
>>44849
Ну дак делай цикл, который будет делать скриншот окна и при помощи cv2.matchTemplate определять есть ли на скриншоте совпадения с патерном.
153 1744895
>>44893
Хотя опенссиви вроде как умеет и сам раскрадровывать видео, которое захватывает, но тут я уже ничего не подскажу
154 1744900
>>44887
Ну да, запустить 5 сервисов можно и с 1 терминала, ебать мозги с 5 - это уже какое-то извращение
155 1744912
>>44849

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



людям потребовалось 50 лет чтобы создать нейросети в современном виде.
156 1745305
Пихтонщики, поясните за map, filter, zip, etc

Как часто ими вы пользуетесь?

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

Либо я говнокодер, хз короче
157 1745324
>>45305
буду говорить про бекенд и как часто он используется в задачах написания веб-апи. Про то как там в анализе данных не знаю. Во всяких задачах для собеседований и прочих leetcode'ах эти функции используются довольно часто.

>map


берет функцию f и какой-нибудь итерируемый объект список. Для каждого элемента из списка делает f(x) и возвращает соответственно список этих f(x)

используется не часто, обычно использует list comprehension, типа (f(x) for x in my_list)

но можно сказать что часто используется в threadpoolexecutor'ах см: https://chriskiehl.com/article/parallelism-in-one-line

>filter


берет функцию f, список my_list, смотрит каждый элемент если для него f(x) == True то возвращает его в выходной список, если нет то пропускает

используется еще реже, обычно либо делают списковое включение а-ля (x for x in my_list if x), либо дрочат какой-нибудь for x in my_list: if f(x): ret.append(x), либо сразу запрашивают нужные данные в sql или еще где

но заюзав какой-нибудь f = open(); filter(None, f) можно выебнуться перед коллегамиодноклассниками

>zip


есть два списка my_list в котором хранятся x1, x2, ... и your_list в котором y1, y2, ... . zip берет их и делает новый список с парами: (x1, y1) , (x2, y2) , (x3, y3), ...

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

>etc


ну там много разных в itertools и в functools

>Вообще не понимаю как и когда их уместо использовать


в питоне принято дрочить на эти функции и везде совать, такой python-way. В принципе использовать их стоит если они сокращают код и делают его понятнее. Фильтры в фильтрах делать не стоит

>Либо я говнокодер, хз короче


читай переодически этот тред, чтобы самоутверждаться на местных довенах
157 1745324
>>45305
буду говорить про бекенд и как часто он используется в задачах написания веб-апи. Про то как там в анализе данных не знаю. Во всяких задачах для собеседований и прочих leetcode'ах эти функции используются довольно часто.

>map


берет функцию f и какой-нибудь итерируемый объект список. Для каждого элемента из списка делает f(x) и возвращает соответственно список этих f(x)

используется не часто, обычно использует list comprehension, типа (f(x) for x in my_list)

но можно сказать что часто используется в threadpoolexecutor'ах см: https://chriskiehl.com/article/parallelism-in-one-line

>filter


берет функцию f, список my_list, смотрит каждый элемент если для него f(x) == True то возвращает его в выходной список, если нет то пропускает

используется еще реже, обычно либо делают списковое включение а-ля (x for x in my_list if x), либо дрочат какой-нибудь for x in my_list: if f(x): ret.append(x), либо сразу запрашивают нужные данные в sql или еще где

но заюзав какой-нибудь f = open(); filter(None, f) можно выебнуться перед коллегамиодноклассниками

>zip


есть два списка my_list в котором хранятся x1, x2, ... и your_list в котором y1, y2, ... . zip берет их и делает новый список с парами: (x1, y1) , (x2, y2) , (x3, y3), ...

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

>etc


ну там много разных в itertools и в functools

>Вообще не понимаю как и когда их уместо использовать


в питоне принято дрочить на эти функции и везде совать, такой python-way. В принципе использовать их стоит если они сокращают код и делают его понятнее. Фильтры в фильтрах делать не стоит

>Либо я говнокодер, хз короче


читай переодически этот тред, чтобы самоутверждаться на местных довенах
158 1745325
>>45305
map и filter используются нечасто, есть более актуальные генераторные выражения и компрехеншены.
А zip полезная штука, много где не обойтись.
159 1745465
Есть проект на Djano, в котором иногда нужно делать запрос к стороннему API. Как повторять запрос если истек таймаут заданное количество раз? Желательно, с примером кода.
160 1745475
>>45465
Django background task
161 1745497
Смотрю чувака, он ставит gunicorn. Я запустил свой гуникорн обычной командой gunicorn --bind 0.0.0.0:8001 project.wsgi и все работало, этот же петух написал .sh скрипт для запуска гуникорна, и в скрипте есть строка: env/bin/postactivate на этой строке скрипт крашится когда его запускаю я, потому что внезапно такого файла нет. Проверил - и правда нет. Что еще блять за postactivate? Знаю bin/activate - через него виртуальная среда активируется, а это что за говно? В инете пояснений хуй да нихуя (ОС: Дебиан 9, что у меня что у него)
162 1745523
>>45497
Короче это не особая фича, петух просто за кадром где-то создал этот файл вот и все
163 1745542
>>45305
Уже написали, zip иногда полезная штука, map, filter ближе к тому что рудименты, во втором питоне активнее ими пользовались, сколько помню, они там иначе вызывались.

map-filter вносили как инструменты из функционального программирования, чтобы был мультипарадигмовый язык.

Однако то, как они поддержаны в третьем питоне, лишает их смысла. Для того, чтобы смысл был, надо, чтобы был механизм объединения в цепочки, условно
result = filter(func, source).map(func2).filter(func2)
и т.п., но ничего и близкого нет.

Смысл теряется. При этом на выходе ты получаешь специфичные объекты, с которыми надо что-то делать.

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

Уже тоже написали, смотри на itertools и functools. Там есть очень прикладные вещи.
164 1745546
>>45542

>Уже тоже написали, смотри на itertools и functools. Там есть очень прикладные вещи.


Из дополнительных библиотек еще есть more_itertools. Очень годная вещь.
165 1745590
Написал вот такое, что бы проверить как это работает
a=1
while a:
a=input("...")
else:
input("exit")
Если ввести цифру, интерпритатор вновь и вновь будет выполнять цикл, потому что переменная True.
Если ничего не вводить, переменная получит аргумент в виде пустой строки, что для bool является False по дефолту.
Однако при вводе значения 0, цикл продолжает выполняться.
Почему? Ведь 0 это тоже по дефолту False. Я пробовал делать так:
a=int(1)
Но это ничего не изменило.
Подскажите пожалуйста.
166 1745592
>>45546
А можно пару примеров где штуки оттуда используются.

>>45590
Потому что "0" это True
Безымянный.png39 Кб, 695x241
167 1745620
Я чет наверное совсем даун, но я не смог нагуглить, что делает параметр offset в библиотеке requests. Вот тут, вообще не понимаю, что написано.
168 1745624
Я только в самом начале изучения, нихера ещё не понимаю. Спиздил код, а питон ругается на синтаксис в строчке с print. В чём дело?
Код взял здесь: https://qna.habr.com/q/174859

def findword(line):
for step in range(1, len(line)):
for start in range(step):
if len(set(line[(start or None)::step])) != 1:
break
else:
return line[:step]
return line

print findword("HELLOHELLOHELLOHEL")
print findword("HHHELLOHHHELLOHHHELLOHHH")
print findword("_HHELLOHHELLOHHELLOHHELLOHHELLOHHE")
169 1745629
>>45620
в библиотеке нет этого параметра. Это параметр, который отправляется сайту. Тело запроса такое

>data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the Request.

170 1745634
>>45624
Скобки после принта короче надо. Всем спасибо так сказать.
171 1745637
>>45634
Ты дебил? Print стал функцией с параметрами уже давно.
172 1745640
>>45590
Потому что стоит брать адекватное булевое значение, не?
Тем более input выдает строку, надо указывать конкретный тип который хочешь получить.
in = input('...')
If isinstance(in, int) and int(in) > 0:
a = True
else:
a = False
break # прерываем цикл, неосилятор ты ебаный
173 1745642
>>45592
Потом сниппет скину. Есть список словарей с одинаковыми ключами
[{'a': 1, 'b':[]},...]. Надо их свести к виду {'a':[b...b(n)] и отсортировать по датам данные в списках (тоже словари)
Там itertools.groupby. В postgres можно было бы ещё в базе это сделать, но mysql ебаная параша
174 1745644
>>41714 (OP)
Есть сервис на питоне, который должен вытягивать инфу запросами и отправлять в ответ дургие запрросы, плюс нужна бд. Как это всё лучше запилить?
175 1745650
>>45644
Pool Connection и FastAPI для REST например
176 1745651
>>45644
А вообще ты хуевое ТЗ написал. Какие запросы? В БД? В MQ? В сторонний сервис?
177 1745653
>>45651
Кароче пишу бота для вк, надо запрашивать лонгполами инфу по чейнджам, а потом делать по ним POST запросы разной степени упоротости. И при этом должна быть бд куда сваливать данные.
178 1745658
>>45653
корованы надо грабить?
179 1745659
>>45653
БД аналитическая нужна или просто временные данные? PostgreSQL, MySQL, MySQL для хранения на ФС.
Clickhouse для аналитики
Redis NoSQL в память.

Ну вообще API с примерами и я хуй знает что тебе ещё подсказать. Для HTTP запросов requests, aiohttp
180 1745663
>>45659
Спасибо, а что по мультитредингу? Сейчас это сделано так: есть тред с запросами к бд, который делает запросы и складывает их в очередь. В другом потоке мы ждём когда нам что-то упадёт и обрабатываем. Хотелось бы ещё более асинхронно всё это делать. Что можешь подсказать? Есть какие-то штуки для этого?
>>45658
Да.
181 1745671
>>45663
Мультитред -> GIL, учти.
Process1 -> Queue -> Process2.
Есть ZeroMQ для этих целей, RabbitMQ оверкилл, хочешь на нативных инструментах сделай. Process это прирост на линуксе овердохуя, про шинду забудь.
Вчера пробовал Process fork на линупсе с uvloop внутри, 13 мб памяти футпринт, а spawn 36. Ебал я в рот весь Редмонд.
182 1745672
>>45542
a = [ i for i in range(10)]
result = list(filter(lambda x: x<6, filter(lambda x: x>3, a)))

Все работает жи
183 1745674
>>45663
А ну и мультитред уже неактуален, только для run_in_executor() для asyncio. Тред банально быстрее запускать чем процесс. Ну и доступ сразу к namespace и globals будет(нет). Чисто сделать и закрыть.
А Process на постоянку. И так как у тебя I/O только, но ты хочешь слушать постоянно и писать без блокирования, то разделяй так.
В БД пишешь с асинхронной либой через connection pool. Сразу держит соединения для быстрого обращения к БД. Но э. то нагрузка на сервер БД сразу. Так что решай сам. Пул для concurrency берут, но я сразу его использую. Проще въебать asyncio.gather(*tasks) где каждый таск это выполнение процедуры БД. ORM медленное дерьмо, prepared statement это говнокод. А так передаешь аргументы и похуй. В самой.процедуре проще код поменять и отладить заранее.

Я набил шишки на этом, но другие могут быть со мной не согласны. Каждый по-своему прав. Ищи что тебе удобнее и даёт нужный результат.
184 1745683
>>45671
Если совсем тумдум и нихера не выйдет скину готовые шаблоны Процесса с uvloop внутри и graceful shutdown через signal(SIGKILL, SIGTERM) и готовый aiomysql connector с tenacity retry. Для того чтобы повторять запросы если база легла и автоматически поднимать pool. Т.е. переживает перезапуск сервера и не уходит в exception или unclean exit code.
Пушто собирать и отменять корутины внутри процессов та ещё ебля. Но лучше чем запускать 100500 файлов пихона описанные в my_pihon.sh или 100500 unit service.
185 1745716
>>45629
А, типа он просто делает .../getUpdates?timeout=100&offset=None а что оно делает надо в доках телеги смотреть.
186 1745720
>>41714 (OP)
Кто там за ФП копротивлялся?

class MyFilter(filter):
----def filter(self, func):
--------return self.__class__(func, self)

class MyList(list):
----def filter(self, func):
--------return MyFilter(func, self)

arr = MyList(data)
arr.filter(callback1).filter(callback2).filter(callback3)
187 1745724
>>45716
В курсе что уже многие книги тупо протухли и надо сразу идти читать документацию и лезть в код модуля, чтобы знать где метод или параметр стал deprecated? Питон это вам не жава.
188 1745843
>>43270

>Нахер нужен мультитрединг, если там все равно GIL тру асинхронности не дает, а накладных расходов больше?


Разные задачи, разные плюсы и минусы. И мультитрединг с асинхронностью разные вещи
189 1745860
>>43270
1.Накладные расходы на мультитрединг сильно преувеличины.
2. GIL ОТПУСКАЕТСЯ при вызове кода на С или системных вызовов. Поэтому ты можешь спокойно писать многопоточный традиционный сетевой сервис . И даже на pandas какие-то ебнутые обсчеты делать мультитредно.
15330718672910.jpg137 Кб, 500x429
190 1745894
напомните нубу, как надо выделить строку кода, чтобы она не читалась программой, но все равно там находилась?

в каком то из языков это делается с помощью // вроде
191 1745899
>>45894
#
няш, но ты бы гуглил.
192 1745900
>>45894
#single
'''
multiple
'''

"""
Docstring, bitch!
Use it!
"""
193 1745903
>>45899
не смог запрос для гугла нормально сформулировать...
194 1745904
Алсо, для тех у кого мегатупые вопросы и они не могут осилить книги и официальную документацию
https://www.w3schools.com/python/default.asp
195 1745916
>>45903
Для тебя только единственный путь с гарантированным трудоустройством - https://hh.ru/employer/2624085
196 1745952
>>45904
спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
197 1746109
Скачал питон, сделал файл text.py, внутри написал print("Hello World"), ввожу в консоль питона путь к файлу, пишет ошибку, что за хуйня
198 1746115
>>46109
надо вводить не в консоль питона, а в самом терминале ос
python text.py
199 1746116
какие же ньюфаги тупые пиздец просто
200 1746144
>>46116
они на то и ньюфаги, ньюфаг по определению не может быть умным
poop.png21 Кб, 756x784
201 1746145
Насколько гемморно будет переписать этот блок на Питоне?
202 1746146
>>46116
ну вот и пусть, как анон в соседнем треде говорил, умные ребята юзают их по низкой цене и меняют как перчатки
203 1746211
Несколько раз пробовал вкатиться. И в питон, и в джаву, и в джаваскрипт, чего только не перепробовал. Отвращение наступает на моменте решения задач типа спам+бекон, и прочая подзалупия. После них весь энтузиазм как отрезает.
Сегодня решил автоматизировать на работе один рутинный процесс. Написал скрипт на питоне, и когда он заработал, и скучная хуйня, на которую я тратил свою жизнь, была решена за пару секунд - почувствовал себя первооткрывателем. Чистая эйфория.
Потом решил автоматизировать другой процесс, и тут уже наступил затык. Есть конфиг в текстовом файле, в нем есть определенные строчки, в которые нужно внести изменения. Сперва через инпут последовательно вводятся нужные данные айпи, маска, шлюз, имя хоста и потом как-то бы надо эти данные подставить в конфиг, но я застопорился и рабочий день закончился.
Но вообще, ощущения - атас. Когда прогаешь реальные задачи - это не идёт ни в какое сравнение.
204 1746218
>>46211
Когда уже перечитал весь SO, github issues, всевозможные блоги и нашел крупицы того, что поможет с решением, НО в итоге реализовал свое вот это охуенно, а когда оно еще и в production работает... уууу прям радугой кончаешь.
205 1746227
Котаны, шо за хуйня творится в в вкансиях? из 100 штук только в одной требование работы с asyncio. Все еще пилят на Django всякую хуетень и пользуются ORM(который еще больше замедляет работу).

Как жить-то? Либу asyncio развивают во всю, куча либ с поддержкой asyncio и 3.8. Uvloop везде, а все ебутся со стеком Django-Celery(Redis, RabbitMQ). Н-А-Х-У-Я?
206 1746262
>>46227
да потому что это ебет только двачетред! зачем ты ему поверил то?
никто не пишет на питоне сервера. нет задач у малого бизнеса
207 1746264
>>46145
в принципе можно 1 к 1 переделать
208 1746269
>>46227

> а все ебутся со стеком Django-Celery(Redis, RabbitMQ). Н-А-Х-У-Я?


Еще годика полтора потерпят и асинхронность сразу в Джангу завезут
209 1746287
>>46227

>из 100 штук только в одной требование работы с asyncio


Как ты ищешь?
Глянул HH, Мск за три дня, по слову django 83 вакансии, по asyncio 24

Причём в части asyncio именно требуется.

Во время карантинов вакансий было больше.
210 1746293
>>46262
Сервера? Может сервисы/микросервисы? АSGI фреймворков дохера уже развелось.
211 1746295
>>46287
Размытое понятие. В том-то и дело, что без определенного стека asyncio. Sanic, Falkon, Starlette...? ML, микросервис?
sage 212 1746299
Говно для пердоскриптов.
213 1746402
>>44824
деление нацело полезно в бесконечных циклах где число обязательно должно быть целым, чтобы в этом бесконечном цикле не вызывать функцию int , потому что int работает сильно медленнее чем //
Capture.PNG10 Кб, 394x283
214 1746416
>>44829
>>44824
>>46402
вот пример, быстрее в 3 раза работает
215 1746429
>>46416
И часто тебе приходится использоватьс циклы на сто миллионов итераций с целочисленным делением?
216 1746488
Ставлю серв через nginx и гуникорн
Вроде спустя n часов все заработало. Поставил в setting.py DEBUG=False так при загрузке страницы nginx выбрасывает 403 error на static файлы, а медиа (картинки) вообще не подгружаются. Что за прикол? Я всего-то убрал дебаг-мод, с ним все работает и никаких 403
217 1746516
>>46488

> Что за прикол?


А ссылку на статику и медиа в юрл добавил?
pyyyyy.png6 Кб, 524x152
218 1746531
>>46145
Станет лучше
image.png95 Кб, 1084x679
219 1746534
Здравствуй, анон.

Столкнулся с такой проблемой. Дело даже не в питоне, а скорее в иде.

Надо было сделать новый чит-код для игрухи (sims 4), собсна нашел некоторый "быстрый старт" https://darasims.com/stati/tutorial/tutor_sims4/3662-kak-delat-skriptovye-mody-na-python-dlya-the-sims-4.html

Побыстренькому набросал необходимое и запустил compile.py, как сказано в инструкции. И тут выводит ошибку:

>from Utilities import compile_module


>ModuleNotFoundError: No module named 'Utilities'


(Структура папок в прикрепленном изображении)
Хотя, если в файле писать тот же from он спокойно предлагает Utilities

Вроде итак подступался и сяк, решил установить pycharm, шоб было прям как в инструкции.
И оно заработало.

Я даже хз в чем проблема была. Предполагаю, что из-за настроек в папки .idea.

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

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

Спасибо, анон!
220 1746539
>>46534
Utilities у тебя двумя уровнями выше скрипта, как оно будет работать?
221 1746541
>>46539
Я даже не подумал об этом, да даже если бы подумал, хз как избежать.

Но почему-то в vscode это не работает, а в pycharm работает.

Так всё-таки, как это исправить?
222 1746543
>>46541
Тебе надо во всех папках проекта создать пустые файлы __init__.py которые будут показывать, что это не просто пустые папки, а модули.
image.png20 Кб, 315x464
223 1746544
>>46543
так, но в папке Utilities был __init__.py, т.е. он воспринимался как модуль. Или как бы да, но как-бы нет?
224 1746545
>>46544
В воркспейс тоже и другие папки.
225 1746546
>>46545
Хорошо, смысл понял.
Но почему тогда в pycharm это всё выполнялось нормально? Я даже опешил на некоторое время
226 1746571
>>46429
ну просто надо знать об этом, у меня например в игрушке на pygame есть main loop, и там происходит деление координаты на число чтоб получить новую координату, координата не может быть не целочисленная иначе краш ( не бывает полтора пикселя), в мейн лупе все время вызывать int это хуйня а вот // збс
227 1746686
Сап, могут продвинутые питонисты пояснить что такое .compute() и для чего он используется?

Например:
class Node:
____def __init__(self, *values):
________self.values = values

class value(Node):
____def compute(self):
________return self.values[0]

class add(Node):
____def compute(self):
________return value(self.values[0].compute() + self.values[1].compute()).compute()
228 1746706
>>46531
Добра!
229 1746716
>>46686
Ты кинул какой-то кусок без объяснения что это и хочешь чтобы мы тебе сказали?
230 1746737
>>46716
>>46686
Так понятнее?

class Node:
def __init__(self, values):
self.values = values

class value(Node):
def compute(self):
return self.values[0]

class add(Node):
def compute(self):
print (self.values[0])
return value(self.values[0].compute() + self.values[1].compute()).compute()

class sub(Node):
def compute(self):
return value(self.values[0].compute() - self.values[1].compute()).compute()

class mul(Node):
def compute(self):
return value(self.values[0].compute()
self.values[1].compute()).compute()

class truediv(Node):
def compute(self):
return value(self.values[0].compute() / self.values[1].compute()).compute()

class mod(Node):
def compute(self):
return value(self.values[0].compute() % self.values[1].compute()).compute()

class pow(Node):
def compute(self):
return value(self.values[0].compute() self.values[1].compute()).compute()

a, b = value(5), value(2)
print(add(a, b).compute())
230 1746737
>>46716
>>46686
Так понятнее?

class Node:
def __init__(self, values):
self.values = values

class value(Node):
def compute(self):
return self.values[0]

class add(Node):
def compute(self):
print (self.values[0])
return value(self.values[0].compute() + self.values[1].compute()).compute()

class sub(Node):
def compute(self):
return value(self.values[0].compute() - self.values[1].compute()).compute()

class mul(Node):
def compute(self):
return value(self.values[0].compute()
self.values[1].compute()).compute()

class truediv(Node):
def compute(self):
return value(self.values[0].compute() / self.values[1].compute()).compute()

class mod(Node):
def compute(self):
return value(self.values[0].compute() % self.values[1].compute()).compute()

class pow(Node):
def compute(self):
return value(self.values[0].compute() self.values[1].compute()).compute()

a, b = value(5), value(2)
print(add(a, b).compute())
231 1746739
>>46543
Неактуально для 3.7+

Для того чтобы пользоваться директориями не принадлежащими к данному проекту, но при этом там заведомо нужные для работы модули или просто файлы, то прописываешь PYTHONPATH=/dir/modules_dir
232 1746762
>>46737
бля ты бы хоть описал что это за кусок и откуда ты его взял. Зачем тебе разбираться, что ты от этого куска хочешь

выглядит это либо как кусок калькулятора либо как часть какого-то парсера

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

это называется полиморфизм и применение ISP

вообще чем понятнее задашь вопрос тем точнее и лучше будет ответ

на всякий случай: ты долбоеб и иди нахуй
233 1746771
>>46762
Да я долбоеб, и что? Но ты же в глаза ебешся. Я блядь конкретно спрашиваю нахуя в данном коде .compute() и что оно делает.
234 1746791
>>46771

>Да я долбоеб, и что


то что программирование не твое иди мой туалеты

>Я блядь конкретно спрашиваю нахуя в данном коде .compute()


предоставляет интерфейс чтобы в другом месте с экземлярами sub mul truediv mod pow можно было работать не вдаваясь в подробности что это конкретно за реализация Node.

>что оно делает.


соответстввенно в add compute складывает, в mul умножает и так далее
235 1746803
>>46791
Ясно, ты ебанат. Дальнейшие разговоры будут бессмысленными. Иди нахуй, пидар.
236 1746957
Сап, Анон. Подскажи библиотеку, для создания полей с графиками, где можно с помощью органов управления менять различные коэфициенты и в реальном времени будут меняться графики.
237 1746978
>>46957
Qt
Streamlit
238 1746986
>>46978
Анон, ты охуенен. Добра тебе.
239 1747059
Подумал что в моей джанго-приложухе будет неплохо сделать возможность двойственной работы: одна и та же вьюха будет по-разному реагировать на запросы анонимов и на запросы зареганных юзеров: зареганных юзеров будут обсуживать по данным из бд, а анонимов - по кукам. Как без ветвящихся if-ов это сделать?
240 1747276
>>46516
В Питоне? Зачем? Статику должен nginx отправлять, так везде и советуют
Вот конфиг: https://pastebin.com/25Z6EP7N
По инету ходит инфа, что дело в недостаточных правах для групп юзеров... Хер знает, буду смотреть
241 1747281
У меня возможно супер тупой вопрос будет, но разве django и nginx не одну и ту же задачу выполняют? Типо поднимает сервер, мапят юрлы со страницами.
242 1747292
>>47281
Ну как видишь команда runserver и без nginx прекрасно справляется. Но почему-то для продакшна это не катит. Как думаешь, почему?
243 1747295
>>47281
Добавили дополнительную сущность - сервер приложений, который связывает твой прикладной код с веб-сервером.
Веб-сервер обслуживает клиентов и передает динамические запросы серверу приложений. Сам по себе он тоже может выступать сервером, но особых нагрузок держать не сможет, т.к. такой задачи нет.
244 1747297
Возможно не по теме, какую вилку по зп адекватно просить в ДС. Вводные данные: изучаю питон 2.5 года, 1.5 коммерческой разработки, писал в основном проекты джанго + дрф, были мини проекты на фласке, fastapi, aiohttp, разные парсеры + selenium, юзал постгрес, кролика и сельдерей на проектах. Могу немного в докер, CI/CD, девопс - настраивал на проектах авто сборку и прогон тестов + стат. анализ кода. Писал для себя на реакте, еще немного на С этот код работает в проде. Честно говоря считаю себя джуном, так как по сути все это делал один.
245 1747298
>>47292

> Как думаешь, почему?


Ну я этого как раз и не понимал.

>>47295
Вот щас понял. Спасибо большое
.png405 Кб, 1200x716
246 1747305
>>47297

> 1.5 коммерческой разработки


Но это уже заява на мидла по сути. Проси 130к
247 1747308
>>47305

>Но это уже заява на мидла по сути. Проси 130к


Полтора года это не миддл, а опытный джун.
248 1747309
>>47305
Осенью буду искать, если пиздеца с короной не будет. Сейчас есть работа за 90к, в августе буду отдыхать, а потом закрывать пробелы в знаниях.
249 1747431
>>47297
Проси "сейчас ЗП + 30%".
Делаю так и доволен.
250 1747435
>>47276
Короче помогло 2 часа танцев с бубнами и: добавление моего юзера в группу www-data, рекурсивное изменение правил chmod для папок проекта и папок nginx, рекурсивное изменение владельцев chown тех же директорий
как я ебал эти пердолли сука...
251 1747479
>>47435
Ну это стандартная хуйня, так ещё диды делали.
image.png52 Кб, 547x286
252 1747527
Как с помощью этого парсера вычленить целиком конкретный div? Теги и дата в разных методах, как им пользоваться вообще?
253 1747541
>>47527
Че бля?
pip install bs4
254 1747545
>>47541
А этот парсер тогда нахуй нужен?
255 1747569
>>47545
Ты еще спроси зачем cgi в стандартной либе есть
256 1747651
>>47527
Это потоковый парсер, ты заебешься им извлекать конкретные элементы с условиями. Надо держать стейт и ручками всем управлять, ориентируясь по этим ивентам.
Он подходит или для всяких сложных дел типа создания dom, или совсем простенького типа извлечь все ссылки или картинки.
257 1747675
Можно ли в Керасе как-то выдернуть удачную эпоху (которая показала хороший val)?
258 1747686
word = input("Введите слово: ")
start = None

while start != "":
start = (input("\nНачальная позиция: "))
if start:
start = int(start)
finish = int(input("Конечная позиция: "))
print("Срез word[", start, ":", finish, "] выглядит как:", end=" ")
print(word[start:finish])
print("Полная последовательность выглядит как:", word[:])

Почему при попытке проиндексировать срез в обратном порядке, на экран выводиться пустота?
Почему при попытке на запрос аргумента для переменной start через input просто нажать Enter, цикл прекращает работу?

Подскажите пожалуйста.
259 1747695
>>47686
Для обратного порядка нужеш явный отрицательный шаг, т.е. [::-1]
260 1747699
>>47695
Но я так и делаю же. Например если ввести слово "пицца" и задать
от -5 до +1, выводит пустой экран.
261 1747700
>>47699
быстрофикс
от -5 до +1
262 1747701
>>47700
-5 до -1
263 1747705
>>47701
Что то я туплю и пишу ерунду.
Вопросы из №1747686 для меня всё ещё актуальны.
При попытке для слова "пицца" задать диапазон от -5 до -1
на экран выдаёт пицц.
Последнюю букву таким способом я вывести не могу. Разве что изначально задать вместо "пицца", строку "пицца "
264 1747706
>>47699
-5 и -1 это просто оффсеты считая с конца, они не задают порядок, это делает третий опциональный параметр.
Например.
In [24]: 'govno'[2::-1]
Out[24]: 'vog'
265 1747707
>>47705
До конца просто пустое значение.
[:5]
[5:]
266 1747708
очень спасибо!
267 1747743
>>47686

> Почему при попытке на запрос аргумента для переменной start через input просто нажать Enter, цикл прекращает работу?



По твоему коду не понятно, тк при копировании на двач у тебя пропали отступы в условии, и я не знаю, что у тебя находится в блоке if, а что нет.
Если у тебя в условии только строка start = int(start), то в случае пустой строки в start, у тебя происходит извлечение среза, где одна из границ None.
Выполни скрипт из консоли, а не дабл кликом, да посмотри ошибку.
268 1747763
Аноны, поясните почему нельзя обратиться к переменной i в генераторе?
a = [int(i) for i in input().split()]
269 1747846
>>47763

> a = [int(i) for i in input().split()]


В смысле нельзя? Как ты написал можно
270 1748042
Сап, аноны нужна помощь ибо ньюфаг не понимает.
Собственно есть задача: есть произвольный список l содержащий любое количество строк.И есть переменная q содержащая в себе одну или несколько букв, и мне надо проверить начинается ли она с любой буквы, содержащейся в q для каждой строчки из l.Собственно функцию я накатал но она мне выдет вместо нужного первый элемент списка l и ошибки я не вижу.Может добрый анон подскажет ньюфагу пожалуйста?
Вот моя функция:
def start_with(l, q):
for letter in l.split():
if l[0].startswith(q):
print(q)
start_with(l, q)
271 1748124
>>48042
У тебя итерация не по списку
272 1748187
>>47308
Это все лычки
Меня на повидло с 10 месяцами взяли
273 1748216
>>48124
Спасибо добрый анон.Буду разбираться почему у меня получается итерация не по списку.
274 1748225
>>48216

>почему


потому что ты его даже не передаешь скорее всего, у list нет функции split
1.PNG30 Кб, 997x554
275 1748234
>>47743
Вот скрин с этим кодом.
Его даже не я написал, я изучал его по книге, из которой и скопировал.
Если ничего не вводить и нажать Enter, програма переходит к последней строке.
276 1748239
>>48234
Если попробовать ввести начальной позицией -5
а конечной позицией пустоту, выдаёт ошибку.
1.png26 Кб, 1109x430
277 1748286
278 1748294
>>48042

>l.split()


И шо это должно по-твоему делать?

>if l[0]


И это в цикле?

У тебя ж наверняка Exception-ы вылезают, прочитай что они тебе пишут. И логирование сделай, для начала функцией print, такие траблы как у тебя решаются логами и не засоряют лишний раз инфополе
kit.jpg7 Кб, 225x225
279 1748302
>>48187
>>47308
пиздос вы тут все успешные, и вопросы стали интереснее задавать, прям не узнать пистон-тред...
вот бы хоть нак какую-нибудь работу вкатиться...
3.png57 Кб, 858x1112
280 1748328
>>47686
>>48234
ты наверно употреблять начинаешь и выходишь за границы индексации
281 1748334
>>47686

>Почему при попытке на запрос аргумента для переменной start через input просто нажать Enter, цикл прекращает работу?



И второй вопрос, у тебя условие - цикл продолжается пока:
start != "" (цикл должен продолжаться пока не введена пустота - "")

Когда ты вводишь пустоту - "", start равняется "" (start=="") соответственно цикл выходит
282 1748388
>>48334
Спасибо, это очень помогло.
283 1748391
Хм, недавно мне на мейл пришло скопом 3 подобных информацуионных сообщения от джанго-сервера:

Invalid HTTP_HOST header: 'www.myresource.com'. You may need to add 'www.myresource.com' to ALLOWED_HOSTS.

У меня сайт в формате myresource.com, никаких www там нет, с хрена ли мне это присылается?
.png61 Кб, 691x451
284 1748872
Поясните что за собака такая? Часто её вижу, нихуя не понимаю на хуя это всё нужно. В питоне не бум бум.
285 1748874
>>48872
Бывает ещё в теле класса такая же ебень.
286 1748875
>>48872
Декоратор это.
287 1748879
>>48872
Так загугли. Это для background задачи по типу рассылки сообщений
288 1748888
289 1748968
>>48872
Осваиваешь сельдерей но не в курсе про декораторы? Ты молодцом
290 1749084
>>48391
Тот же вопрос: теперь пришли оповещения о вообще каких-то левых айпишниках, что это блэт?
291 1749482
>>49084
Если оно публично захощено, то боты какие-то щупают.
На тот же ssh сразу начинают массово ломиться.
292 1749558
как комфортно с питоняшного бека перекатываться в дата саенс?
293 1749677
Помогите тупому. Есть два списка.
В одном время точеное, в Int'aх, в другом значение функции дрочёное в float'ах.
Как в матплотлибе построить обычный 2д график по этим двум спискам? Всё прогуглил, всё не то.
294 1749690
>>49677
Уточню.

Этот код

import pylab
figsize = (8,6)
pylab.plot (time, a)
pylab.show()

строит график. Но мне нужно его в streamlit загнать. Не получается найти способ построить такой график по двум спискам, чтобы загнать в streamlit
photo2020-06-2517-20-44.jpg111 Кб, 807x807
295 1749692
Сап пр.

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

Меня интересует может ли что-то подобное делать пайтон на винде.
Парочку примеров я видел, но они для UNIX систем, в общем мне интересен просто рабочий пример.

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

Сразу скажу, я не мамин хакир, меня интересует сам процесс, хочу попытаться реализовать одну идею которая давно в голове сидит пердит.
296 1749694
>>49558
учишь класический мл, и соответствующие либы - нумпай, пандас, склерн. Потом можно учить дип лернинг это соответстннно пай торч или тензерфлоу, лучше пайторч
297 1749695
Нашёл сам с третьей попытки в документации. Спасибо.
>>49677
>>49690
298 1749700
Я ебал этот пердолинг. Мне просто нужно построить сраный 2д график в сраном streamlit'e. Пример из документации не работает. нужно гуглить как узнавать версию какой-то ебени и как-то даунгрейдить. Пиздец мне в анус.
299 1749763
>>49700
Разве эти графики кто-то использует?
Я думал, это такая хуйня, чтобы напрягать студентов.
300 1749765
А есть альтернатива кубернетес? Не хочу пидором быть, но хочу данные между серверами гонять на пистоне.
301 1749774
>>49763
Я уже разобрался. Но пичот с документации. Очень сложно стороннему человеку, обладающему минимуму информации.

А графики используют, да.
302 1749795
>>49774

>минимуму


Му-му, блять.
минимумом
слоуквикфикс
303 1749837
Получить оффер на 250-300к живя в россиюшке и кодя на пистоне можно только работая на западного барина? А то хочу сменить место работы, но кажется, что я уже близок к потолку с 200к и нужно подтягивать англюсик хотя бы до уровня индуса
304 1749857
>>49837

>Получить оффер на 250-300к живя в россиюшке и кодя на пистоне можно только работая на западного барина?


Такие зарплаты только у кабанчиков. Западный барин платит не больше, чем крупные российские компании в ДС.
305 1749861
>>49857
Знакомый 420к получает, просто удобно устроился. Фирма на 200 человек, из них 120 - инженеры теплоэнергетики. А он один стал систадмином на всю контору.
306 1749862
>>49857
У меня знакомый работает на русскоязычную контору из проебалтики, которая 2.5к евро платит. Смотрел вакухи на удаленку на швятых, там в 1.5 раза больше средние
307 1749880
Есть знатоки aiohttp?
Как забахать роутинг для следующих урлов:
/abs
/abs/{blabla}

В джанго ебнул решулярку на конец строки, и готово. Тут какая то дикаяч смесь, и не регулярка, но и не строка. Есть прям так и бахать, как у меня, то ругается, что уже есть роут для /abs. Пробовал в первом случае добавить симовол конца строки (r'^/abs$') - не рабаотает
308 1749882
>>49880
пишешь
/abs/{blabla:\d+}

все что после : это регулярка
blabla это имя по которому внутри контроллера будет доступно значение через request.match_info

это все есть в документации
https://docs.aiohttp.org/en/stable/web_quickstart.html#variable-resources

пример
https://pastebin.com/Zq5g5tAT
309 1749883
>>49882
Вопрос не в этом, а в том, как обрабатывать просто /abs
310 1749884
>>49883
покажи код как у тебя сейчас и как ты хочешь
311 1749885
>>49884

import os
import pickle
import errno

import numpy as np

STORAGE_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '.storage'))

class NeuralNetwork:
def __init__(self, input_nodes=3, hidden_nodes=3, output_nodes=3, rate=0.3, load_from=None):
"""
:param int input_nodes: количество узлов во входном слое
:param int hidden_nodes: количество узлов в скрытом слое
:param int output_nodes: количество узлов в выходном слое
:param float rate: коэфициент обучения
:param str load_from: загрузить данные из предварительно обученной модели
"""
if load_from is not None:
if not self.load(load_from):
raise ValueError('Model with name `{}` not found'.format(load_from))
else:
self.input_nodes = input_nodes
self.hidden_nodes = hidden_nodes
self.output_nodes = output_nodes
self.rate = rate
self.w_i_h = None # весовые коэффициенты между входным и скрытым слоем
self.w_h_o = None # весовые коэффициенты между скрытым и выходным слоем
self.__init_weights()

def train(self, input_list, target_list):
"""Тренировка нейронной сети - уточнение весовых коэффициентов
:param iterable input_list: входные данные
:param iterable target_list: целевые значения
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
inputs = np.array(input_list, ndmin=2).T
targets = np.array(target_list, ndmin=2).T

# Расчитаем входящие сигналы для скрытого слоя
h_inputs = np.dot(self.w_i_h, inputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = self.__activation_function(h_inputs)

# Расчитаем входящие сигналы для выходного слоя
o_inputs = np.dot(self.w_h_o, h_outputs)

# Расчитаем исходящие сигналы для выходного слоя
o_outputs = self.__activation_function(o_inputs)

# Выходная ошибка сети = целевое значение - фактическое значение
o_errors = targets - o_outputs

# Ошибки скрытого слоя - это ошибки выходного слоя сети,
# распределенные пропорционально весовым коэфициентам связей
# и рекомбинированные на скрытых узлах
h_errors = np.dot(self.w_h_o.T, o_errors)

# Обновим весовые по следующей формуле:
# alpha e sigmoid(x) (1 - sigmoid(x)) o, где
# alpha - коэфициент обучения,
# e - выходная ошибка,
# sigmoid(x) (1 - sigmoid(x)) - производная от функции активации (сигмойды в нашем случае),
# o - выходной сигнал предыдущего слоя.

# Обновим весовые коэфициенты между скрытым и выходным слоем сети
self.w_h_o += self.rate
np.dot((o_errors o_outputs (1 - o_outputs)), h_outputs.T)

# Обновим весовые коэфициенты между входным и скрытым слоем сети
self.w_i_h += self.rate np.dot((h_errors h_outputs (1 - h_outputs)), inputs.T)

def predict(self, input_list):
"""Опрос нейронной сети - получение значений сигналов выходных узлов
:param iterable input_list: входные данные
:return numpy.array: выходные данные
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
inputs = np.array(input_list, ndmin=2).T

# Расчитаем входящие сигналы для скрытого слоя
h_inputs = np.dot(self.w_i_h, inputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = self.__activation_function(h_inputs)

# Расчитаем входящие сигналы для выходного слоя
o_inputs = np.dot(self.w_h_o, h_outputs)

# Расчитаем исходящие сигналы для выходного слоя
o_outputs = self.__activation_function(o_inputs)

return o_outputs

def back_query(self, output_list):
"""Осуществляет обратный запрос к сети
:param iterable output_list: обратные исходящие сигналы сети
:return numpy.array: выходные данные
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
o_outputs = np.array(output_list, ndmin=2).T

# Преобразуем выходящие сигналы во входящие сигналы для выходного слоя
o_inputs = self.__back_activation_function(o_outputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = np.dot(self.w_h_o.T, o_inputs)

# Нормализуем сигналы от 0.01 до 0.99, т.к. сигмойда не может давать знаения за пределами этих чисел
h_outputs -= np.min(h_outputs)
h_outputs /= np.max(h_outputs)
h_outputs
= 0.98
h_outputs += 0.01

# Расчитаем входящие сигналы для скрытого слоя
hidden_inputs = self.__back_activation_function(h_outputs)

# Расчитаем исходящие сигналы для входного слоя
inputs = np.dot(self.w_i_h.T, hidden_inputs)

# Нормализуем сигналы от 0.01 до 0.99, т.к. сигмойда не может давать знаения за пределами этих чисел
inputs -= np.min(inputs)
inputs /= np.max(inputs)
inputs = 0.98
inputs += 0.01

return inputs

def save(self, key):
"""Сохраняет обученную модель
:param str key: имя модели
"""
try:
os.makedirs(STORAGE_PATH)
except OSError as e:
if e.errno != errno.EEXIST:
raise
file_path = os.path.join(STORAGE_PATH, key)
value = {
'input_nodes': self.input_nodes,
'hidden_nodes': self.hidden_nodes,
'output_nodes': self.output_nodes,
'rate': self.rate,
'w_i_h': self.w_i_h,
'w_h_o': self.w_h_o,
}
with open(file_path, mode='wb') as fn:
pickle.dump(value, fn, protocol=2)

def load(self, key):
"""Загружает обученную модель
:param str key: имя модели
"""
file_path = os.path.join(STORAGE_PATH, key)
if os.path.isfile(file_path):
with open(file_path, mode='rb') as fn:
value = pickle.load(fn)
self.input_nodes = value['input_nodes']
self.hidden_nodes = value['hidden_nodes']
self.output_nodes = value['output_nodes']
self.rate = value['rate']
self.w_i_h = value['w_i_h']
self.w_h_o = value['w_h_o']
return True
else:
return False

def __init_weights(self):
"""Инициализация случайных весов используя "улучшенный" вариант инициализации весовых коэфициентов.
Весовые коэфициенты выбираются из нормального распределения центром в нуле и со стандартным отклонением,
величина которого обратно пропорциональна квадратному корню из количества входящих связей на узел.
"""
self.w_i_h = np.random.normal(0.0, pow(self.hidden_nodes, -0.5), (self.hidden_nodes, self.input_nodes))
self.w_h_o = np.random.normal(0.0, pow(self.output_nodes, -0.5), (self.output_nodes, self.hidden_nodes))

@staticmethod
def __activation_function(x):
"""Функция активации нейронной сети
:param iterable x: матрица входящих сигналов сети
:return numpy.array: матрица сглаженных комбинированных сигналов
"""
return 1.0 / (1.0 + np.exp(-x)) # в качастве функции активации будет выступать сигмойда

@staticmethod
def __back_activation_function(y):
"""Функция обратной активации нейронной сети
В нашем случае, для сигмойды обратной функцией является логит - y = 1/(1 + e
*-x) <=> x = ln(y/(1-y))
:param iterable y: матрица обратных исходящих сигналов сети
:return numpy.array: матрица обратно сглаженных комбинированных сигналов
"""
return np.log(y / (1.0 - y))
311 1749885
>>49884

import os
import pickle
import errno

import numpy as np

STORAGE_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '.storage'))

class NeuralNetwork:
def __init__(self, input_nodes=3, hidden_nodes=3, output_nodes=3, rate=0.3, load_from=None):
"""
:param int input_nodes: количество узлов во входном слое
:param int hidden_nodes: количество узлов в скрытом слое
:param int output_nodes: количество узлов в выходном слое
:param float rate: коэфициент обучения
:param str load_from: загрузить данные из предварительно обученной модели
"""
if load_from is not None:
if not self.load(load_from):
raise ValueError('Model with name `{}` not found'.format(load_from))
else:
self.input_nodes = input_nodes
self.hidden_nodes = hidden_nodes
self.output_nodes = output_nodes
self.rate = rate
self.w_i_h = None # весовые коэффициенты между входным и скрытым слоем
self.w_h_o = None # весовые коэффициенты между скрытым и выходным слоем
self.__init_weights()

def train(self, input_list, target_list):
"""Тренировка нейронной сети - уточнение весовых коэффициентов
:param iterable input_list: входные данные
:param iterable target_list: целевые значения
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
inputs = np.array(input_list, ndmin=2).T
targets = np.array(target_list, ndmin=2).T

# Расчитаем входящие сигналы для скрытого слоя
h_inputs = np.dot(self.w_i_h, inputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = self.__activation_function(h_inputs)

# Расчитаем входящие сигналы для выходного слоя
o_inputs = np.dot(self.w_h_o, h_outputs)

# Расчитаем исходящие сигналы для выходного слоя
o_outputs = self.__activation_function(o_inputs)

# Выходная ошибка сети = целевое значение - фактическое значение
o_errors = targets - o_outputs

# Ошибки скрытого слоя - это ошибки выходного слоя сети,
# распределенные пропорционально весовым коэфициентам связей
# и рекомбинированные на скрытых узлах
h_errors = np.dot(self.w_h_o.T, o_errors)

# Обновим весовые по следующей формуле:
# alpha e sigmoid(x) (1 - sigmoid(x)) o, где
# alpha - коэфициент обучения,
# e - выходная ошибка,
# sigmoid(x) (1 - sigmoid(x)) - производная от функции активации (сигмойды в нашем случае),
# o - выходной сигнал предыдущего слоя.

# Обновим весовые коэфициенты между скрытым и выходным слоем сети
self.w_h_o += self.rate
np.dot((o_errors o_outputs (1 - o_outputs)), h_outputs.T)

# Обновим весовые коэфициенты между входным и скрытым слоем сети
self.w_i_h += self.rate np.dot((h_errors h_outputs (1 - h_outputs)), inputs.T)

def predict(self, input_list):
"""Опрос нейронной сети - получение значений сигналов выходных узлов
:param iterable input_list: входные данные
:return numpy.array: выходные данные
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
inputs = np.array(input_list, ndmin=2).T

# Расчитаем входящие сигналы для скрытого слоя
h_inputs = np.dot(self.w_i_h, inputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = self.__activation_function(h_inputs)

# Расчитаем входящие сигналы для выходного слоя
o_inputs = np.dot(self.w_h_o, h_outputs)

# Расчитаем исходящие сигналы для выходного слоя
o_outputs = self.__activation_function(o_inputs)

return o_outputs

def back_query(self, output_list):
"""Осуществляет обратный запрос к сети
:param iterable output_list: обратные исходящие сигналы сети
:return numpy.array: выходные данные
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
o_outputs = np.array(output_list, ndmin=2).T

# Преобразуем выходящие сигналы во входящие сигналы для выходного слоя
o_inputs = self.__back_activation_function(o_outputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = np.dot(self.w_h_o.T, o_inputs)

# Нормализуем сигналы от 0.01 до 0.99, т.к. сигмойда не может давать знаения за пределами этих чисел
h_outputs -= np.min(h_outputs)
h_outputs /= np.max(h_outputs)
h_outputs
= 0.98
h_outputs += 0.01

# Расчитаем входящие сигналы для скрытого слоя
hidden_inputs = self.__back_activation_function(h_outputs)

# Расчитаем исходящие сигналы для входного слоя
inputs = np.dot(self.w_i_h.T, hidden_inputs)

# Нормализуем сигналы от 0.01 до 0.99, т.к. сигмойда не может давать знаения за пределами этих чисел
inputs -= np.min(inputs)
inputs /= np.max(inputs)
inputs = 0.98
inputs += 0.01

return inputs

def save(self, key):
"""Сохраняет обученную модель
:param str key: имя модели
"""
try:
os.makedirs(STORAGE_PATH)
except OSError as e:
if e.errno != errno.EEXIST:
raise
file_path = os.path.join(STORAGE_PATH, key)
value = {
'input_nodes': self.input_nodes,
'hidden_nodes': self.hidden_nodes,
'output_nodes': self.output_nodes,
'rate': self.rate,
'w_i_h': self.w_i_h,
'w_h_o': self.w_h_o,
}
with open(file_path, mode='wb') as fn:
pickle.dump(value, fn, protocol=2)

def load(self, key):
"""Загружает обученную модель
:param str key: имя модели
"""
file_path = os.path.join(STORAGE_PATH, key)
if os.path.isfile(file_path):
with open(file_path, mode='rb') as fn:
value = pickle.load(fn)
self.input_nodes = value['input_nodes']
self.hidden_nodes = value['hidden_nodes']
self.output_nodes = value['output_nodes']
self.rate = value['rate']
self.w_i_h = value['w_i_h']
self.w_h_o = value['w_h_o']
return True
else:
return False

def __init_weights(self):
"""Инициализация случайных весов используя "улучшенный" вариант инициализации весовых коэфициентов.
Весовые коэфициенты выбираются из нормального распределения центром в нуле и со стандартным отклонением,
величина которого обратно пропорциональна квадратному корню из количества входящих связей на узел.
"""
self.w_i_h = np.random.normal(0.0, pow(self.hidden_nodes, -0.5), (self.hidden_nodes, self.input_nodes))
self.w_h_o = np.random.normal(0.0, pow(self.output_nodes, -0.5), (self.output_nodes, self.hidden_nodes))

@staticmethod
def __activation_function(x):
"""Функция активации нейронной сети
:param iterable x: матрица входящих сигналов сети
:return numpy.array: матрица сглаженных комбинированных сигналов
"""
return 1.0 / (1.0 + np.exp(-x)) # в качастве функции активации будет выступать сигмойда

@staticmethod
def __back_activation_function(y):
"""Функция обратной активации нейронной сети
В нашем случае, для сигмойды обратной функцией является логит - y = 1/(1 + e
*-x) <=> x = ln(y/(1-y))
:param iterable y: матрица обратных исходящих сигналов сети
:return numpy.array: матрица обратно сглаженных комбинированных сигналов
"""
return np.log(y / (1.0 - y))
312 1749886
>>49884
Я хз, кто тебе ответил ниже, это не я.
По поводу моего ворпоса - пажжи, тут что то хайня какая то.
313 1749888
>>49886
глянь еще раз код в примере

если дописать то

response = await client.post("/some/another/")
assert response.status == 404

соответственно все /abs/ будут попадать куда нужно, а /abss/ /abs/sba/ будут 404
314 1749889
>>49885
ты совсем ебанутый ты зачем многострок кидаешь в макабу?

используй пастбин хотя бы
315 1749906
>>47305
Рейт ми, анон. Не троллю, просто сто лет по собесам не ходил, а щас на вольном плавании. Думаю, сколько просить. 13 лет разработки, 9 из них в яндексе. В основном пишу на питонах, но довольно неплохо умею и в сишку. Остальное по мелочи: хайлоад, асинхронность, распределенные системы, докеры-хуекеры, немношк встраиваемые системы и контроллеры. JS/HTML умею, но в гробу видал.
316 1749907
>>49889
Не учи отца ебаться в жопу.
317 1749916
>>49906
5к$
Но тут смотря насколько ты лох, тебя и на 1.5к$ могут развести, а ты и рад будешь.что не отпиздили, и прекратили обоссывать
318 1750020
Писец, пацаны, django миграции в одном проекте в последнее время через пизду работают. Только хочу добавить какое-то поле в модель даже CharField так при makemigrations всплывает ProgrammingError и пишется что-то типа (mymodel_newfield does not exist) епт, ну канешн оно does not exist, я ж только что добавил его, клован!
Я знаю как это фиксить, но все равно дико бесит, в последнее время пишу исключительно ручные миграции
319 1750174
Ребят, а как ставить расширения которых нет в wheels ?
ставлю расширение oragne3 - pip комплиятор хочет :
running build_ext running config compiling '_configtest.c': int __attribute__((optimize("O3"))) have_attribute_optimize_opt_3(void*); int main(void) { return 0; } error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/ ---------------------------------------- ERROR: Failed building wheel for bottleneck ERROR: Could not build wheels for bottleneck which use PEP 517 and cannot be installed directly

Visual Studio Community весит 7 гб. Поменьше нельзя что-то качнуть? У меня просто на ноутбуке места мало осталось.

Как прочекать наличие бинарника в wheels ?
320 1750193
>>50174
жопень, скачал vs_BuildTools.exe 14 - ничего

Питон на windows хочет полный windows sdk ?
321 1750219
Посоны,нашел ESRGAN для видео, он контуженный. Я с питоном пока на вы, помогите исправить.
mport sys
import os.path
import glob
import cv2
import numpy as np
import torch
import architecture as arch

model_path = sys.argv[1] # models/RRDB_ESRGAN_x4.pth OR models/RRDB_PSNR_x4.pth
device = torch.device('cuda') # if you want to run on CPU, change 'cuda' -> cpu
# device = torch.device('cpu')

test_img_folder = 'LR_V/'

model = arch.RRDB_Net(3, 3, 64, 23, gc=32, upscale=4, norm_type=None, act_type='leakyrelu', \
mode='CNA', res_scale=1, upsample_mode='upconv')
model.load_state_dict(torch.load(model_path), strict=True)
model.eval()
for k, v in model.named_parameters():
v.requires_grad = False
model = model.to(device)

print('Model path {:s}. \nTesting...'.format(model_path))

idx = 0
for path in glob.glob(test_img_folder):
idx += 1
base = os.path.splitext(os.path.basename(path))[0]
print(idx, base)
cap = cv2.VideoCapture(path)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
4
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) 4
fps = int(cap.get(cv2.CAP_PROP_FPS))
out = cv2.VideoWriter('results/{:s}.avi'.format(base), cv2.VideoWriter_fourcc('M','J','P','G'), fps, (width,height))
while True:
ret, img = cap.read();
if img is None:
break
img = img
1.0 / 255
img = torch.from_numpy(np.transpose(img[:, :, [2, 1, 0]], (2, 0, 1))).float()
img_LR = img.unsqueeze(0)
img_LR = img_LR.to(device)

output = model(img_LR).data.squeeze().float().cpu().clamp_(0, 1).numpy()
output = np.transpose(output[[2, 1, 0], :, :], (1, 2, 0))
output = (output 255.0).round()
output = np.uint8(output)
out.write(output)
cap.release()
out.release()

Ошибка:

IPython 7.12.0 -- An enhanced Interactive Python.
Model path models/RRDB_ESRGAN_x4.pth.
Testing...
1 15946389272380
Traceback (most recent call last):

File "C:\Users\---\Desktop\ESRGAN-master\test.py", line 28, in <module>
img = img
1.0 / 255

TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'
321 1750219
Посоны,нашел ESRGAN для видео, он контуженный. Я с питоном пока на вы, помогите исправить.
mport sys
import os.path
import glob
import cv2
import numpy as np
import torch
import architecture as arch

model_path = sys.argv[1] # models/RRDB_ESRGAN_x4.pth OR models/RRDB_PSNR_x4.pth
device = torch.device('cuda') # if you want to run on CPU, change 'cuda' -> cpu
# device = torch.device('cpu')

test_img_folder = 'LR_V/'

model = arch.RRDB_Net(3, 3, 64, 23, gc=32, upscale=4, norm_type=None, act_type='leakyrelu', \
mode='CNA', res_scale=1, upsample_mode='upconv')
model.load_state_dict(torch.load(model_path), strict=True)
model.eval()
for k, v in model.named_parameters():
v.requires_grad = False
model = model.to(device)

print('Model path {:s}. \nTesting...'.format(model_path))

idx = 0
for path in glob.glob(test_img_folder):
idx += 1
base = os.path.splitext(os.path.basename(path))[0]
print(idx, base)
cap = cv2.VideoCapture(path)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
4
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) 4
fps = int(cap.get(cv2.CAP_PROP_FPS))
out = cv2.VideoWriter('results/{:s}.avi'.format(base), cv2.VideoWriter_fourcc('M','J','P','G'), fps, (width,height))
while True:
ret, img = cap.read();
if img is None:
break
img = img
1.0 / 255
img = torch.from_numpy(np.transpose(img[:, :, [2, 1, 0]], (2, 0, 1))).float()
img_LR = img.unsqueeze(0)
img_LR = img_LR.to(device)

output = model(img_LR).data.squeeze().float().cpu().clamp_(0, 1).numpy()
output = np.transpose(output[[2, 1, 0], :, :], (1, 2, 0))
output = (output 255.0).round()
output = np.uint8(output)
out.write(output)
cap.release()
out.release()

Ошибка:

IPython 7.12.0 -- An enhanced Interactive Python.
Model path models/RRDB_ESRGAN_x4.pth.
Testing...
1 15946389272380
Traceback (most recent call last):

File "C:\Users\---\Desktop\ESRGAN-master\test.py", line 28, in <module>
img = img
1.0 / 255

TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'
322 1750274
>>50219
Ну он тебе ясно и написал, что у тебя вылез None, там его быть не должно
Чекай, логируй
323 1750301
У меня в джанго есть набор статей, который посредствам пагинации (по 10 штук на страницу) передается в template. Как отрендерить его так, чтобы статьи шли сверху вниз парами на каждой строке?
Есть цикл {% for entry in entry_list %} и я с помощью него могу засовывать статейки в заранее подготовленные html теги, а как блин их рассовать чтоб они шли по двое?..
324 1750429
Ребята, вот у меня в Airflow висит только один граф с дейли выполнением, а шедулер целый день каждую секунду ведет какой-то ебанутый бесполезный лог, который по 100мб на каждый день раздувается, это норм вообще?
325 1750521
Двач, умоляю, помоги!
Короче, нужно сделать кнопку, при нажатии на которую скрипт останавливается. Огромное кол-во циклов при работе. работа в стороннем приложении, так что горячими клавишами не обойтись
Саму кнопку сделал, но вообще хуй помни какая функция нужна для btn.bind. Код кнопки ниже.

try:
from tkinter import
except:
from Tkinter import


root=Tk()
btn = Button(root,
text="Stop Code",
width=30,height=5,
bg="white",fg="black",)
btn.pack()
btn.bind("<Button-1>", )

root.attributes("-topmost",True)
root.mainloop()
326 1750524
есть цикл которым я постоянно слушаю сервер, в бд sqlite записываю ответ, нужно связать это всё с pyqt, как мне грамотно связать это всё? наверно не разумно будет поток создать, а асинхронную функцию запилить?
327 1750555
>>50524
Если запросы не особо частые, то можно и в тред вынести
328 1750614
Как лучше бороть познавательную сложность "cognitive complexity"?

1) Раскидать по модулям?
2) Писать более сложные методы?
329 1750670
>>50524
Асинхронная библиотека для SQLite есть, но там есть нюансы.
Все равно семафор придется делать (один хуй с asyncio это проще)
330 1750675
>>50521
def stop():
sys.exit(0)

В кнопку хуячь lambda x: stop() или красиво через functools.partial(stop())
331 1750681
>>50193
Да, кажется там сразу тянет пакеты для работы с шиндой и компилятор vs (для сборок wrappers). Винда самая хуевая платформа. Накати WSL2 и радуйся.
332 1750684
анонсы, был сегодня на ссобесе и были вопросы по хеш функциям. спросили че это и нахуя оно надо. ну сказал что используется в криптографии для защиты какой либо информации. в нашей области зачастую для скрытия паролей шел на вебмакаку на джанго
после этого сказали окей хорошо. и затем спросили "как можно определить что можно хешировать, а что нет?" и после этого я просто впал в нереальный ступор на полминуты и в итоге промолчал. в итоге услышал заветное "мы вам перезвоним". так вот, подскажите пжалста ответ на этот вопрос
333 1750686
>>50614
Паттерны братиш. Я сам в это вляпался. Начал рефакторить и заплакал.
Ещё раз посмотри принципы ООП в Пихоне и дуй на http://www.refactoring.guru там сразу примеры есть. Тяжело для понимания, но хули делать
335 1750693
>>50684
https://docs.python.org/3/library/hashlib.html

А вообще ты знатно обосрался. В документации все написано.

> You can now feed this object with bytes-like objects (normally bytes)

336 1750697
>>50684
>>50693
Подозреваю, что вопрос был о хешируемости в питоне, т.е. мутабельные/иммутабельные объекты.
Каким-боком тут хеширование в широком смысле вообще хуй знает.
337 1750700
>>50697
Ну и то что хэш не только для криптографии используется на SO пояснили и в документаци написано
338 1750702
>>50684

> были вопросы по хеш функциям. спросили че это и нахуя оно надо


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

> как можно определить что можно хешировать, а что нет?


Хэшировать можно всё нахуй, хоть небо, хоть аллаха, хоть сам питон и эйчара.

Я прошел собес, аноны?
339 1750706
>>50702

>Хэшировать можно всё нахуй


МЫ ВАМ ПЕРЕЗВОНИМ
340 1750710
>>50706
Вот суки ебаные, я знаю, ваша либа хэша дырявая сучка и любит принимать инжект ту-туту-ту-ту-ту
341 1750757
>>50702
По всем пунктам неверно.

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

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

Слёту про hash() в питоне без подсказок, вот если бы меня сейчас спросили, я бы адекватно не рассказал, мне проще там про устройство словарей и списков что-то сказать. Пересказывать доку не буду. Есть ощущение, что помнить это не надо, на практике вряд ли пригодится.
342 1750759
>>50706
Вопрос кстати по хешам: почему в питонухе не хешируются (а следовательно не могут и быть ключами в словаре) изменяемые объекты? Ну изменится хеш при изменении самого объекта, дальше-то что? В чем изъян?
343 1750763
>>50759
Чтобы ты не мог себе в ногу выстрелить. Сделаешь словарь от листа, измнеишь лист и потом не сможешь им как ключем воспользоваться и РЯЯЯЯ
344 1750766
>>50763
А у меня

class MyList(list):
----def __hash__(self):
--------return 1

Че теперь, скажешь, умник?
345 1750768
>>50759
Ключ у тебя отвалилвается, потому что изменненный хеш не подходит, а старого уже нет.
346 1750769
>>50759
Неизменяемые объекты в питоне хранятся в виде объекта и счётчика ссылок. Два одинаковых по значению неизменяемых объекта - это на самом деле всегда один объект.

А вот два одинаковых по значению изменяемых объекта - это два разных объекта.

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

Если объект, используемый в качестве ключа изменяемый, то тебе необходимо во-первых поддержать поиск по значению, поддержать функцию сравнения, и во-вторых реализовать механизм изменения хешей и т.п. в случае, если объект-ключ изменился. Всё это очень сложно сделать, накладно по ресурсам и много исключительных ситуаций. Поэтому и не нужно.
347 1750771
>>50766
В ногу себе выстрелил.
348 1750774
>>50769

>Два одинаковых по значению неизменяемых объекта - это на самом деле всегда один объект


Хочешь фокус? Напиши в консоли:
a = 1
b = 1
print(a is b)
x = 100500
y = 100500
print(x is y)

>>50771
Нет. Я всех переиграл
349 1750775
>>50774
Для тру осознания бытия повтори но теперь так:
x = 100500; y = 100500
print(x is y)
350 1750777
>>50774
>>50775
Там при старте они засталбливаются как часто используемые, до 255 штоле.
351 1750780
>>50759
Может хешмапа строится во время создания/изменения дикта/сета и при изменении самого объекта ты не сможешь получить к нему доступ, если в качестве ключа укажешь новое значение? хотя по такой логике по старому оно должно быть доступно?
352 1750781
>>50777
Пизда, хотел я проверить до какого порога они забиты, написал скрипт, а CPython Опять мне тапком по лицу провел. Скрипт через exec внезапно не робит:
https://www.ideone.com/4X8m7g
353 1750916
Поясните за pyinstaller. Если у меня проект в виртуальном окружении, то инсталлер получается соберет в экзешник все что находится внутри папки виртуального окружения?
354 1750959
Работаю системным аналитиком, шарю в БД. На работу обяъвили сокращение через 3 месяца, хочу вкатиться в питон,чтобы быть системным аналитиком со знанием питона или пойти джуном кодить. За 3 месяца по 2 часа в день можно ли натаскаться, чтобы пройти собеседование кодером, а там повышать квалификацию параллельно на работе?
355 1750963
>>50757
Да верно всё, ты всё то же самое говоришь, просто другими словам.
На практике хэши довольно часто нужны. Иногда бывает проще хэши сравнивать, чем строки/данные, если нужно сравнить и похуй на иллюзорную неточность.
356 1750979
>>50691
>>50693
>>50697
ну в общем его юзают для криптографии и для ускорения работы самой программы, при том хешить можно только неизмениемые типы данных. я все правильно понял?
кункоторыйзадалвопрос
357 1750987
>>50979
Ускорение в чем? Тебе уже на пальцах объяснили. Попробуй в словаре два одинаковых ключа сделать. Поймёшь почему нельзя сделать два ключа {'name': 'Gvido', 'name': 'Rossum'}?
Касательно уникальности -> uuid, криптография несколько сложнее.
https://ru.m.wikipedia.org/wiki/Соль_(криптография)

А тот анон прав, тебя спрашивали не о применении в общем, но о том, что можно хэшировать и как.
Ты на кого вообще шел?
358 1750988
>>50979
Алсо, для понимания в остальных языках словарь это hashmap. Почему в Пихоне это словарь, видимо чтобы проще было понимать.
image.png86 Кб, 991x190
359 1750989
Анон я тупой объясни мне пожалуйста кое-что. В лутце написано что объекты в пистоне хранят "счетчик" ссылок на этот объект. Я так понял это некий атрибут, но как его получить?
Например есть объект:
int(228)
Какое название атрибутаили метода, я так до конца и не разобрался после точки нужно указать чтобы вернуть количество ссылок на объект?
Я знаю про sys.getrefcount(), но не понимаю откуда берется это значение
360 1750990
>>50989
Никак, это внутренняя хуйня, которой управляет вм.
Её можно пощупать всякими внешними средствами вроде getrefcount, но не более.
361 1750991
>>50781
Тот же самый скрипт но в консоле (не в виде функции) работает ответ кстати 257
Че это блэт? Связано с пространством local? Или просто очередная "магия" пистона?
362 1750992
>>50987
Не удивлюсь что если это тот же чел, который недавно хвалился "айти вышкой" и утверждал что он"шарит в бд", но при этом сама концепция переноса Postgres на сторонний сервер вместо localhost взорвала ему мозг (ну они же проводами не соединены!1 как так-то??)
363 1750993
>>50989
Из области памяти. Потом gc подчищает за тобой.
И ты все верно делаешь. В Пихоне все объект.
364 1750995
>>50992

> ну они же проводами не соединены!1 как так-то??


Соединены же.
365 1750996
>>50990

>это внутренняя хуйня


Понятно, я так понял вернуть названия всех переменных ссылающихся на объект тоже не получится?
>>50993

>И ты все верно делаешь


что делаю? я же вроде нихуя не сделал...
366 1750998
>>50675
Спасибо, анон, работает как часы. Только пиздец, теперь когда вставляю кнопку в основной код он ее создает и дальше код не обрабатывает. Ждет пока я на нее нажму и все сломаю.
367 1750999
>>50992
"Шарить в БД" это ни о чем. Я вот научился клепать говеные таблицы и создавать процедуры. Нашел бутылочное горлышко в этой хуйне (и знатно на него присел), теперь ищу книгу чтобы вновь не обсираться с индексацией и перекатиться на peewee. Жду как ману небесную Tortoise. Пилят Django style на uvloop. Пока нет нихуя, миграция в 1.0, ,а выкачена 0.18, лол.
Скорее всего буду делать PR clickhouse-infi с переходом на aiohttp. Тоже ORM. Если тут анонасы подскочат буду рад.
Пихон удобный, вот тебе словарь из данных выгруженные из БД, а вот ты обсираешься с ключом. Вот теперь я переобуваюсь, так как топил за процедуры в SQL, но заебался их поддерживать.
Вышка ровным счётом это поджопник. Мне до Джуна ещё минимум два года, так как пиздец какие поверхностные знания. Пока в продакшене не будет ещё 3 проекта, считай и не ходил нихуя.
Поделки на гитхабе (есть желание для себя сделать автозагрузки ongoing сериалов с торрента) я считаю даже при устройстве на галеру стыдно будет показывать.
368 1751002
>>50999

> процедуры в SQL


Нахуй вам вообще скуль нужен. Носкуль бд нужны, качественные.
369 1751003
>>50998
Так ты так код написал. У тебя только кнопка и loop. Внутри в цикле хоть дату выводи.
370 1751004
>>51002
Persistent
371 1751009
>>51004
Архивировай, размножай, умножай.
372 1751021
>>51009
Ну а что можно такого взять? Потом же аналитику надо проводить. SQL запросы учатся за минут 40, потом уже по методикам развиваешь их. А с NoSQL? Вход сложнее априори.
373 1751030
>>51021

> Вход сложнее априори.


Да никто не говорил что просто будет. Но для джуна и sql хватит, да, нормально вообще. Кэширование нахуярить и сидишь пердишь.
374 1751081
>>51030
Я про то, что другие будут лезть в БД, и им NoSQL будет непонятен. Когда сам архитектуру пишешь, то похуй..используешь что удобнее тебе. А потом твой код превращается в легаси
375 1751118
>>50987
ну так цифорки же быстрее сравнивать например чем строки. разве нет? шел на джанго веб девелопера
>>50992
не, это простыня-кун который писал сюда в марте. и у меня не айти вышка всего лишь атомная энергетика
алсо, есть какая годная литература по поводу этого? чтобы в книжках читануть. сам читал только укус питона, и только в том сентябре
376 1751129
>>51118
Ты дурак или да? Какие нахер книги. Пиздуй доку по Джанге читай и тыкай готовые примеры. Совсем уже мозги пропили.
АйТи это книга для пинка под зад + документация. Так как библиотеки постоянно меняются. В шапку этот аргумент вставьте, заебали такие тупые вопросы.
Что читать, блять. Сукалол

мимо мамкин экономист со знанием тех. английского
377 1751154
>>51118

>ну так цифорки же быстрее сравнивать например чем строки. разве нет?


Все есть байтики и сравниваются они одинакого
378 1751347
>>50916
Бамп вопросу.
379 1751348
>>50916
да, и заебашит туда libpython и бинарник интерпретатора. на SO сотни раз разжевано.
380 1751376
>>51348
Только он чет сторонние библиотеки не добавляет и нихуя поэтому не работает. Как быть если у меня в сторонних библиотеках их штук 20?
381 1751391
>>51376
По-моему, он читает код и оттуда достает что добавить.
Если они у тебя задействуются косвенно, то можешь попробовать добавить явно, чтобы он подхватил.
382 1751392
>>51391
У меня считай почти целиком код работает с помощью сторонней библиотеки. А она в свою очередь использует другие библиотеки.

Как все это явно добавить?
383 1751395
>>51392
Ну смотри чего не хватает в результате и добавляй строчки import huita в своем главном скрипте.
384 1751399
385 1751401
>>51395
А как я ипортирую библиотеки, которые использует другой пакет? Основной пакет у меня и так испортируется, но прога нихуя не работает.
386 1751404
>>51401
Да ты у себя импортируй и ничего не делай. Они подхватятся и будут в наличии для использования там.
387 1751409
>>51404
у меня и так пакет в самой программе импортируется для работы. Но тому пакету нужны еще другие пакеты
388 1751410
>>51409
Я тебе и говорю, явно импортируй у себя те, которые нужны тому пакету.
Ты тупой штоле?
389 1751411
>>51410
А я ебу какие именно пакеты ему нужны? Как это проверить?
390 1751413
>>51411
Которых не хватет при запуске бандла.
Image 884.png3 Кб, 206x168
391 1751417
>>51413
Екзешник просто выдает ошибку не оповещая чего не хватает
392 1751421
>>51417
Когда вы гуглить начнете?

Во-первых запускай его в консоли нахуй или инициализируй запуск консоли.

https://pyinstaller.readthedocs.io/en/stable/when-things-go-wrong.html#listing-hidden-imports

mysql-connector например шел с hidden imports, я хуй знает что ты там портируешь. Можешь указывать так же PYTHONPATH чтобы наверняка.
393 1751422
>>51417
Там есть опция с консолью, в неё должно выдаваться всё.
394 1751423
>>51399
У тебя JSON кривой
line 1, либо нет открывающей {, либо не указал значение после ключа.

ЗАЕБАЛИ
ГУГЛИТЕ СНАЧАЛА ЕБУЧИЕ ОШИБКИ

Перекот на Go, там ебланов меньше.
395 1751427
>>51417
Нахрена ты вообще собираешь экзешник? Хочешь экзешники пиздуй С++ учить или С#. С шиндой никакой интеграции считай и нет, все через жопу.
Python это только Linux (Docker Image как вариант), даже в MacOS натворили хуйни.
396 1751429
>>51423
Давай сразу в хачкель.
397 1751431
>>51421
>>51422
И так собираю с режимом консольки. Нихуя не работает.

>>51427
Чтобы скидывать свою программу людям и им не пришлось бы ставить всю хуйню.
398 1751445
Аноны, недавно книги обновили в шапке, в новых есть Поваренная книга по Докеру, но она за 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
399 1751512
>>41714 (OP)
Анон, помоги ньюфагу. Есть скрипт https://raw.githubusercontent.com/amayatsky/shadowsocks-url-generator/master/ss-genuri.py

Нужно, чтобы он вместо

>config['server'],


Определял внешний айпи сервака (то, что он тянет из конфига - там другое и это не нужно).

И при выводе, чтобы в конце после всего, что он вывел, он добавлял

>?plugin=vmess%3Bhost%3Dkremlin.ru#done



Ты мне очень поможешь. Бьюсь уже пол дня.
400 1751534
Есть какие-нибудь книги или курсы с большим количеством упражнений и всяких практических заданий? Я не понимаю, как можно учить по одним мануалам, мне надо какие-то задания решать, желательно с объяснениями. Скачал курс по питону от специалиста, так там одна теория, практические задания какие-то есть, но записей нет. Да и задания какие-то по теории вероятности, которые для новичка нахер не нужны.
401 1751536
>>51512
Ну так навскидку, но я не тестировал.
https://pastebin.com/WszHK8yk
402 1751546
>>51534
откуда ты знаешь какие задания тебе нужны а какие нет?
403 1751562
>>51536

>Traceback (most recent call last):


> File "/dev/fd/63", line 5, in <module>


>ImportError: No module named request


Видимо ему библиотека твоя не нравится. А нельзя просто брать этот параметр из сетевого интерфейса? Айпи белый.

И еще, можно ли задать вывод другим цветом? В терминале нужно, чтобы цвет другой был у выводимой строчки
404 1751568
>>51562
Второй питон штоле? Про интерфейс хз есть ли универсальный метод. Если есть команда, выдающая его, то можно выполнить и забрать вывод.
Цвет можно задать через анси-коды, надо смотреть.
405 1751595
>>51568
Я не знаю, стандартно что стоит на впске с убунтой после всех апгрейдов.

>Python 2.7.17 (default, Apr 15 2020, 17:20:14)


>[GCC 7.5.0] on linux2

406 1751598
>>51595
Попробуй python3
407 1751603
>>51568

>:~$ sudo apt-get install python


>Reading package lists... Done


>Building dependency tree


>Reading state information... Done


>python is already the newest version (2.7.15~rc1-1).


>The following packages were automatically installed and are no >longer required:


> grub-pc-bin linux-headers-4.15.0-109


>Use 'sudo apt autoremove' to remove them.


>0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

408 1751613
>>51603

>sudo apt-get install python3


>sudo apt-get install python3


Reading package lists... Done
Building dependency tree
Reading state information... Done
python3 is already the newest version (3.6.7-1~18.04).
python3 set to manually installed.
The following packages were automatically installed and are no longer required:
grub-pc-bin linux-headers-4.15.0-109
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
409 1751616
>>51613>>51603>>51598>>51595
Ахахах. Анон, я что-то тупой. Я не знал, что команда для Питона3 так и называется Питон3. До меня дошло, когда увидел, что Питон2 уже очень устарел.

А по цветному выводу нет идей?
410 1751628
>>51616
Ну примерно так.
print('\033[91m' + 'huita' + '\033[0m')
Первое задает красный цвет, второе сбрасывает.
Коды эти можешь погуглить по ansi escape sequence.
411 1751634
Привет, мне нужно реализовать создание объекта двумя разными способами
Например:

> obj = Zazaza(some_dict)


> obj = Zazaza(some_list1, some_int)



По идее я могу просто в __init__() прописать проверку колличества аргумента и их типа и в зависимости от этого уже управлять созданием объекта НО инит раздувается неприлично, а он у меня и так жЫрный

Но это на мой вкус КАК-ТО ГРЯЗНО, есть ли более красивый способ это как-то сделать?
412 1751636
>>51628
Нехера не понял. Может просто написать, чтобы для скрипта >>51536 в конце вывело желтую строчку?

По ссылке 33 это, кстати, желтый http://ascii-table.com/ansi-escape-sequences.php
413 1751643
Мужики, сильно не ругайтесь, я зеленый и вообще мимо проходил, однако осмелюсь задать вопрос
Пытаюсь составить прикладную програмку лично для себя через PyQt5, чтобы исполнять написанный мною скрипт. Собственно GUI я сделал, осталось назначить функции кнопкам, но возникла внезапная проблема, решение которой я не могу найти: как передавать в исполняемую функцию необходимые переменные при нажатии кнопки? Это делается через глобальные переменные или есть какой-то более нормальный способ?
Собственно, вот примерно то, чего бы я хотел:

> self.su_show_button.clicked.connect(self.OpenDF(path))


но оно не работает
Screenshot20200715022213.png30 Кб, 622x250
414 1751652
Этой ночью продолжаю тупить в asunc
Есть код - пикрил. Читаю из файла некую инфу. Return вроде как лишний. Как првильно прочесть данные асинхронно и положить в файл? А метод чтения из файла нужно ведь помечать как async? У меня что то тоявляется желание везде писать async\await, теорию читаешь, вроде все понятно, а на практике хуета выходит.
415 1751653
>>51643
Ты сразу и вызвал метод, он прочел что то там, и вернул результат, который пытвается вызваться при каждом клике, что то в этом духе. Тебе надо саму функцию передать, а нее результат ее вызова
416 1751659
>>51643
Да, так не будет работать, тебе надо работать задавая где-то заранее переменную и потом в функции ее юзать.

В КюТэ есть встроенные некоторые функции-сигналы которые принимают какие-то параметры(например сигнал ресайза окна), но это не твой случай.
417 1751660
>>51616

>А по цветному выводу нет идей?


>>51628

>Ну примерно так.


>print('\033[91m' + 'huita' + '\033[0m')



Это все очень сложно для одной строчки. Нашел вот код, но мне нужно вывод из кода >>51536 задать, как переменную, тогда смогу цветом вывести

Пример, как цвет, у переменных

>echo -e "${green} ${qr_code} ${plain}"


> echo -n "${qr_code}" | qrencode -s8 -o "${cur_dir}"



Я не силен, а ты, если понял, как, подскажи.
418 1751664
Аноны, объясните, нахуя нужен self, нихуя не понимаю? В чем его суть?
419 1751711
>>51664
Указывает, что функция применима только к экземпляру класса.
Ссылка внутри описания класса на атрибуты класса.
420 1751715
>>51664
Синтаксический сахар для методов класса, эквивалентен передаче в функцию первым аргументом объекта.
Т.е. по сути это вот так
obj.func(...)
func(obj, ...)
421 1751719
>>41714 (OP)
Не знаю в этот тред или есть специализированные но хочу поличить видеокадры с вебки ноута через OpenCV. Но даже пару строчек кода классического примера выдает ошибки:
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (681) CvCapture_MSMF::initStream Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(unsupported media type)
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (436) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
Как это исправить чтобы всё работало?
422 1751721
>>51634
ПАМАГИТЕ, ПРОШУ
Привет, мне нужно реализовать создание объекта двумя разными способами
Например:

> obj = Zazaza(some_dict)


> obj = Zazaza(some_list1, some_int)



По идее я могу просто в __init__() прописать проверку колличества аргумента и их типа и в зависимости от этого уже управлять созданием объекта НО инит раздувается неприлично, а он у меня и так жЫрный

Но это на мой вкус КАК-ТО ГРЯЗНО, есть ли более красивый способ это как-то сделать?
423 1751728
>>51431
Бамп вопросу
424 1751729
>>51431
Скидывай папку со своей прогой и всеми модулями - делов-то.
425 1751732
>>51729
Куда скидывать? Как сделать чтобы пиинсталлер все что внутри папок собирал?
426 1751734
>>51721
Нет
Но можешь посмотреть в сторону декоратора @overload
427 1751735
>>51732
Может быть тебе лучше садистом пользоваться
428 1751736
>>51734
Спасибо посмотрю.
429 1751737
>>51736
Никак, только для pylint

init(a:Union[dict, List], b:Optional[int] = None):
self.a = a
self.b = b
А в методе уже проверка. Если b передан используй переменную, иначе нахер. Enjoy dynamic types
430 1751739
>>51732
Ты доки читал? Видимо нет.

https://pyinstaller.readthedocs.io/en/stable/spec-files.html
В spec все описывать надо. Из-за таких вкатывальщиков тупых все проблемы. Вас реально будут менять как перчатки на проектах.
431 1751749
>>51739
Я не вкатывальщик, я для себя делаю так что сходи нахуй, но за ссылку спасибо
432 1751751
>>51737
Да, охуенный в питоне полиморфизм - просто во все поля, куда деваться.

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

Ну а хули, будем делать.
433 1751753
>>51652
Вроде правильно все на пике.

>А метод чтения из файла нужно ведь помечать как async?


Если в теле метода есть await ты помечаешь его как async или сосешь
434 1751764
>>51751
поч не сделать несколько фабричных методов?

def __init__(...): ...

@classmethod
def from_config_file(...): self.__init__(...)

@classmethod
def from_some(...): self.__init__(...)

в этих ваших статически типизируемых языках приватные конструкторы не такое уж и редкое явление
435 1751772
>>51751
Нет, ты можешь использовать property. Но ты же не читал доеументацию, а сразу спросил. Вот тебе простой вариант решения дали
image.png446 Кб, 988x507
436 1751777
>>51764
Оооооо, спасибо огромное!!!!
Как я сам не догадался, а ещё говорят, что статические или классовые методы это вредно, а оно полезно
437 1751780
>>51764
слоуфикс

def __init__(...): ...

@classmethod
def from_config_file(...): return cls(...)

@classmethod
def from_some(...): return cls(...)
438 1751781
>>51772

> Нет, ты можешь использовать property.


как здесь поможет использование пропертей?
439 1751797
В некоторых вакансиях видел flask хотя думал что на него почти всем похер
Аноны, у меня выйдет спиздеть что я знаю фласк если до этого занимался джангой 4 месяца, а потом по-быстрому подучить его?
440 1751812
Как заставить класс исполнять действия в зависимости от состояния? У меня есть 3 разных состояния, одни и те же методы будут исполняться по-разному в зависимости от них

Мне создать отдельный класс State, а потом внутри основного класса Worker делать что-то типа self.handler = State("FirstState")?
441 1751814
>>51764
Никто ничего не говорил плохо про классовые методы, а вот статики говно говна
442 1751833
>>41714 (OP)
Какие еще есть стулья кроме django и flask для веб бэкенда? Мне асинхронные вьюхи нужны и асинхронный read из БД, а те 2 залупы - синхронные
15901346483900.png383 Кб, 512x452
443 1751839
Доброго дня, славяне.
Вкатился душить питона с нуля на нубо-уровне. Однако выбрал по глупости не тот путь. Не туда воюю, кароч.
Взял курс Python-разработчик от скиллботоксов. Их обещалкам с работой не верю, сам уже работаю сисадмином на бюджете в гос.администрации. Слежу за серверами, администрирую бюджет (торги, закупки), сижу на телефоне с подчинёнными организациями. Хочу начать ещё и программировать. Особого времени на книжки пока нет. Но эти курсы на выходных позалипать могу.
Будет ли это нормальной базой для будущего развития?
444 1751842
>>51780
в таком случае создание объектов будет так выглядеть?

> obj = Zazaza.__init__.from_config_file(some_dict)


> obj = Zazaza.__init__.from_some(some_list1, some_int)



Нужно ли использовать псевдонимы чтобы убрать вот этот вот __init__ торчащий?
445 1751845
>>51814
Статикки - это способ раскидать функции по разным категориям. Это использование святого ООП в неких низменных целях.
446 1751847
>>51833
Загугли блять веб-фреймворки на питоне
447 1751852
>>51842

> obj = Zazaza.__init__.from_config_file(some_dict)


шта

вот так будет выглядеть
obj = Zazaza.from_config_file(some_dict)
метод класса же
448 1751853
>>51839
Если в институте на что-то инженерное учился, то у тебя уже база есть. А программировать начинать надо с практики программирования. Начни писать программу или скриптик своей мечты. А нужные знание будешь по ходу написания проги подтягивать и усваивать.
449 1751856
>>51852
мне автокомплит высирает что-то совсем другое.
450 1751857
>>51814
так я классметоды и предложил
451 1751858
>>51797
скажи что последние 4 месяца занимался джангой, но попробовать фласк не против
452 1751859
>>51853
А если я в универе на менеджера учился?
453 1751860
>>51812

> Как заставить класс исполнять действия в зависимости от состояния?


if self.state == state_N1: ...

> У меня есть 3 разных состояния, одни и те же методы будут исполняться по-разному в зависимости от них


наследуй -> переопределяй

> Мне создать отдельный класс State, а потом внутри основного класса Worker делать что-то типа self.handler = State("FirstState")?


нихуя не понял вопрос
454 1751861
>>51859
берешь любую книжку которая с нуля и читаешь по полчаса каждое утро
если не зайдет, берешь другую, но читаешь каждый день

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

тащемта секретов тут и нет
455 1751862
>>51781
def init(args):
self.__a: Union[Dict, List] = None
self.__b: Optional[int] = None

@property
def a(self):
return self.__a

@a.getter
def a(self):
if isinstance(args[0], dict) or isinstance(args[0], list):
return args[0]
else:
raise ValueError("An unpropriate value type was assigned to variable 'a'")

@property
def b(self):
return self.__b

@b.getter(self):
if isinstance(args[0], list):
if isinstance(args[1], int):
return args[1]
else:
raise ValueError("An unpropriate value type was assigned to variable 'b")
else:
delattr(self, 'b')

def method(self):
if self.a
if isinstance(self.a, dict):
for k,v in self.a.items():
#do
elif isinstance(self.a, list) and b:
for elem in self.a:
# elem
*b

Все равно громоздко?
455 1751862
>>51781
def init(args):
self.__a: Union[Dict, List] = None
self.__b: Optional[int] = None

@property
def a(self):
return self.__a

@a.getter
def a(self):
if isinstance(args[0], dict) or isinstance(args[0], list):
return args[0]
else:
raise ValueError("An unpropriate value type was assigned to variable 'a'")

@property
def b(self):
return self.__b

@b.getter(self):
if isinstance(args[0], list):
if isinstance(args[1], int):
return args[1]
else:
raise ValueError("An unpropriate value type was assigned to variable 'b")
else:
delattr(self, 'b')

def method(self):
if self.a
if isinstance(self.a, dict):
for k,v in self.a.items():
#do
elif isinstance(self.a, list) and b:
for elem in self.a:
# elem
*b

Все равно громоздко?
456 1751863
>>51856
какой у тебя код
что тебе предлагает автокомплит
причем тут мы и твой хуево настроенный автокомлит?
457 1751865
>>51862

>delattr(self, 'b')


шта
458 1751866
>>51861
А это правда, что программисту нужно знать линейную алгебру и теорию вероятности?
459 1751868
>>51865
объебался. потом при вызове c.b будет Exception.

Да я думал удалить нахер аттрибут, но потом сделал их с двойными underscore
460 1751869
>>51866
смотря что ты будешь делать. для реализации мат моделей нужно, в остальном английский на хорошем уровне
461 1751871
>>51869
Я не знаю, что я хочу делать. Хочу просто съебать со своей ненавистной работы.
462 1751872
>>51866
ну смотря что писать, как и на каком уровне. Большая часть прогеров математику дальше 9-го класса не освоили

программирование - это умение писать код + знание предметной области. Для веб макаки знание рекомендаций по использованию библиотек в тыщу раз полезнее интегралов
463 1751873
>>51871
программирование это способ утилизации аутистов, подумай нужно ли оно тебе
тут дно
464 1751874
>>51868
крч я не понял что ты хотел наебашить своими пропертями и где здесь стало удобнее
465 1751879
>>51872
А если приложения для смартфонов писать?
466 1751881
>>51874
Нигде, потому что либо ты заранее знаешь что положишь в аргументы и заранее знаешь что тебе придет tuple(List, Int) и ты будешь работать c List как со списком без применения методов для словаря, либо пишешь такую хуергу или тупо try...except...else
467 1751882
>>51879
то скорее всего линейка тебе не сильно в этом деле поможет, конечно, будет сказываться что ты не графы ворочал на лабах, а хуйней страдал в универе, но ничего принципиального ты бы там не узнал енивей

вообще питон не тот язык на котором пишут мобилки, там следующая ситуация
objective c который сейчас заменился почти swift
java которая никак не заменится kotlin
немного упоротого js
питон вообще не катит, есть попытки, но эт хуйня все
468 1751883
>>51879

>https://habr.com/ru/post/479126/


Пилять, если будешь пилить игру то надо, если приложуху типа google.keep то нет.
469 1751884
>>51881

> Нигде

470 1751888
>>51863
вот мой коТ
https://pastebin.com/tX3PspNd

А высирает автокомплит именно то, что я написал
471 1751889
>>51884
Во-первых property это все же инкапсуляция для начала. Касательно classmethod кому как удобно, похуй ваще. И я объебался в init...

Не знаю, надо либо привязывать нормально аргументы либо изъебываться. Универсальность это нечто недостижимое.
472 1751893
>>51888

> @classmethod


> def from_layers(cls, layiers: list):



>@classmethod


> def from_weights(cls, weiights: dict):


Ты траллируешь что ли? У тебя орфографические ошибки в наименовании аргументов.
473 1751894
>>51888
у тебя classmethod внутри init а дб на том же уровне
https://pastebin.com/V7zdETu1

и вообще что-то напутано немного
474 1751895
>>51893
Так вышло что в js и python тредах пиздец какие тупые нюфани, но норм олды
а в java, c++ тредах наоборот
475 1751896
>>51893
Это специально, линтер пишет что перекрываются имена во внешней области видимости
476 1751897
>>51896
крч тебе нужно ревью попроси препода помочь тебе накидать норм структуру
477 1751898
>>51882
Я постер отсюда: >>51839

Полезно ли сисадмину вообще питона душить? Мне коллеги посоветовали именно его, якобы для серверов хорошо и скриптов на автоматизацию. Плюс могу приложения свои пилить опять же для работы и сайты делать нашим организациям. Верно ли это?
478 1751899
>>51896
ты посмотри что в теле метода `weights` и `layers`.
Ты зачем переменные класса тогда ввел? обращайся тогда cls.layers, cls.weights. Потом прибежишь роняя кал "анооон, чому не работаааееееет питоооон гавноооо".
479 1751902
>>51898

> Полезно ли сисадмину вообще питона душить?


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

> Плюс могу приложения свои пилить опять же для работы


только под линукс, либо django-cms какой-нибудь либо еще что

> сайты делать нашим организациям


нужен js

но вообще с питона начать норм идея
480 1751903
>>51898
Верно. Есть обертки для systemd, windows (я хуй знает как называется). Надстроек над SSH несколько штук и т.п.
Все зависит от прикладной задачи.
Можешь брать rsyslog -> error.log -> python -> clickhouse
Для аналитики (если это оправдывает средства)
Можешь просто парсить лог и переводить его в JSON структуру. Да дохуя чего можно, задачу сначала сформулируй и там видно будет. Zabbix все с лихвой перекроет на самом деле. Или Webmin тот же.
481 1751904
>>51899
Как мне посоветовали тут >>51780 так я и сделал

>Потом прибежишь роняя кал "анооон, чому не работаааееееет питоооон гавноооо".


Ну это уже твой манямир, я за него не руучаюсь
482 1751914
>>51847
Там гавно какое-то
aiohttp типо крут, но нихуя не ясно как на нем реализуются даже элементарные операции
483 1751915
>>51899
Но я тебя понял, ща буду поправлять, спасибо.
484 1751917
>>51904
Ты выслал кусок кода. У тебя классовые атрибуты без начальных значений. Тогда нахуя они?
Зачем тебе значения инстанса? У тебя будут разные состояния (значения инстансов). Давай считать что ты овердохуя раз будешь их инициализировать. Будет у тебя 100 объектов типа Neuronet. Так у тебя значения априори list и dict как отправная точка. Хули ты вола ебёшь тут?
485 1751921
>>51917
че ты агришься на нюфаню то он нормально спрашивает без выеба
486 1751924
>>51914
FastaAPI, Sanic, Starlette с асинхронкой на uvloop. Aiohttp это скелет для создания своего фреймворка. Быстрее чем готовое, но скорее всего обосрешься при парсинге и в итоге потеряешь в скорости в отличие от уже поддерживаемых.
487 1751925
>>51921
Потому что это полный сюр. Откуда код? Что за библиотека? Структура непонятная, комментарии спизженные. Человек не понимает разницу между class и instance судя по всему, но уже колит нейронку.
488 1751926
>>51914

>aiohttp типо крут, но нихуя не ясно как на нем реализуются даже элементарные операции


Пиздец наркоман
489 1751932
>>51925

> Человек не понимает разницу между class и instance судя по всему, но уже колит нейронку.


ну тут согласен
490 1751939
>>51903
>>51902
Верно ли что, если я выучу python + js, то смогу помимо мелких задач автоматизации, писать сайты?
491 1751942
>>51939
python / django
html/css/js -> vue.js
выучить это говно невозможно, но в целом вектор такой да
492 1751946
>>51939
а ещё html и css естественно.
493 1751949
>>51942

>python / django


Если он не пойдет на галеру, то можно и что-то поновее и легковеснее использовать. Хотя бы ознакомится с асинхронкой
494 1751954
>>51925
Код полностью мой
Комменты тоже писал сам, докстринги писал по стандартам, потом докстринг генератор прикрутил к IDE
Разницу между классом и инстансом знаю, но классовые методы впервые использую,

А вот по структуре, что тут непонятного?
495 1751957
У меня есть словарь с лямбда-функциями для реализации switch/case (да, я ебанутый), каждая lambda принимает 1 аргумент и по итогу получается что-то типа:
result = switch_dict["cat"](self)

Как сделать так, чтобы при несуществующем ключе возвращалась одна и та же некая дефолтная функция с одним аргументом? В курсе про метод get у словаря, но это не то. Посмотрел на defaultdict, но че-то не работает и пиздит что я в дефолтную лямбду ничего не передал
496 1751959
Ок, вкатывался совсем новичком. Сейчас прочитал "Python для детей" Бригса. Что читать дальше? Призываются только те, кто ознакомлен с данной книгой и понимают, какая база знаний у меня уже есть.
хочу стать Full stack-разработчиком, если что. Ну мб и игры писать, но это второстепенно.
497 1751963
>>51954
Тогда объясняй:
1. Зачем атрибуты класса в данном случае?
2. Почему ты хочешь менять классовые атрибуты а не класса при инициализации инстанса?

Принцип какой? Singleton? Или будет Фабрика (класс который будет содержать в себе все инстансы типа Neuronet) ?
Вот самое простое.
498 1751964
>>51957
def default_funcia_s_odnim_argumentom(x): return x

defaultdict(lambda: default_funcia_s_odnim_argumentom)
499 1751981
>>51957
Лямбда которая возвращает другую лямбду конечно же
500 1752015
>>51963
1) В данном случае незачем, а так из них по идее можно инициализировать объект
2) ХЗ

Там где я читал про классовые методы было написано что это используется в фабриках.
Впрочем, я уже всё перепилил по уму, как мне кажется, теперь буду тестить.
501 1752049
>>52015
А теперь смотри фокус...
https://repl.it/repls/StrictTameAutocad#main.py

Классовые переменные переходят с тем же значением в инстанс.
502 1752060
>>52049
хотел выебнуться на нюфаню сам сморозил хуйню

разницу между
layers: list
weights: dict

и
a = 1
b =2

понимаешь?
503 1752067
>>52060
Объявление типа переменной без значения. Которое там непонятно зачем, так как в @classmethod не используется и к которому потом нельзя обратиться. Ок?
504 1752075
>>52067

> Объявление типа


шта

> Которое там непонятно зачем


ну да чувак там намудрил с weiiight и layyyers

> которому потом нельзя обратиться


шта
506 1752084
>>52081
и что ты тут хотел показать?
507 1752085
>>52084
ну как бы `a` это 'a' отнюдь не атрибут класса.
508 1752087
>>52085
о том и речь да, что это чисто аннотация
более того это аннотация подразумевает что 'a' атрибут инстанса

поэтому мне кажется что питон не самый хороший первый язык
509 1752090
>>52087
Как первый он ок, если вчитываться в доки, а не слушать скиллбокс цыган. Я уже брал курс от МФТИ. В итоге... они слали читать документацию. Благо курс был 18 000.
510 1752092
>>52090
В свою защиту скажу, что это было давно и на Coursera и тогда не было такого обилия уроков, по направлениям все было интересно. Там были в примерах мат. модели даже. В итоге они меня знатно заебали обилием ошибок и сроками
511 1752103
>>52090
Скилбоксы-гикбрейнзы это наёп на доллАры. На гикбрейнсе например, бесплатные вебинары, по признанию самих студентов, лучше чем занятия самого курса.
512 1752107
>>52103

> бесплатные вебинары


так потому что вебинары это больше рассказать/обсудить/поделиться опытом, а не гарантировать трудоустройство. "Ну приду я в Мыло.сру. Вот берите меня я тут стек выучил немножко, а в ответ явно услышу "нахер пошел, Вася", нам нужен миддл с опытом 10 лет, мы тут не на фантики работаем"
514 1752169
Анон, выручай! Вчера мне помогли код написать. Нужно всего лишь строчку желтым выводить. Подправь для вывода, плз.
https://pastebin.com/WszHK8yk

Вот тут написано, что было найдено в аналогичных скриптах, где вводится цветом. >>51660 Вся сложность в том, чтобы задать всю эту строчку, как переменную и просто присвоить ей цвет, как я понял.
515 1752979
Как в matplotlib сделать динамическое обновление графика? Что ни пробовал не работает.
516 1753612
Почему OpenCV грузит jpg но не грузит png?
517 1753622
>>53612
разобрался, была проблема из-за русских букв
518 1755932
Как перенести проект pycharm на другой ПК?
При простом копировании у меня это не получилось сделать.
15938660696162.jpg490 Кб, 1840x1169
Аноним 519 1756909
520 1784968
>>55932
Юзай гит, и venv. И больше ни шагу без venv.
Тред утонул или удален.
Это копия, сохраненная 21 января 2021 года.

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

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