image104 Кб, 630x630
Питон-тред №174 /python/ 3449085 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #173

Предыдущий: >>3327670 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://online-python.com/ - листинги и онлайн-запуск
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей

#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
https://github.com/yakimka/python_interview_questions - интересная подборка, масса разнообразных тем и вопросов, для продолжающих, всё на русском

— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать?
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.

— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: https://www.composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4[РАСКРЫТЬ]

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

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

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущая шапка: https://goonlinetools.com/snapshot/code/#z0o243n8t8byiy2zptv27
2 3449090
С предыдущим тредом проебался: >>3375375 (OP)
maxresdefault.jpg130 Кб, 1280x720
3 3449124
Остались еще вкатуны в питон?
Не свитчеры, а именно с нуля первым языком?
Какой у вас план?
изображение.png80 Кб, 300x168
4 3449156
>>49124

>Какой у вас план?

5 3449332
>>49124

>Какой у вас план?


Просто берешь и без задней мысли вкатываешься.
6 3449354
>>49124
Ну, я. Но мне питон для автотестов нужен. И то не могу сказать, что это прям ПЕРВЫЙ мой язык, 10 лет назад я знал js, правда с того момента больше им не пользовался и не программировал. Но ООП и прочую залупу я уже знаю.
Кстати, охуел как изменилось обучение за эти 10 лет, когда я вкатывался раньше, то было дай бог 2-3 курса на английском по js, и книги с кучей воды и ненужной хуйней. То есть то, что ты сейчас можешь выучить за 2-3 видоса на ютубе растягивалось на 2-3 недели потного дрочева с книгой. И всякие ии - просто пиздец как удобно, я вот раньше ждал, когда мне на дваче ответят почему моя хуйня не работает, а мне отвечали "пошел нахуй" или "ты долбаеб", а теперь нахуй все подробно можно разобрать и пофиксить проблему за 1-2 часа, а не за ебанных 2 месяца глубокого тильта, когда ты просто сидишь и не ебешь что делать вообще + чувствуешь себя говном все это время.
План писать автотесты. Ну, как бы, я за час уже первый тест написал. Мой план просто задрочить это и не ломать голову и вспоминать "а чо там была та", а просто спокойно по лайту писать эти тесты.
7 3449355
>>49354
Кстати пиздец обидно, ебать бы я щас охуенно жил, если б тогда js не бросил. А бросил я его знаете почему? Потому что ебаная нормисная хуйня меня задрочила до конца, то иди блядь шарагу закончи, то иди блядь вуз закончи, то блядь иди уже работать пора, то блядь ищи новую работу побыстрее, в итоге нахуй как долбаеба палкой гонят, а профита 0 нахуй. Че доебались до меня тогда все эти люди? Гореть им в аду бы, конечно.
8 3449418
>>49354
Рано нахваливаешь всю эту мишуру, потому что ни тогда, ни сейчас у тебя результата пока что нет.
Вот когда будет, тогда и нахваливай.
9 3449449
>>49355
даже не представляю, это наверное как купить биткоин и продать чуть дороже, а потом смотреть как он дорожает в разы.

Я не бросил 10 лет назад и вкатился но сейчас один хуй, что ты, что я сидим и в новую хуйню на общих основаниях вкатываемся так как в старой уже работы нет.
Аноним 10 3449689
>>49449
А что не так с работой?
11 3449709
>>49689
Сейчас один из немногих реальных способов найти работу на питоне это выучить React. Не шучу. Чистых бекендеров требуется очень мало, в основном разные фулстеки (бекенд + МЛ, бекенд + фронтенд).
12 3449863
>>49085 (OP)
Братья-питухонисты
Поясните за exec
Как правильно запускать в нем код, чтобы он выполнялся как отдельный запущенный скрипт? Пилию свою иде, я понимаю что надо как то передать ему словарь глобалсов идентичный тому какой создаётся при python -m file_name
Но просто сделать import __main__ в функции запуска и передать не канает, разбирать pydeved больно очень
13 3450693
— Мощности бы ещё подкинуть...
— Та не, нормально, у меня всё само — память выделяется динамически, GC сработает, не парься. У меня ж Python, всё своё. О-о... О-о... Вот это рантайм! Как же всё гладко обёрнуто в декораторы! Просто zen! Так уж... О! О! О! Контекстный менеджер, ты моя хорошая, да?
— Да ничё.
— А? Ха-ха-ха! Импортируй меня полностью! О! Я даже GIL уже почувствовал. Почувствовал?
— Потоки не тормози.
— Асинхронно?
— Как тебе нравится — await или multiprocessing.
— О-о! О-о! О-о!
— Почувствуй силу duck typing'а.
— Он даже хрустит, блин, у меня! Интерпретатор прям жарит, как будто Cython прикрутил! О-о! Я давно такого сетапа не видел, чтобы и Flask, и NumPy, и скрипты, и джобы, всё в одной обвязке!
— Главное — не держать в памяти список на миллион строк.
— Ну смотри, хочешь — сбрось всё в генератор. Или пульни через итератор.
— Е-мое… полдня дебажил через pdb, чтобы скрипт крашнулся из-за None в поле?
— А-ха-ха! Конечно! Вот ты мне нравишься — как list comprehension на одной строке! А другие — по for’у пишут, и радуются. А-а! А-а! А-а!
— Столько времени оборачивал в классы, чтобы…
— О-о... да!.. нет!..
— Ещё будешь запускать?
14 3451002
>>50693
Обзмеился
image.png53 Кб, 972x219
15 3451277
Суп. Вопрос, наверное, простой. Мне тут понадобилось написать примитивненький http-сервис. Вооружился Фласком, запускаю, вижу пик_1. Логи и т.п., плюс примечание, что надо использовать WSGI. Окай. Интернет, поиск, добавляю

