Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником. Исходник: https://dumpz.org/bASGKD8cCFDf
>>2072203 → то есть ты еще не уехал? я думал ты уже там тусишь! откуда инфа что у тебя например букдут бошки и алко? и бабос? кем там планируешь работать?
Всем ку, опять жопа подгорела, взял задачку с литкода, а пишет что по времени не прохожу, как бы вы решили?
Вот условие - Given an integer array nums, return an array answer such that answer is equal to the product of all the elements of nums except nums.
The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.
You must write an algorithm that runs in O(n) time and without using the division operation.
Example 1:
Input: nums = [1,2,3,4] Output: [24,12,8,6]
class Solution: def productExceptSelf(self, nums: List[int]) -> List[int]: res = [] for i in range(len(nums)): m = [] sum_ = 1 for j in range(len(nums)): if i == j: continue else: m.append(nums[j]) for k in m: sum_=sum_*k res.append(sum_) sum_ = 0 return res
>>2072493 планирую работать в продажах(Ювелирка), так как говорю на английском и путунхуа. Сначала я приеду, поработаю месяц-два, и когда все норм будет, буду искать себе ментора. На крайний случай - тичером за 1500к долларов пойду(как и работал несколько лет, в принципе), но это будет не Нячанг, а жопа мира, хоть и у моря. Откуда инфа? жил там пол года до пандемии, ром дешевле водки в этой стране, бошки тоже на каждом шагу. вангую вопрос - накуй мне вкатывание в ойти? А вот для того, чтобы вкатиться в Канаду. Попробовал сварку - то еще удовольствие раком пол дня стоять. Попробовал учить - те места, где я не туплю, а нахожу сам решения (щас я на задачках на синтаксис и лупы) - вызывают эйфорию. Но на следующий день я могу сесть и затупить на следующей теме. Почему не предлагаю деньги? потому что ты хер их вышлешь из страны, не указав в налоговой декларации сколько ты реально получаешь, и не отдав половину зарплаты налогами. Все кэшем. пэйпалом мне высылали вьеты через решалу, этот нехороший человек взял 60 баксов комиссии). Вроде даже на ангельском документацию и лекции всякие воспринимаю нормально, на степике курс тоже на нем, но не хватает слов типа "ты че, долбаеб? тут вот по этому у тебя код не работает" Боже. как мне хочется кодера, разве я много прошу?
>>2072516 >without using the division operation Кекнул с этого условия. Порой задачи такие условия выстраивают, чтоб ты мог взять стакан воды без рук, но нахуя без рук это делать?
>>2072604 неспортивно в принципе вот туда смотреть.
Раз медиум, наваял решение, работает
Могу на идеи натолкнуть попробовать
>>2072602 >Кекнул с этого условия. Более-менее адекватное. На самом деле легко придумать ситуацию, когда операция деления просто не определена или очень дорогая.
>>2072602 ну это классика. сперва тебя заставляют писать функции для решения векторов и всякой дичи а потом после того как ты порешаешь говорят что для этого есть библиотеки
>>2072613 Ладно, реши две задачи 1) надо вернуть другой массив, чтобы в нём были произведения чисел до текущего то есть для [1,2,3,4] возвращал [1, 1, 2, 6]
2) придумай код, чтобы от для массива возвращал массив, где в каждой ячейке произведения числе, что после текущего, то есть для [1,2,3,4] [24, 12, 4, 1]
>>2072626 >где деление не определено вообще или очень сложно делается. Собственно пример. Пусть нет гарантии, что результат уложится в 32 бита. Но надо вернуть значение по модулю в 10 миллионов. А просто произведение даже в 1000 бит не влезет.
Питон, конечно, в коробке поддерживает работу с огромными числами. Другие платформы нет.
Если ты сразу считаешь по модулю, то делить ты не сможешь. В то время как алгоритм быстрый существует, что ни деление, ни арифметика на больших числах тебе не нужны.
А вот вы часто используете все эти алгоритмы? За 4 года единственное, что юзал это всякие штуки для решения проблем параллельного выполнения типа race condition и т.д.
>>2072670 Ну вообще регулярно что-то бывает умеренное. Просто когда умеешь сложное, о простом даже не задумываешься. А когда не умеешь, то можешь плохо сделать и не понять, что ты плохо делаешь.
Что-то висит в фоне, что надо бы сделать, но там совсем алгоритмоёмкое, извращения по синхнонизации данных.
>>2072654 да так и живут, за 30 баксов гоняют на автобусе с лежачими местами до границы Лаоса или Камбоджи и делают визараны. все довольно удобно организованно
>>2072670 Если нихуя не знать, то и не получится использовать. А так всякие базовые штуки проскакивают, хотя они зачастую уже реализованы в либах, просто нужно знать, что есть вот такое решение такой проблемы.
>>2072611 Путунхуа - китайский материковый язык, выучил в универе, жил в Китае 3 года, но это оффтопик, а на остальное тебе анончик ответил. Нячанг - тема, люди там годами живут и кайфуют. Правда много и быдла. Бошки там незаконны, но строгость закона компенсируется необязательностью его исполнения - дуют не все, но много кто, до иностранцев никому дела нет, если ты не химию местным толкаешь. Так че, проверка моего бэкграунда завершена и у меня есть кому делать мозг и от кого слышать, "какой ты тупой гуманитарий, так не надо, а так надо?"
>>2072693 Я просто даже кейсов таких представить не могу, вон выше задача была с расчетом произведения элементов массива без деления. У меня таких ситуаций с подобными условиями никогда не было, хотя и не круды пилю.
>>2072700 Может прямо такой алгоритм и не понадобится, если ты только всякими численными штуками не занимаешься.
Но ведь тут не про то, чтобы прочитать в книжке этот алгоритм. Тут про то, чтобы его придумать.
Ты так развиваешь у себя алгоритмическое мышление, чем больше разных задач ты решаешь, тем легче тебе что-то придумать и реализовать. Даже в крудах какие-то алгоритмы попадаются.
>>2072473 (OP) Привет ♂️ Хочу для начала сделать Максимально простым с одной страницей буквально. Собираюсь дергать статусы определённых страничек с ссылками к ним. Потом прикручу ещё что-то. Может графики какие биткоина и прочих паркетов. Думаю делать на Джанго. Или советуете Фласк? У меня ещё обязательное условие чтобы я мог разместить на Амазоне. Вот хочу ссылку найти от начала до самого деплоя. Может есть такие гайды.
>>2072473 (OP) Аноны, помогите, пожалуйста. Решаю я на степике пик рил, а ответ не проходит, хотя код правильный. Это я тупой или автор курса? [code lang="python"] def f(x, y, a): return (y - x < a) or (7 x + 4 y > 350) or (3 y - 2 x > 45)
q = 300
for a in range(q): ok = True for x in range(q): for y in range(q): if not f(x, y, a): ok = False break if not ok: break if ok: print(a) break [/code]
>>2073297 >я как код на 2ч оформлять? В шапке ссылки есть. Ты уверен, что это надо с помощью кода на питоне решать, а не математическими преобразованиями?
>>2073464 >>2073296 Вот попробуй на бумаге нарисовать три прямые y = f(x) для трёх разных условий.
Каждое условие определяет, что или над, или под прямой будет зона, где есть решение. Тебе надо будет найти такое A, чтобы область решений покрывала всю плоскость.
>>2073261 Вот инструкция по деплою приложения на джанго из трёх частей. Недавно нашёл, но не читал пока внимательно, первая часть более-менее адекватная вроде (это то, что в прицнипе я умею), другие не изучал.
>>2073261 >Думаю делать на Джанго. Или советуете Фласк? Не очень понятно, что у тебя за задача.
Джанго это CRUD. Если ты делаешь сайт какой-то, то однозначно лучше джанго. Если же у тебя приложение, которое само работает в фоне, и к нему интерфейс нужен, то скорее надо смотреть на flask/aiohttp.
Твоя задача не очень ясна, но судя по всему тут две задачи, первая собирать данные, вторая визуализировать их для пользователя.
как в VS code убрать эти подсказки? Вот эта например всегда выскакивает когда print() печатаешь и не исчезает пока не кликнешь куда нибудь мышкой. В настройках не нашел как это отключить
>>2073858 Спасибо большое > Как вы программировать на работе планируете с такой несамостоятельностью? Да я вообще как хобби этим занимаюсь. Ну и я пробовал искать, но почему-то не нашел
>>2073478 >Твоя задача не очень ясна, но судя по всему тут две задачи, первая собирать данные, вторая визуализировать их для пользователя. Да, именно так на старт. Это будет сайт «помощник» с разными страничками для команды куэ на самом деле. Чтобы они могли посмотреть статусы, посмотреть логи, отчеты. Думаю тогда Джанго? >>2073473 Спасибо бро. А есть гайд как делать сам сайт на Джанго? Элементарный. Деплой это уже в конце ведь.
>>2074140 Лучше думай не о том как написать еще один двач (это вообще программная задача, которая была решена уже кучу раз), а как его сделать популярным и как его монетизировать хотя бы до уровня самоокупаемости.
Пачаны. Есть такая задача, нужно сделать скрипт, который будет авторизоваться на сайте и парсить одну страницу раз в день. Я не программист нихуя, нашел туториалы по парсерам так в целом все понятно. Но, вот есть вопрос, на сайте есть recaptcha и в форме post передаются какие-то данные связанные с капчей. Это будет проблемой? Как-то можно это обойти?
> Думаю тогда Джанго? Джанго в любом случае лучшее, с чего надо начинать. Там много чего в коробке и ты так поймёшь, как правильно работать с фреймворками.
"легковесные" фреймворки на самом деле сложнее, они подразумевают, что ты довольно хорошо плаваешь в программировании, понимаешь устройство веб-приложений, ориентируешься во всяких библиотеках, которые можно прикрутить со стороны, чтобы самую базу сделать.
Поэтому любому, кто начинает что-то в веб и нет большого бэкграунда в программировании, опыта создания приличных приложений, начинать надо с джанго.
>>2073132 солнца больше, нет рек слякоти осенью и рек говна со слякотью весной, дешевые и бесплатные фрукты, море - повсюду куча райских пляжей из рекламы баунти, куча всяких ресторанов (рай для кишкоблуда), бошки, грибы, разные красивые парки и заповедники где можно почилить и позалипать в красивые пейзажи, нет зимы, когда нужно таскать блядскую зимнюю одежду как космонавт и покупать ее, передвижение в любую точку очень удобное - на обычном скутере - дешево и пиздато.
>>2074922 Кто сказал, что они живут как бомжи? Засиделся ты, аноша на одном месте. Максимум, что из антисанитарных условий приходит в голову, это муравьи в домах,тропические тараканы(редко - с ними легко бороться), и крысы которые далеко не у каждого вьета будут в доме, потому что хоть с ними и тяжело бороться, но вьеты очень чистоплотны и трудолюбивы и легко справляются с этой хуетой. Это все неприменимо к многоэтажной застройке, у многоэтажек в Нячанге хороший резист к тропическому DLL. Да, несколько веков будучи колонией и несколько десятилетий будучи совком сильно травмировали общество в плане экономики и сознания, давно сельхоз и промышленные реформы напрашиваются, коррупция в стране есть, но я бы не сказал, что средний вьет живет хуже среднего русского, скорее наоборот.
>>2074537 Инпут в аргументах это очень плохо. Exit не используй, это не си тебе. Попробуй @dataclass, здесь уместно будет. То что ты творишь в здесь >Hero('Здоровье:'+ str(100),'Урон:'+ str(25),'Мана:'+ str(100)) Это, вообще, ужас. Переопредели для этого __str__.
>>2074935 >что они живут как бомжи? То есть после той же машквы или варшавы какой-нибудь ты в говновьетнаме с глиняными дорогами и дизентерией будешь себя ощущать как дома, лолблять?
>>2074935 кстати поясни что такое ДЛЛ тропический и что за ад там еще есть? всякие змеи и черви кусают? пауки, дикие пчелы? и правда ли что они там едят только летучих мышей и обезьян? и все вьетнамки же страшные пиздец? там еще сильны традиции вьетконга?
Посоветуйте, где можно почитать изменения в версиях питона написанные человеческим языком. То, что на офф сайте предлагают состоит на 95% из воды и абсолютно не нужной хуйни, а сама важная информация запрятана в абсолютно рандомных местах. Гугл тоже толкового ничего не советует.
>>2075042 Лол, я жил и в Пекине и в Шанхае и в Даляне - попиздатее Москвы будут города(За варшаву не шарю). Все равно выберу Нячанг. Дизентерия? Не ешь мусор с помойки и мой руки (за пол года во Вьетнаме ни разу не траванулся ни чем, хотя я мясо почти не ел вне хороших ресторанов. Глиняные дороги? - не суйся в горы. Анош, ну если ты не понимаешь кайфа жизни в тропиках, тебе больше нужно цивильного, европейского, то я с тобой спорить не стану. Я лишь говорю, что в жизни в тропиках есть свой кайф, там дешево, там фрукты, там море и много солнца. Мне по кайфу, как тысячам анонов по всему миру. (>>2075061 Из ада - ну крыс побольше в стране, им на улице очень хорошо. Муравьи в домах частной застройки. Если ты не черт и не чухан - ты и их не увидишь. Змей и пауков среднестатистический анон за все время пребывания в стране не видит ни разу, если ему не придет в голову рыться в мусорных кучах в деревнях где-нибудь. Где-то на севере анон увидел дома сколопендру.Если не шляться там, куда сами вьеты не лезут, то тебя никто не укусит (если ты только сам ребят из кафе Луизиана не попрпосишь) Это в целом за тропический сервер. А теперь за Нячанг: самый ад, это если жилье выберешь неправильно - в шумном месте например, с плохим видом, но это в целом мелочи, но иногда слишком впечатлительным может испортить впечатление, это в первый заезд может случиться, если уж совсем заебланить или денег зажать снять на первой/второй линии и забраться в совсем стремные трущебы где нибудь рядом с рынками. Про вьетнамок - забей, это не тайские и филлипинские шлюхи, они на иностранцев сильно не кидаются,хотя массаж с отсосом не проблема, но даже по сравнению с теми же китаянками, они не бросаются на иностранцев, хотя я и не пытался знакомиться. Во вьетнам ехать не за кошкоженами надо.
>>2075518 ну так что, анонички, я заинтересовал кого-нибудь?поговорим за коучинг? Я вам - английский, который может пригодиться любому аноше. который достоин большего. чем россиянские зарплаты, а вы мне - немножечко своего времени, пока границы закрыты хотя бы так, онлаен
>>2075518 Вообще мне кажется, это прикольно может быть в первый год-три. Если же о постоянке думать, то там всё-таки другая цивилизация и ты там совсем чужой, мы всё-таки плоды западной цивилизации, как ни крути.
Но правда тут про постоянку не говорили, а про то, чтобы просто какое-то время пожить, там год-два.
>>2072473 (OP) Чем таким легковесным растеризовать размеченный форматированный текст? Нужно: 1) Жирный/курсив 2) Менять цвет отдельных слов 3) Вписываться в блок 4) Уметь в альфаканал, ложиться на фон.
>>2076168 Кафе Луизиана - синячная, там все алкаши россиянские тусят. Насекомых не жарят, но мясные лавки на рынке обходить нужно за километр - страшные запахи. Мопеды и вьетнамцы везде, это страна вьетнамцев и мопедов.
Сап. Есть идеи, как можно руки занять с помощью кодинга? Сначала думал про задачки с лит кода и тому подобное, в принципе подходит, но там надо мозги включать + задачки самой высокой сложности умещаются буквально в пару десятков строчек. Есть что-то такое-же, только в обратную сторону - дохуища кода при этом с минимумом логики?
Сап питонач, есть вопрос: какие именно типы диаграмм UML нужны чтобы сгенерировать их в питоновский код? Правильно ли я понимаю что для условного dia2code достаточно диаграммы классов? В инете документации по этой теме что-то маловато
>>2076608 Проблема литкода в том, что задачки могут быть реально сложными, в смысле хрен додумаешься до решение. Но само решение на пару десятков строк.
Литкод учит тебя думать и придумывает, но совсем не учит тебя писать большой код.
А инженеру-программисту в первую очередь надо уметь с большим кодом работать.
>>2076396 пиши всякое говно на джанге, там прилично кода например напиши сайт, усеянный кнопками и формами разного размера и цветов, лол максимально бесполезная куча кода
>>2076396 >дохуища кода при этом с минимумом логики Зумеры изобретают пет проекты?) Ну сделай бота для телеги или какую хуйнюшку на pygame. Мне кажется, будет сложно писать код ради кода, надо, чтобы ты при этом делал что-то интересное для себя.
>>2076396 Мне кажется ананасы не понимают запросы этого человека. Он литерали хочет задачу чтобы писать код ненапряжно - только руками, с отключенным мозгом.
То есть буквально какая-то задача "перепиши легаси говно проект-нейм на Питон используя лапшекод, с прослушиванием ютубчика-твича на фоне".
>>2076972 Целочисленное деление Для положительных чисел оператор целочисленного деления ведёт себя как обычное деление, за исключением того, что он отбрасывает десятичную часть результата. Рассмотрим работу данного оператора на примерах:
print(10 // 3) print(10 // 4) print(10 // 5) print(10 // 6) print(10 // 12) Результатом выполнения такой программы будет:
3 2 2 1 0 При делении отрицательных чисел необходимо помнить, что результат целочисленного деления не превосходит частное. Другими словами, округление берётся в меньшую сторону (число -4−4 меньше, чем число -3−3).
Результатом работы следующей программы:
print(10 // 3) print(-10 // 3) будут числа:
3 # округление в меньшую сторону -4 # округление в меньшую сторону
>>2076972 Логика как раз очень понятна, потом что вариант, как получить результат целочисленного деления: 1) берёшь остаток от деления, оно же деление по модулю -13 // 3 = 2
вычитаешь из числа остаток -13 - 2 = -15
И это число делишь нацело, получается -15 / 3 = -5
Эквивалентная логика в том, что если ты какое-то число X поделил на три и получил Y, то если от него отнять 3, то Y должен уменьшится на 1 без вариантов. (X // 3) == Y ==> ((X - 3) // 3) == (Y-1)
Просто вот из математических - алгебраических соображений должно быть только так. А питон родом из математической среды.
Посмотрел, в Си, точнее gcc, получается не -5, как в питоне, а -4.
В этом плане путаница. Скорее всего так в инструкциях деления процессора реализовано, но это надо смотреть.
В данном случае мне кажется, что логика питона 100% более правильная и правильно, что они реализовали именно так.
Пацаны, накидал примитивный компрессор изображений и не могу понять, что не нравится методу Image.save, как уже не пробовал крутится - постоянно ошибка доступа или не находит путь/файл, как будто метод не способен на запись/перезапись. В документации PIL.Image не нашел никакого мода, кроме как на чтение.
>>2077009 Может слеши не в ту сторону? Может путь сохранения плохой слепляется? С PIL ты все делаешь правильно, а со своей операционной системой, по-видимому, нет.
>>2077087 Traceback (most recent call last): File "C:\Users\Sergoshko\Desktop\newtry.py", line 22, in <module> img.save(os.path.join(dstPath,srcPath),quality=100) File "C:\Program Files\Python38\lib\site-packages\PIL\Image.py", line 2169, in save fp = builtins.open(filename, "w+b") FileNotFoundError: [Errno 2] No such file or directory: 'd:/output/0000\\1000\\2000\\IMG_1802.jpg' >>>
Такое дело. У меня помимо обычного системного интерпритатора стоит MSYS2 где тоже есть интерпритатор питона. Из-за этого команды из консоли по умолчанию отправляются в msys-ный питон. Как это можно пофиксить?
Сап, есть одна обновляющаяся БД. И есть скрипт на питоне, который обрабатывает несколько таблиц в одну и записывает результат в другую таблицу. Чтобы каждый раз не читать таблицы полностью сделал грубо говоря "SELECT * WHERE date='yesterday' ". И обрабатываю только за вчерашний день. Как можно сделать это по-другому? Например, если у нас нет поля с датой.
>>2077131 Ты сам подумай, как тебе взять нужные данные и отсечь ненужные, по какому принципу ты определяешь вот это?
Придумай логику, и будет понятно, как это закодировать. Иначе как минимум будет криво и с дырами.
Можно, например, делать через ограничение LIMIT, но так ты должен закладываться на то, что все нужные данные в лимит уложатся, а это очень вот нехорошо закладываться на это.
Всем привет, подскажите, пожалуйста, django проекты с открытым кодом. Хотел бы научиться каким-то используемым приемам и правильно писать документацию.
я искал, в подборке были какие-то студенческие работы
Привет, седня тех.собес вот по этому стеку Проблема в том, что я последние полгода занимался всякой асинхронщиной с микросервисами, знания джанги сильно ниже среднего
Такой вопрос, что может подразумеваться под "бест практисами" и "оптимизации производительности" в контексте джанго экосистемы?
>>2077678 Это такой сорт илитизма - найти пононеймовее и поебанутее книжку? Алсо, судя по пять сек в гугле оно про второй питон, вряд ли тебе нужно именно это.
>>2077752 Лутц нихуя не свеж и принципиально не хочет обновляться. Где-то есть его сайтик, где он ведет список, чего надо покурить нового после книжки.
Как понять, какую логику нужно оставлять на клиенте, а какую на сервере? Вот, например, есть чеклист со значениями, они должны быть актуальными, мне на клиенте запрос делать и отрисовывать? Вот совсем не понимаю взаимодействие фронта и бекэнда, материалов по этому нет.
>>2077837 У тебе смешались разные подходы. Бэк может делать вообще всё, т.е. формировать и отдаватьготовые страницы, а может наоборот всё висеть висеть на клиенте, в таком случае бэк нужен только для персистентности.
>>2077864 Опыта в программировании нет. В идеале, хочу изучить питон в объеме, который позволит этим знанием зарабатывать. Ну а в процессе изучения уже буду видеть, даётся это мне, или ни в зуб ногой
Правильно ли мое решение? У каждой функции есть адрес, мы создаем декоратор где проверяем адрес функции, если его нет в словаре, то мы его туда пихаем и ставим счетчик 1, если есть то просто добавляем +1.
Посоветуйте книгу, которая откроет глаза на многие интересные вещи в программирование.Под интересными вещами я имею ввиду расширит мой кругозор. Я сейчас пишу на питоне, но можете и по джсу кидать, ну и не обязательно что бы книга была про программирование. Может быть и про комп.сети и т.д.
>>2078013 Ты динамически изменяешь сигнаруты функции добавляя ей состояние. Такое можно только замыканиями делать не превращая все в говнокод. Пусть лучше декораторами обмазывается которые сами используют замыкания
>>2078005 С++, любая книга. Нет, это не шутка. Много всяких интересных концепций, указатели, адреса, выделение памяти, деструктор, тру перегрузка функций, делегаты, интерфейсы, виртуальные функции и прочее.
Правильно ли я понимаю?
Данил23/06/21 Срд 21:00:51№2078360175
Правильно ли я понимаю как работает этот код?
Здесь вышло число 33(count), 1 у нас лишний так как добавляем его до вызова next.
Мы вызываем его такое же количество раз сколько у нас элементов, то есть в первом задаче лежит [15,10,5,2] выходит 32, во второй так-же, но почему не выходит число 64, если мы по первому прошлись, посчитали, бац стоп итерейт, идем по второму, стои итерейт в общем 64(65) раз(а). Почему вышло 33?
Может это быть из-за того что мы передаем туда один список?)
import queue def task(name,queue): while not queue.empty(): count = queue.get() print("Очередь",count) total = 0 print("Name",name,'running') for x in range(count): total+=1 yield print("Name",name,'total',total)
def main(): work_queue = queue.Queue() for work in [15,10,5,2]: work_queue.put(work) tasks = [task('One',work_queue),task('Two',work_queue)]
done = False count = 0
while not done: for t in tasks: try: print('count',count) count = count + 1 next(t) except StopIteration: tasks.remove(t) if len(tasks) == 0: done = True
Помогите, пожалуйста. Когда то давно качал питон и саблайм по обучающим видосам и забросил. Сейчас прохожу курсы, и по ходу курса нужно скачать анаконду, там пользоваться юпитером. Начинаю установку и она ругается как я думаю на то что я установил питон ранее, просит другую папку указать, что делать? не хочу что то лишнее устанавливать.
>>2078360 Нихрера не понятно, что ты хочешь и как ты это хочешь.
Ты кладёшь в очередь какие-то числа, 4 числа, у тебя эта очередь одна на две задачи, каждая задача берёт оттуда данные, соответственно эти данные достаются только одной очереди.
А как должно быть и что ты хотел?
И вообще странный код, не понятно, что ты пытаешься сделать. Какой-то свой цикл обработки сообщений примитивный.
Напишите функцию con_class, которая принимает целое положительное число n и возвращает итерируемый объект (iterable), содержащий все делящиеся на n целые числа в промежутке от 0 до 100 (обе границы включены).
Определите эту функцию в терминах другой функции как частично применённую (имеется ввиду, что вам не понадобится создавать свою функцию, а потом ее уже частично применять к чему-то --- достаточно обратиться к какой-то встроенной функции).
.. собственно вот мой код: from functools import partial con_class = partial(divmod, 101, n=int(input()))
и ошибка:
Error: Traceback (most recent call last): File "jailed_code", line 6, in <module> print(list(con_class(int(input())))) EOFError: EOF when reading a line ..
ЧЯДНТ? Куда смотреть... Решение очень простое должно быть, но как-то не могу понять, куда копать...?
Привет я сделал маленький код который генерирует 10 ссылок на скриншоты ну да, все вроде норм работает но он почему-то открывает не 10 ссылок, а рандомно от 1 до 3, как фиксить? https://pastebin.com/fxzaYrW2
Как запустить процесс чтобы питон ждал окончания работы процесса, с тайм-аутом обрубал его? Пик - мое, при запуске хоть ран, хоть колл, хоть что - питон сразу говорит что весь скрипт успешно исполнен, и процесс поднимается как бы сам по себе, ну и на таймаут ему похуям.
>>2078404 Кстати я подохуел с веса анаконды, только установил конду и юпитер а она на диске 10 гигов почти занимает, нихуя себе. и оперы поджирает тоже так прилично при работе.
Парни, я написал парсер конфигов nginx. Он собирает необходимые мне данные и в json-формате я их с сервера забираю. Парсер с библиотекой socketserver висит на порте в фоновом режиме и в любой момент можно забрать, например телнетом. Но проблема в том, что, если меняется конфиг nginx'а , то пока не рестартанёшь демон парсера, он будет отдавать прошлую версию конфига потому что, как я понял, он один раз открывает конфиг при первом обращении и работает уже с ним. Подскажете, можно сделать чтобы при каждом обращении парсер заново открывал конфиг?
>>2078686 Видимо, процесс, который ты запускаешь, в свою очередь запускает 1с в отдельном процессе, а сам завершается. Это тебе к 1с-никам надо, узнать как правильно получать pid и убивать 1с. >>2078913 вызови .read() еще раз, должно сработать.
>>2078913 Очевидно, что надо просто перечитывать файл.
Или при обращении к серверу парсить, или просто периодически, причём лучше использовать специальные модули для этого, смотри модуль watchdog, например.
Я тут сделал свой словарик, который может асинхронно ожидать появления определенного ключа (не спрашивайте зачем), пока придумал только реализацию через фьючуры, но может это более элегантно сделать можно?
О великий анон! Есть проблема сделать бота для Viber за бесплатно. Делаю деплой на Хероку, но ничего не взлетает. Есть такие, кто делал бота именно для Viber? Куда и как размещали его?
>>2079382 Писал ответ, "хотел сказать норм, но есть к чему придраться", описал к чему. Ответ слетел, и хорошо.
На самом деле есть ошибка в __set_intem__. В духе race condition. Ты не предусматриваешь ситуацию, когда можешь дважды записать в ячейку словаря, когда кто-то её ждёт. Так ты попытаешься дважды вызвать set_future() для одной фьючи, из-за чего словишь исключение.
Второй момент, придирка уже, если делаешь словарь, то хорошо бы сохранить функционал словаря. В том числе удаление элемента. Оно тоже будет некорректно работать в некоторых таких ситуациях. Можно или обойти, или заблокировать возможность удаления, последнее нехорошо, если ты интерфейс словаря всё-таки реализуешь.
>>2079429 >>2079430 >На самом деле есть ошибка в __set_intem__. В духе race condition. Ты не предусматриваешь ситуацию, когда можешь дважды записать в ячейку словаря, когда кто-то её ждёт. Так ты попытаешься дважды вызвать set_future() для одной фьючи, из-за чего словишь исключение. Это можно было бы через проверку done у фьючура сделать при присваивании элемента. Но потом подумал и решил что __setitem__ придется вообще убрать, так как при перезаписи значения до смены контекста через await будет доступно только последнее значение, а остальные исчезают. Нужно новый асинхронный метод пердолить для добавления что бы явно блокировалась перезаписывание до тех пор как как все ожидающие корутины получат результат.
Вопрос супер мега тупой. Если вызвать функцию до того как ты ее указал то она не работает и выдает ошибку, что делать если нахуй нереально их расположить в таком порядке потому что они вызывают друг друга, есть какие-то лайфхаки чтоб это чинить?
>>2079451 Глобальные переменные определяются на старте, поэтому в глобальном скоупе это имеет значение. В самых функциях уже нет, потому что они не выполняются сразу. https://ideone.com/9lFKC5
>>2079450 >так как при перезаписи значения до смены контекста через await будет доступно только последнее значение, а остальные исчезают Это зависит от того, какое поведение ты в принципе хочешь реализовать.
Ты можешь, например, записывать результат в саму фьючу, тогда там будет как раз первый присвоенный результат и ты частично обойдёшь заодно проблему удаления элемента (фьюча будет возвращать результат, хотя элемент уже удалён).
В общем тут смотря что ты хочешь реализовать и зачем. Может ты хочешь сделать что-то вроде очередей-каналов, может Event.
Если как-то сильно усложнять логику, то надо просто отказываться от реализации на базе словаря и писать что-то своё.
Твой словарь мне ещё более-менее понятен, чтобы блокировать чтение из словаря, пока там что-то не появится. Ну и брать самое актуальное оттуда, не пытаясь отслеживать промежуточные значения.
Иначе ты делаешь что-то из паттернов pub/sub, подписываясь на канал и читая данные оттуда.
>>2079500 не знаю как элитные байтоебы делают, но опишу как делал я:
во-первых, ты ее должен форкнуть прямо с веб-интерфейса. клонировать уже из своего репозитария. потом сделать в нем свой бранч. перед отсылкой PR, слить все коммиты в один. Поискать таки кнопку PR в веб-интерфейсе.
но будем честными, нахуя ты в основополагающую библиотеку полез? что там можно исправить?
>>2079324 О, это твой гит? Натыкался на него, когда один момент гуглил. Момент сам решил, но твой вариант парсера показался интересным и годным. Я этот >>2078913
Какие иде есть для питона, кроме пайчарм и вс код? Пользуется кто? Вопрос связан отнюдь не с тем, что меня не устраивают эти два, меня просто друг спросил. Ну я ему ответил, что пайчарм это дефолт, а вс код для уебищ. Ничего не упустил?
>>2072473 (OP) Суп двощ Я использую микрософтовский text_dataset_from_directory для своей нейронки, но когда я его вызываю, он принтует свою отладочную инфу в мою красивую консоль и поганит мне кошерный вывод моей отладочной инфы Подскажи пожалуйста, как вызывать text_dataset_from_directory без принта в консоль?
>>2079989 На случай, если кто-то будет гуглить, лично я использовал такое решение: в месте, где мы вызываем "нежелательную" ф-цию просто перенаправляю выходной поток нахуй во временный файл, потом возвращаю обратно в консоль Решение червепидорское, если кто-то даст лучше, с радостью воспользуюсь, но работает
>>2078404 Тебе не нужна анаконда - юзай колаб или подобные(каггл, даталор, может у твоей обучающей площадки есть свой с какими-нибудь инструментами проверки). Во-первых у тебя все библиотеки уже загружены, тебе не надо ставить пандас, нумпи и матплотлиб себе не в комп, не в виртуальное окружение, тебе надо просто import pan.. и он тебе предложит сам import pandas as pd~. Во-вторых можно нароллить себе теслу т4, врядли твоя даже 2070 вытянет и половину той же мощности, это если тебе нейронки пинать надо, тебе не надо скачивать 20 гб говна, и я хз насколько ты юзер, но поскольку у тебя винда и такой вопрос - ты скорее всего не сможешь ее искоренить, вычистить окончательно и всегда будешь иметь проблемы с кучей версий питона на пеке, тебе это не надо Сейчас преимуществ от локальной работы нет никаких, но если вдруг у тебя есть майнинг ферма - ты все равно подключил локал рантайм колаба, просто потому что у него самый удобный фронт и интеграция с гугл,диском
В чужом коде, который я ебошу, второстепенные классы в коде находятся после первостепенных. например, class Program: # первостепенно class ProgramOptions: # второстепенно и всё работает норм.
Пишу дополнение к этой штуке с похожей иерархией, и метод первого класса (даже не __init__) не просекает тему. Я там даю умолчание параметра функции как инстантинацию этого второстепенного объекта.
В чём прикол? Так нахуй некрасиво исходники вверх ногами делать.
Вот смотрю по всей Украине джунов на джанго почти нет, только дата сайенс или машин лернинг(они мне противны, ну и вот и все).
У меня есть небольшой опыт на фрилансе, плюс я сейчас изучаю джанго, вроде неплохо шарю в БД - PostgreSQL, разбираюсь с гитом, но не идеально. Разбираюсь в алгоритмах и структурах данных, могу пояснить что такое стек, очередь, связной список и т.д, знаю несколько инструментов на таком себе уровне. Результат такой, что мое резюме даже не читают, просто скпипают, меня даже на тех интервью не зовут. Конкретно на джуна на питоне вакансий почти нет,походу было ошибкой его учить. Я подумываю взяться за JS(для фулл стак) или за Java + Kotlin(для андроида), как-то душно здесь.
sys.excepthook не работает, да и все примеры с ним времён второго питона. Есть сейчас аналог, или эту штуку удалили как не питонную, и нужно просто вручную обернуть в try тот код, все ошибки из которого я хочу сам обрабатывать и записывать куда мне нужно?
>>2080701 Не знаю же. Какая-то виндоус-проблема, походу, лол. Я ведь специально проверил и в консоли, и в виде файла - запускать что-то мелкое удобнее в этом idle (для проверки перед засовыванием в крупные проект), чем создавать отдельный файл в громоздком пучарме, где он неудобно с отдельными файлами работает.
При этом в пучарме работает, вот после твоих слов проверил ещё раз, увидев что это ещё работающая фигня. Спасибо.
>>2080703 Наверное, idle сам что-то с ним мутит или как-то по-другому перехватывает. Если запускать в чистой интерактивной сосноли, то всё тоже работает.
Пучарм добавляет пробелы в начало многострочных строк, в итоге я не могу отформатировать код через ctrl+I. Можно как-то это отключить? Может быть этот баг пофиксили в новых версиях? У меня стоит древняя 2019.3.4
>>2080729 Да не почему. В другом месте стоит как ты написал. Правильнее спросить зачем мне вообще ctrl+i нажимать, лол, если тут на стадии написания кода всё выравнивается. Привычная из крестов, перед нажатием ctrl+s нажимать ctrl+i, и я случайно все тексты в файле сломал, что было очень обидно, что теперь их поправлять.
Посоветуйте что для этого использовать, хочу создать бота для телеги, но нет идей, пришла идея сделать запоминалку.
Какую фигню нужно для этого юзать, цель - Будет бот который будет запоминать лица людей и после если человек говорит покажи мое лицо, то он показывает его)
Если существует более сложный способ сделать что-то более быстрым и экономичным, но ты используешь способ сделать хуже, но поскорее и проще, то ты не программист, ты — мошенник! С пожеланием рака яичек, ASM/C программист.
>>2080823 Но пичарм довольно тяжелый для системы. А Тони куда легче и он прям сделан для нубов, которые хотят пошагово смотреть как у них код переменные обрабатывает.
Есть у кого нибудь статьи/книги по разработке вместе с S3? Надо хранить файлы, а я к S3 отношусь как к локальному диску, что не есть правильно, как мне кажется.
>>2081201 Проблема в том, что у людей может не быть денег, если они еще учатся. На Степике вообще рекомендуют Wing IDE, а у вас тут как старообрядческая коммуна, в которой знают только PyCharm и Vscode.
>>2081209 Да чет безразлично чем пользоваться. Главное, чтобы подсветка была, автодополнение, какие-то подсказки типа что за метод, может отладчиком когда-то начну пользоваться, удобное перемещение по файлам да возможность нескольких за раз да и всё. Остальное тупо делается через терминал. В чем я не прав?
Делаю бота для изучения английского языка,суть такова, в день дается 5 новых слов, как можно выставить этот промежуток в день для каждого пользователя? Не в БД же хранить
Или на крайняк, если точность до десяток секунд не особо важна, то раз в минуту делать запрос в бд и если текущий интервал миньше минуты назад был, то запускать уведомление юзеру. Но это совсем костыль.
Так, чё учить дальше? Вот я основы питона выучил. Задачки на литкоде и чекио порешал. Но вот когда пытаюсь продумать реальный проект в голове пусто. Знаю, многие советуют пойти на гитхаб почитать готовые проекты. Я пытался. Вот смотрю на код, и вроде отдельные функции что делают понимаю, но вот что в целом там творится нихуя не понятно.
>>2081375 Сделай игру. Небольшую стратегию, с одним ресурсом, тремя юнитами и двумя зданиями. В случаи питона это задача на несколько вечеров (если не перемудрить - а делать простое), если не делать октодеревьев всяких и всё полным перебором делать, чтобы лагало сильнее. И я не поверю что есть парень вкатывающийся в программирование, которому будет не интересно и у которого нет фантазий на тему какую игру он бы хотел делать.
Одновременно потыкаешь библиотеки для графики, ui, звука а ещё можно добавить мультиплеер и чтобы у тебя был веб-интерфейс, который позволяет через браузер посмотреть статистику - и какую область там ты себе хочешь - вражеские мобы с интеллектом на нейросети, которая выбирает отступать, бежать за врагом или стрелять.
Платиновый вопрос. Если я совсем ноль в программировании, но мозги вроде есть, с чего начитать? "Python для чайников" Джона Мюллера сойдёт или есть получше?
>>2076396 В чем прекол кода без прикладных задач? Если есть время, неторопись, передохни, поизучай еще что-то, а потом подумай как там можно прикрутить что-нибудь на пистоне. >>2081375 Что надо для проекта то и учи. Игру, бота, парсер, калькулятор. >>2081389 >Одновременно потыкаешь библиотеки для графики, ui, звука а ещё можно добавить мультиплеер и чтобы у тебя был веб-интерфейс, который позволяет через браузер посмотреть статистику - и какую область там ты себе хочешь - вражеские мобы с интеллектом на нейросети, которая выбирает отступать, бежать за врагом или стрелять. Домики набигают, можно грабить корованы...
>>2081959 > Что надо для проекта то и учи. В том-то и проблема, что не знаю что надо. Не могу я представить общую структуру полноценного проекта. Вот мне хочется запилить десктопную и более функциональную версию https://tabletopaudio.com/. Пошел искать библиотеки для работы с аудио, толком нихуя не нашел. Как хранить и структурировать данные тоже представить сложновато.
И снова здравствуйте. Как сделать сервер на Heroku с Webhook для бота Viber? Куда вообще начать смотреть, а? И второй вопрос: есть какая-нибудь библиотека для склонения русских ФИО?
есть 2 csv файла один большой формата a b c d b и второй небольшой формата d e f g. Где d это не уникальный id. Поскажите как их объедилить чтобы получилось a b c e f g,при условии что d в первом файле повторяется во многих строках?
>>2082142 последний год в вебе работал, вот и захотелось перекатиться. До этого с мл возился. да хуй знает насчёт игр. Я написал парочку, что-то вроде флэшки Little Rocket Man + музяка, понравилось. Но зп там не очень
>>2082146 На мой взгляд только в играх (инди формата) ты сам можешь себе ставить задачи и придумывать всякие решения. В этом плане в геймдеве скучно никогда не будет (если конечно на Юнити три-в-ряд не клепать как безумный китаец на конвейере).
Питон еще популярен у ученых. Можно подумать о том какой инструмент или сервис можно сделать для них.
>>2082150 я на факультете клепал уже, там денях нет ни у кого. а с инди тяжело лавэ иметь? страшно кидать работу на полгода ради того чтобы нихуя не заработать.
>>2082002 >ctx и path ? Поставь нормальную иде, там все можно посмотреть. >>2082085 Что непонятно? Думаешь какую штуку ты хочешь написать, думаешь функционал, потом думаешь структуру. У тебя по ссылке какая-то сложная для новичка йоба. Попробуй напиши что-то несложное, прикрути к этому уведомления в мессенджер, прикрути команды какие-нибудь. Потом допиливай функционал, думай как сделать лучше и тд. непонятно какой у тебя уровень знаний, может ты не понимаешь как хтмл работает даже и прочее.
Хотел проверить честно спизженный код на работоспособность в idle python, но он сука не стартует. На PyCharm стартует, но крашится при внесении данных в БД, мб в пичарме проблема, потому что уже такое было и пытаюсь через cmd стартануть, но нихуя. В requirments django-suit-ckeditor==0.0.2, но эта версия не встает ни в какую (скрин 2). Как пофиксить или хуй забить и в PyCharme уже БД копать джанго проект?
>>2082157 Да, и это не пошло на пользу игре. Кстати ты это зря, игра совсем не сложная - мне понятно как там сделать вообще всё без юнити, это просто очень долгая задача на полгода, год, два или больше - но никаких чудес там нету, в отличии от многих других игр, где одному это никак не вывезти.
>>2082170 Если ты один, то в самом деле разумнее на юнити, так как минимальный прототип будет уже через пару недель. Я бы на крестах писал совсем своё (работаю с opengl больше десяти лет), чтобы бесконечный мир, который не лагает из-за специальных структур данных для него, и всё в таком роде. Но и до первых результатов работать где-то ещё, и заниматься этим в свободное время - потому что 90% что даже если ты неплохо сделаешь, то про твою игру никто не узнает, как мне кажется.
>>2082165 А чего чудо? Там текстуры в 128х128 и десять мобов на всю игру.
>>2082228 разница небольшая что писать. Если ты что то хочешь не знаешь что, то ты нихуя не сделаешь в итоге.
можешь написать мессенджер с блэкджеком и шлюхами, можешь распознавалку ёбел с эффектами, можешь игруху. Можешь и форум захуячить, разницы никакой. Если думаешь как сладко найдёшь работу в отрасли - иди смотри вакансии, кого хотят над чем работать и просто пиши демо проект для подобных. Например, если ты в qt захочешь вкатываться, можешь сделать сапёра или вроде того, если совсем изи
>>2082142 мне кажется или в визуальных новеллах кода и логики мизер? там же основная работа это рисовка и написание диалогов. а остальное это прост овыбор реплик и смена фона
>>2082182 периодически в стиме хайпует очередной инди высер. это закон. они попали в струю, свезло. могли и затеряться сразу же. но если пошел хайп то можно быстро нарубить бабок низкая цена + мульти + возможность срать в игра = профит
>>2081440 >ну например в пучарме есть свой терминал, чтобы никуда не лазить лишний раз Это как-то очень притянутое преимущество. Во-первых, терминал появился в IDE ещё лет 20 назад, когда они работали на 1 мегабайте (мега, не гига) памяти. В том же VS Code есть. Во-вторых, далеко не всегда вообще им можно пользоваться. И реально особой экономии времени нет.
Я не пробовал пичарм, может стоит попробовать, но мне кажется, надо очень долго осваивать работу с IDE, чтобы научиться полноценной ей пользоваться.
Пользуюсь вимом с минимумом плагинов и VSCode.
Всякие автодополнения прикольно, но в чём-то порочная вещь. Какой-то принципиальной экономии в разработке не дают, потому что в основном время тратится не на набор кода, а на то, чтобы подумать, вникнуть и т.п. Это очень тупой код должен быть. Ну да, в случае там html/css удобно, там реально ускоряет, но там и думать особо не надо.
Реальная отдача от IDE начинается, когда ты можешь быструю навигацию по коду делать, гулять по исходному всех функций, что ты вызываешь, и т.п. От этого реальная отдача, когда надо разобраться, подумать, и т.п.
ХЗ, может этот пичарм с этим лучше справляется, не скажу, что я очень доволен тем, как вот у ВСкода это. Или я им просто не научился пользоваться. Или и то, и другое.
Само собой есть проблема, что такая навигация не всегда возможна, IDE не всегда может предсказать, откуда код для исполнения будет взят, пока не исполнит, конечно.
>>2080059 with open('help.txt', 'w') as f: with redirect_stdout(f): work_dir = PATH_TO_FILES raw_work_ds = tf.keras.preprocessing.text_dataset_from_directory( work_dir, shuffle=False, batch_size=count) for text_batch, label_batch in raw_work_ds.take(1): return text_batch.numpy()
Пытаюсь писать на пистоне всякую мелочь для себя. Смотрю чужой код, копипастю его и допиливаю, понадергал, кое как собрал с помощью говна и палок и готово. Читаю книги, но читать документацию библиотек совсем обломно. Если буду так делать и дальше то так ведь и остануть копипастомакакой да? Как вообще происходит путь хотя бы до мидла? unb4: программируй и все будет
>>2082697 Программируй и все будет (с). Лучше алгоритмы подучи и матешу, на хуй тебе документацию по каждой библиотеке читать? Будешь часто юзать - прочтешь рано или поздно.
забить ли хуй на питон если не хочу работать в дата саенсе и в смежных областях? что реально делается с питоном? на hh все питонские душные пиздец предложения или я мудак и не туда смотрю?
>>2082632 Если в книге про уток, то норм. Но, имхо, еще надо пздц как много смотреть реализацию ООП у крутых прогеров и самому дохера и больше написать, чтобы пользоваться всеми плюшками подхода.
А правда, что питон не используют при программировании в продакшн, потому что он очень медленный? То есть, если я выучу питон, то мне это никак не поможет найти хорошую работу программистом? Все те платные курсы про питон это обман?
>>2083275 Гвидо рассказывал, что они там в дропбоксе начали делать какие-то прототипы на питоне, чуть увлеклись, в результате > His recruitment at Dropbox made sense for the tech company. Dropbox has about four million lines of Python code and it's the most heavily used language for its back-end services and desktop app. Короче надо вовремя слить и перейти на джаву. 4 миллиона превратились бы в 20 миллионов, но зато быстрые.
>>2082773 так самому писать не так сложно, начни с простых задач алсо ты когда берешь чужой код например, ты понимаешь как он работает? если не понимаешь то нет смысла копипастить. если понимаешь значит сам уже сможешь написать в следующий раз похожий код а библиотеки они нужны для специфических задач, например ты хочешь что то реализовать, гуглишь библиотеку, упрощающую реализацию.
>>2082890 да что угодно с питоном делается. веб, боты, расчеты, графики, анализ данных, скрипты, парсинг, чтение и запись данных, работа с базами, нейронки, даже ебаные игры примитивные.
Братцы-кролики, допустим мне нужно послать n get запросов с несколькими параметрами которые меняются, где мне их хранить? Для теста сделал один - запихнул в словарь - но оно никак не масштабируется. Парсить из конфига?
>>2083327 Пытаюсь разбираться как все работает. >>2083275 >Все те платные курсы про питон это обман? В каком плане обман? За тебя собирают материал, разбирают, жуют и кладут в клювик. Будешь ли ты после этого программистом? Скорее всего нет. Потому что программисту надо уметь самому жевать, колоть и вообще. >>2083396 От пары месяцев если уже умеешь на чем-то писать до бесконечности. Зависит от того как часто и как упорно будешь заниматься. "норм проекты" бывают разные, лол.
>>2083427 >От пары месяцев если уже умеешь на чем-то писать до бесконечности Ну вот интересует опыт тех, кто вкатился в программирование сразу на питон с 0, и через сколько по времени они смогли получить/выполнять работу
>>2083436 Если ты всю жизнь работал грузчиком например то скорее всего нихуя не выйдет. Это как ты никогда даже на велосипеде не ездил но хочешь управлять космическим кораблем.
>>2083445 зависит не от этой хуйни нелепой а от обучаемости и желания конкретного человека. прост есть необучаемые которые хоть всю жизнь инженером проработали но нового нихуя не узнали за 30 лет, а им и не нужно. есть которые нахуй писать нормально не научились за 40 лет. не код писать имею ввиду, а просто блядь русскими буквами. типа КУПИ СЕГОРЕТ. Вот таким сложно будет, практически невозможно. А для обучаемых уже от желания зависит и терпения, в случае если некоторые нюансы обучения их раздражают
>>2083477 Двачую, на Степике курсы норм и заставляют математику школьную вспомнить и вообще. Минимум тебя до функций доведут (а сейчас там один продвинутый вышел, там вообще матрицами мозги ебут - хотел бы я посмотреть как часто тестировщику МАТРИЦЫ нужны).
>>2083480 Многим просто не интересно программировать, и дело не в деньгах или обучаемости. Плюс программирование менее линейно и наглядно чем например ебашить молотком, прогресс не особо может быть виден, особенно когда долго ебешься ебешься и результата не видно.
>>2083445 Не грузчиком, но с программированием не связан вообще никак. Но обучаем вроде, получил вышку по той специальности, которую хотел в далеко не самом плохом вузе.
Аноны, сорян за глупый вопрос, но я не могу разобраться, как с помощью Flask вернуть юзеру отправленный POST. Какое свойство или метод надо юзать?
Функцию не стал выносить в ideone, она ничтожная. @app.route('/postmethods', methods=['POST']) def get_post_data(): if request.method == 'POST': data = request.data return data else: return 'Make POST request.'
>>2083944 Зачем ты ему те же данные возвращаешь? У тебя что, API или формы какие-то? Если это сайт, то обычно юзера редеректят на страницу, которую он создавал/изменял.
Продублирую свой вопрос из вебача, а то пусто и уныло:
Есть ли какие-то интересные практические задачи, ради которых сеошнику/вебмастеру стоит освоить Python?
Парсинг? Поисковую выдачу парсить не приходилось пока что, а инфу с сайтов отлично парсит Screaming Frog, как это делается можно освоить с нуля буквально за полчаса.
Мониторинг сайтов по своему списку параметров? Можно накостылить на PHP даже с поверхностными знаниями обмазавшись stackoverflow.
Какие-нибудь дашборды с вытягиванием инфы с сервисов по API и компоновкой в удобном для себя виде? Опять же, накостылить на пыхе намного легче.
Один раз сталкивался с потребностью клиента нашей галеры в лайтовом анализе биг даты (распедалить XLS-файлы на несколько сотен тысяч строк суммарно и объединить инфу по некоему набору параметров), что теоретически оправдывало бы использование питона. Тем не менее, с помощью штатного погромиста сделал и это на PHP. В процессе осознал, что что выбрал максимально черезжопный путь и куда эффективнее было бы загнать всю инфу в БД и работать с ней там через SQL-запросы.
В общем, с одной стороны хочется освоить стильномодномолодежный язык погромирования хотя бы на базовом уровне, а с другой - непонятно что мне потом с ним реально полезного можно сделать. Реквестирую идеи.
>>2083487 >Плюс программирование менее линейно и наглядно чем например ебашить молотком
По-моему, программиование это нахуй просто пример линейности и наглядности, что может быть еще более линейно чем программа?
>прогресс не особо может быть виден, особенно когда долго ебешься ебешься и результата не видно.
Это связано исключительно с тем, что ты не понимаешь что тебе нужно либо что ты пытаешься сделать либо оба пункта. Просто когда у тебя новый проект, сядь с бумажкой и ручкой, поковыряй в носу и накидай от руки примерный план - что ты хочешь написать и как это написать.
>>2084155 Если ты умеешь в пхп, то сиди себе на пхп, это сравнимого класса скриптота. Можно катиться ради МЛ, в котором он расхайпован, а просто так ради молодежности, ну хуй знает.
>>2084155 >Есть ли какие-то интересные практические задачи, ради которых сеошнику/вебмастеру стоит освоить Python? Если ты чего-то конкретного не хочешь то ничего. Или ты хочешь чтобы я тебя убеждал учить пистон?
Аноны, кто-нибудь учил временные ряды (time series) для практического применения?
Может кто-нибудь посоветовать хорошие базовые учебники по ним?
Я взял пару солидных учебников для мат/экономических вузов, и, в своем стиле, сижу@конспектирую по 40 страниц в день и решаю все задачки, а нужно было с этим разобраться еще, как говорится, вчера.
Сорри за вопрос не совсем по теме треда, но мне кажется тут много кто с таким сталкивался. Хотелось бы что-то в стиле Head first, чтобы можно было пройти за 3-4 дня. Я понимаю что вникать нужно серьезно и без сомнения буду, но сейчас сроки горят, а на меня скинули проект с включением форкаста и мне нужно интегрировать существующие решения форкаста с выхлопной формой подачи, а делать это без понимания, хотя бы базового - путь вникуда.
>>2083482 ну такие курсы не только на степике, на курсере тоже есть где и математика (причем с математикой это тупо начальный курс стартовый) и заканчивая теми же матрицами с матплотлибами и прочей дата саенс хуергой
>>2084356 >>2084362 Он расчеты не через математические либы делает. Там видно жирнющий массив с вычитанием n. В питоне числа неизменяемые и при любом изменении переменной уничтожается старый объект и создается новый. Когда таких вычислений становится много, то начинается заметная просадка по производительности.
Всем доброго вечера. Я уже наверно почти возле стадии когда смогу устроиться на работу, но нужно подтянуть знания реляционных баз данных, выбрал PostgreSQL.
Ботов для телеграмма не предлагать, сделал недавно одного, для изучения английского языка, но это как-то скучно и ничего интересного там нет.
Я не имею опыта с БД напрямую, то есть чистые запросы никогда не писал, пользовался ОРМ, поэтому хочу освоить этот навык, буду учить PostgreSQL. Решил для себя выбрать какой-то проект, в котором можно хорошо применить эти навыки, выбор:
1 - Айтюнс или Спотифай в десктоп версии с синхронизацией с веб браузером, сделать что-то вроде проигрывателя, пока не решился, или попробовать как-то спарсить огромное количество музыки, что бы вышло действительно круто.
2 - Телеграмм боты меня больше не интересуют, так как там нет ничего интересного.
3 - Django-Flasк, там нет прямого взаимодействия с БД, все делается через ОРМ
>>2084395 >3 >Django Huy_Sosi.objects.raw('SELECT * FROM table')
>Flasк Тут вообще обзмеился. Если у тебя по дефолту алхимия ассоциируется, то тебе рано бд начинать учить, ты еще миерофреймворки не освоил db.engine.execute("Select 1from table")
https://www.codepile.net/pile/Ol9EVDl3 Анончики, почему функция работает в иде, но не работает на степике (я знаю, что ее не нужно там вызывать, передавать ей аргументы и т.д. написал - и все
>>2084431 Там нечему не работать. Обосраться два варианта - принт вместо добавления в список, или индекс при наличии повторяющихся чисел, тут надо решать через eumerate.
>>2084445 Ну у меня в пайчарме то, что я написал работало. Замутил список, как ты сказал, и в него заппендил то что было НУУУУУЖНОБЛЯТЬ. В степике заработало тоже, спасибо тебе, анончик
>>2084164 >По-моему, программиование это нахуй просто пример линейности и наглядности, что может быть еще более линейно чем программа? Речь про результат труда же, не тупи.
>>2084395 >3 - Django-Flasк, там нет прямого взаимодействия с БД, все делается через ОРМ Ну и в джанго напрямую SQL используется, и уж смотреть что там в запросы превращается просто необходимо.
Ты охуеешь, когда включишь отладку. Там элементарно может получаться так, что на вывод одной страницы свыше 1000 sql запросов будет делаться, это если таблица какая-нибудь простая. Когда можно было бы обойтись условно пятью запросами.
>>2084658 ОРМ это маня-высер типа вот давайте высрем еще 1 подложку чтобы в случаю чего провести миграцию с говно-1 на мс-говно-1 правда проебавшись вед реакцию на нулл по разному у разных баз и ваще орм дрысня нужна только для масштаба и однго типа баз, мол не нашли в базе свежей, ищем в кэше или бэкапе.
Какая же унылая параша это программирование, этим может заниматься только додик которого все подряд шпыняли на улице, а тянки обходят по 10 метровому радиусу.
>>2084658 ОРМ сама по себе хипстерская идея, типа давайте придумаем оболочку, которая спасёт мир.
Я мало работал с джанго, да и ОРМ вообще, я может просто готовить не умею.
То, что у Джанго, это пиздец какой-то, как только начинаешь серьёзно работать.
Я когда-то давно работал много с сырым SQL, на php правда, есть такой момент, что когда большой проект, где много объектов и запросов, то ты просто начинаешь изобретать свою собственную ORM. Я даже делал какой-то свой вариант.
То, что у джанго, очень порочно. Они предлагают использовать ОРМ в шаблонах, то есть когда у тебя фактически SQL запросы идут в тот момент, когда ты стратицу уже готовишь, а это очень нехорошая практика.
Она чудовищно неэффективная и они судя по всем до сих пор не допилили до эффективного состояния. То есть у тебя может быть цикл, условно объекты Section и Article, который ссылается по ForeignKey на Article. Ты хочешь выбрать все article с ссответствующим section.id, делаешь соответствующий orm запрос. Вроде бы совсем очевидная история. Но получаешь, что реально на каждую итерацию цикла идёт ещё один или несколько SQL запросов из Article на один элемент. А если там какие-то более сложные зависимости, то вообше писец. В принципе как-то обходится. Но если ты просто пишешь код, то под капотом будет дикий пиздец, жутко тормозной.
При этом даже кеширования нет адекватного. То есть у тебя спокойно может быть туча одинаковых запросов.
>>2084701 ну а хули ты хотел, бух женская професия, главбух мужская так и похрюмировние, максимум что макаки делают это то что делали телефонистки раньше
>>2084729 > Они предлагают использовать ОРМ в шаблонах, то есть когда у тебя фактически SQL запросы идут в тот момент, когда ты стратицу уже готовишь, а это очень нехорошая практика.
Может профессиональный джангист это прокомментировать, стоит ли избегать этого? То есть использовать орм в шаблонах.
>>2085009 >Может профессиональный джангист это прокомментировать, стоит ли избегать этого? Там разве запросы не во вьюхе делаются с последующей передачей результатов в шаблон? мимо писал на джанге 3 года назад
Тот анон, что уже писал и у кого опыт джанги номинальный
>>2085101 >Там разве запросы не во вьюхе делаются с последующей передачей результатов в шаблон? Нет, ты в шаблон на самом деле передаёшь не данные, а хитрые объекты, разные QuerySet. Они для тебя выглядят как данные, а реально когда ты пытаешься взять их значение, происходит исполнение SQL запроса.
Самое неприятное, что там постоянно чудовищно неоптимальные запросы, в смысле делается много простейших запросов вместо одного группового.
С этим можно бороться, ты можешь использовать метод values() data = MyModel.objects.filter(....).values() он делает что-то списка, это список легко конвертировать в словарь.
Плохо то, что так ты не можешь сшить данные, join сделать, только вручную сшивать. От ORM ничего не остаётся почти. Но вот как раз сшивать джанго ОРМ совсем не умеет, или я не умею его готовить. ХЗ возможно ли сготовить нормально, но средне случайный человек точно не умеет.
То есть для тебя выглядит всё отлично, но реально на каждое получение данных по внешнему ключу следует отдельный запрос. Соответственно надо сшивать самому, если хочешь скорости.
Присоединяюсь в вопросу, деды-душители джанги, расскажите, как живёте с ОРМ. Пользуйтесь, нет, какая практика на этот счёт.
У меня такое ощущение, что эта ОРМ только для того, чтобы быстро наваять прототип. Или для редких запросов, где скорость не нужна. Иначе придётся данные сшивать руками. Или не опускаясь до SQL, или даже свои SQL запросы через интерфейс ОРМ. Или вообще без ОРМ для каких-то запросов.
Столкнулся вот с таким кодом, который проверяет целостность файлов при загрузке, и он при сжатии изображения png постоянно возвращает False и серит ошибками что якобы "invalid magic numbers for given extension"
>>2085153 Да нормально живется с Django ORM, ей просто нужно уметь пользоваться. Если не понимать, как работает ORM под капотом и какие есть плюшки для оптимизации запросов - тогда все будет работать по-уебански и в базу будет спамиться over 9000 запросов. Также, многое зависит от структуры данных и их разделения на таблицы БД. Но стоит понимать, что для задач аналитики, где нужно много данных из разных таблиц вытащить одним запросом ORM не подойдет. Для относительно простых операций, коих 95% в вебе - отличный инструмент.
Насчет values - он не для оптимизации используется, а просто напрямую нужные поля вытягивает. Если не нужна вся модель - можно использовать only. join-ы оптимизируются через select_related и prefetch_related. Если надо циклом пройтись по куче объектов из базы - можно использовать iterate. Короче, RTFM
Проблема в том, что значение arg2 - число, и по этому числу в arg4 надо взять срез. Я, конечно, могу то же самое выражение написать в arg4 для взятия среза, но получается слишком громоздко. Можно как-то без введение новых переменных получить готовое значене arg2 и использовать в arg4? Т.е. получается вызов ключа внутри самого словаря.
>>2072473 (OP) Короче, есть 2 знакомых ирл, веб программисты, вкатывались оба через js, один из них беком сейчас занимается, второй макакич. Говорят мне что питон для вкатывальщика не нужон, ты новичок пиздуй в веб. Но сука, душа лежит к змее. Что делать?
>>2085251 Чтобы с интами и стрингами иметь проблемы - надо очень захотеть. А вот когда библиотеки вместо строк или листов возвращают свои объекты - это боль.
В питоне реально нет полноценной имплементации max heap и надо использовать min heap помещая туда отрицательые элементы?)))0)))) не знал, что питон настолько язык для умственно неполноценных
>>2085463 Очевидно же, что каждый макака свое болото хвалит. Вкатывайся, как ты хочешь, а будешь советы слушать и заниматься какой-то хуйней неинтересной, перегоришь и вообще забросишь.
>>2086200 В первом случае ты тупо вызываешь функцию как атрибут класса, self забирает первый элемент. Во втором случае ты вызываешь метод объекта. A = Buffer() A.add(1,2,3,4) это то же самое, что Buffer.add(A, 1,2,3,4)
>>2086200 >A = Buffer >A = Buffer() В первом случае A это класс Buffer. Во втором случае ты создаёшь экземпляр класса, то есть ты создаёшь обект класса. Что тебе скорее всего и нужно.
Соответственно в первом случае ты напрямую вызываешь метод, не привязывая его к объекту, первый параметр перейдёт на self.
Всем привет, я вот изучаю пайтон уже около 6 месяцев и решил выбрать для себя путь по которому идти, в планах или дата инженерия или веб. Я учусь на CS за границей, хорошие знания английского, но слабый мат, прям очень слабый, уровня 7 класса +-, но мне это пока не мешала создавать небольшие приложения и выполнить пару заказов на фрилансе.
Смогу ли я с таким мат бэкграундом в дата инженерию, нужно ли это там действительно? Сама область очень нравится. Математику я потихоньку учу, но тяжеловато дается.
>>2086474 Ребят, есть вопрос, я в Python только одним глазком, нужно сделать простую програмку. Ее смысл заключается в том, что она находит названия всех функций в файле, а потом их появление, я сейчас в самом начале, дайте совет как ускорить работу. Какие-то тонкие нюансы и т.д., заранее спасибо. Ибо у меня 11к слов, и каждое ищет по 0.04 секунды(400 секунд ждать такое себе).
Сап двач, хочу прокачать девопс скиллы по организации работы или етл, не суть. В идеале научиться деплоить скрипт с использованием airflow и докера на каком-нибудь амазон сервисе. Но я никогда раньше такого не делал, и не хочу приобретать каких-то неправильных или устаревших практик. Может есть какие-то источники, как это все делают грамотные люди в проде? инб4:гугл Спасибо.
>>2086639 Вторую часть я что-то не понял. Если имелось в виду искать определение функций, а потом количество их вызовов, то это лучше делать за один проход. Ищешь определения и пихаешь в список, ищешь любые вызовы и пихаешь в collections.Counter. И потом по списку функций забираешь значения из каунтера.
>>208666 Мне просто нужно будет потом то что нашло, изменять на другие слова, вооот, а каунтер только число совпадений дает. Смысл программы в том, что она меняет названия функций на Il1Il1Il(i большое L маленькое) и потом мне вызовы нужно найти и также поменять)
>>2086673 Есть текстовый документ с кодом на языке Jass(Варкрафт 3 язык), мне нужно в нем, найти название всех кастомных функций, и изменить их. Первая функция будет ii вторая il третья i1 четвертая iii пятая iil и т.д., мне нужно найти вызовы этих самых функций, т.е. в тексте найти название функции до ее переименования(шифрования) и переименовать ее.
Есть тут спецы pandas? Помогите, пожалуйста, сообразить, как лучше выполнить такую последовательность действий: 1) Взять датафрейм 2) Взять срез (несколько строк) с этого датафрейма 3) Что-то с ними сделать 4) Удалить эти строки из датафрейма из п.1 5) Повторить шаги 1-4 6) Удалить опустевший датафрейм из п.1
>>2086675 Тогда лучше грузить целиком и регулярками заменять. Вот тебе пример. Т.е. собираем все функции, а потом замена с коллбеком. https://ideone.com/9zt20p
>>2086690 Код слишком сложен дня меня, есть пара вопросов, функция repl принимает аргумент, но в 16 строке ты его не передаешь как она понимает с чем работать? Я посмотрел findall функцию в гугле, и она принимает только 2 аргумента, что третий аргумент означает? Строку с names вообще не понял
>>2086696 findall находит все имена функций, потом через join склеиваем в регулярку вида name1|name2|... sub её ищет и на каждое совпадение вызывается repl с найденным значением, а возвращаемый результат используется для замены.
>>2086748 Никакие. А какой язык ты выбрал мейновым на этом поприще, питон, джава, скала? И почему такой необычный выбор профессии? Писал SQL-запросы 20 лет и решил что-то сделать со своей жизнью?
>>2086665 Не очень понятно, как ты ищешь вызов функций. Вот, допустим, ты определил четыре функции как function func(): function func2(): function super_func(): function t():
По твоей логике поиска, на первый взгляд, каждое ключевое слово function будет трактоваться как вызов функции func() и t() а каждый вызов функции func2() будет считаться и вызовом func2() и func() Аналогичная история и с super_func().
Тебе надо прикручивать или писать самому какой-то парсер. Тот подход, что делаешь ты, во-первых тормозной, во-вторых очень глючный на реальных ситуациях.
А так, ты просто парсишь, выделяешь в коде вызовы функций, и заносишь их в словарь с подсчётом количества вызовов. Параллельно парсишь те функции, которые ты сам определил у себя в коде, если это актуально, чтобы вызовы каких-нибудь системных функций отсечь.
>>2086758 Я понимаю что есть проблемы с вызовом функций, я просто для начала написал примерную программу, чтобы понимать основы, и как сделать быстрее код. Сейчас читаю про регулярки и понимаю что буду делать через них, чтобы описанной тобой проблемы не было.
>>2086769 В плане производительности у тебя проблема в том, что сложность k*n, где k количество функций, а n количество строк.
А сложность на самом деле линейная, если сейчас не думать о сложности самого парсинга.
Тебе надо просто парсить строки и считать количество вызовов функций, которые найдёшь, и фильтровать из по вхождению в список нужных функций. Точнее не в список, а в множество или словать, проверка вхождения в список работает медленно, а во множество или словарь быстро.
>>2086774 Сейм. Но ты сразу учитывай, что настоящие дата инженеры работают с джавой и скалой, а рисовать даги в айрфлоу это не то чтобы охуительная дата инженерия.
>>2086799 Тебе не нужно его делать. Тебе нужно найти все функции, которые там, и потом проверить, есть ли они в контрольном словаре функций. Ну и счётчики обновить соответственно.
Талантливый я программист, конечно... Жаль, что это не будет работать, когда методы разных классов называются одинаково, но вы уж сами ебитесь с этим...
>>2086858 Разве что ближе к пенсии. Да и тимлид из меня так-себе, не умею в менеджмент, мне бы какую-нибудь должность, на которой нужно дохуя знать, но не нести ответственность за людей.
Аноны, есть сервак на ФастАпи выполняющий роль своеобразного прокси и столкулся с проблемой, что через определенное время сервак просто перестает отвечать: запросы идут очень долго, а потом просто выбивают с ошибкой КОРС (хотя они настроены на резрешение для всех)
>>2087082 А что при этом показывает загрузка памяти-процессора по htop и другим?
Что показывает netstat в плане количества соединений открытых?
fastapi ведь тоже напрямую не запускают, а через всякие прокси. насколько я понимаю, то есть из-за этого могут быть проблемы.
Если приложение перезапустить, то после этого нормально?
Обычная история (не фастапи, а вообще), что по каким-то причинам у тебя висят незакрытые соединения, то есть приложение считает, что они открыты, а на самом деле они закрыты. А этом большая утечка ресурсов, и из-за этого всё начинает тормознуть и виснуть. Особенно для вебсокетов актуально.
Для обычный http тоже может быть актуально. Вот если без прокси они работают, то очень даже вероятно.
>>2087098 >А что при этом показывает загрузка памяти-процессора по htop и другим? Нагружено вроде не особенно, вывел данные докер статстом (пик1). >Что показывает netstat в плане количества соединений открытых? Вроде также не особо нагружено (пик2). > а через всякие прокси. насколько я понимаю, то есть из-за этого могут быть проблемы. Да, запущено через траефик, но вроде опять же он не так и нагружен. >Если приложение перезапустить, то после этого нормально? Да, после перезапуска на пару часов минимум становится все хорошо, потом опять начинает нафиг слать. Я думал сделать автоперезагрузку контейнера, но это же фигня, что сервер будет пару секунд даже лежать
У тебя что-то течёт в приложении, надо смотреть на приложение, как-то логировать и отлаживать. Я просто с fastapi дела не имел вообще. Да и твой стек не понятен.
Я делал подобные вещи на ноде и на aiohttp. На aiohttp сталкивался с тем, что он некорректно обрабатывал зактытие вебсокета, то есть в каких-то случаях не понимал, что вебсокет закрыт. В результате накапливалось большое количество незакрытых задач. Потом правда баг это заделали, там в самом aiohttp был баг.
Более-менее обычная история может быть, что ты где-то внутри открываешь соединение, для внутренних нужд, потом запрос исполняется, а соединение корректно не закрывается. И у тебя висит задача, которая ничего не делает, но соединение висит.
Это иногда можно понять через netstat и некоторые другие утилиты. Но это надо в контейнер зайти.
Попробуй зайти в контейнер, то есть сделать docker exec -it container_name bash (поставить внутрь баш правда надо), и там уже netstat и другие инструменты запускать.
Ты, по идее, можешь увидеть огромную простыню незакрытых соединений, но это не точно.
Ещё могут течь соедениния с БД и другими подобными сервисами, там же тоже лимиты. Ещё могут течь файловые дескрипторы.
Просто то, как ты описываешь, выглядит как самая классическая утечка, а это вообще довольно обычная вещь, я это сам ловил несколько раз. И все с этим сталкиваются.
>>2087127 Зашел в докер, показывает те же 3 соединения на сервер. Стек довольно простой, FastAPI + HTTPX для запросов + Traefik как реверс прокси. HTTPX соединения открываю через асинхронный контекстный менеджер ,т.е. закроется оно в любом случае. Просто хз где оно насрать может.
Сегодня иду с подругой, она мне что-то говорит и я думаю, а какие данные она мне дает, json от запроса, интежер или строку, да хрен пойми, а что за строка, а может там вообще флоат? Блин, как я вообще могу узнать что за входные данные она дает. Потом останавливаюсь и понимаю что минуты 3 я думал о том как буду работать с ее кодом, заржал в голос.
>>2087140 Ну я вот о чём, в твоём сервисе как приходит соединение, так у тебя запускается обработчик этого соединения. Который, в свою очередь, может занимать какие-то ресурсы, открывать соединения. файлы и т.п.
После того, как соединение закрылось, твой обработчик должен это отловить и освободить все занятые ресурсы, после чего закрыться сам. Иначе могут быть проблемы.
Вот возможно что-нибудь в этом духе и происходит, ты не освобождаешь ресурсы нужные, либо обработчик вообще не закрывается, не может отловить, что соединение закрылось, а тупо висит в месте, где ждёт данные из сети.
>>2087171 Раз в top/htop не видишь, значит память и процессор не текут.
Я ставлю на то, что или сетевые соединения (странно, что ты их не видишь), или какие-нибудь подключения к БД, очередям и т.п., или файловые дескрипторы.
Или вообще какая-нибудь специфичная внутренняя хрень, какие-нибудь внутренние ресурсы вроде очередей и т.п.
Понять тяжело. И надо понимать, как у тебя это всё устроено.
Попробуй логи активнее собирать, как у тебя обработчики открываются-закрываются и как ресурсы выделяются-освобождаются.
На самом деле зашкварный способ отладки, но он работает.
>>2087177 Проблема в том, что нет ни подключений к БД, ни к каким-либо очередям или файловым дескрипторам. 1 роут, который берет запрос к серверу, подставляет нужные данные, делает запрос с помощью httpx на другой сервер и возвращает данные все. По-идее случай для мониторинга netstat`ом, но раз пусто значит все же дело не в этом. Попробую нахуярить принтов, посмотрим как выйдет.