> from waitress import serve


Заменяю

> app.run


на

> serve(app, host="0.0.0.0", port=8080)


Окай, предупреждение ушло. Это хорошо. Но есть и минус: логов нет вообще, приложение выполняется молча. Это не то, чего я бы хотел. Интернет, поиск, добавляю

> from logging import getLogger, INFO, info


и перед запуском:

> logger = getLogger("waitress")


> logger.setLevel(INFO)


Теперь при запуске я получаю об этом уведомление

> INFO:waitress:Serving on http://0.0.0.0:8080


При чём я вообще не понимаю, откуда оно берётся, знаю только, что происходит оно в момент вызова

> serve(app, host="0.0.0.0", port=8080)


Но засим -- всё! Если я вручную не делаю print, я не получаю никаких уведомлений об обращениях. Ни info("123"), ни logger.info("123") ни ещё что-то, что попробовал, ничего не выводит параметры на stdout/stderr. А мне бы надо это, типичная история: запросы, откуда пришёл, какой метод, что запросил, что получил, если не 2××, то что именно не устроило и т.п. С уровнями логирования и всем таким. Вроде бы всё должно быть просто, в конце концов это же Питон!
Например, сейчас у меня вначале, даже перед объявлением методов, лежит такой код:

> config: dict[str: str] = {}


> config["brokers"] = getenv("FRANZFRONT_BROKERS", "")


> config["log_level"] = getenv("FRANZFRONT_LOG_LEVEL", "INFO")


> logger = getLogger("waitress")


> logger.setLevel(getLevelNamesMapping()[config["log_level"]])


> for key, value in config.items(): logger.info(f"{key} = {value}")


Но на stdout при этом ничего SUKA не приходит.
16 3451340
>>51277
можен он в лог файл пишет
17 3451767
>>51340
Если я нигде в коде не указал пути и имени для логфайла, то это было бы странно, не находишь?
В общем, я тут откопал плейлист: https://rutube.ru/plst/440890?r=wd
Оказалось, что устройство модуля логгинг вообще пиздец нетривиальное и замороченное и моего беглого заглядывания в доку хватить не может. Пока решил обойтись самой-самой базой, а потом -- покурю внимательнее.

В частности:
Во-первых там создаются отдельные сущности "логер", "фильтр", "обработчик" ("хэндлер"), "форматер" и, возможно, ещё какие-то, до которых я не добрался и от настроек каждой из них зависит где-какие логи окажутся.
Во-вторых просто настроить 4 сущности может быть недостаточно! В частности они используют связи многие-ко-многим: один логер может быть связан с несколькими обработчиками, а один обработчик -- с несколькими логерами и настраивать придётся куда больше всего. Напрмер, повесить разные хендлеры, чтобы по-разному обрабатывать логрекорды с разной важностью.
А в-третьих -- саами логеры выстраиваются в иерархическую структуру и их связь сохраняется! То есть, при определённых настройках, отправленное тобой в лог сообщение может обработаться хэндлером от одного из родительских логеров.

Я допускаю, что это ОЧЕНЬ ГИБКО, и я даже ПОЧТИ оценил, но в текущей задаче у меня на разборы с логированием уйдёт больше кода и времени, чем на саму проблему!
18 3451915
>>51767

>Я допускаю, что это ОЧЕНЬ ГИБКО, и я даже ПОЧТИ оценил


держи нас в курсе, неосилятор
19 3452399
>>51915
На то, чтобы выплёвывать одни сообщения в stderr, а другие в stdout можно потратить 1 простейшую строку кода как у меня теперь, а можно -- 100-200+ строк злоебучего конфига со сложными связями плюс с переопределённым классом.
Короче иди нахуй, стандартный логгер реально ебанутый и оправдан только если у тебя прямо большой бэйр-метал-хостет стейтфулл и логи идут то в опенсёч, то шлются по смс прямо из приложения (а не собираются штатным функционалом кубера куда-надо в 10 раз проще, в 100 раз фичастее, а главное -- В 1000 РАЗ СТАНДАРТНЕЕ).
20 3453342
Здравствуйте, Питонисты. Столкнулся с такой проблемой. Есть ли способ инициировать работу бота в чате телеграмма через питон без необходимости запуска через команду /start, или хотя бы чтобы тригерился по словам или как то замаскировать эту функцию?
21 3453401
>>53342
import telebot

bot = telebot.TeleBot(...)
bot.infinity_polling()

ну и дальше уже @bot.message_handler настраиваешь как тебе нужно.
22 3453489
>>53401
Шо так, шо так ничего не выходит. Сам-то себе я могу написывать, а в других чатах только через /start.
23 3453495
>>53401
В смысле, могу писать себе в боте без команды /start только через эхо бота, а в других чатах хуй.
24 3453503
>>53495
При том, что если я выдам ему права администратора в своем чате, то все работает.
25 3453913
>>53342
Насколько я понимаю, это сделано, чтобы нельзя было пользователей случайно подписать на бота без ведома юзера, а только чтобы он явно запускал, понимая, что далет.
Но по крайней мере ты можешь распространять ссылку прямо со стартом, тогда он будет отправляться сам, да ещё и параметр какой приклеит, например ID реферала:

> https: //t. me/nastyanovelbot? start=1854544298

26 3453941
>>53913

>чтобы нельзя было пользователей случайно подписать на бота без ведома юзера


Именно так. Я проверил с телефона, компа и эмуля под разными аккаунтами в разных чатах и пришел к выводу, что говной занимаюсь. Это нужно делать прямо с аккаунты через машину.
Говоря откровенно, мне вообще-то спамер нужен для рекламы. Может есть ссылки какие?
27 3455324
>>52399

>Короче иди нахуй, стандартный логгер реально ебанутый и оправдан только если у тебя


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

Зато если вдруг понадобится что-то нестандартное, тебе не придётся переделывать весь код
1747323356022089.gif3,3 Мб, 718x800
28 3455485
Колеги, жизненно?
29 3455491
>>55485

>Видитие, Канбан Канбаныч, с растом деньги будут быстрее двигаться

30 3455570
>>55485
А где перл? И баш.
31 3455576
>>55570
Тебе для каких целей?
32 3455685
>>55485
Зачем тебе делать миллиард вложенных циклов? Ты ебанутый?
33 3455866
>>53941
Меня арестовали. Вопрос закрыт.
image.png65 Кб, 451x306
34 3456475
35 3457342
>>53342
start это дефолтная тг функция старта бота, обойти ее насколько мне известно нельзя, только можно настроить автосообщение бота перед стартом как приветствие, а туда уже кинуть хендлер клавиатуры и дальше по плану
36 3457343
>>55485
похуй абсолютно, пока вакансии есть похуй, тем более следим дальше за отключением мьютекса , грядет новая эра питона
37 3457473
>>57343

>грядет новая эра питона


Ты про что?
38 3457949
Делаю чат бот для работы по документации. Юзеры настолько отупели что не могут осилить 20 страниц текста.

Какой способ написать бота для тг (это без проблем) и подвязать ИИ чтоб отвечал по заранее распаршенному тексту?

Нашел

G4f, там типа можно задать вопрос ИИ, сказав , смари вот текст, отвечай по нему. Далее переключить ввод на тг-юзера.

Agno. Создаёшь агента, подгружаешь ему свой текст как knowledge base, далее переключаешь на юзера.

Это в теории. Кто реально пробовал?
16538168828740.jpg286 Кб, 810x1080
39 3458270
>>57343

>мьютекса


Что такое мьютекс.
Гиркич.mp4998 Кб, mp4,
848x432, 0:07
40 3458271
>>57343

>грядет новая эра питона


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

В то же время, мы понимаем, что если бы 15 лет назад (или когда там змея родилась?) послушали инженеров, а не маркетологов, усиленно напирающих на популярные, а не полезные фичи, то через 8 лет мы бы оказались в точке не хуже, чем та, где GIL сначала разработали, потратив кучу ресурсов, а потом удалили, потратив еще одну кучу.

Интересно, если суммировать все это время, сколько человеческих жизней, получается, убило одно недальновидное решение?
41 3458307
>>58271

>лет через 6-9


Окончательно сдохнет х86говнище и один хуй придется весь код переписывать.
42 3458328
>>58271
Зачем ты скопировал комент с петухабра?
43 3458467
Ананасы, а есть тут кто работает data/DWH engineer или просто аналитиком данных? Хочу перекатиться из системной аналитики на подобное направление. Из прикладных навыков есть SQL на среднем уровне, в целом базово знаю питон.
Какую часть питона лучше вкатывать? Попсу типа pandas либо сейчас есть что-то ещё актуальное в этом направлении? Мб есть тут кто уже успешно работающий, был бы благодарен ему за совет.
image.png752 Кб, 800x1020
44 3458675
45 3458686
>>58675
А ML это до сих пор хайповая тема?
CoolFemboyFacts.mp4906 Кб, mp4,
432x432, 0:10
46 3458700
>>58686
Тут специфически. Есть типы которые используют для машинного обучения готовые инструменты и библитеки готовые в том же питоне, особо не вникая не в матанализ ни в прочую хуйню для ботанов.
А есть типы с высшим образованием которые эти инструменты разрабатывают. Там да, дохуя дефицит кадров требование к матбазе и оч большие зарплаты.
Но твое резюме даже не посмотрят если нет вышки.
47 3458749
>>58700

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


Вот. У меня просто есть ощущение, что ML сейчас остался во всяком крупняке, где условно занимаются раскаткой и обучением собственных ИИ-моделей и всё в таком духе.
48 3460050
Дайте какие-нибудь сценарии использования FastAPI, хочу пощупать, но не знаю, что с этим делать.
49 3460106
>>60050
Напиши имадж борду, че ты как не как двачер? Тут постоянно начинают замену двачу писать то на луа, то на расте и незаметно уходят в закат, после того как не могут решить где хранить картинки с постами...
50 3461901
>>60106

>после того как не могут решить где хранить картинки с постами...


В sqlite в base64.
51 3462047
>>55485
Но ведь питун это высокоуровневая обертка для Си, там под капотом всё на ПРАВИЛЬНОМ языке написано. Если питонический код медленно работает, значит ты опять ни хуя не понял где горлышко бутылки.
52 3462075
>>62047

>под капотом всё


А толку, если рулит макака с гранатой в жопе.
53 3465104
>>60106

>не могут решить где хранить картинки с постами


А чем их православный S3 не устраивает не знаешь?
54 3465106
>>62075

>рулит макака с гранатой в жопе


У неё и ассемблер будет тормозить. Если хотя бы поедет, конечно.
image.png107 Кб, 1171x697
55 3465114
Суп. А подскажите, как правильно написать тайпхинты в этом случае?

> Type "str | list[str]" is not assignable to type "list[str]"


У меня вэлью дикта может быть строкой, а может быть массивом строк, почему массив строк не может быть передан там, где ждут массив строк?
Скрипт работает, с логикой всё норм.
56 3465144
>>65114

> , почему массив строк не может быть передан там, где ждут массив строк?


Он может. Только вот ошибка говорит про другое.
Ты в качестве аргумента, тип которого должен быть строго list[str], пытаешься подсунуть выражение, тип которого либо str, либо list[str]. Вот тебе и пишут, что если тип этого выражения внезапно окажется str, то такой вызов будет невалидным.
57 3465231
>>65144
А как это правильно оформить?
Или, если это правильно, то почему Pylance ругается?
58 3465362
>>65231
(fldr: str, cmnd: str | list[str]) -> list[str]:
image.png66 Кб, 1366x768
59 3465425
Подскажите, кто знает, не знаю, куда написать, нужен быстрый ответ. Через месяц сдавать экзамены, нужно научиться решать задание по информатике, установил Sublime Text, а тут такая хуйня пикрелейтед, когда пытаюсь на питоне писать. Короче, куча иероглифов вместо результата. Пользуюсь Виндовс 8.1. Как исправить?
60 3465484
>>65425
вскод для красивой подсветки буковок + запуск скрипта из консоли. Большего тебе не надо для огэ твоего или как его там.
Бля, а я ведь сдавал в последний год когда код ещё писали на листочке, выпуск 2020
61 3465832
>>65362

>cmnd: str | list[str]


Финт, конечно, понятный. Но там str впихнуть можно только через split()… Пока что так и сделал: заменил "str | list[str]" в дикте на "str" и добавил split() туда, где он используется. Но это какая-то странная хуйня.

>>65425
Есть правильный способ, есть полу-правильный способ и есть то, что подойдёт тебе.
Правильный способ: ставь Линукс и не выёбывайся, венда не предназначена для работы от слова вообще. Ставь хоть на виртуалку, хоть на некро-пк/ноут, оставшийся от прадедушки, куда и как угодно. Если только для Питона, то бери серверные сборки без гуя, тебе кроме консоли ничего не понадобится. Бонус: у многих облачных провайдеров можно разжится бесплатной виртуалкой с линуксом (придётся платить только несколько рублей в месяц за публичный IP) и заходить на неё по ssh. Многие IDE умеют исполняться на ремоут-хостах по ssh.
Полу-правильный способ: ставь WSL и работай в нём. Это почти линукс, затянутый внутрь венды. Лучше, чем ничего.
Подойдёт тебе: запускайся не в этой консоли. Где точно — зависит от того, что из имеющегося на твоём компе нормально работает с Unicode. Можешь попробовать IDLE, CMD, сам PS в отдельном окне или поставить, например, git-bash или Б-гомерзкую MobaXterm.
62 3465836
>>65425
Попробуй переименовать файл во что-нибудь без пробелов и кавычек. Только английские буквы и цифры
63 3465851
>>65832

> Пока что так и сделал: заменил "str | list[str]" в дикте на "str"


Охуенно. Но при этом значения в дикте у тебя как были и str и list[str], так и остались? И нахуй тебе вообще эти тайпхинты, если они неверные?

> split


При чем тут split вообще? Ты фактически просто решил отдельные строки сделать списками из одной строки. В отрыве от твоего говноскрипта - это вполне себе нормальное решение, только пишется оно как [str]. Нахуя для этого split вызывать, я в душе не ебу. Ты походу вайбкодер какой-то.

> Но там str впихнуть можно только через split()


Где там?
64 3465955
>>65425
На Русском Питоне пиши, жертва ЕГЭ.
Screenshot20250531-004829~2.jpg174 Кб, 720x1310
65 3466386
Купил бумажный вариант Изучаем Python Марка Лутца 1 том на русском языке. Взял не разобравшись 5-ое издание, а на данный момент уже вышло 6-ое, но пока на английском, а я в нём нихуя хуа. Сильно проебался? 5-ое издание вроде питон 3.5 разбирает, а сейчас уже и 3.11 вышел.
Спросил дипсик, говорит похуй, учи, только некоторые темы отдельно уточняй, а так 80% одинаковые. На скрине темы, которые по мнению дипсика будут изменены в 1 томе.
Прав ли он? Стоит ли ебать себе голову или серьёзные изменения будут только со второго тома?
Мб взять что-то актуальнее, ведь как везде пишут Питон - активно обновляющийся язык
66 3466405
>>66386
Сначала купил, потом подумал. Хороший гой.
67 3466467
>>66386
Зачем это учить и читать вообще, когда у тебя есть дипсик, который в любой момент объяснит как писать правильно? Ты просто пишешь код, а в непонятный момент спрашиваешь у нейронки. Это самый эффектинвый способ обучения. Талмуды были нужны 50 лет назад, когда их заучивали, т.к. в случае чего информацию было взять неоткуда, кроме библиотеки. Сейчас у тебя все знания мира в телефоне даже без поиска.
68 3466468
>>66386
f строки мастхев
тайп хинты упростились
pathlib изучить отдельно не проблема
датаклассы все еще юзаются (или Pydantic, что очень похоже)
морж только на легаси
остальное отдельно погугли, в целом книга вполне хороша
69 3466603
>>66467
Не объяснит.
70 3466642
>>65114
Делай датакласс, неймдтюпл или тайпддикт и не еби себе мозги.
71 3466645
>>65425
Поставь вскод и не еби себе мозги.
72 3466647
>>66386
Во всем прав, а Лутц переоценен.
73 3466738
>>65851

> в дикте у тебя как были и str и list[str], так и остались?


Нет, там теперь str. Примерно так, в дикте было:

> "Command": ["managed-postgresql", "cluster"],


Стало:

> "Command": "managed-postgresql cluster",


А там, где используется значение (в виде не строки, а листа строк) — я делаю её сплит. Так по крайней мере заявленные хинты соответствуют реальности, а не как предлагал >>65362, у которого выходило, что метод готов прохавать строку, хотя тогда она вызвала бы ошибку. Теперь оно готово принимать строки, самостоятельно приводя их к правильному листу.

>Ты фактически просто решил отдельные строки сделать списками из одной строки


Нет. В get_list_of_resources_in_folder ждало список строк, примерно так:

> full_command: list[str] = ["yc", "list", "--folder-name", folder, "--format=json"]


> full_command[1:1] = sub_command


а теперь ждёт строку и перед использованием приводит её к списку строк. Вот так:

> full_command: list[str] = "yc {sub_command} list --folder-name {folder} --format=json".format(sub_command=sub_command, folder=folder).split()


А после этого вызывается "subprocess.run(full_command, …)", которому первым параметром надо именно лист строк.

> Ты походу вайбкодер какой-то.


Только сейчас узнал, что это и нет, наоборот я уже несколько человек обоссал за то, что они мне подсовывали галюны нейросетей. Программирование это, конечно, не мой основной профиль, но когда я что-то делаю — я стараюсь сделать правильно, потому и прислушваюсь ко всем замечаниям линтеров и гайдлайнов, чтобы разобраться, почему именно так.
74 3466742
>>66386

>сейчас уже и 3.11 вышел


3.13.3 есть, а скоро выйдут новые, тебе так и так с каждой версией разбираться с изменениями и новыми возможностями. Так что можешь фундамент получить и по условно-старой книге (но не 4 издание, там было слишком много про 2.7, которое сильно отличалось, а теперь — окончательно депрекейтед), а потом просто почитаешь пепы с изменениями.

>>66467

>Зачем это учить и читать вообще,


Правильно, делай без понимания, главное просто делай, однажды нейронка угадает, как надо.
Очень напоминает вот эту шутку:
https://sortvisualizer.com/bogosort/

>>66647
Есть два полярных подхода, на одном из них справочники типа таких: https://goalkicker.com/ , тут только важное, минимум постороннего текста. А на другом — Лутц, в котором идея будет разжёвываться и повторяться, зато запомнить 10% прочитанного ≡ выучить справочник наизусть. Для меня Лутц это идейный наследник автора лучшего в моей жизни учебника по физике — Лансберга.
75 3466743
>>60106

> , после того как не могут решить где хранить картинки с постами...


Ничего подобного у меня всё просто.
C:/document and setting/Матвей_2015/изображения/двач
76 3466750
>>66743
Так вопрос был не где товарищу майору хранить изображения с двача, а где на сервере хранить для дваче лайк борды
77 3467107
Вас не достало что в питоне миллиард инструментов с пересекающимися фичами, но не полность, так что нельзя выбрать один.
pyright - хорошая интеграции с lsp, поддерживает недокументированные возможноти lsp которые работают только в vscode (тормоза на ноде)
python-language-server - интеграция всего в lsp от rope до mypy (тормоза на питоне)
pylyzer автор забросил недопилив толком (работал быстро на расте)
ty (на расте, еще не рабочий, может тоже забросят)
ruff в основном линтинг и форматирование, но имеет lsp интеграцию (работает быстро на расте, но сосет у pylint по анализу проекта)
pylint гипертормоза и считает что у моделей sqlachemy слишком мало методов
isort - сортирует импорты (ruff тоже могет, но сосет у isort)
flake8, pyflake, black и пр полудохлое
sage 78 3467347
>>61901
Вкатун, плиз.
15035163708880.png785 Кб, 658x747
79 3467390
80 3467502
>>67107
Pylance?
81 3467511
>>67502
это проприетарный vscode lsp клиент для pyright от майкрософта
82 3467515
>>67511
Мошный опенсорсный python-lsp-server, но он неюзабельный из-за питонячих тормозов + еще проверка типов хуже по сравнению с pyright
83 3467938
>>67511

>это проприетарный vscode lsp клиент для pyright от майкрософта


Минусы?
84 3468020
>>57949
Бамп. Есть тут ИИ внедряторы?
85 3468083
>>67938
проприетарный
86 3468224
Пацаны, нужно изучить базу по питону (пельменные, функции, супер-базово ООП и тд) для автотестов.

Есть какой-то курс на степике хороший? Или книжка?
И как вообще вариант в дипсике написать промпт, чтобы он составил план для меня и всё пояснял по плану?
87 3468232
>>68224

Вот такой промпт ему составил. Буду по его плану двигаться и уточнять всё.

"Ты — гуру Python с уровнем знаний создателя языка. Ты разработаешь интенсивный, структурированный план изучения Python на 12 недель с акцентом на:

Автоматизацию тестирования (pytest, unittest, Selenium, API-тестирование).

Работу с базами данных (SQL, SQLite, PostgreSQL, ORM — SQLAlchemy, Django ORM).

Парсеры (BeautifulSoup, Scrapy, requests, aiohttp).

Чат-боты (Telegram Bot API, Discord.py, обработка асинхронности).

Основы Django (модели, views, REST с DRF).

Git, GitHub/GitLab (ветвление, CI/CD, работа в команде).

Условия:

4 часа в день (пн–пт), 6 часов в выходные.

Практико-ориентированный подход: 60% кода, 30% теории, 10% ревью/оптимизация.

Каждая неделя должна заканчиваться мини-проектом по теме.

Постепенное усложнение: от основ Python до сложных связок (например, парсер + БД + бот).

Формат плана:

Четкие темы по дням.

Рекомендуемые ресурсы (документация, книги, туториалы).

Примеры задач для закрепления.

Советы по отладке и лучшим практикам.

Начни план с базового синтаксиса (1 неделя), но сразу включай примеры из целевых областей (например, тесты для простых функций). К 6-й неделе — углубление в автоматизацию, к 10-й — интеграция всех навыков (например, бот, который парсит данные и сохраняет в БД). Последние 2 недели — работа над комплексным проектом (например, тестовый фреймворк + CI).

Дай рекомендации по IDE (PyCharm, VS Code), инструментам (Docker, Postman) и лайфхакам для запоминания. Упомяни, как избегать выгорания."
87 3468232
>>68224

Вот такой промпт ему составил. Буду по его плану двигаться и уточнять всё.

"Ты — гуру Python с уровнем знаний создателя языка. Ты разработаешь интенсивный, структурированный план изучения Python на 12 недель с акцентом на:

Автоматизацию тестирования (pytest, unittest, Selenium, API-тестирование).

Работу с базами данных (SQL, SQLite, PostgreSQL, ORM — SQLAlchemy, Django ORM).

Парсеры (BeautifulSoup, Scrapy, requests, aiohttp).

Чат-боты (Telegram Bot API, Discord.py, обработка асинхронности).

Основы Django (модели, views, REST с DRF).

Git, GitHub/GitLab (ветвление, CI/CD, работа в команде).

Условия:

4 часа в день (пн–пт), 6 часов в выходные.

Практико-ориентированный подход: 60% кода, 30% теории, 10% ревью/оптимизация.

Каждая неделя должна заканчиваться мини-проектом по теме.

Постепенное усложнение: от основ Python до сложных связок (например, парсер + БД + бот).

Формат плана:

Четкие темы по дням.

Рекомендуемые ресурсы (документация, книги, туториалы).

Примеры задач для закрепления.

Советы по отладке и лучшим практикам.

Начни план с базового синтаксиса (1 неделя), но сразу включай примеры из целевых областей (например, тесты для простых функций). К 6-й неделе — углубление в автоматизацию, к 10-й — интеграция всех навыков (например, бот, который парсит данные и сохраняет в БД). Последние 2 недели — работа над комплексным проектом (например, тестовый фреймворк + CI).

Дай рекомендации по IDE (PyCharm, VS Code), инструментам (Docker, Postman) и лайфхакам для запоминания. Упомяни, как избегать выгорания."
88 3468257
>>68232
>>68232

>Ты — гуру Python с уровнем знаний создателя языка


>Состать мне план для полного нуба с акцентом на элементарные навыки на популярных фреймворках

89 3468280
>>68257
Спасибо!
изображение.png150 Кб, 897x783
90 3468293
>>68232
Хуйню нереалистичную задумал. У тебя нет ресурса чтобы выучить и скрэпи, и селениум, и гитлаб с докером. Нейросети магическим образом тебе времени не добавят. Используй 20/80 промпт. Закрывай только важные дыры.
91 3468305
>>68293
Понял.
Но дипсик всё равно задрачивает с докером. И выдаёт просто сухой текст, типа:

>REST API-тестирование (requests)


>Многие проекты требуют проверки API.


Пока я это всё буду у него спрашивать и расспрашивать, пройдёт уйма времени. Я в целом изи схватываю всё. В ВУЗе в многопоточность мог на ++, но к 29 годам щас всё нахуй забыл и хочется с базы базовой начать. А хуйсик расписал базу как

> Базовый синтаксис, структуры данных (list, dict, set), условия, циклы, функции. Без этого невозможно писать автотесты.


Нет бы сразу все по пунктам дал.

Короче по твоему принципу буду разбираться, в общем. Спасибо тебе!
92 3468309
>>68083

>проприетарный


Во-первых это точно минус? Почему?
Во-вторых:

> https://github.com/microsoft/pylance-release


> CC-BY-4.0 license


Ты уверен, что правильно понимаешь смысл слова "проприетарный"? Что оно для тебя значит? Опиши, пожалуйста.
А то окажется, что приблизительно всё ПО в мире проприетарное.
93 3468313
>>68309

>https://github.com/microsoft/pylance-release


И где ты там коды увидел? Это просто страница плагина с инфой
94 3468315
>>68309

>это точно минус?


Конечно. Я вскод не использую же, поэтому не могу ни использовать пиланс, ни адаптировать его под свой кейс
95 3468317
>>68313
и сс это обычно лицензия не для софта
а вот у пиланса EULA https://marketplace.visualstudio.com/items/ms-python.vscode-pylance/license
96 3468358
>>68224
Придумай проект простенький да крути его с подсказками ии. Я себе тг бота сделал с напоминалками, алертами и поиском по своему хранилищу различных файлов, поскольку уже заебался руками по папкам скрипты и записи искать. Это чисто твой проект и насилуй его на сколько фантазии хватит. За месяц и ооп, и основные библиотеки и даже гит с логированием освоил.
97 3468368
>>68358
Тоже рассматривал этот вариант. Именно чат бота, а потом уже автотест на него.

Только вот, допустим, как я узнаю о множествах (set) в питоне при таком подходе?

Мне тупо надо питон для того, чтобы потом автотестером пойти, ручником заебало + потолок в 180-200к в основном на рынке.

Я сейчас с дипсиком всю базу пройду за пару дней (типы данных, преобразование, функции базово и т.д.). потом буду пилить чат-бота и тесты на него... план такой, в общем.
изображение.png286 Кб, 1920x1080
98 3468422
как я заебался откуда он sh 2.2 подхватывает блядь
все стер нахуй
99 3468525
>>68309

>> https://github.com/microsoft/pylance-release


>> CC-BY-4.0 license



Хуя ты жидко обосрался!!!
100 3469198
>>68305
Изучи базовый синтаксис
ООП
Всякие обработки ошибок в блоках try/except
Логирование
Паттерны проектирования автотестов
Принципы программирования

По фреймворкам
Pytest - база для автотестов, изучить надо подробно его возможности, маркеры, параметризацию, фикстуры, как тесты запараллелить через xdist какой-нибудь
Selenium / playwright для UI тестов (playwright в наше время выглядит интереснее)
requests / httpx - для rest аpi (лучше httpx, т.к. на нем еще асинхронщина есть)
grpc - либа для grpc протокола
SQLAlchemy для БД (там тоже есть асинхронщина, для синхронного пг какого-нибудь psycorg2)
Allure для отчетов

докер нужен супербазово, как и ci/cd понимание (по типу набросать yaml файл для gitlab)
Все остальное, что тебе там написало выкинь нахуй, там большая часть либ для разработки, в автотестах тебе понадобятся они примерно никогда
101 3469248
>>69198
Спасибо большое!
102 3469443
>>69198
А нахуя ему grpc в одном ряду с основами? grpc апи разве такая распространённая штука уже, что прям с начинающих тестеров требуют? Не быкую, интересуюсь просто, с остальным согласен.
103 3469948
>>69443
gprc как дополнение к основному, да, ты прав анонче
104 3471418
>>69443

>grpc апи разве такая распространённая штука уже


Я лично вижу часто. Конечно, не так часто, как REST, но если что-то предоставляет публичное API, то там очень часто REST+gRPC. Так что лишним не будет. В конце концов, зная REST понять gRPC не так уж сложно мягко говоря.
image.png10 Кб, 776x166
105 3471518
Как вам?
106 3471537
Сап, у кого-нибудь есть ссылка на документацию Channels на русском? На django.fun устаревшая версия документации.
image.png92 Кб, 1254x595
107 3471568
108 3471573
>>71568
two_number это самое смешное
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

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