Это копия, сохраненная 9 марта в 13:49.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>2853616 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
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, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://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.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущий исходник: https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9
Везде платят деньги.
Как вернуться обатно и стать чотким питонистом с вскодами, гитами и венвами? Первым в очереди Бидон Дип Дайв в четырех частях, может ещё полирнуть книгой флюент питон.
При этом я хочу очень выучить жабаскрипт, почти к каждому сайту, который я регулярно посещаю, у меня есть юзерскрипт, у меня куча оплаченных работ на жс, но я его нихуя не знаю.
А ещё очень хочу выучить голенг, чтобы быть чотким стендэлон кодером.
Как всё это совместить?
И это я старый дид, как зумеры выдерживают такую гонку? Или у них такого нет?
Это какая-то шизопаста?
В первом случае коллбек видит переменную из верхней области видимости.
Буквально такая же хуйня во второй функции, там блять коллбек не видит переменную.
Какого хуя?
С nonlocal заработал. Только, блять, остался маленький вопрос... Какого хуя тогда в первом случае мне не пришлось nonlocal указывать?
Блять, я ВООБЩЕ нихуя не понял.
Почему title не требует указания nonlocal, а buffer требует?
>args: InputArgs = ...
Анон, а для чего этот синтаксис нужен?
Попробовал вот такую хуйню в онлайн запустить.
def test():
....args1: some1 = [1]
....print(type(args1)) # -> list
....args2: some2 = 'text'
....print(type(args2)) # -> str
Сижу на 3.7, тут такого нет. Для чего это вообще?
>>2933302
Может потому что меняешь одну переменную, а другую нет.
> Для чего это вообще?
никто_не_использует_типизацию_в_питоне.тхт
Чел, это указание типа переменной. InputArgs - это мой класс.
мне надо? Я не в тестировщика иду а так, для общего развития.
Можно unittest, можно pytest. Не настолько велика разница. pytest типа современнее и прогрессивнее, но не так сильно на самом деле. unittest в коробке.
Логика там примерно одинаковая. pytest современнее и менее замороченный, в чём-то он проще, unittest больше завязан на классы, чуть больше там лишних слов...
Для общего развития необходимо уметь, это ты всё правильно делаешь.
Вообще читай литературу, очень много для новичков, в том числе на русском.
Общая идея -- составляешь тест, это функция или метод класса (в юниттесте обязательно метод), внутри этой функции поверяешь, что скажем нужная рабочая функция с нужными параметрами-условиями работает так, как надо.
Понятно, что в реальной работе всё усложняется, когда всякие моки и т.п., ну это ты сам дойдёшь до этого
Спасиб за развёрнутый ответ
Это совсем не тоже самое, что идти в тестирование. Эти скиллы нужны, востребованы, а начинающих скорее всего захотят бросить как раз на это, тестами покрывать, разбирать регрессии, баги всякие искать.
И вообще полезно, понимание улучшает очень сильно.
Хз по адресу ли я, но проблема с тем что я на питоне накалякал, так что почему бы и нет.
Мне надо отправлять файл на почту скриптом на питоне, я нагуглил, сделал, отправляю на свои ящики гмейла и яндекса, на гмейл приходит и в приложение и в веб, на яндекс тоже приходит, но в приложении файл появляется не сразу, а через минуту-две, в вебе не появляется вообще. Задержку появления терпеть можно, а полное отсутствие - нет. При этом само письмо отображается и само по себе и в списке в папке "письма с файлами".
Как это можно пофиксить? Отправляю тоже с яндекса (уходить не варик, корпоративная почта), не отправлять на яндекс тоже не варик - работать должно на любом ящике.
Я когда-то вкатуном был, то не понимал смысла этих тестов. А потом как понял...
pytest, unittest, mock, patch, sanity tests, integrations tests...
Не понимаешь смысла тестов до первого заваленного теста, который раньше не валился
На работе использую Django + joeflow, и вот какая проблема возникает:
В админке копится куча тасков в самом низу страницы, может доходить до десятков тысяч. Надо бы пагинацию там настроить, но в самой джанге похоже этого нет. Ковырял папку аж до django\django\contrib\admin\templates\admin\edit_inline\tabular.html
это именно тот шаблон, который рендерится там, где возникает проблема, и там даже нет намека на пагинацию.
Так вот, анон, может ты знаешь, как можно добавить туда пагинацию?
Я бек-разработчик который вынужден тесно взаимодействовать с командами DS/ML. Недавно дошло что было бы удобнее работать с командой датасаентистов следующим образом:
Они заливают весь свой код (который тоже на питоне) в определенную репу в гите, я при сборке своего питон-проекта подтягиваю код из ветки master этой репы, собираю его в некую либу и использую вызовы методов/функций из этой либы
Но у меня нет подобного опыта. Как это проворачивать? Как подтягивать код из удаленного репозитория и собирать его в "либу" которая будет юзаться у меня? Я всегда подтягивал код при помощт команд pip install / poetry install где в конфиг-файле я прописывал название либы и версию, но это ж только в случае если либа лежит в pypi, это не мой случай
Какого хуя тут происходит? Если убрать " -> tuple[int, int]", то работает, а с ним нет. Синтаксис вроде верный.
Ну кстати даже если убрать только "[int, int]" но оставить "-> tuple", так тоже работает.
У них старая версия питона, где для таких штук нужно было импортировать Tuple из модуля typing
>>2935576
В старых версиях питона надо было через
from typing import Tuple
https://docs.python.org/3.8/library/typing.html#typing.Tuple
Сап, аноны. Я в питоне новичок, да и вообще моя профессия не связана с программированием (я биохимик-докторант). Но когда-то учил питон и взялся написать одну программу.
В общем, она уже почти готова, но столкнулся с одной проблемой. Вот есть страница, если я правильно понимаю с динамическими элементами на яваскрипт https://kinase-library.phosphosite.org/site . Там есть форма и надо отправлять запросы по списку типа DLSDDDSDLDDS (это последовательность аминокислот если что, означает аминокислоту с фосфатной группой). Хотя формы на html я не нашел, соотствующие запросы можно отправлять тупо используя адресную строку "https://kinase-library.phosphosite.org/site?s=DLSDDDS*DLDDS&pp=false&scp=true" без всяких форм. Проблема в том, что надо выдернуть из данных на этой странице названия первых трех киназ в таблице (в данном случае PLK1, ACVR2B, ACVR2A). И заковыка в том, что html код страницы с запросом (в смысле если нажать source code в mozilla) и страницы с ответом одинаков. Как я понимаю, эту таблицу генерирует какой-то яваскрипт в реальном времени используя базу данных. Так вот, как выдернуть эту информацию или хотя бы подскажите в какую сторону копать. В учебниках такого нет, либо плохо искал
Не дебил, дудосить сайт своими запросами не собираюсь, хотя их планируется пара тысяч, думаю делать между ними перерывы в 10-20 секунд.
DLSDDDS*DLDDS (это последовательность аминокислот если что, звездочка означает аминокислоту с фосфатной группой).
Там при нажатии кнопки запросов нет, скорее всего это ЖС либа у них написана, которая все вычисляет
Можно заюзать селениум, но у них может стоять защита от такого и возможно, что придется ее обходить (а может и нет)
А ты либы на питоне пробовал искать?
Ты нормально написать можешь, биохимик-докторант, ёб твою мать.
Просто написать: есть страница вот ссылка. Нужно выдернуть вот это говно: прикладываю скриншот.
Просто пиздец. Я 2 раза прочитал, ничего не понял. Киназы какие-то.
Вы там все такие?
Там под таблицей кнопка "скачать результат". Можешь скачать результирующую таблицу как файл, открыть обычным образом в питоне как текстовый файл и посмотреть в ней любые данные.
Можно наверно даже не сохранять файл на диск, а прямо из полученной переменной реквеста смотреть. Но сохранить временный файл проще всего для нюфани. Мозги себе не конефолить, за одно бэкап полученных данных делать удобнее, на будущее, для отладки.
>>2936931
А не, кнопка тоже в JS, тогда файл скачивать можно только через селениум. Хотя я слышал что можно и через requests_html как-то измудриться. Впрочем это не важно.
Зайди во вкладку хрома отладка -> нетворк -> Fetch/XHR
Сделай свой запрос.
Там одна из строк появится такого вида
>https://kinase-library.phosphosite.org/api/scorer/score-site/DLSDDDS*DLDDS/Homo%20sapiens%20(Human)/OCHOA/true/false
Как видишь это ответ от апи, который возвращает твою таблицу в не сортированном виде. Попробуй с ней поработать. Сортировка в этой таблице насколько я понял идет в поле "quantileRank". Т.е. то что там первое имеет поле "quantileRank":1, то что там второе "quantileRank":2
Давай дальше сам, мелкие вопросы если возникнут решай через чат GPT на официальном сайте можно по русски с ним общаться.
>>2936912
>>2936931
>>2936944
Спасибо за ответы и пардон, из данной ссылки "https://kinase-library.phosphosite.org/site?s=DLSDDDS*DLDDS&pp=false&scp=true" нужно стянуть вот эти три названия, которые на пикче обведены.
> А ты либы на питоне пробовал искать?
Я и планировал использовать selenium и pandas
>Вы там все такие?
Не все, мне многие говорили, что я очень хуево объясняю. Поэтому и не стремлюсь преподавать.
>>2937012
Спасибо за наводку, буду пытаться разбираться
Чел делаешь запрос к апи
>https://kinase-library.phosphosite.org/api/scorer/score-site/DLSDDDS*DLDDS/Homo%20sapiens%20(Human)/OCHOA/true/false
Тебе приходит питоновский словарь.
Первые три значения это элементы словаря с полями "quantileRank":1, и соответсвенно 2 и 3
Всё.
Держи дружок
https://www.online-python.com/IDaBTgCv6p
Из онлайн сервиса реквест не делается, просто код оттуда скопируй.
https://dropmefiles.net/ru/wc5CQTy
Вот код: https://colab.research.google.com/drive/120nbtB3ywlPM0b-4QlcVVW_UmJdZacY4?usp=sharing
Зайди на канал в раздел "About", там будут контакты. Пиши туда.
Ок, вкатываюсь в html.
Не, я не про это. Мне надо чтоб детектил одновременно несколько объектов на одной картинке.
это другая задача, у тебя код на classification
тебе нужно на object detection
всякие yolo, RCNN
Питономакак уже настолько много, что за одно рабочее место бьются десятками, если не сотнями. По году и два работку найти не могут. Херки на таких вакансиях ахуели от спроса настолько, что ссут на головы кандидатам уже почти буквально.
Смотря к чему душа лежит. Сишные языки дадут тебе намного больше. Макакить в Питоне - это конечно хорошо, но это уровень владения тем же Excel или Word. Не будешь же вкатываться в Excel и Word, этот вспомогательные инструменты для работы.
Друг, это настраивает количество строк скажем так "на первом уровне" админки. То есть можно настроить количество выводимых строк экземпляров одной модели.
Но моя проблема в другом:
Когда проваливаюсь в модель joeflow, открывается кастомная админка, которую поставляет joeflow. Так вот в ней уже, в самом низу, есть поле Tasks, по умолчанию скрытое. Оно сразу содержит вообще все таски без пагинации из-за этого может очень долго грузиться страница, поэтому хочу настроить пагинацию именно в этом поле
да, немного не так тебя понял. почитай как работает (пагинатор)[https://docs.djangoproject.com/en/4.2/ref/paginator/] и сделай по образу и подобию любой батарейки по типу (django-admin-inline-paginator)[https://github.com/shinneider/django-admin-inline-paginator). только не забудь переопределить get_queryset, добавив prefetch_related, в ModelAdmin чтобы избавиться от n+1 query
Добра тебе, анон, получилось
То ли дело джаваскриптизёров-верстальщиков не хватает, да?
Мм полноценный бэкенд-язык называть вспомогательным, в таком случае джава и шарпы тоже вспомогательные.
>сотня бьётся за вакансию
99 из которых окончили курс "бекенд-розрабочек за 6 месяцев" где они как макаки повторяя за преподом пилили телеграм-ботов и туду-лист на жанге, даже не понимая нахуя они ту или иную кнопку нажимают.
Жанга или БыстраАПИ?
Жанка олдовая, уже скуфом потягивает, а БыстраАПИ быстрый, модный, молодежный.
Пока что склоняюсь к жанго, т.к. там наверняка кучу легаси накодили, а значит работы больше.
Интересует только с точки зрения вката, мне без разницы на чем views пилить.
Смотри по вакухам в твоем городе, я бы фастапи учил. Но учти, что там еще дохуя всего есть помимо взаимодействия с фронтом. Я в этом году максимум пару часов гейтвей для других сервисов трогал.
>99 из которых окончили курс "бекенд-розрабочек за 6 месяцев"
Утрируешь. Сейчас питон учат в каждой школе и пихают даже на гуманитарные направления каким-нибудь психологам.
А больше и не надо. Это же питон, а не жава. Нахуя тут сложность
Django и FastAPI сильно отличаются? Просто будет на FastAPI перекатиться, если уже +- хорошо знаешь Django?
Да не особо, просто в джанге много чего под капотом уже есть, а в фастапи будешь библиотеки подключать
>Мм полноценный бэкенд-язык называть вспомогательным, в таком случае джава и шарпы тоже вспомогательные.
java/c#/c++/c это языки системного программирования, там куча проектов, где немеряный объём кода, который функционал реализует.
А питон прикладной язык, для взаимодействия с чем-то. Особо сложный объёмный код на питоне не делают.
Поэтому джависту может быть достаточно знать свою джаву, а вот питонисту знать питон недостаточно, нужно кучу всего ещё знать и понимать, в зависимости от конкретного направления.
Это не делает подготовку разработчика на питоне более лёгкой, скорее наоборот.
>объёмный код на питоне не делают
Что и нинужно. 2023 год на дворе, кто не может в микросервисы, тот идет нахуй в свою ынтыпрайз легаси помойку работать за еду.
>микросервисы
>scalable
>microfrontend
>distributed
>DB per service
Ребенок, ты хоть работал где-то?
>достаточно знать джаву, а питон прикладной
Чем бэк на жаве принципиально отличается от любого другого языка-нейм? Тебе точно так же надо знать фреймворк, базы данных и ещё какую-нибудь хуйню которую вы используете в проде.
>Чем бэк на жаве принципиально отличается от любого другого языка-нейм?
классический бэк и не нужно на джаве делать, на джаве можно делать тяжеловесный системный софт, где вся логика внутри кода
>Питон полноценный яп для
>датасаенса, прототипирования
>ДЛЯ
>ДЛЯ
Ты сам-то понял, что сказал? Питон - это инструмент. Задачи датасаенса, например, куда шире, чем знания и скиллы по Питону, хотя Питон в состоянии решить почти все задачи, стоящие перед датасаентистом. Поймаешь смысл или разжевать и между ушей затолкать?
Дружище, я прекрасно русский язык знаю. Учись интерпретировать обобщенные формулировки.
>это конечно хорошо, но это уровень владения тем же Excel или Word. Не будешь же вкатываться в Excel и Word, этот вспомогательные инструменты для работы.
Хорошо, а какой тогда вспомогательный инструмент у тех, кто работает в проектах на джанге, фастапи?
>Смотря к чему душа лежит. Сишные языки дадут тебе намного больше.
Что могут дать "сишные языки" (JavaScript что-ли?) из того, чего не может дать питон? Они беднее на самом деле. Особенно если смотреть на голый Си.
На вопрос ответь. Чем Питон беднее, чем JS или C.
>Прошарился по форумам, документациям, везде пишут что надо
Нахуя?
Ну вот ты сам-то сможешь объяснить - нахуя? В чем профит?
Добавлю, асинхронная функция становится синхронной. Это запутывает её поведение при использовании. Когда ожидается что она будет передавать управление циклу - она этого делать не будет. asyncio.sleep(0) позволяет вернуть управление циклу и высвободить ресурсы.
При передаче в фунцию kw-аргумента, если используешь numba (а точнее декоратор jit) словишь гарантированный эксепшн епта, потому что jit тупой и не понимает дефолтных аргументов. Этой проблеме уже больше 3 лет, ни одна блядь и не думает фиксить. Ахуенная либа, всем советую (нет)
Чиво блять? Ты понимаешь что функция становится "асинхронной" в момент ее объявления через async и ей вот вообще похую, есть у нее внутри await-ы или нет?
>Когда ожидается что она будет передавать управление циклу - она этого делать не будет
"Переключение контекста" произойдет в момент когда ты эту функцию вызовешь через await, ничего там блокироваться не будет
Да я просто хочу как лучше, чё ты накинулся-то сразу. Разве плохо делать хорошо?
>>2940391
Вот я как раз и про то что await не гарантирует передачу управления, если внутри async функции нечего ожидать.
Нет, не занимает много времени, я разницы по крайней мере не увидел, но и когда именно следует использовать asyncio.sleep(0) тоже не очень понимаю.
>но и когда именно следует использовать asyncio.sleep(0) тоже не очень понимаю
Когда есть жирная функция, которая блокирует выполнение других корутин дольше чем нужно, тогда и надо вставлять.
480x854, 0:09
Подойдет ли такое:
- собственно сам Python;
- Django или FastAPI;
- SQL;
- JavaScript или TypeScript или Dart в объеме необходимом фронта
- HTML и CSS (есть ли какая-то CMS, которая может полноценно заменить этот пункт?)
Ты опозадл на пару лет
Вкатунов на питоне уже столько, что херки не знают как от них отбиваться, даже отказы уже не присылают
Я число для себя. Устраиваться к кабанчику не собираюсь.
Или не запускается, потому что сериализация/десериализация занимает больше времени чем само выполнение
Начальный fastapi, pydantic, aiohttp и прочую шелуху, фреймворки для бд, про sql не знаю, я с монго везде работаю через motor. Остальное хз, не работаю с фронтом. Инфраструктурные ubuntu, redis, nginx и docker с git по умлочанию конечно же. Неплохо было бы ещё что-то навроде jenkins знать, хотя вряд-ли напрямую с ним будешь иметь дело.
Вообще по вакансиям смотри что требуют. Если уж хотят древнюю джангу, то что ж поделать, к нему тоже целый букет фреймворков идёт, загуглишь.
Сразу сходу на фулстек идея не очень как по мне. Выбери один стул и сиди пока на нём.
Алсо про всякие DI пока не думай, не засоряй себе голову раньше времени. И смотри другие репы на гитхабе кто как структуры проектов делает, чтоб иметь представление.
И да, на гитхабе с кучей звёзд тоже много говнокодеров сидит, так что это не истина последней инстанции. Я когда смотрел исходники fastapi очень много раз кринжанул на отличненько.
>fastapi
Получек, знаю Django
>pydantic
Не было необходимости его использовать
>aiohttp
Не щупал
>фреймворки для бд
Нет, ну джанго ОРМ щупал, чек
Остальное анчек. Пиздос, а я думал, что с моим стеком Python/Django/DRF можно уже вкатываться начинать.
Используй пидантик. Очень удобно валидировать данные и делать структуры. На его основе как раз и использую связь с монго через motor. Ответы запросов, сами запросы и тд.
Ну, а что ты хотел. Надо знать много чего. Хотя бы иметь представление что это такое и как с ним работать.
Просто посмотри как деплоятся проекты и как они поддерживаются потом, как обновляются и тд. Много инструментов есть. Знать вот прям всё до точки не надо, только самое основное. Остальное в процессе.
Забыл ещё про uvicorn упомянуть и uvloop. Тоже полезно.
Питон, получается — это расширенный скриптовой язык... То есть, скрипт. Как Bash.
Все так лихо перечисляют какие-то стеки, на деле, применив пару функций и часами лазая по мануалу. Знание — это когда ты без мануала пишешь, без ползания по документации. Ну и физически невозможно знать больше 7–8 продуктов хорошо. Это будет уровень «гуглоинтеллекта» — чё нашёл на СО, то, типа, твоё.
Но ведь каждый обязан вызубрить алгоритмы и паттерны чтобы получить оффер на перекрашивание кнопочек.
Баш который по производительности работает на уровне голанга, при этом еботни с деплоем меньше, лучше поддержка и кодовая база.
Сейчас не 90е чтоб знать все либы наизусть. Они меняются и обновляются каждый день. Гораздо более полезный скилл - уметь разобраться в них как млжно быстрее и понимать где можно применить новые фичи.
А все эти заучки-зазубрички до сих пор пишут на втором питоне, потому что в голове не осталось места для чего-то нового.
А ещё написать свою ос, без этого никак
Изучаю selenium, пытаюсь парсить инфо с сайта, который полностью грузится в js. Если wget'ом загрузить страницу, на ней будет с десяток скриптов и надпись "чтобы всё работало, включите скрипты"
Вот с какой проблемой столкнулся: страница грузится некоторое время, во время загрузки висит splash screen. Соответственно, прежде чем лазить по элементам, нужно дождаться загрузки. В селениум можно сказать "тупо жди n секунд", но это же херня, есть гораздо более удобный и продвинутый webdriverwait.
Я делаю вот так:
button = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, button_xpath)))
То есть по идее, селениум должен подождать, пока на странице появится элемент с нужным xpath, после этого уже делать дела. Если элемент не появился после таймаута, выкинуть ошибку. У меня всё работает, НО иногда, даже когда я уже вижу загруженную полностью страницу, селениум ждет полностью 20 секунд, несмотря на то, что нужный элемент уже присутствует. Всё обгуглил, нигде ничего нет, всё должно работать, как я и задумывал. ЧЯДНТ inb4 используешь selenium
Или, может это какая-то хитрая защита от скаппинга? Пару раз меня на этом сайте уже блокировало, приходится использовать undetected_chromedriver
Вроде нет, фигматочно уже готовая есть
скачал pycharm и при открытии круглых скобок вылезает какая-то херня.
Подскажите пожалуйста как эту херню пофиксить?
толсто. это сигнатура функции print.
ставь Gentoo Linux, на Microsoft Windows это не фиксится
Ахах
Выучил основы Питона, а там оказывается всякие comprehensions, decorators, generators.
Ладно, вроде разобрался с декораторами, можно уже какой-нибудь фреймворк для работки выучить.
Написал говно на голой Джанге с темплейтами. Получилось конечно же говно, нужно писать API и делать интерфейс для этого API, а для этого нужно:
1. Выучить DRF
2. Выучить JS/React
3. Хочешь аутентификацию? Ну на тебе несколько способов, ебись с ними. Хочешь грузить картинки и видосики в БД? Кек, ну на еще говнеца поешь, инфу покури.
Ой, чет у тебя сайт как говно выглядит. Ну-ка садись учить CSS, чтобы красиво было.
А бросать пет не хочу, т.к. он наполовину готов, осталось совсем немного.
Как же я завидую челам, которые вкатывались лет 7 назад, тогда говна в разы меньше было.
>Выучил основы Питона, а там оказывается всякие comprehensions, decorators, generators.
Т.е. ничего не выучил.
> а там оказывается всякие comprehensions, decorators, generators
это основа, база так сказать
Да выучил я это все уже, в доке питона внезапно все годно расписано.
Другое дело, что нужно еще кучу дерьма выучить и конца этому не видно.
>по производительности работает на уровне голанга
Это тебя кто-то обманул)
Библиотеки, написанные на С/С++, может, и работают на таком уровне, сам питон работает на уровне скрипта шелла по скорости.
Так и вижу сутулого подонка, который «нилюблю в этай вашый легаси капацца, мне нужна каждый день новая бебелеотека!»
И, сука, мажорный баг у них на это висит с 2020 года
С радостью бы перешел на вскод, но делаем в пч потому что он проще для планктона. Которому эти хинты и варнинги и предназначаются, собственно.
весь питон - сплошной позор
Ну кто ж виноват что у тебя голова что-то дальше легаси не может осилить.
Правильно соблюдать баланс, а не уходить в крайности.
>Просто знать как работает и всё?
Ну судя по местным даунам, у них прям оферов за это у каждого по чемодану, а дальше оне в документации месяц покопаются и что-то с стековерфлоу за три минуты спиздят — вот и работа сделана. Принципы же знаешь? Вот. Уже профессионал.
Я так принципы боевого пилотирования знаю — за два десятка лет отточил на симуляторных игорях. Я — пилот-асс.
Слово "выучил" какое-то неправильное, неуместное. Звучит так, как будто выучил стих, или названия какие-нибудь.
Даже когда иностранный язык изучаешь, там надо не просто учить слова, надо хорошо понимать и уметь использовать слова, сам язык понимать.
Вот эти декораторы, надо понимать, как ими пользуются, как они работают, уметь разбираться в чужих декораторах и свои делать.
И вообще надо уметь разбираться в логике программ, написанных на питоне.
>понимать
Как бы книжки тем и отличаются от документации, что поясняют принципы и задачи, а не просто перечисляют набор лексем. Следовательно, выучить книжку синонимично пониманию, а не просто зазубриванию.
Но тут речь как раз идёт о зазубривании. Челик выучил какой-то набор и не понимает что делать дальше. Так не бывает. Значит он просто заучил методы, но не понял их смысл.
ХЗ чего там чел >>2941767 имел в виду
мне вообще не понятно, что такое "выучил язык". Когда человек с приличным опытом программирования такое говорит, это понятно ещё. Но проблема изучающих в том, что они просто не умеют программировать, не понимают ИТ и т.п.
Реально ведь многие думают, что вот я сейчас "выучу питон" и смогу работать.
https://github.com/yakimka/python_interview_questions
https://medium.com/nuances-of-programming/80-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%BF%D0%BE-python-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-8096eb09cb39
В библиотеку добавил книгу "Рамальо Лучано - Python. К вершинам мастерства. 2-е издание (2022).pdf.pdf", если есть еще что-то свежее и интересное - пишите здесь или на почту.
Задайте с клавиатуры (через input()) строку, которая представляет собой набор слов через запятую (например ’Good,Day,Mister,Anderson’).
С помощью метода split() разделите эту строку по разделителю ’,’ и поместите результат в список ’a’. Выведите список ’a’на экран.
Создайте новый пустой список ’b’.
Переберите все элементы из списка ’a’ и если в текущем элементе есть символ ’e’, то добавьте его в список b.
Объедините список ’b’ с помощью метода join() с разделителем ’,’ и выведите результат.
Сам решил вот так:
a = input()
a1 = a.split(',')
print(a1)
b = []
for i in a1:
if 'e' in i:
b.append(i)
print(','.join(b))
source = input()
a = source.split(',')
print(a)
b = [
word
for word in a
if 'e' in word
]
print(
','.join(b)
)
Все. Привет.
Хочу написать не такой и простой, но и не особо сложный бот для телеги.
Есть ненулевая вероятность, что им одновременно будет пользоваться до 5 человек.
А еще желательно, чтобы он жрал минимальное количество ресурсов
Есть ли смысл писать на aiogram? Для меня это немного новая тема. Или телебота хватит?
Есть ли те, кто брал и то и другое? Сильно ли различается потребление ресурсов? Это является ключевым вопросом, сложность разработки и новое не пугает. Короче, если есть мастера, трогавшие оба, просьба дать свой честный фидбек.
к вершинам мастерства - это маст хэв. не читал - не питонист
запихну в модель is_student/is_teacher, что дальше то делать? как сделать, чтобы был разный функционал?
Асинхронный либы эффективнее использует ресурсы в случае с запросами и может держать гораздо более высокую сетевую нагрузку.
Если ботом действительно будут пользоваться пару челиков, то разницы нету какую использовать.
бери telethon - полуавтоматом генерит актуальную схему из TL-спек, лучше api (либы), возможность дёргать не реализованные ручки через использование биндингов к TL- объектам, поддержка mtproto, возможность авторизации как пользователем так и ботом. подробнее тут: https://docs.telethon.dev/en/v2/concepts/botapi-vs-mtproto.html
использовал телебот и аиограм. телетон во всем выигрывает.
Ты меня, наверное, за умного принял, я не такой
А можешь для дебилов обрисовать, чем телетон лучше? Ну, какой-нибудь кейс не особо вычурный.
> возможность авторизации как пользователем так и ботом.
Я планировал прикрутить авторизацию, чтобы бот считал некоторые данные для каждого пользователя, но он может это делать на основании message.from_user.username
Видимо, тут что-то сложное, и мне пока это не нужно.
А с точки зрения:
1) Использования ресурсов машины?
2) наплыва (в нашем случае, скажем, 10 параллельно сидящих пользователей) пользователей?
Про телебот читал, что он периодически начинает подтупливать и ему нужно помогать ручками, хотя читал и противоположное мнение, что люди просто не умеют его готовить
P.S. пока писал ответ, заметил ссылку на доку. Видимо, нужно было сначала изучить)))
Посмотрю. В любом случае, за наводку спасибо.
А как на питоне делать?
Появилась другая проблема, не работает вход, в базе данных есть юзер, но конкретно его не видит
при корректном логине/пассе как в бд выводит пользователь не найден
мнения?
есть dt=datetime.date() # например 01.02.1970
нужно добавить (или удалить) года,месяцы, дни (y,m,d) от этой даты. Но поля же могут быть пустые (нули)!!
получаю ошибки типа месяц не бывает = 0
Да. Очень. В названиях функций можно только нижнее подчеркивание использовать. Верблюда только в самых исключительных случаях в названии классов можно. Это общепринятый платиновый положняк питонского уклада. Срочно переделывай, если кто увидит сразу пизды даст и пидором назовет. А это... ну это хуже всего в общем.
читал ртфм.
тут dt2 = datetime(year=y, month=m, day=d)
если m=0 или d=0 или m=0 - то ошибка!! Как победить-то??
хреново я описал.
Есть dt1 = datetime()
Есть y, m, d= int (это delta year, delta month, delta day). Но эти значения могут быть нулями
Нужно найти разницу дат dt (сложить или вычесть)
if y>0: dt1 += datetime(year=y)
TypeError: function missing required argument 'month' (pos 2)
if y>0: dt1 += datetime(year=y)
if y<0: dt1 -= datetime(year=y)
if m>0: dt1 += datetime(month=m)
if m<0: dt1 -= datetime(month=m)
if d>0: dt1 += datetime(day=d)
if d<0: dt1 -= datetime(day=d)
ты немного не понял, или я хреново объяснил задачу, или ты тупенький.
Задача в нахождении НЕ разницы Datetime, а в отнимании года, месяца, дня.
Уже без твоих советов разобрался.
Timedelta нельзя использовать.
неправда, святые документы позволяют, более того, даже в стандартных библиотеках используются иногда
>>> datetime.now() - timedelta(days=34)
datetime.datetime(2023, 10, 27, 17, 39, 50, 729253)
свое решение покажи)
Всё так, просто сам по себе нейминг такой допускается и даже иногда используется. Причём для имён классов это стандарт, так и положено MyClassName, тогда как для функций-модулей настоятельно рекомендованы подчёркивания
В принципе это разумно, потому что ад, когда смешение стилей, часть методов, скажем, с подчёркиваниями, а другие верблюжьи
я вообще сначала думал итерироваться (виртуально само собой) по дням исходя из (y,m,d) с учётом isleap() от календаря, чтобы подсчитать все дни. И эту хрень скормить интервалу в datetime..
>>2944369
ну пиздец.
юзай relativedelta из dateutil, будет тебе учёт високосного года https://dateutil.readthedocs.io/en/stable/relativedelta.html
жалею, что в пистоне пип инсталл это нужно делать.
Ну почему его не интегрировали-то?? Хотя бы в модуль calendar хотя-бы... Дни можно добавлять, а года и месяцы с учётом високоски - уже нет ((
Бесит.
>Дни можно добавлять, а года и месяцы с учётом високоски - уже нет ((
Что ты имеешь в виду, поясни подробно на примере.
Сука, это просто самый простой инструмент использования сишных библиотек.
Как язык - отстой.
Быстрое развертывание, удобочитаемый синтаксис. Доступная и легкая асинхронность без мутексов и прочей еботни. Все преймущества скриптового языка с динамической типизацией.
Ну да, он понемногу переходит на си, но это же хорошо, больше производительность.
И не совсем понял фразу что он отстой как язык. Чел, если бы он реально был бы отстойным, на нём бы никто не писал и не делал столько прекрасных библиотек.
>он понемногу переходит на си
Кто на С переходит? Протык твой?
Библиотеки в Питоне изначально на С написаны (высокопроизводительные, понятное дело, а не хуйня для чатботов).
Вся математика, нейронка, датасатан и машобуч — на С/C++, без исключений. На голом петоне сам ебись.
Ну так и пиздуй в свой байтоёбский загон, хуле ты тут забыл? Пичот, что мартыханы говнокодят на штангах/фляжках/фистапи, не ебутся с указателями и памятью, импортируют готовые библиотеки и зарабатывают на этом неплохое бабло? Ничего себе! Бизнес внезапно порешал деньгами завистливых додиков-алгодрочеров, превратив разработку сервисов и приложений в "импорт слесарьфлоу эс сф; сф.ран(заебись=True)"
>зарабатывают на этом неплохое бабло
Каждый раз проигрываю с перевода любой неудобной для макаки темы на её копейки.
>неудобной для макаки темы
В чём неудобство, проигрыватель? Кроме пука "язык - отстой" что-то дельное будет или очередные "яскозал"?
Вот, никогда не понимал хейтеров Питона.
Сука, это просто самый простой инструмент для решения практически любой задачи, т.к. за тебя уже всё подготовлено, просто бери и пользуйся.
Как язык - заебись.
import time
date = '2015-10-20 22:24:46'
ts = time.mktime(time.strptime(date, '%Y-%m-%d %H:%M:%S'))
ts += 365*86400
print (time.localtime(ts))
date = '2004-01-01 22:24:46'
ts = time.mktime(time.strptime(date, '%Y-%m-%d %H:%M:%S'))
ts += 365*86400
print (time.localtime(ts))
#time.struct_time(tm_year=2004, tm_mon=12, tm_mday=31,
#tm_hour=22, tm_min=24, tm_sec=46,
#tm_wday=4, tm_yday=366, tm_isdst=0)
# это 2004-12-31 НО не 2005-01-01
Ошибка !
я ваши байты ебал пистручковые. Когда делал эмулятор ядра zx на асме, паскале, си. И это без говнокода. Усосал?
Я тебя спросил подробно описать задачу с примером, ты написал что надо дни прибавлять "+365 дней". Теперь какие-то новые условия появились с високосным годом. Ты не можешь даже сформулировать что тебе надо.
Задача в нахождении года, месяца, дня.
или dt- (y,m,d)
Если год високосный - deltatime - сосёт.
Вкатунец сравнивающий языки для плк с бэкенд разработками и выясняющий какой из них круче...
Чел, тебе потом очень стыдно будет за свои посты.
тебе же, дед, стыдно должно быть.
1) не понял задачу мозгом
2) не решил
Я решил гуглом за 2 часа
И кто тут обосрался-то?
это не сюда..
Год и месяц это не фиксированные отрезки времени.
С годами работай натурально:
2004 - 1 = 2003 год
С месяцами итерируйся по календарю.
11 + 3 = 2 месяц
Либо, если надо к дате прибавить год в днях, то можно просто смотреть в каленадрь високосный год или нет. Но вот если мы находимся в самом конце не високосного года и следующий идет високосный, у нас задача "прибавить год", нам 356 или 366 дней прибавлять? Ответ на этот вопрос условие которое ты закладываешь в логику своей програмы, я тебя джва раза спрашивал обьяснить задачу ты так этого и не сделал. Видимо ты просто принципиально не понимаешь что такое зачада.
Работаю в кал-центре банка. В принципе время есть на изучение. Но пугают многие, что сейчас уже шансов вкатится нет.
>зарабатывают на этом неплохое бабло
Ну, вообще-то, питонисты - это дно по заработкам. По сравнению с С/С++/Java-господами или программистами редких языков.
Чтобы быть высокооплачиваемым питонистом, надо быть очень сильным математиком, не меньше кандидата м.н. А это сам понимаешь, за две недели на скилбоксе не окучивается. Остальные - это уровень разметки данных или формоёбов.
не. Так ты вакансии не получишь. Тебе я сказал есть год. А нужно добавить/убавить какое-то кол-вод дней/лет/месяцев.
Чего тут ты не догнал-то??
это ты мне, падла, всё время звонишь???
Мы находимся в позиции 2004.01.31.
В следующем месяце 29 дней. Команда "двигаемся вперед на месяц". Где оказываемся?
Прибавляем к дате 31 день оказываемся в 2004.03.02?
Прибавляем к дате 29 день оказываемся в 2004.02.29?
Так сколько ты заработал-то? К примеру есть два моих проекта, которые в сумме приносят доход по 3 ляма деревянных в месяц (компании, не мне)
А у тебя сколько?
А вахтовик на севере получает ещё больше. Давай дальше сравнивать несравниваемое, говна кусок.
Создаю список, состоящий из такого же количества, как в слове, которое загадано. Буква вводится с клавы, при угадывании буквы, она записывается в список с и выводится answer в формате кк
Чому такой код работает корректно:
name=list(keyword) #загаданное слово
answer=[]
for i in range (0, len(name)):
qz.append('')
а это нет:
name=list(keyword) #загаданное слово
answer=[0]len(name)
Список из 0 создаётся, но в него не записывается угаданная буква.
Список из звёздочек
а у меня только пет-проект )))
Одновременно 1 год 3 дня - в минус от даты, и добавить 4 месяца ещё.
Сложно как-то, и не уверен, что ты не нарвёшься на високосный год. Не проверял такое решение.
Тупой высерог гонорейной свиньи, речь конкретно про то, что питонисты всасывают по зарплатам, как им и положено у своего места под шконарём. Потому что это кодеры скриптов, а не программисты.
взял и обидел меня. У меня вообще проект с ГУИ, БД оффлайновский. Типа, рабочее место специалиста некой сферы )
>ты кусок говна, не смей меня обижать
Я тебя понял, сын борделя рядом со свинарником. Жопа не болит?
ах тыж пидарок, всё на жопы засматриваешься. Папа так воспитал или мамка-шлюха?
Я хотел его наводящими вопросами к этому подвести, а то он уже три дня усирается в треде, хотя там решение на 7 строчек всего или даже меньше.
Пись, у тебя ума не хватает, или просто школота ёбаная? Чего моими же фразами отвечаешь?
анончик. ты попутал кто-кому-куда отвечает.
Я и есть кто спрашивал решение, но там реально 1 строчка кода вообще-то..
main()
Питон дал им requirements.txt, а они жалуются, пиздец
я думаю, что timedelta не подошла, т.к. максимально можно неделями оперировать. поэтому и порекомендовали relativedelta из dateutil, т.к. там уже и месяца есть и годами можно оперировать. всё-таки интересно какое решение за неделю обсуждения было реализовано.
Олимпиадники, лаборанты и вкатуны занимаются хернёй как обычно, пытаясь сложить 2+2 самым эффективным по их мнению способом и создавая себе челленджи.
У кого-нибудь есть такая же, только для Питона?
https://coggle.it/diagram/WqgTTNMJtPiHph_q/t/java-development-in-2018
Питон и так простой, как дойдешь до параллелизма, асинхронности, вот этого всего, считай что прошёл.
Не так уж много такого, что есть в Джаве, но нет в Питоне (зато наоборот - дохуя). Джава так-то сама по себе - один из самых простых языков.
Если смотреть на возможности языка, то в принципе нет чего-то такого. Основные концепции всё равно общие. Всякие DI и прочая хтонь
Так это во многом делает язык сложнее, тебе какие-то простые вещи нужно реализовывать сложно. Причём много инженерной магии, которую или надо понимать, или запоминать. Что сильно-сильно мешает вкату.
Да + весь исполняемый код из скрипт-1 также запускается.
Да, но лучше явно импортировать в том файле, где ты будешь это юзать, что бы при выпиливании импортов из скрипта-1 не забыть, что ты заюзал это в скрипте-2
Иногда бывает удобно импортировать именно из скрипта1, а не заново, особенно если указать его в __all__, особенно либы наподобие енкодеров, декодеров джона или пидантика где надо всё равно делать базовую модель. Очень удобно потом делать изменения, например, когда эта поебень решит обновиться до версии v2 и чтоб ты потом не сидел как даун и не чекал весь свой говнокод.
эту проблему решают самые базовые юнит-тесты. хотя бы создание объекта чекать и основные ручки. явное - лучше неявного
Да причём тут юнит тесты, так просто удобнее менять либу и изменить логику обертки в одном месте, чем менять импорты везде. Да и это вполне себе явно, используемые модули и функции явно указываются в __all__
Неявный полный импорт в основное пространство имён само по себе дурной стиль. Обычно делают from module import(func_1, func_2, ..., func_50), такую дикую простынку. Потому что явно. А уж вложенный неявный импорт совсем дурная вещь.
Пробую numba, у меня много числодробилок на проекте, по идее декоратор numba.jit или numba.njit должен бустить производительность, но судя по всем бенчам наоборот - происходит отсос по производительсности где-то на 50% а порой и вдвое. Втф?
питон 3.11
numba 0.58.1
https://pastebin.com/2RQUeFkQ
Первый - без нихуя
Второй - с jit
Третий - с njit
Там немного видоизмененная функция outer из исходного сурс-кода, там тоже идет перебор с if-elif-else а затем происходит какой-то дрочевный расчет на голом питоне. На моей машине показано какое время исполнения. Все у 1го сосут
Как видно, я не просто пускаю цикл из 100к записей считаться, перед ним я прогоняю измененную функцию чтоб jit смог ее скомпилить, на это обычно достаточно времени тратится - оно не учитывается в итоговом бенче
Вот такой вариант (цикл целиком в numba) работает за 1 мс даже с учетом генерации args. Видимо если юзать numba то надо это делать по полной программе, при частых вызовах из питухона только отсосешь. Почему - хз. Я ожидал что не будет особой разницы, но то что я отсосал в 2 а то и в 8 раз это конечно сюрприз
П.С. декоратор с аргументом fastmath=True ни на что не влияет кстати
>при частых вызовах из питухона только отсосешь
Как бы это странно не звучало, но в питоне вызов функции это дорогое удовольствие, так как каждый раз генерируется и удаляется фрейм
Убирать обратную совместимость и не менять название модуля - вот действительно дурная вещь. И вместо from module import ты вполне себе можешь написать import module, особенно если тебе надо использовать с десяток функций, классов оттуда. Перечислять их все - тоже дурная вещь и гораздо сильнее снижает читаемость.
>Убирать обратную совместимость и не менять название модуля - вот действительно дурная вещь
Если ты не залочил мажорную версию, то сам себе буратино
Я всё залочил. Просто хотел обновить либу, т.к она быстрее стала
я вот нифига не могу понять как чел в примере сделал из списка кортежей с парами(индекс-значение)
вытащил только значения
lol = [a for b, a in enumerate(masiv)]
как его представить в виде вложенного цикла for? за что в этом включении отвечает буква r? а буква а? а это сами пары? зачем нужна тут запятая?
вот тут идентичный ответ и тут понятно как
представить как цикл.
abu = [x[1] for x in en]
не способен увидеть запись?
> lol = []
> for index, value in enumerate(masiv):
> lol.append(value)
Начни с английского, нужен уровень B2. Когда выучишь английский - приходи, скажу что делать дальше.
А если нету В2? Есть только А0, но при этом разумию что написано когда читаю? Ну и слышу что говорят когда видосики про кодинг индийцы рассказывают
Риторический вопрос, чечил. Многие наносеки так и не научились программировать, например.
854x480, 2:08
Начинай с испанского, не прогадаешь. Херки будут течь
Зависит от того что ты хочешь. Работать или олимпиады делать
Зато зарабатывать научились. А остальные пусть изобретают свой транзистор. Не спаял комп - не программист.
2.7.5
От 3.6 до 3.12 в зависимости от древности проекта.
на дваче
Сравниваю с ассемблером
Буллинг
>Видимо если юзать numba то надо это делать по полной программе, при частых вызовах из питухона только отсосешь. Почему - хз.
Потому что всё время занимает сам вызов функции, а не исполнение кода. JIT в таких случаях просто не может разогнаться.
Олег, ты? Узнал тебя по твоему чатику с философствованиями
А то чёт я смотрю бенчмарки в сравнении с го и мне кажется что я несколько лет занимаюсь не тем чем надо.
>сравнении с го
На питоне по сравнению с го просто дохуища батареечек, сахарка и удобных абстракций типа итераторов с генераторами. Писать бизнес-логику на порядок приятнее. Го нужен когда тебе надо много-много байтов гонять.
Если го нужен для байтов, зачем его позиционируют как бэкенд язык, где в основном надо ждать ответы на запросы?
Потому что многопоточный рантайм с ожиданием этих самых байтов там на порядок лучше чем в питоне
Многопоточные - не особо, многопроцессорные - да, но из-за IPC при определенных ситуациях может быть медленнее чем синглтред.
Вернее так, при определенных ситуациях мультрипроцессинг может сильно ускорить выполнение, но нужно знать триггеры на смену контекста. Отдельный тред для отправки агрегированных метрик, который просыпается раз в секунду это пример хорошего использования.
питон может в многопоточность, и она даже работает, просто в случае чистого питон кода ты не получишь прироста производительности. Но в каких-то случаях получишь, если у тебя, например, идёт работа с БД, или с тяжеловесными си-функциями из разных библиотек.
и вообще не устаю напоминать, что многопоточность придумали ещё в те времена, когда компьютеры были однопроцессорные и одноядерные. То есть придумывали её не для ускорения, а для реализации логики одновременного исполнения, чтобы не было блокировок и т.п. Необходимо, например, для GUI. И для сети, хотя тут есть альтернативы. Ускорение на многоядерных системах это уже более поздняя вкусная фишка.
class SomeClass:
__init__(self, a, b):
self.a = 1
self.b = 2
в твоём случае нет композиции.
композиция в ооп, это наличие в классе объектов другого класса и взаимодействие с ними.
например: есть классы бочка и объект. при инициализации классов задаётся объём. у класса бочка есть метод добавления объектов и метод рассчёта свободного объёма, который из собственного объёма вычитает суммарный объём хранимых объектов. это композиция в ооп.
Если бы a и b не были параметрами конструктора, а были бы экземплярами пользовательских типов, и в SomeClass были бы методы, которые как-то взаимодействуют с ними, то было бы композицией.
https://www.geeksforgeeks.org/inheritance-and-composition-in-python/
Зато пиструны-онлайнеры дрочат на жанго и фласк. Фу, бля, не отмыться теперь от такого говна...
На жангу дрочат работодатели, потому что с большой вероятностью это будет нормальный чел, а не "фу, я не буду на этом писать"
Питон - ебейшая конкуренция среди джунов, херки ахуевают от количества резюмех и сбрасывают их сразу в Корзину
Нода - и так была не шибко популярна в СНГ а после 2022 и подавно
Го - после 2022 число вакух сильно схудно + вкатунов в Го не берут
И все таки из этих трех, какой лучше остальных подходит для вката в бэкенд-разработку в РФ?
Пыха
Просто он говорит про всякие известные конторы с зп 300к, туда естественно не буду брать сходу, лол. Да и сам боится что будет конкуренция. Других мелких фирм для него не существует считай.
10 мало, надо больше. Да и смотрел поди на жирные зарплаты. Джуны с универа без опыта обычно от 100к ищут. По хорошему надо сначала работать за еду, набраться опыта, а дальше уже метить куда ещё.
На счёт мидлов они взяли скорее всего того кто меньше запросил. Скиловые обычно не работают в рф.
Реально собесов было больше, около 20, просто с половины я сам слился, т.к. не хочу идти в контры, типа сбер/втб/вк, а они основные засиратели рынка вакухами
А у меня наоборот, примерно с 80% собесов выходил с оффером. В основном мелкосредние компании, но и относительно большие типа циана попадались.
Ты из ПР-отдела гикбрейнс? Ты сам-то подавал в последнее время резюмехи свои на джуна?
Ну я на такую же вилку собесился, где-то даж 400 было, но везде соснул, а на текущем 280 получаю и выше вряд ли дадут.
>>2955655
Это вы на мидловые позиции собесились? сами-то себя кем считаете?
А то большинство вакансий, которые вижу для бэкенда на питоне, какие-то нищие по сравнению с автоматизацией на джаве
ну типа в вакансиях авто-куа на джаве хотят опыт год-два и дают до 250, а для петухонистов-бекендеров - 3года+ и дают в районе 200
//мимо перекатился из авто-куа в бекенд
854x480, 0:17
Как завещал PEP8 в 79 символов или на похуях 120 по PEP8 E501?
не там смотришь. Результат возвращается по другому запросу, а именно: https://kinase-library.phosphosite.org/api/scorer/score-site/DLSDDDS*DLDDS/Homo%20sapiens%20(Human)/OCHOA/true/false
Молодец. Собственно риторический вопрос: в 2k24 выдерживать длину строки в 79 символов чтобы что?
чтобы комфортно работать в termux🍄
На 27" мониторе влезает два окошка с кодом с крупным шрифтом, слева даже остается место для дерева проекта.
С длиной строки 120, конечно же.
Чтобы зрение не посадить
Чтобы детектить молодых зумеров-петушков, которые на ruff сидят, или олдовых петухов с закалённым очком, которые ещё на 2 питоне писали с pylint2 сидели.
79 символов. Я за традицию, за традиционные ценности так сказать
можно выносить в pyi файлы - раз, задавать каждый аргумент функции на новой строке - два. 79 символов хватит всем!
Скачай кряку, дело 5 минут же
>Перфокарты
Там 72 символа знаковых было, оттуда в фортране ограничение. Первые солонки на перфокарте не для кода, а для других целей были
>Терминалы
собственно исключительно из-за этого, раньше, когда ЭЛТ мониторы были, более-менее нормой было работать в текстовом режиме. А там 80 колонок, при этом самая правая обычно под прокрутку выделялась
>>2956139
>На 27" мониторе влезает два окошка с кодом с крупным шрифтом, слева даже остается место для дерева проекта.
А потом в один момент ты пакуешь чемодан с съёбываешь. И разрабишь на своём ноуте, где 14-15-16 дюймов.
Только там легко гавном обмазаться, особенно конда недавно новый pylance вышел, а до этого autopep просто пенестал работать. Хорошо что есть ruff вместо этого старого говна.
Алсо, есть какой-нибудь плагин, который проверяет импорты в файлах?
>А потом в один момент ты пакуешь чемодан с съёбываешь. И разрабишь на своём ноуте, где 14-15-16 дюймов.
Делаю так регулярно, в чем проблема? Ну да, на 14" не влезает два окна, и хуле с того? Так даже если строчки будут по 79 символов - один хуй не влезут с вменяемым шрифтом. Или ты просто так решил нахрюкнуть?
Как в drf сериализовать значение, которое возвращает метод модели?
Например, у нас есть есть модель Блюдо, в ней поля название и ингредиенты, также в этой модели есть метод блюдоВеганское(), который возврашает либо истину, либо ложь.
Как в сериализаторе вызывать этот метод, чтобы потом записать в json что-то вроде {dishIsVegan: true}
В доке чет ничего нет.
Если "блюдоВеганское()" это "@property" то можно так:
from rest_framework.serializers import BooleanField, Serializer
class DishSerializer(Serializer): # or inherit from ModelSerializer
____dish_is_vegan = BooleanField(source='блюдоВеганское')
Если не проперти то как вариант можно SerializerMethodField сделать
Спасибо огромное, анон.
Бля ты думаешь тут клуб книголюбов или внеочередное собрание библиотечных червей? Я хуй знает какое у них содержание. Могу чисто по заголовкам и датам судить.
Изучаем python + введение в системы баз данных - выглядит норм. Всё остальное - ну такое себе.
конечно же с той, что про джангу и базы данных, параллельно вершины мастерства читай чтобы не скучать.
Читай Лутца какого-нибудь, если тяжко документацию читать.
Бью текст на слова, нахожу нужное итерацией по всем словам, но как сделать проверку "нашлось/не нашлось" не понимаю
Пока код такой:
text="Тут дохуя текста"
for word in text.split():
____if len(word) == 25:
_______x=str(word)
Что делать дальше не понимаю, как задать дальнейшую вилку, отправлять дальше этот х куда-то или нет?
Пока сделал через try-except, но мне кажется за такое пиздят
Типа дальше
try:
____#работаем дальше с х
except:
____#если х не существует вместо ошибки
____print("В тексте не было слова с нужной длиной")
def find_word(text: str) -> Optional[str]:
____for word in text.split():
________if len(word) == 25:
____________return word
def main():
____if word := find_word(input()):
________do_something(word)
Вопросов больше не имею.
filter медленнее for и менее читаемее.
> Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
https://www.composingprograms.com/
приходит 28-летний чел, говорит что собрал какой-то интернет-магазин, какие-то нанотехнологии, когда спрашивают про сложности отвечает да сложностей-то никаких и нет, просто садишься и пишешь
потом ему дают задачу и задача это просто какая-то приколюха где надо из массива вытащить какие-то определенные элементы или ещё какая-то залупа и он с ней разбирается минут 40 с помощью интервьюера
объясните мне как он мог сделать коммерческий проект в миллион строк кода и как эта задачка одна связана с его работой в принципе? у меня ощущение как будто я схожу с ума когда смотрю эти собесы
за кадром все ебучие биллы гейтсы а в кадре какая-то странная хуита
Я выучил на С1, как зарабатывать хотя бы 40 тыщ и не сойти с ума?
В принципе может быть и в реальной жизни так, если ты не надрачиваешься на проходы собесов. Ты привык делать одно, большой проект, в спокойной обстановке, в привычном редакторе.
Тут же тебя собеседуют, это стресс большой, когда каждое твоё действие оценивают, пишешь другую задачку, в другом редакторе, чем обычно. Тут как раз нормально тормозить и тупить, причём особенно если ты не джун.
Я не совсем программист и я в принципе понимаю психологический аспект, но просто как факт, чел по сути довел до конца коммерческий проект с системами, подсистемами и кучей всего, и по сути на собеседовании его силы проверяют какой-то одной задачкой на логику которую он ещё и решает с огромными усилиями. Мне это кажется странным каким-то, неестественным. Может быть я переоцениваю количество усилий которые нужны чтобы сделать пет проект и их будучи и подпивасом можно сделать гугля 99% решений?
А что ты хочешь услышать? Может быть чел всё придумал про свой опыт, приукрасил, просто механически реализовывал проект по инструкциям. А может быть на фоне стресса затупил. Это вообще обычное явление, когда адски тупишь.
Откуда мне-нам знать, что там было?
Кто-нибудь на работе пользовался матрицами при работе с веб-проектами? Или каким-нибудь граф деревом или что там спрашивают некоторые тупые эйчары.
Ну блин, смотри. Есть такая профессия - врач. Челик приходит на новую работу, до этого он долго был стоматологом, а тут его внезапно начинают спрашивать про нейрохирургию.
>Есть такая профессия - врач. Челик приходит на новую работу, до этого он долго был стоматологом, а тут его внезапно начинают спрашивать про нейрохирургию.
Ну ты сравнил... Это примерно как разработчик на 1С придёт устраиваться на разработчика драйверов сетевых карт для линукса.
Скорее вот придёт нейрохирург устраиваться на работу, а ему предложат рассказать про этапы формирования нервной системы у эмбрионов. Если ты вчерашний студент или занятия ведёшь, то легко ответишь, если же ты врач, то легко зависнуть можешь. А тот, кто недавно учебник прочитал может возмущаться, как так, врач таких базовых вещей не знает, как ему диплом вообще выдали.
Подозреваю там не смогли в смалтолк на собесе.
Кандидат может был архитектором и код давно не пишет, жонглирует готовыми кубиками. Или он тех.менеджер, давно конвертнувшийся. Надо потратить 5 минут не на пересказ резюме, а на выяснение какими конкретно задачами чел занимался на последнем проекте и в какой роли и готов ли он свичнуть роль, если она не совпадает с ожиданиями в вакансии.
Вот. То ли эйчар тупой, то ли он тупо все проекты на аутсорс кидал и не может ничего сказать о себе.
Мне прост смешно становится когда вкатуны на серьезных щщах учать граф деревья, сортировки и матричную хуйню вместо инструментов, архитектуры и подходов к разработке. Информатику, математику, булеву алгебру етц и, собственно, само программирование надо отделять друг от друга, это вопросы образования, а не самого навыка.
Пользуюсь либрой telebot
Пытаюсь сделать какое-нибудь отслеживание при нажатии на:
inline_button = InlineKeyboardButton("Test", switch_inline_query_current_chat="Test_text")
Т.е. условно хочу, чтобы при нажатии на эту хуйню, мало того, что мне в user input уходил текст "Test_text", но и чтобы бот смог понять, что я нажал на эту хуйню и вызвал нужное мне событие.
Это вообще реально сделать?
Тебе нужно хендлеры на нажатия повесить, читай документацию лучше. Вот даже ебучий пример для даунов сделали: https://docs.python-telegram-bot.org/en/v20.7/examples.inlinekeyboard2.html
>>2962175
Тебе дали правильный совет. Логика для выполнения твоей задачи должна быть такой:
Используешь колбек дату, данные которые добавляются при нажатии кнопки:
inline_button = InlineKeyboardButton("Test", switch_inline_query_current_chat="Test_text", callbackdata="Test_clicked")
Затем пишешь хэндлер для этого действия
@bot.callback_query_handlers(func=lambda call: True)
def callback_for_button(message):
if call.data == "Test_clicked":
print("Нажали на твой кал пальцем и он провалился")
callback_data быстрофикс
А ты лучше бы глазки от мочи протер.
Интернет-магазин собирается из готовых кусков. Или полу-готовых.
Ни программирования, ни собственных архитектурных решений там нет, есть написание простейшего кода для склеивания, хотя его там и много.
Естественно, такой вася даже пузырьковую сортировку не напишет. И, иногда, даже не поймёт что от него вообще требуется.
Кто представляет бОльшую ценность для работодателя: челик, который может быстро реализовать бизнес-задачу, или олимпиадник, который пишет сортировку на Си?
> Кто представляет бОльшую ценность для работодателя: челик, который может быстро реализовать бизнес-задачу, или олимпиадник, который пишет сортировку на Си?
Первый на должность продакт манагера, второй на должность разработчика
Хуже нет олимпиадника на должности разработчика. Он вместо быстрой реализации фич ебет мозги с алгоритмической сложностью.
Олимпиадник сможет всё, справиться с любой сложной задачей. А вот "быстро реализующий бизнес задачу" всё завалит, как только работы выйдет за рамки чего-то шаблонного, что уже сто раз написано, разобрано на айти курсах и т.п.
>Олимпиадник сможет всё, справиться с любой сложной задачей
Олимпиадник справится только с алгозадачей, про какие-нибудь страшные вещи типа шардирования по ключу, кворумы или выборы хранилища они не слышали. Работу с БД на олимпиадках тоже не делают. Вообще алгосики это малая часть от того что делает средней программист, там еще кучу всего знать нужно.
>как только работы выйдет за рамки чего-то шаблонного
Лул, так олимпиады это как раз таки соревнования по подбору идеального ключа для синтетических задач разработанных именно под этот ключ, когда идеального решения не находится и нужно искать компромисы начинается ступор.
мимо ходил в кружок по спортивному программированию в вузе
Чтобы решать олимпиадные задачи нужны мозги и ясность ума. При их наличии освоить индустриальные техники не такая большая проблема. Главное, что человек понимает что и зачем он делает.
А вот решать шаблонные бизнес задачи можно абсолютно бездумно, просто выучив как-то шаблон и как-то соединив части. Не понимая смысла, что и как. Только как только ты выходишь за рамки чего-то стандартного, так сразу эпик фейл возникает.
>Лул, так олимпиады это как раз таки соревнования по подбору идеального ключа для синтетических задач разработанных именно под этот ключ
Не только и не сколько. Например тебе необходимо предусмотреть все corner case, которые могут завалить программу. Не предусмотришь -- провалишь тест и проиграешь. Это нереально полезный скилл и образ мышления для разработчика ПО.
Само собой олимпиадника надо доучивать, потому что тебе нужно работать с продуктами не на 20-100 строк, на на десятки-сотни тысяч и больше. И ещё кучу всего знать. Но эти вещи не так долго осваивать. Да и олимпиадники обычно не в вакууме развиваются.
Но суть в том, что потолок олимпиадника очень высокий потолок, из него может получиться нереально крутой спец. А "решатель бизнес задач" большого потенциала не имеет.
>Олимпиадник сможет всё
Ага, да. Вот только я лично этих чмонделей собеседовал и знаю на что они способны, а ты нет.
Я никого не собеседовал, хотя когда-то мне предлагали поучаствовать.
Давай иначе, не олимпиадник, а любитель решать олимпиадные задачи, в том числе очень сложные. Разница в том, что в "спортивном программировании" во главу ставится нереальная скорость решения задач, а это не нужно, часто даже вредно.
Но уметь решать сложные олимпиадные задачи ценно.
>Он вместо быстрой реализации фич ебет мозги с алгоритмической сложностью.
Лоооол олимпиадники как раз и въебывают как папы Карлы и овертаймят, потому что увлеченные аутисты.
Это решатели задач со временем начинают закладывать х10 эстимейт на покраску кнопки и грызть всех, кто работает слишком быстро
>Лоооол олимпиадники как раз и въебывают как папы Карлы и овертаймят, потому что увлеченные аутисты.
Им нравится такие же аутистические задачи делать, а не кнопки красить, когда ты ожидаешь чего-то особенного, то быстро выгораешь. Вне RnD нахуй не нужно.
Вот этого двачну. Додики наполучают медалей и грамот, звезду поймают и думают о себе хуй пойми что. И задачи им интересные подавай и мотивируй постоянно. А говно вилкой чистить не хотят, баги фиксить - не царское дело, в легаси ковыряться - выше их достоинства.
я думаю, что timedelta не подошла, т.к. максимально можно неделями оперировать. поэтому и порекомендовали relativedelta из dateutil, т.к. там уже и месяца есть и годами можно оперировать. всё-таки интересно какое решение за неделю обсуждения было реализовано.
Решение одно. Остальное придумали местные олимпиадники.
Ты подожди, скоро они тебе на ассемблере код напишут. Может свой микропроцессор сделают.
Проблема олимпиадников в том что они те самые велосипедники, которые потом просто выгорают. Обычно такие люди пишут какие-то библиотеки на гитхабе, а потом жалуются что у них нет времени и они едва сводят концы с концами. Им проще написать свою либу чем работать с существующими.
Это максимально вредно для работодателя, потом этот хер уволится, а остальным ещё разбираться в его отсебятине.
>Лоооол олимпиадники как раз и въебывают как папы Карлы и овертаймят, потому что увлеченные аутисты.
>увлечённые
1. 90% времени работы — это тупая рутина. От тебя никто не требует превозмогать и вести человечество космическими темпами в мегапрогресс. От тебя нужно тупое повторение уже известного максимально быстрым способом. посмотри как на китайских заводах макаки игральные карты пакуют (или подобную мишуру, которая недоступна станку).
2. Слово «увлечённые» я не зря выделил. Умный готов въёбывать, пока ему интеренсо. А как только он в чём-то разобрался, это летит нахуй, потому что становится рутиной, а рутина умному человеку не интересна. Именно в этом состоит ЖЫЗА, почему набирают тупых и с небольшими запросами — они будут делать 90% работы.
Всё время быть увлечённым нельзя — умных хватает и они будут зубами цепляться за интересную работу, посылая тебя нахуй и подставляя прямым образом. На всех её не хватит.
А дальше — думой сам, как с этим теперь жить.
Есть аутизм, есть СДВГ, хотя у них там родственная внутренная природа и они часто сочетаются. Для айти свойственно.
Аутизм это когда садишься за проект, вгрызаешься в него досконально, организуешь свою зону ответственности, вылизываешь так, как считаешь правильным, всех пытающихся к тебе чего-то влить и у тебя чего-то поменять посылаешь грубо нахуй, менеджеров с их отчётами посылаешь нахуй, запросы по-возможности игнорируешь. Но тебя терпят, потому что ты реальный спец, на тебя много завязано. Как разосрёшься с начальством, бросаешь всё и уходишь на другую работу
СДВГ это когда ты бросаешься на то, что тебе интересно, реально в это вгрызаешься, можешь перформить, придумывать что-то интересное, что другим не под силу. Это "гиперфокус". Но одновременно ты хуй чего будешь делать из того, что не интересно, не можешь заставить себя сесть даже за простые задачи, пока совсем дедлайн не подходит, и редко готов разбираться с легаси-говном. В плане отдачи хуже, чем аутизм, в плане выстраивания совместной работы лучше, отдача может быть, если хорошо организована совместная работа, плюс ты можешь придумывать что-то очень полезное, особенно в сложных ситуациях.
>1. 90% времени работы — это тупая рутина. От тебя никто не требует превозмогать и вести человечество космическими темпами в мегапрогресс. От тебя нужно тупое повторение уже известного максимально быстрым способом. посмотри как на китайских заводах макаки игральные карты пакуют (или подобную мишуру, которая недоступна станку).
Всё-таки в айти тебе в любом случае надо напрягать мозг, с чем-то разобраться, что-то придумать. За описанных заводах мозг надо отключать.
Только в каких-то больших компаниях может быть работа чисто рутинная. Литералли красить кнопку, когда всё есть, всё работает, но надо периодически менять дизайн кнопки, как пришлют техзадание.
Ох ебать какая жиза. Однажды взяли в команду челика и поручили ему написать каркас для нового сервиса. Ну банально джану развернуть, пару либ прикрутить и вот это все. Так этому додстеру не понравилась реализация существующих либ и он начал пилить свою. Так и пердолился три месяца, а в конце показал ебаное нихуя. Так и выпизднули по итогу ИС.
Вы меня спросите: а куда смотрел тимлид? А я, блять, задаюсь тем же вопросом и не нахожу ответа, хотя прошло уже пять лет с тех пор.
>>2963413
Ещё можно быть просто умным нормисом с мозгами. Это когда ты в принципе можешь разобраться, спокойно разбираешься. Можешь спокойно пиздеть на митингах, что-то накручивая по полезности сделанного, по сложности. Не делаешь лишнего, даже если это не сложно и может отдачу проекту принести, но тебе сильно не зачтётся. Если компания большая, работаешь над повышением своего грейда. Заводишь нужные связи и продвигаешь свой профиль, свои резюме. Если видишь работу с условиями лучше, просто уходишь туда, потому что на проект тебе абсолютно похуй.
Уставший нормис - пролезаешь как-то на работу, как-то разбираешься, чего-то заливаешь на митингах, чтобы видимость была. Айти и технологии не интересны вообще. Минимально работаешь, а главная цель чтобы на мороз не выгнали.
Затем, чтобы показать, что ты хоть немного понимаешь, что такое программирование. Или ты думал, что тебе деньги будут платить за то, что ты нагуглил всякой хуиты, поставил либы, написал клей - и, вуаля! - давате мне сотыги? Тебя заменят на чат-гопоту, и всё.
Если ты не можешь написать _пузырьковую_, блядь, сортировку, или сделать бинарный поиск в списке, или не понимаешь (хотя бы в общих чертах), как работает hash map (словарь) - ты просто дегенерат.
И нет, это не про олимпиадников.
Олимпиадники/математики на самом деле хуёвые программисты, чаще всего.
Потому, что программирование - это не математика. Точнее - это не та математика. Работают разные части мозга.
Что касается требований бизнеса, то въёбывать мало где требуется. Только на галерах, которые твой почасовой труд перепродают. Или где-нибудь в ручном тестировании, но это не разработка.
Чаще надо что-то поддерживать и дорабатывать, что уже давно есть. Тут главное разобраться в проекте, что та ещё история. В те моменты, когда надо что-то сделать, ты работаешь. В другие ничего не делаешь, но ты нужен потому, что за тобой проектные знания.
>И нет, это не про олимпиадников.
>Олимпиадники/математики на самом деле хуёвые программисты, чаще всего.
Вообще скорее близко к математике.
У олимпиадников другая проблема, их скиллы заточены на спорт, чтобы сделать максимально быстро, быстрее, чем соперники. "качество кода" в принципе отсутствует. Код небольшой, всё про алгоритмы.
В то время как в работе не важно, если ты на что-то сложное потратишь четыре дня вместо двух.
value in some_list
some_list.index(value) # выбросит исключение, если нет
some_list.count(value) # перебор в любом случае
во всех случаях сложность линейная
Программирование (не алгоритмистика) - это не про математику, это про лингвистику. Которая тоже математика, только другая.
Дополню господина выше: если стоит задача проверять вхождение значения в некое множество - лучше использовать set.
То есть, в питоне до сих пор даже .contains нет? Охуеть.
Да ещё и исключение выбрасывает, вместо человеческого -1.
Какой же, всё-таки, Гвидо мудак.
Если бы не ебучий дата-сайенс, про питон сейчас бы уже и не помнил никто, после эпичного-то фейла с несовместимой 3-й версией. Он так отчётливо тогда начал становиться легаси-технологией, а'ля Perl.
Если список не отсортированный то только перебор всех элементов, да
Есть, только реализуется через магические методы, для того же листа достаточно сделать так
item in my_list
>Да ещё и исключение выбрасывает, вместо человеческого -1.
Выдавать результатом на проверку вхождения число вместо тру/фолс это по твоему по человечески?
>Если бы не ебучий дата-сайенс
Питон сначала был перлозаменителем для сайтов, потом с 3.5 стал популярнее из-за нормальной асинхронщины из коробки, датасаенс потом подтянулся
Кому показать? Ты работал вообще хоть где-нибудь?
Я не помню чтоб мне хоть где-то требовалось сделать свой алгоритм. Эфективно распределить ресурсы сервера, сделать оптимальную архитектуру проекта, заложить масштабируемость, надёжность - да.
Но придумывать самому алгоритмы которые были сделаны в прошлом столетии - нет. Даже не представляю где это можно применить. Сдаётся мне ты пересмотрел курсов и почитал много ненужных книг, но в реальной работе это не используется, ну может быть где-то в 2-3% вакансиях
Я б с удовольствием использовал чат жпт для генерации кода, но он так и не даёт мне даже ответы на интересующие вопросы в плане архитектуры, что уж там говорить про код, который сделан на уровне хелоуворлда.
>объясните мне как он мог сделать коммерческий проект в миллион строк кода и как эта задачка одна связана с его работой в принципе?
Кроме говноалгоритмов, говносортировок, говнографов, говнохешей, говнодеревьев, говноматриц, говновекторов нужно в голове держать ещё дохуищи информации. Нужно знать как кешировать, как работать с БД, аутентификацию, авторизацию, шифрование, как с кубернетисом работать, как настроить CI/CD, нужно помнить GraphQL, Rest API, и так далее и тому подобное. Как он смог такое сделать? Ему просто нахуй не надо было знать в тот момент. "Полезные знания" не равно "необходимые знания". То есть говноалгоритмы знать полезно, но также полезно знать маркетинг, полезно знать администрирование линукса и прочую хуйню. Жить без этого можно. Не конец света.
Например у меня есть сотня-другая значений даты-времени, хочу получить 14 графиков за последние 2 недели со столбцами по часам
Где ты его собрался построить?
Что делать дальше с тем, что ты построил?
Вот тут почитай:
https://opensource.com/article/20/4/plot-data-python
Агрегацию поиска по бд? Это что-то сложное где требуется быть олимпиадником? Серьезно?
>Где ты его собрался построить?
В виде пикчи. Ну или ascii какой-нибудь я не знаю.
>Что делать дальше с тем, что ты построил?
Анализировать епта.
Не знаю почему я про него не подумал. Даже странно как-то. Спасибо.
А пузырьковая сортировка - это типа что-то сложное, и надо быть олимпиадником, лол?
А бинарный поиск?
А рекурсивный обход каких-то связанных структур ты тоже никогда не делал? Это очень распространенная задача.
>>2963782
Ну, ссылку я там дал, этого более чем.
Алсо - можно вообще заебенить GUI на wxPython, и там прямо на форме рисовать, в реальном времени.
Если ты будешь делать свою пузырьковую сортировку и методы поиска, то тебя на ревью не пропустят.
>Перлозаменителем для сайтов был PHP. Да и сейчас есть.
И какую нишу по-твоему занимал питон в то время? Тот же перлозаменитель для нитаких как все, только менее популярный. За счет джанги/фласка/торнадо он и был нужен тогда.
Вот гопота прекрасно мне ответила на вопрос, на который ни один двачерок или петуш с киберфорума не мог дать внятный ответ. Ебало?
Все максимально понятно, раз сетка поняла. Как раз таки "проблемы" с сеткой в основном от того что люди через жопу ей задают вопросы
>За счет джанги/фласка/торнадо он и был нужен тогда.
Тогда не было никаких "джанги/фласка/торнадо". Даже в проекте. Речь про питон 1.5.2, и про ранние версии 2.
Питон - язык общего назначения. На нём писали программы и скрипты. Если я ничего не путаю, то в SUSE весь инсталлятор на питоне был написан. Писали просто десктопные приложения на wx и qt. Писали энтерпрайзные системы (не веб, веб тогда только начинался).
А потом был Zope. И это было охуенно. Помнишь Zope?
На питоне начали писать большие энтерпрайзные веб-системы.
А потом - Sun допилил до вменяемого состояния Java EE (j2EE, как это тогда называлось), в джаве появились дженерики, появились крутые инструменты, народ научился в Swing, и питон ушёл из энтерпрайза в тень.
А вот потом уже появились ваши джанги-хуянги. Гораздо позже.
Я не он, но, я тебе скажу, что если ты такие вещи спрашиваешь у двачеров или у гопоты, а не находишь сам за 5 минут в доках или вообще в исходниках пидантика, то ты не особенно умный.
Я уже не говорю о том, что питон - динамический язык, и там в реальном времени можно пройтись по всем свойствам и методам объекта, и сделать с ним что хочешь. Ты же сможешь рекурсивно обойти объект и все его свойства-объекты, и сравнить с другим? Или "алгоритмы" не нужны?
>не веб, веб тогда только начинался
всё-таки не совсем, веб в мире стремительно попёр вверх в конце 90х, в 2000м уже был "крах доткомов". Если смотреть 2000 год, тогда уже был дикий хайп вокруг Java, продвинутые веб приложения делали или на JavaApplet (когда упор на функционал), или на AdobeFlash, когда упор на графику. Про питон я тогда совсем ничего не слышал, по крайней мере в РФ вот совсем не на слуху был, пользовались перлом и sh.
PHP по-моему взлетел чуть позже, может где-то в 2002, до этого уж совсем примитивным был.
Мне в целом кажется, что питон никогда не был мэйнстримом, всё-таки GUI приложения ассоциировались скорее с C++, Visual Basic/C++, Java. Возможно на западе в энтерпрайз кругах другая история была, но мне кажется, что там было засилие Java, как и сейчас собственно.
Питон как-то сначала в научных кругах был, плюс это язык для обработки текстовых данных. Плюс он начал очень давно использоваться как язык системного администрирования, вместо bash/sh и perl.
>>2963661
>потом с 3.5 стал популярнее
Хайп вокруг питона начался раньше, в конце нулевых, до выпуска 3 ветки. А вот переход на третью ветку был жутко косячным, с кучей просчётов по стратегии перехода. В результате была ситуация, когда уже несколько лет существовала 3-я версия, там что-то вроде 3.2, а большинство основных пакетов вроде Django, NumPy и других третью ветку не поддерживали вообще. Популярность питона стала резко падать из-за этого, плюс альтернативы подтянулись по многим направлениям.
К версии 3.5 уже косяки перехода преодолели, плюс саму ветку уже довели до ума, плюс все эти возможности асинхронности, в общем это скорее позволило питону начать отвоёвывать обратно свои ранее утерянные позиции.
Мань, ты ж понятия не имеешь, о чем говоришь. Зачем вообще лапками по клавиатуре стучать тогда начинаешь?
И что я обнаружил? Последнее видео по джанге на ютубе было 9 месяцев назад! Но на чём тогда сейчас пилят веб-приложения? Или это просто джангу разобрали вдоль и поперёк, что бы еще что то рассусоливать по ней, а разработка на ней так и продолжается?
Ну и факультативом, вдруг кто то в курсе, ткните носом, куда курить, что бы прикрутить парсеры в саму джангу правильным способом.
Спасибо, увожаемые анонасы.
>Последнее видео по джанге на ютубе было 9 месяцев назад!
Где ты такой ютуб нашёл? Провелил, за последний месяц дофига новых видео
Странно. Я просто иду на yoytube.con, и просто в поиске набираю django.
Да, сначала он мне подсвечивает всех, на кого я подписан, но и сильно дальше я откопал англоязычный видос, опубликованный минимум 3 месяца назад
Ну ты же высрался аж 2 раза
Отсортировал в фильтрах по дате загрузки, увидел видосы на твоих пиках.
Спасибо, анон, это я тупой.
а че можно сделать двачевскую acii всем тредом, только фантазии немае
При одновременном добавлении данных в базу с помощью sqlalchemy и чтении данных с помощью django ORM база сама всё разрулит, или надо что то дополнительно придумывать на стороне обращающихся?
Тебе предстоит погрузится в удивительный мир конкурентных запросов. Это умеет разруливать база, но ты должен ее правильно настроить. Погугли про уровни изоляции.
зависит от базы. sqlite вырулит, но при обновлении будут локи всей файловой базы, которые не позволят одновременрые обновления; postgres точно вырулит; shelve/pickle (считается ли?) обосрётся.
Хули делать то? Сигналы еще пробовал, поебота тоже.
В python ж нельзя убить поток без иъебов навроде того ж PyThreadState_SetAsyncExc, да и, потом, мне надо чтоб просто он вышел из блокирующей операции и спокойно продолжил исполнение далее. Это наверное платформозависимая хуйня.
Перезапуск потока ради такой плевой задачи выглядит как забивание гвоздей телескопом. Но наверное иначе и правда нельзя.
Ну в моем случае поток блокирует win32api.CreateFile для открытия COM-соединения. Платформозависимая хуйня, на пингвине или еще где будет иначе все. Ну один хуй надо как-то вот блокирующую операцию прервать.
Ты можешь блокирующую операцию отдельно вынуть в другой поток и сделать ему таймаут
Залей на гитхаб, блджад.
Мне айтишечка ваша нахуй не нужна, а английский у меня минимум B2. Но я написал "желательно", потому что разобраться мне нужно быстро.
А теперь съеби нахуй, сам то небось пхп-макака ссаная.
Как вы ещё не вымерли все, бедолаги? По стандартным библиотекам тонны инфы на русскоязычных ресурсах, если уж совсем тяжко и ты страдаешь от синдрома дефицита внимания, сходи до чат гопоты, пусть объяснит тебе как отсталому на пальцах как пользоваться сокетами
Хрюкни.
> On Windows, signal() can only be called with SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM, or SIGBREAK. A ValueError will be raised in any other case. Note that not all systems define the same set of signal names; an AttributeError will be raised if a signal name is not defined as SIG* module level constant.
на винде не заведётся. придётся свою реализацию потока писать, которая спит нужное время, выставляет event и завершает поток с блокирующей операцией
Если винапи не предустматривает таймаут для CreateFile то хрен ее прервешь, мне так кажется. Наверное можно всю работу с ком портом вынести в отдельный процесс (не поток) и убивать его если завис, но это совсем уже некрасиво получается.
Есть у меня
names=['name1', 'name2', 'list3']
heights=['height4', 'height5', 'height6']
weights=['weight7', 'weight8', 'weight9']
Хочу получить такую структуру:
result = {
'NAME': name1,
'PARAMS' : {
'height': height1,
'weight': weight1
},
'NAME': name2,
'PARAMS' : {
'height': height2,
'weight': weight2
},
'NAME': name3,
'PARAMS' : {
'height': height3,
'weight': weight3
}
}
Подскажите, кто чо знает.
result = [
____{
________"NAME": names,
________"PARAMS": {
____________"height": heights,
____________"weight": weights,
________}
____}
____for i in range(len(names))
]
Бля, когда уже на сосаче добавят теги для кода, даже в ссаную тележку добавили.
https://ideone.com/Pw1mll
добра тебе
бля букву потерял но понятно чё там
Можно и через зип, мне просто быстрее через range
Расстановка приоритетов и все такое. Одним глазом работает тайм-менеджмент, и прочая шизазалупа, которой пичкают современных ребятишек. На самом деле есть потушить жопу, и здраво подойти ко всей этой теме, то можно неплохо вырасти в плане управления временем и осваивания новых вещей для самого себя. Но это все в теории и вероятно. Если в голове бардак и настоящего желания учиться нет - хуйца по итогу только можно будет соснуть.
>как зумеры выдерживают такую гонку?
Времени + мотивации дохуя. И то не у всех.
>когда уже на сосаче добавят теги для кода
Были уже. Начали использовать для сранья и вайпа. И убрали.
Ну и нахуй вы тогда все тут нужны? Понос словесный выливать? Выключи компутер и иди траву потрогай, Рембо комнатный.
Причина подрыва?
Твои лабораторки за тебя никто делаеть не будет, а бесплатно взламывать вебсокеты в браузере тем более. Да и ты не сможешь получить к ним доступ.
Зависит от твоих ожиданий и работоспособности. Если метишь в гугол и занимаешься байтоебством - можно и за десять лет не устроиться никуда.
Если с головой всё в порядке и делаешь только то что нужно - через пару месяцев, может три.
А ещё всё зависит от базы в целом. Если ты условно ебланил в школе с вузом, то вкат может затянуться на долгие годы.
Кроме случая, если его знакомая синька или мидлуха не будет надрачивать всё это время под конкретного потенциального работодателя.
Обычный рест апи, работы с бд, вызовы к сторонним апи, пару фреймворков и планируемый стек. Немного базового программирования. Всё. Даже такой конч как я освоил это за пару месяцев правда я до этого программировал микроконтроллеры, но не суть
Призвана решить проблему долбоёбов постащих код. Выкинут раздел с кучей ссылок на говносайты. Добавлен правильный и заметный.
Половина ждунов с нарисованным опытом не знают, может ли быть в гет-запросе боди или как куки работают, а большая часть не знает, как работают сессии в алхимии или что такое uow, но уже 150к с ноги хотят я бы тоже хотел, чего скрывать, но сами за 3 месяца че-то не могут это освоить.
Мб заменить старпёрный видос бизли на плейлист молчанова?
https://www.youtube.com/playlist?list=PLlWXhlUMyooawilqK4lPXRvxtbYiw34S8
Чёт проиграл с тебя, вообще вебморд не касался за последние 3 года ни разу
мимо получаю 280к
>>296876
Ну так и я получаю 280к и уже почти 2 месяца код не пишу, только статусы в эпиках в жире меняю и документацию обновляю, т.к. всё давно отрефакторил и тестами покрыл, ведь 2 предыдущие команды олигофренов не смогли это сделать за предыдущие 2 года.
>отрефакторил
>и тестами покрыл
А чем нибудь кроме бесполезной хуйни ты занимаешься на рабочем месте? Где таких держат?
Почему? Это просто общепринятый стандарт. Можешь сам проверить на fastapi и сделать через постман гет запрос с боди. Прочитает.
Да и я часто в логах вижу боты посылают запросы отличные от get/post. Это просто общепринятый стандарт, не более.
Да, назаровских волков-ебанашек на собесах попускаю. А ты где полезной нехуйней занимаешься?
Отправил тебе за щеку options-запрос с хуем в боди, можешь не проверять.
Первая часть до точки - это UNIX time GMT: Tuesday, 19 December 2023 г., 1:00:06.108.
Какие предположения насчет второй части токена, которая после точки?
Есть ли какой-нибудь сервис, чтобы попробовать разные типы шифрования, сравнивая их? Вроде видел какой-то сайти с окошками для SHA, AES, но хоть убей не вспомню как нагуглить даже.
очевидный хеш, 32 hex символа, 128 бит. Может md5, может обрезанный большой хеш. Брать могут от чего угодно, например там id пользователя, таймстамп, пароль + какая-нибудь длинная соль.
Если разработчик не полный идиот, что сейчас редко бывает, то шансов сломать нет.
Может есть у кого мысли - нужно во всех лежащих в папке xml файлах удалить строки, содержащие определенные слова. Сам не разберусь
В чём конкретно проблема? Что ты умеешь, чего не умеешь?
Для работы с XML используй
https://docs.python.org/3/library/xml.etree.elementtree.html
там ты можешь загрузить XML файл в специальный объект
пройти по всем узлам, например по узлам нужного типа (изучай xpath, крайне необходимая вещь), если в тексте узла содержится нужное слово, то удаляешь его из родителя. Дальше дампишь XML в файл
Смотри доку, там примеры есть многого
открытие ET.load()
из объекта в xml обратно ET.dump(root)
>А ты где полезной нехуйней занимаешься?
В местах где сказать начальству на вопрос чем занимался - я
> отрефакторил и тестами покрыл
все равно что сказать
> пузыри слюнями пускал, а сейчас вот какаюсь
Забавно таких клоунов встречать, мнящих себя дохуя важными-бумажными, а на деле молча сидят на дейликах, лишь бы не спросили, что вчера делал.
>на вопрос чем занимался
Мимо синьор девелопер. Докладываю:
1. Спросил в трех рабочих чатах "Ну чо там?"
2. Провел созвон, подвигал карточки.
3. Написал требования к документации.
4. Прокомментировал документацию.
5. Ответил на комментарии к своим комментариям к документации.
Кстати получаю 450к. Кода не писал уже шесть лет.
Конечно тревожно, ведь если сказать твой бред то в ответ тебя удивленно спросят "а почему ты нихуя не делал?" и выебут по кругу всем трудовым коллективом.
Ну в 4 не было. По крайней мере из коробки.
Только что венв с 4 отдельно поднимал, что бы проверить.
Да и в 3 я что то не припомню на вскидку.
Включи в системе/браузере темную тему и проверь еще разок.
https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#theming-support
Не. Смотри внимательнее. Я пик не просто так приложил.
Это из коробки прям. Самый первый запуск админки в самом первом пустом приложении
Так в 3 тоже из коробки, только кнопки нет, админка сама решает какие стили применить на основании того включена ли у тебя темная тема в системе или нет.
Что сказать-то хотел?
Петерсон - Игралочка
Что то мне кажется, что этот ленивый голубец припёздывает мне. Парсингом я давно занимаюсь, но никогда не видел, что бы запрос джэйсона улетал буквально на каждое деление колёсика скроллинка. Или это в натуре норма?
Знает, как оказалось, если подробнее расспросить. Я прост заказывал минимал вариант, что бы прорубить тему.
Debouncing или Throttling: Вы можете использовать технику дебаунсинга или траттлинга, чтобы ограничить частоту отправки запросов. Таким образом, запрос будет отправляться не каждый раз, когда событие scroll срабатывает, а с задержкой. Вы можете использовать библиотеки, такие как Lodash, которые предоставляют функции дебаунсинга и траттлинга.
Threshold (Порог прокрутки): Регулируйте значение 100 в $(document).height() - 100 в вашем коде. Это значение определяет, насколько близко к концу страницы должен быть скролл, чтобы начать подгружать новые статьи. Вы можете изменить это значение, чтобы запросы отправлялись менее часто.
Троттл кстати на скролл лучше всего подходит, дебаунсинг - это для инпутов хорошо.
1280x720, 1:16
Ну и ебучий конечно язык джаваскрипт. Я нихуя не понимаю, как это работает, но работает, вроде как надо.
Джанга. Подгрузка статей из базы по 10 штучек посредством бесконечного скролла. При этом запросы не дидосят базу.
Мне больше не с кем поделиться счастьем, у меня нет ни одного знакомого, который бы эту хуйню понимал.
а че? я же прогромист, ловкий и умелый
В позапрошлом году здесь был подросток, учившийся питону и славший бесконечные мыловидео с экрана ноутбука.
Вот. Подрос, сын полка!
Ни строчки кода на ебучем джыэсе!
Сделал по этому гайду:
https://fmacedo.com/posts/1-django-htmx-infinite-scroll/
Бонусом, там показано, как правильно парсер прикручивать. Вот бы еще найти, как эту команду по таймеру прям из рантайма джанги запускать
>Я нихуя не понимаю, как это работает, но работает
Все нормально, ты по скиллам уже как среднестатистический мидол пайтон девелопер.
Я консольную версию написал, всё работает, вот теперь хочу графоний прикрутить со свисто-перделками.
Видел на гитхабе "монополию" довольно хорошо сделали на tkinter. Можно и на нём начать писать, но есть вопросики:
- как у него с добавлением визуальных эффектов в виде сияний, подсветок и 2д-анимаций?
- что с кросс-платформенностью? Я могу потом это всё закинуть себе на андроид-планшет или ещё куда?
Короче, поясните нюфане за GUI на питоне в 2023м?
Если что, раньше прогал на С++ и в Qt соответственно всякие служебные утилиты под винду и линукс. Но залазить в PyQt как-то не очень хочу. Ощущение, что я химическую лабораторию использую, чтоб чай заварить
Ничего универсальнее, гибче и красивее, чем HTML+CSS всё равно нет, хули тут думать.
Ну если точно хочешь изучить огромную ебанину и при этом оставаться в оконцове жестко привязанным онли к декстопу и мобиле - знамо дело, бери qt, если не огромную ебанину, но всё равно нюхать десктоп и мобила по жизни есть custom tkinter, тоже красиво более менее.
С ХТМЛ и ЦСС же ты можешь хоть под что хуярить. Даже под телегу, учитывая эту новую фичу вкручивать веб прям в внутрь телеги.
>Ничего универсальнее, гибче и красивее, чем HTML+CSS всё равно нет
Двачую это. Если уж пиздец как захочется на десктоп портнуть - можно завернуть в электрон.
Все нормальные языки используют верблюда, а так как петухон не язык, а аналог баш скриптов, его мнение не учитывается
Вот есть база со статьями, есть пустой шаблон, с одним дивом флекс ширина 100vw, высота 100vh. Есть отдельно шаблон карточки на флексах, растянут по ширине и высоте на 100%.
Я правильно думаю, что
for статья in статьи:
рисовать див, в котором инклюд шаблон карточки, в которой в свою очередь уже подставлены данные?
Хочу что бы на голом шаблоне появлялись красивые карточки ровно с тем, что в базе есть. Если в базе ничего нет, то и не появляется ничего.
Сорян, что объясняю, словно боженька.
Ты пойми одно. Каждый раз это будет всего одна запись и каждый раз всего одна запись будет позорить тебя. Поставь себе OBS и настрой его всего один раз и в будущем оно тебе пригодится каждый раз
Хуевато объяснил, но ты мыслишь в правильном направлении.
Зависит от клиента, кому надо на хостинге крутить там докер, кому на десктопе там обычный батник или экзе
Братцы, кто-нибудь подключался к postgres с помощью pyodbc? Он у нас в фирме стандарт (т.к. в основном юзают мускл), захотел постгрес приконнектить, по идее стандарт это допускает, когда начал делать, sclalchemy начал ругаться на недостающие либы (хотя установил pyodbc в зависимостях и либу odbc-postgresql в контейнер). Вот спроси лу Чат ГПТ но он начал хуйню нести, его не смущает в ответе, что он указал драйвер PostgreSQL Unicode но в коннекте прописал: mssql+pyodbc
Что доустанови? Сказано же что я накатил как в зависимости питона все так и в контейнер. Ему пох
Это сериализаторы курить или сериализаторы ни при чем и можно проще? (я в дрф пока не лезу)
{% if база.флаг = 1 %}
<div класс="Дать краба">Дать краба</div>
{% else %}
<div класс="Отшить петуховена">Отшить петуховена</div>
{ end if }
Думаю, как то так сработает
1920x1080, 0:17
Спасибо, ананас, за рекомендулю.
Ткни носом, чё ты как типичный красноглазик на красноглазых форумах себя ведёшь
Зашел на Двач ты, советов просишь мудрых...
Ну ты чего, шаблоны прекрасно поддерживают условия.
{% if flag %}
Дать краба
{% else %}
Отшить петуха
{% endif %}
Или
{{ "Дать краба" if flag else "Отшить петуха" }}
Сейчас спрашиваю его сколько символов я могу передать в Питоне3.7 через subprocess.call(), ОС виндоус.
Отвечает мне: ТОЛЬКО 8191.
Но я же помню что ещё в 2.7 передавал под 32000.
Чекаю, так и есть - 32к, если 33к ошибка длины.
Пишу ГПТ - вот передал 32к, оправдывайся.
"Мням мням, ну у вас наверное какие-то особые настройки ОС стоят и вообще лучше не больше 8191 передавать"
Буквально так и ответил. и вот на этом говне сейчас баристы учатся погромировать.
Но ведь жпт должен был отобрать у нас работу, как же так получилось что он пишет нерабочий код, хмм...
>купи
>переспроси
>перепроверь
>надейся что за твои деньги чатбот тебе не высрал рандомный набор букв
Ебало гпт-сектантов представили? Которые ПОКУПАЮТ.
Дык, это суть нейросетей и ИИ — давать ПРИМЕРНЫЙ результат, совпадающий на заданную точность с истиной.
Это в принципе не энциклопедия и никогда ею не станет. Это как человеческие сны, где всё позволено, никакой критики и центр критичности мозга подавлен гормонами сна. Посмотрите, бля, на рисунки нейросетей — это наши сны.
Точные ответы — это совсем другая область и её либо бросили разрабатывать, добившись гипертекста (и википедии на нём), либо ещё даже не начали подступаться (реальный искусственный разум, а не интеллект).
А ты иначе последний гпт никак не запустишь, дурачёк. Если ты вообразил, что найдешь свободную модель 4.5 на хаггингфэйс и запустишь на своей помойке, то ты глубоко ошибаешься.
А последний жпт верстает по скинутой ему пикче, не то, что твои даунские ответы подсказывать.
>Дык, это суть нейросетей и ИИ — давать ПРИМЕРНЫЙ результат, совпадающий на заданную точность с истиной
Скорее это нейросети на текущем этапе развития. Человек ведь тоже нейросеть, но в состоянии выдавать точные результаты.
Я думаю через какое-то время нейросети научатся нормальному логическому мышлению, плюс будут помнить чётко какие-то фактические данные и уметь ими оперировать. Принципиальный проблем тут нет.
Принципиальная проблема есть одна, но ооочень сложная. На столько, что умные дядьки решили приостановить пока это дело, потому что совершенно чётко понятно, что дальнейшее развитие приведет к непредсказуемым, но абсолютно точно к ужасающим результатам. Проблема 2000 года - это просто шутка петросяна, по сравнению с проблемой согласования.
Письмо чувака, который стоит у истоков создания нейронки:
https://baza.io/posts/7430dbf1-bd3e-4780-9919-4b727baa3f5f
Научпоп, который объясняет на пальцах:
https://www.youtube.com/watch?v=fJOPGbbqMvw&t=1s
оффтопик, но я вижу больше проблему не в сверхъуме ИИ, а в сверхтупости человечества и неспособности его решать проблемы и отвечать на вызовы
Да хуй там. Просто у человека есть другие слои, не являющиеся нейросетями. А есть нейросети. Это очевидно.
>нейросети научатся нормальному логическому мышлению
Ты лучше прочти что-нибудь про них и пойми, что логики там ноль и никогда не завезут. Потому что это матрица расстояний до приемлемого результата с некоторой точностью. Там нет логических цепочек в принципе, есть куча вариантов, некоторые из которых УПРОЩЁННО — близки к истинному ответу. Полного совпадения тоже может никогда не быть. Именно поэтому я сказал про сны, если ты внимательно об этом подумаешь.
Но у человека есть ещё слой разума и слой логики, сделанные не по принципу нейросетей. И есть ещё лимбическая система, вегетативная и прочее. Человек сложнее комплексно, а не вычислительно.
Хуйня какая-то))
Для гуманитарных пориджей-овощей.
Проблема нейронок — их быстрое вырождение, если в обучение примешиваются результаты других нейронок или предыдущие результаты этой. ЧатГПТ так был убит. А вмешивание неизбежно, так как в сети скоро будет нейронками насрано по самую крышу. Законы о маркировке нейросетевого творчества как раз про это — чтобы отделить то, что ведёт к быстрому вырождению твоей нейронки, в которую вложены миллиарды. Если не маркировать, триллионы долларов тупо сгорят нахуй.
Где почитать про эти отличия?
>Ты лучше прочти что-нибудь про них и пойми, что логики там ноль и никогда не завезут. Потому что это матрица расстояний до приемлемого результата с некоторой точностью.
Мне кажется ты сам читал про простейшие нейросети и на основе этого делаешь выводы. Но современные нейросети на порядки сложнее.
Человеческий мозг это тоже нейросеть. Всё логическое мышление в нём, осознание, понимание смысла - это всё та же нейросеть.
>Но у человека есть ещё слой разума и слой логики, сделанные не по принципу нейросетей.
А по какому, интересно? Какой тип клеток за него отвечает, где они находятся, как соединены друг с другом?
>Python 2015
Какую версию ты имеешь в виду?
Там по календарю вроде 3.5 в 2015 выпустили. Тогда слёту
1) f-string, без них сейчас никуда вообще, завезли вроде бы в 3.6
2) asyncio, завезли в 3.5 в современном виде, но реально добили к 3.7
3) очень много вокруг аннотаций-типизации, это то, что и сейчас ещё дорабатывают
Мне кажется это вот самое ключевое, прочее, вроде := и каких-то отдельных библиотек уже так, совсем мелочи
>Человеческий мозг это тоже нейросеть. Всё логическое мышление в нём, осознание, понимание смысла - это всё та же нейросеть.
Нихуя, нейронки не способны в индукцию, так как это просто умная статистическая машина, а без нее любая попытка мышления не представляет никакого смысла
>Нихуя, нейронки не способны в индукцию
Ну человек же способен? А человек тоже всего лишь нейросеть.
Мне кажется, что ты представляешь себе нейросети как "многослойные перцептроны". Они да, примитивны. Но блин, все современные ИИ это "рекурентные" нейросети, с обратной связью, со сложной топологией. Как только появляется обратная связь, так, в принципе, появлятся возможность самообучения.
Для человека логическое мышление это высшая форма мышления, оно развивается позже и не у всех Там просто чуть сложнее обучить нейросеть этим вот способностям, при этом реально текущих нейросетей уже достаточно.
Нейросеть с обратной связью способна абсолютно на всё. Это как машина Тьюринга может всё вычислить, что в принципе возможно, так и нейросеть с обратной связью способна к абсолютно всем формам мышления.
Пикрил хочу прочитать. Издан в 2015.
Тут примеры кода - https://introcs.cs.princeton.edu/python/code/
Возможно ли стандартными инструментами джанги (не прибегая к крону и селери) сделать так, что бы каждые пять минут в консоль выводилась надпись "xui i pizda igraut v poezda"? Т.е. по таймеру, не по нажатию кнопки.
Неужели будет нормой, если я ебану бесконечный цикл с time.sleep() прям во вьюхе?
Из соображений придурковатости все имена были изменены.
В этой книге сказано:
> Q. Are there standard Python modules for handling standard output?
> A. Actually, such features are built into Python. In Python 2, you can use the print statement to write data to stdout. In Python 3, there is no print statement; instead, there is a print() function, which is similar.
Получается, что print "Hello World" это statement, а не функция с т.з. синтаксиса, потому что нет скобок?
>Человеческий мозг это тоже нейросеть
Отнюдь. Нейросеть там — только слой в неокортексе и более примитивный, но более мощный, слой в лимбической системе.
Нахуй нам всегда приблизительно вычислять 2+2 в районе от 1 до 10? Ты так мамонта не поймаешь и от тигра не убежишь. У нас, как минимум, есть память, которая нейронкой не является. Даже и организованная как гирлянда нейронок для уменьшения неточности. Но кроме нейронок есть ещё что-то, ими не являющееся.
>>2975467
>как соединены друг с другом?
Так и нейроны соединены вовсе не так, как организованы нейросети. Нейросетевые примитивы (единицы) — это лишь очень приблизительная ИМИТАЦИЯ МОДЕЛИ нейрона, как его видели в 1963 году, когда нейросети появились. Сейчас просто формулы сложнее, потому что вычислительные мощности больше. А сами по себе нейросети фундаментально не изменились, это вс то же самое вычисление расстояний и перемножение матриц.
>Как только появляется обратная связь, так, в принципе, появлятся возможность самообучения.
В существующих реалиях это ведёт к почти мгновенному вырождению сетей. Так что, это не то самое самообучение, как школотрон сидит и дрочит географию в 5 классе. Нейронки не могут обучаться на собственных результатах бесконечно, это их убивает, потому что результаты приблизительные, а получающиеся на их основе результаты всё более приблизительные. Нужно постоянное вмешательство человека для правок.
То есть, как джангу не крути, всё равно любое правильное решение с таймерами подразумевает запуск планировщика на сервере отдельным, параллельным с джангой процессом, так?
А как ты себе это иначе представляешь? Это в любом случае будет какой-то параллельный процесс
Понял, принял.
Я честно думал, что можно запускать сторонний сриптец прям из джанги и во время работы джанги, например, когда нагрузки по запросам на сервант нет, типа как в многопоточности или типа того. Таймер сработал, задача выставлена в стек, как только свободно - исполнилось, как то так. Гуглил, спрашивал умную железяку, а везде селери и кроны предлагаются.
Вот и зашел уточнить.
Да. Я не отрицаю, возможно это я дебил, но ни в одной вводной лекции, которые я смотрел, я так и не врубился глубоко и до конца в эти схемы. Интуитивно то я догоняю примерно, как взаимодействуют модели с вьюхами и шаблонами, но в целом полностью всю картину сам не объясню.
А уж из таких книг, как например "Джанго 4 в примерах" я вообще нихуя не понимаю.
Кстати, анон >>2976004 не читай джанго 4 в примерах. Ищи дальше.
пайтон к вершинам мастерства
Лично я гуманитарий.
>В существующих реалиях это ведёт к почти мгновенному вырождению сетей. Так что, это не то самое самообучение, как школотрон сидит и дрочит географию в 5 классе. Нейронки не могут обучаться на собственных результатах бесконечно, это их убивает,
Человек тоже не может. Школьник дрочит географию по учебнику. И математику. Запри его в камере-одиночке без книг и общения и посмотри, что будет. Много ли он новых знаний откроет, хотя бы в математике, которая конструктивна? Скорее всего на выходе ничего полезного не будет. Крыша съедет с катушек и всё. Потому что точно так же нет подкрепления.
Специализированные нейронки, кстати, в состоянии обучаться с нуля. Вон в том клипе про такие нейронки упоминали. Это нейронки, которые за стратегии в играх отвечают.
>>2975861
>У нас, как минимум, есть память, которая нейронкой не является.
Память человека это тоже нейросеть. Нейросеть может хранить данные, и даже простые программируемые нейросети с обратной связью способны хранить данные.
Весь прикол в том, что тут примерно как с машиной Тьюринга и Тьюринг-полными языками программирования. Достаточно минимального простейшего типа элементов и большой программы (то есть примитивных нейронов и возможности составлять из них очень сложные сети с произвольной топологий) и ты можешь реализовать ВСЁ. То есть вообще всё.
Вся сложность конструирования нейросетей в том, чтобы их обучить потом. И в человеке не нулевая сеть с нуля обучается, а от рождения там уже очень сложная структура заложена, предварительно обученная.
>проблемой согласования.
>Научпоп, который объясняет на пальцах:
Это не научпоп, а инфоцыганщина, которая плодит невежество среди быдла вроде тебя. Почти полностью состоит из мемсов, антинаучной хуиты и магического мышления.
>не научпоп, а инфоцыганщина
А это не одно ли и то же?
>>2976091
Друг, спасибо, но архитектуры много разной, в какую сторону курить конкретнее?
>>2975944
>Это в любом случае будет какой-то параллельный процесс
Но в чём тогда соль прикручивания конкретно к джанге, если я вообще любым планировщиком могу запускать скрипты? Типа использование единой ОРМ, если скрипт с базой работает?
Не, научпоп это какой-нибудь Карл Саган, ученый, который задорно рассказывает про предмет своего знания или смежного, чтобы заинтересовать детей. А часовое видео выше от гопника - намешанная со всех краев интернета ведро помоев, сборник мемсов и старшилок с нулевой ценностью. Даже с отрицательной ценностью - потому что плодит невежество.
ну если у тебя джанга то mvc очевидно.
> Но в чём тогда соль прикручивания конкретно к джанге
Люди привыкли что в джанге все из коробки. Скоро начнут просить чтоб была джанга-докер, джанга-линукс, джанга-компьютер, джанга-интернет, б-же упаси.
Просто надо сделать модуль с __main__.py, включи туда while True, обвешай ексепшонами и прикрути таймеры ожидания и перезапуска. Вот тебе крон
и не надо. если она 15ого года то открывать уже нельзя.
Понятно что можно через селениум и подобное но не вариант.
Через консоль браузера находишь урлы с нужной тебе инфой и тянешь через реквестс.
* echo "hello world" >> /home/<Я>/tmp
ну сохранил.
Дальше что? Нихуя не происходит.
ТООЧНО не надо запускать никакого демона? Буквально во всех гайдах больше нихуя не говорится, у всех всё заебись после этого, у меня же файл пустой, хоть сколько жди.
Система сама должна крон этот запускать при старте? Не надо добавлять крона в системд никакой? Может это потому что у меня убунта из-под wsl? Вот буквально каждая встреча с линуксами в любом виде - гемор.
Бомбиииит
Нулевое - поищи официальный апи, если нет:
Первое - исследуй запросы как на пике, если нет:
второе - ищи джейсон в самых длинных строках возвращаемого хтмл (либо прям в js файлах), суть в том, что бы найти джейсончики вкусные, если нет:
(ты тут) бьютифулсупом разбираешь хтмл, если нет:
селениум.
* - каждую минуту, ёпта
>>2976737
Читай короче это, мне в своё время помогло
https://habr.com/ru/articles/579336/
Блять. Это я в первом посте не дописал. На самом деле у меня так
* echo "hello world" >> /home/<Я>/tmp
>> - каждую минуту, ёпта
нет. нормально опиши время всеми звездочками
/path/to/php /var/www/html/a.php
ебаная макака надеюсь он помрет от рака. куда звездочки деваются из постов
>> * /path/to/php /var/www/html/a.php
>>2976899
>>2976902
не правильно ты сконфигурировал.
# For example, you can run a backup of all your user accounts at 5 a.m every week with:
# 0 5 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
для запуска задач системного крона почитай про run-parts
звездочка звездочка звездочка звездочка звездочка echo "hello world" >> /home/<Я>/tmp
Я же не совсем еблан. Я грешу на wsl, в нормальной оси наверное это работает
> Короче, если спокойно выдохнуть, у меня там так:
> звездочка звездочка звездочка звездочка звездочка echo "hello world" >> /home/<Я>/tmp
> Я же не совсем еблан. Я грешу на wsl, в нормальной оси наверное это работает
смотри логи: journalctl -u cron
Как я и думал.
cron is not running
sudo service cron start
Starting periodic command scheduler cron
В всл крон по умолчанию не стартует с системой
Потом всего то понюхвть залупу на хэдхантере, огорчиться от предлагаемых зарплат и продать жопу за дёшево в это ваше ойти наносековое.
Как выяснилось через алхимию к этому дерьму не приконнектиться. Лучше не выебываться и спользовать стандартный psycopg / asyncpg
С точки зрения синтаксиса -- да. Еще разница между statement/function в том что когда принт -- функция его можно использовать в составе выражений например вставлять принт в лямду y = lambda x: print(x) or (x + 1) пользы от этого никакой один вред а когда оператор (statement) то только писать отдельной строкой.
Винда? Ты имеешь ввиду сперму? Оставь это говно для сишарп аутистов
print как оператор-statement это из второго питона. Не нужно лезть во второй питон, есть более полезные занятия.
also, во втором питоне была возможность сделать
from __future__ import print_function
и использовать print как функцию, точно так же, как в третьем питоне
В документации 0-127
> Most systems require it to be in the range 0–127, and produce undefined results otherwise.
Пробовал только что в винде вернуть -2 - нельзя.
Ты типа положительные все уже исчерпал?
Я окружил save() method исключением IntegrityError, а оно не перехватывается. Выбрасывает ошибку django.db.utils.IntegrityError: UNIQUE constraint failed: link
Что может быть?
В модели unique=True выставлено
Может мы разные документации читаем?
Я вот эту и так с ходу такое (один и тот же manage.py можно юзать в двух разных процессах) там в глаза не бросается.
>>2977629
https://docs.djangoproject.com/en/5.0/topics/settings/#calling-django-setup-is-required-for-standalone-django-usage
но лучше писать management соманды, как описано тут:
>>2977696
Там нет ни слова про то ,что один и тот же manage.py использовать можно.
Там максимум, что есть, это "для запуска автономных сценариев или сценариев, которые периодически выполняются из crontab UNIX или"
Но это я и так знал и запускать кроном вообще любую хуйню можно, не обазательно джанговскую.
тренируй свои когнитивные способности) тебе дают ручку выполнения команд - априори понятно что ты сколько угодно команд можешь запустить.
Так вот я чисто методом бараньего тыка и сделал открытие своё)
начнём с того, что отлавливать исключения внутри транзакций моветон (читай доку по транзакциям).
теперь про твой код - ты в Builder.video не вызываешь save() на инстансе модели из-за дефалтового аргумента commit=False в функции video.
сохранение данных у тебя на последней строке - там ты не отлавливаешь ничего... перемудрил ты
>Оказывется можно запустить два экземпляра одной и той же программы! До чего техника дошла!
Сдуру то можно и хуй сломать
Наблюдаю типичную ошибку вкатыша: сделать все кРаСиВо и по ОоП)) вместо того, чтобы получить рабочий код. В итоге накостылял хуйни и сам себе насрал в портки.
Запомни, сына: сначала код, потом тесты, потом наводишь красоту. Когда наберешься опыта, код и тесты поменяешь в очередности.
>код и тесты поменяешь в очередности
То есть БАТЯ у нас сейчас пишет сначала тесты, а уже потом сам код?
>по ОоП
Это требования к командам на джанго. Ты джангу открывал вообще?
>БАТЯ у нас сейчас пишет сначала тесты, а уже потом сам код
Ты охуеешь, но да.
>Это требования к командам на джанго
Давай показывай, где джанга требует заворачивать простые функции в совершенно бесполезные классы без init.
Отъебись, ты не продуктивен. Вчера анон это же самое нормально объяснил, а ты высрался и доволен
Утро вечера мудренее
Нашел какой то чудесный метод objects.get_or_create
>начнём с того, что отлавливать исключения внутри транзакций моветон (читай доку по транзакциям).
Что то не сходится. В документации сказано, что при проверке на уникальность, метод save() выбрасывает ошибку ntegrityError, а этот метод находится внутри транзакции.
https://docs.djangoproject.com/en/5.0/ref/models/fields/
Ну ок, сделал без исключений 🤷
>ты в Builder.video не вызываешь save()
Убрал билдер вообще и парсер унёс в другой файл, что бы тот злой процедурный анон не вибрировал. Злой анон, не обессуть, что на тебя зарычал с утра, ты прав так то.
>перемудрил ты
упростил до максималочки
Короче работает, чекните плес, мне не нравится, что идёт обращение в базу по КАЖДОМУ объекту, на сколько я помню, это пидорство и надо делать пачками.
https://pastebin.com/G8dpLRZL
доку читай. get_or_create ты неправильно используешь - смотри исходный код хелпера (обрати внимание на именованный аргумент defaults). в текущем варианте, при малейшем изменении любого поля (например описание изменили) - ты получишь ошибку, т.к. pk уже есть.
по поводу пидорства - сравни коннитивную сложность текущей пасты и предыдущей. избыточная сложность - результат преждевременных оптимизаций. как писал анон выше, сделай рабочий вариант, напиши тесты, потом уже рефакторь по реальной необходимости.
https://www.youtube.com/watch?v=u2t1aLYu2QU
>спрашивать у гопоты
>спрашивать на анонимном форуме
>смотреть видосы инфоцыганина
И все это ради того, чтобы не читать документацию и не смотреть исходники. Я ебал.
>читать документацию
Я прочитал документацию и нихуя не понял, инфоцыган объяснил на пальцах и я раздуплил.
>смотреть исходники
Какие, где?
Йоообоный рот этого казино, я конечно дико извиняюсь, но я такое впервые вижу. Это что, абстракция? Как увидеть саму реализацию то?
это стабы. в джанго их нет, так что скорее всего твоя идешечка их подсунула. держу за тебя кулаки анон - ты справишься и станешь чуточку лучше!
Ах ты, блядский ёптарь, ты типа скачал чего-то и хуй понимаешь, как это работает? Ну, и правильно, брат, что тебе такое довелось скачать, что даже начать не можешь. Слушай сюда, ебаный олух: у тебя наверное голова полная говна, если скачал не зная, что делать дальше. Вон, там на экране есть кнопочка «СТАРТ», нажми блять на нее и посмотри, что произойдет. Может тогда раздуплишься, а может и нет, я же не вижу уровень твоей долбоёбности.
Для начала я хорошенько так посплю, а когда проснусь и нажму кнопку старт, ПОЛНОСТЬЮ тебя уничтожу
оно ваще не вместо pass. это многоточие называется ellipsis и значения обычно "будет доптсано" или "детали упущены"
>>> type(...)
<class 'ellipsis'>
Да, с этими "улучшениями" Мишура превращается из приятного языка в какую-то хуйню.
Если мне надо код, в котором ехал дженерик через дженерик, я буду писать на джаве, нахуй мне этот Мишура.
Снежинка работает раз в 20 быстрее, как минимум. Тонны библиотек, нормальная многопоточность, наработанные практики взрослого программирования, энтерпрайз, куча работы и т.п.
А Мишура получается, как морская свинка - ни к свиньям, ни к морю.
тебя никто не заставляет пользоваться типами - они опциональны. более того, ты можешь хранить типы в отдельных стаб-файлах (*.pui)
лично я стараюсь типизировать всё - так крепче сплю.
Обычно в ванильном Мишурае это заглушка вместо pass или обозначение неопределенности типа или структуры принимаемых и возвращаемых данных.
А например в FastAPI и Pydantic так обозначают обязательные параметры запросов и поля моделей:
https://fastapi.tiangolo.com/ru/tutorial/query-params-str-validations/#ellipsis
https://docs.pydantic.dev/1.10/usage/models/#required-fields
ебать ты хитрожопый, братишка, хочешь один раз научиться и писать всю жизнь одинаковый код? Нихуя так не получится, все нормальные языки развивают синтаксис (кроме яхве наверно) и от тебя требуют того же, развития и работы головой
Вот я и работаю головой - пишу на д'жаве.
>>2979107
Тогда тебе стоит начать писать на нормальном типизированном языке. Хотя бы не будешь делать двойную работу. Это не говоря уже обо всём остальном.
Дело в том, что любой инструмент имеет свою область применения и свои ограничения. Попытка сделать из пи'тона язык для больших проектов, уровня д'жавы - приводит к тому, что это просто становится неинтересным. Т.к. привнесенный оверхед, в итоге, не соответствует получаемому результату.
>тебя никто не заставляет пользоваться типами - они опциональны
Да, вот только в 2k24 в нормальных конторах тебя обоссут за код без типов.
>Белый Медведьотка тестов занимает больше времени чем рабочий код. Поэтому некоторые делают его в первую очередь.
имхо скорее для того, чтобы лучше понимать, что тебе нужно, какие особые ситуации возможны, что с ними делать
Пайтонэнивэр - много анальных запретов, к примеру парсер ютуба низя.
Гитпэйджес - вообще джангу или что то динамичное низя.
Покупай дешёвый vps, рублей за 200
>localhost
Это самое пиздатое, что я юзал, но есть один моментик. Я иногда, особенно на ночь, люблю выключать свою пекарню.
Аааа, ебись оно конём! Уговорили, так и быть, позолочу евреям ручку за it-единицы. А есть за 200 целковых что б всю хуйню сразу туда зарядить и ботов всех и лендинги и может еще и с видюхой, вчто б нейронки вращать у вас на примете?
Во! 👍
за 200 ты разве что зоопарк на докере в 2гб памяти развернешь, ни о каких Голубой Огонёк мощностях речи идти не может, это совсем другая история
Подскажите, вот в модели пайдантика например для реквест схемы чем отличается
class xxx():
id: str
name: str
от
class xxx():
id: str = None
name: str = None
?
None это типа Optional параметр? А в чемтогда отличие от id: Optional[str]?
Не верь дальше, удачи быть безработным, протянут тебя либо курсы, либо образование, а этого всего у тебя нет
>id: str = None
Это что за язык? Впервые такое вижу. Это в каких то последних релизах добавили явную типизацию?
>id: str
А нахуя объявлять то, что не имеет никакого значения?
>id: Optional[str]
Блять, аноны, что происходит? Макака удалила что то опять или так кто то где то пишет? Мне страшно, что я что то проебал.
Если сверху написать @dataclass то в первом случае оно будет требовать обязательно два параметра в инициализаторе во вoтором случае будет по умолчанию None.
Отличий от Optional[str] никаких, pytype срёт на optional и разрешает None почти везде, потому что таково Весело на утренникее наследство питона и если начать строго запрещать None то отваливается половина стандартной библиотеки.
пудантика полные штаны бля)))
(версия 2.5.2)
хуй его знает почему он это позволяет, игнорирует тип дефолта
Питону на самом деле абсолютли поебать на тип который ты там пишешь, это нужно чисто для удобства, если там где-то не выполняется явная проверка типа
Это.
Потому что это для красоты, для глаз. Что бы лично ты не забыл, что там за тип.
>>2980900
Питон тебе говорит "нахуя ты объявляешь переменную, которая не имеет никакого значения? Когда реально понадобится переменная, тогда и значение её будешь знать. По значению я и тип определю, а то что ты там после двоеточия написал, так это ты для себя пометочку сделал на полях, кожаный мешок с дырявой памятью"
В чём вообще проблема. Сейчас у меня есть примерно следующее (пик). Мне похуй, как сделать, мне просто нужен ответ, как в пайтоне делать правильней всего, чтобы всё работало и не нужны были никакие хаки, и я так и буду делать. Пока что всё выглядит так, как будто в обоссаном бидоне за 30+ лет его существования так и не смогли договориться о том, как всем делать одинаково, но ладно, добиться бы хотя бы, чтоб оно вообще работало.
(Разумеется, это упрощённый пример, там в src уже много всяких пакетов и модулей, изначально многие из них писались просто как скрипты с if __name__, потом стали для удобства делиться на подмодули с отдельными тестами, а в скриптах осталась только фигня вроде парсинга sys.argv. На этом рефакторинге в какой-то момент что-то и перестало работать.)
Все __init__.py пустые, я всё ещё толком не понимаю, когда они нужны, а когда нет, но вроде бы без них проблем было ещё больше.
Я, активировав venv, запускаю 🍾 src/script1.py. Он использует formatter и parser1; parser1 использует util1. Всё работает, если везде будут импорты типа from parsers.parser1 import x, from formatter import y, from utils.util import z. Отлично.
Теперь, я запускаю pytest из этой же коренной директории. Всё ломается, потому что ModuleNotFoundError. Всё будет работать, если все импорты (в т.ч. в parsers) будут начинаться с src. Но тогда ломается 🍾 src/script1.py, потому что ModuleNotFoundError: No module named 'src'.
Так как жить-то? Stackoverflow в основном даёт какие-то совершенно безумные советы, типа ручного изменения 🍾path, я уже совершенно перестал понимать, как всё это говно должно работать.
Это для фастапи, в нем есть вшитый pydantic.
>А нахуя объявлять то, что не имеет никакого значения?
Это модель данных, при реквесте с фронта эта моделька тебе провалидирует, что все значения прилетели именно того типа, на который вы договорились в протоколе. Аналогично можно задать модельку на респонс.
Нет не так. Такое поведение только во втором пидантике появилось и из-за этого Тулуп сгорела не только у меня. Если писать что-то вроде
name: str = None
было вполне ок, то со второй версией надо делать так
name: str | None = None
Какой-то пиздец. Особенно калит что теперь надо делать вот так
id: str | int
Иначе будет факап если придёт не то что надо.
Сорян за тупые вопросы
К фастапи нужно еще что то? Я почему то думаю, что фастапи - это что то типа drf. Что годного можно запилить на одном лишь фастапи? На работу можно претенодвать зная лишь фастапи, но твёрдо и чётко?
Фастапи больше про async, т.е надо знать асинхронность, иначе смысла от него не будет. Сам по себе фреймворк несложный.
Я лично не использую пидантик модели и его опендок, сразу отрубаю. Явно валидирую данные через реквест.
Ну и ещё у него есть приколдесы которые кочуют из старлета, т.к он по сути и есть старлет. Сам же фастапи в исходниках сделан довольно кринжово, он на слуху потому что подразумевается что если челик знает фастапи, то он знает и асинхронность. Последнее наиболее важно для веб сервисов.
Я конечно глубоко еще не лазил, но по диагонали читанул. На сколько я понял, если пилить что то асинхронное в джанге, то там это на более высоком уровне и шаблонно. Т.е. в джанге можно обмазаться асинхронностью, которая будет реально работать, и будет контролируема на высоком уровне, но как оно работает на чуть более низком уровне (всякие там оборачивания циклов, ебля с корутинами и т.д.), можно не вникать.
Если исключить чисто фактор "фу бля, знать надо всё, недоБелый Медведь ты ёбаный", я правильно догадываюсь или заблуждаюсь?
С кем я в одном треде сижу, просто пиздец
>Все __init__.py пустые, я всё ешё толком не понымаю, када оне нужны, а када нет, но вроды бы без ных проблем было ешё больша.
Заўсёды. Бяз іх, importlib спачатку шукае файл з дадзенай назвай у бягучым дырэкторыі, а потым шукае паддырэкторыю з такой назвай.
>я запускаю pytest ыз этой жа коґенной дэґектоґые.
Відавочна, запускаеш бяз актывацыі асяроддзя.
Чё там знать-то. В __init__.py обычно пишутся импорты для удобства. Эта штука всё ещё нужна даже если пустая, я хз почему пишут что не можно не использовать. А ещё обычно там же пишут переменную __all__ = [] куда дописываются сами импорты для удобства ["pkg1", "pkg2"] например, помимо собственно самого импорта через import.
__main__.py пишется собственно функция main() и стандартный вызов через if __name__ == "__main__" это позволяет запускать программу с помощью 🍾 -m pkg где pkg это название твоей папки с этим самым __main__.py
__name__ переменная отображает название .py файла откуда он вызывается
Всё остальное редко используется.
Вот теперь сам думай что не так
просто делай что-нить ценное и конкретное
Эти задачи закаляют тебя не только в синтаксисе, но и в алгоритмах. А к бэкенду не имеют отношения, да. Пилю тебе вариант роадмапа.
Анон выше написал, пили полезное. Я добавлю для твоего уровня: начни пилить полезное конкретно для себя.
Вот смотри, я пришел с работы, обложился хрючевом свежайшим и начинаю перерывать тонны сайтов, групп, плейлистов, рутрекер, ютуб... что бы посмотреть под хрючево, а хрючево стынет.
Значит что? Правильно, надо писать своё приложение, в котором всё это будет сосредоточено. Одностраничник с сылками на годноту. Но! что бы что то выводить, надо что то спарсить - вот тебе и вырисовывается парсер ютуба. Да такой, который отслеживает появление новых, недавно появившихся серий в плейлисте. Значит что? Нужна база данных, с одной таблицей, которая будет хранить ссылки на плейлисты, которые ты конкретно зарядил на отслеживание и плюс таблица, в которой хранятся результаты. Парсер берет из базы адрес, парсит, если есть что то новое - добавляет в таблицу с результатами. Ну а к этому всему мордочку покрасивше. Вот и получается простейший джанго проект с ОРМ на борту. Потом можно прикрутить авторизацию и приложение будет работать не только на тебя, но и на твою тню, у неё то другие предпочтения. В общем допиливать это можно до бесконечности, но суть одна: парсер - база - морда. Полезно, наглядно, интересно, смерть, смерть, кладбище, пидор, заебись, чётко.
Ты мне напомнил, что я хотел сделать свою рулетку сайтов когда-то давно. Спасибо за совет, буду делоть, твоя идея прикольная. Главное раздуплиться какой-то рабочий процесс-то вообще, просто я до сих пор как школьник на уроке информатики, решаю задачи какие-то и функции изучаю.
рулетку фильмов на просмотр на вечер*
Как мне ее запускать по расписанию, грубо говоря раз в день в 13:00
Просто через schedule не работает, собственно я и не сильно надеялся, какие то выкрутасы с asyncio я тоже пробовал, не робит, хотя может не все еще попробовал
schedule.every().day.at("13:00").do(f)
schedule.every().day.at("13:00").do(asyncio.run, f())
schedule.every().day.at("13:00").do(asyncio.create_task, f())
while True:
schedule.run_pending()
time.sleep(1)
для 2 и 3 способа добавлял
asyncio.get_event_loop().run_until_complete(asyncio.sleep(0))
Последний способ ошибок не выдал, но результаты функции появились не в нужное время, а только после остановки программы
В модуле он есть, но почему-то вс код пишет что типа такого не существует. Помогите, а в коде пишет что тип не используется ещё
вот этот класс, но подключаться не хочет, другие классы из этого модуля подключаются
два раза написал думал может вс код тупо не видит 274 строчки, ставил и вперед и назад и два раза и один раз писал. крч не хочет вскод видеть этот класс
class Test:
....lst=[]
....def __init__(self):
........self.some()
....def some(self):
........self.lst.append("foo bar")
out = Test()
Что изменить внутри класса, чтобы "out" был списком "lst".
Изменения можно вносить только в тело класса.
В общем суть такова что немного потыкавшись получилось всё сделать изменив метод new таким образом.
def __new__(cls):
....super().__new__(cls).__init__()
....return cls.lst
1) Оцените такое решение, безотносительно самой идеи что класс возвращает не свой экземпляр а какуб-то хуйню. Вот есть задача и вот такое решение в три строки. Как оно? Можно лучше?
2) Можете пояснить к чему обращается super()? Класс же не наследуется.
есть питоновский файл, который надо сделать exe файлом. pyinstaller вроде как справляется, но я использую библиотеку speech_recognizer и он ее найти не может. уже все перепробовал, но не ебу че делать. подскажите
Когда вся твоя жизнь крутится вокруг одного инструмента, ты устареваешь вместе с инструментом. И становишься не нужным вместе с не нужным инструментом. Ты же — приложение к инструменту, не наоборот.
Когда вся твоя жизнь крутится вокруг нескольих инструментов, ты устареваешь вместе с инструментами. И становишься не нужным вместе с не нужнымы инструментами. Ты же — приложение к инструментам, не наоборот.
Вопрос вот какой. Если юзер вводит не такой ответ, как ожидается, то ему снова выводится тот же запрос ввода вызовом текущей функции. То есть функция вызывает сама себя. Я правильно помню что это приводит к созданию новых и новых уровней вложения и однажды нам питон скажет идти нахуй?
Внимание на 27-29, 31-32.
Я знаю что на самом деле меню пишут через while true. Перепишу. Просто начал делать "как помню" чтобы немного восстановить знания. Реально ВСЁ забыл. И да, код говно. И тема в пайчарме белая. Короче, не ебите мозги, посто ответьте конкретно про вложенность. От этого кода не останется нихуя всё равно.
Не вложенность, а количество экземпляров. Да, в какой-то момент все взорвется.
>У питона намного лучше официальная документация, чем у большинства других языков.
Бля, если это "намного лучше", то я не представляю что за пиздец у других.
Ну типа:
>>> # Измерить длины списка строк:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
... print(w, len(w))
...
cat 3
window 6
defenestrate 12
Блять, ну даже с комментария начнём "Измерить длины списка строк", что? Может, измерить длины строк в списке? Что такое лять длины списка строк, это как нахуй?
Дальше, создают список с названием words.
> words = ['cat', 'window', 'defenestrate']
С тремя строками.
Потом цикл, да.
> for w in words:
Что такое w? Откуда оно блять взялось после for? Хули про это ничего не написано?
Это какой-то аргумент или как его блять списка, который существует сам по себе, ну типа, элемент списка это всегда w? Судя по тому, что я вижу, он сперва саму строку выводит, а потом уже через функцию len количество символов строке, но какого хуя список обозначили как w, он же был определён как words!?
Блять, какие-то отсылки к паскалю, с, вот эта хуйня работает не так как в паскале, там итерации хуё моё, прогрессии. Сука это для кого нахуй написано вообще?
Блять я пиздец походу тупой или написан ваш учебник максимально ебано.
Есть нахуй для совсем долбоёбов пояснения? Ну типа, вот это вот то, это вот это.
А не так что, мол, вот есть такой цикл и там бац хуй пойми что понаписали чего я до этого вообще не видел нахуй. Бля жопа сгорела сорян за стену текста.
Какой-то хуй на ютубе сделал типа "гайд" по этому. Тупо передрал и рассказал тоже самое что написано, но нихуя не объяснил.
В комментах пояснили, что w это переменная, которая принимает значение элемента списка каждую итерацию цикла. И её можно подписать как угодно.
Ну так стало понятно хотя бы.
Бля, если так и дальше пойдёт то это совсем потужно будет что-то выучить. Нихуя ж не объясняют пидорасы, как будто по умолчанию я должен всё это уже знать нахуй.
Спасибо.
И дальше такая же еботека, он делает что-то типа строгой типизации в конце, или нахуя эти username : str в конце тут, вообще не помню такой ебанины когда изучал
>>3003851
Ну я типа такой же дундук как и ты и я делал бота на питоне. Библиотека ёбнутая потому что апи ёбнутая, документация ёбнутая и мне бы сейчас не хватило энтузиазма на это говно. Лучше собирай из кусков со стак оферфлоу чем ебаться с этим говном. Алсо автор либы емнип ныл что заебался переделывать библиотеку под изменения апи.
Его форк discord.py-self вызывает ошибку при инициализации. Нашёл фикс, но вызывается уже другая ошибка.
selfcord похоже и вовсе давно заброшен
Владелец чата не я. Есть ли у телеги ограничения, которые не позволят мне это сделать? Или может ли меня пидорнуть модерация? Можно ли тогда сделать бота через аккаунт?
Спасибо, анон.
Не знаю что произошло, но оно само как-то починилось. При этом экзешники созданные с помощью pyinstaller все так же не работают. Куда в этом случае копать?)
> Или что это заходы с двоеточий?
https://habr.com/ru/companies/lamoda/articles/432656/
https://texnoit.com/annotation
>Что вообще могут спрашивать в формате "основы + ООП"?
Если прям стажера-стажёра, даже не джуна, то вряд ли выйдут за рамки этого:
https://pythonworld.ru/osnovy/obektno-orientirovannoe-programmirovanie-obshhee-predstavlenie.html
https://pythonworld.ru/osnovy/inkapsulyaciya-nasledovanie-polimorfizm.html
https://pythonworld.ru/osnovy/peregruzka-operatorov.html
Реализую байтовый протокол и надо разобрать строку - достать значение первое, второе, а потом, в зависимости от третьего, определённое количество следующих.
Помогите пожалуйста.
Перекатись уже. Там как раз про паттерн-матчинг были ссылки.
ПЕРЕКАТ!!!
>>2981203 (OP)
>>2981203 (OP)
>>2981203 (OP)
Привет пихоныч.
Суть - скрипт пихона должен вызывать условный другой скрипт пихона (или экзешник или что угодно) с кредами другого юзера, например run format c:\ admin:admin - УСЛОВНО разумеется.
Так вот рунасы не катят, VBS нашел нужный код, но он вызывает окно и задержку для вбивания кредов напрямую через шелл. дико бесит.
Гугл молчит.
Подскажите какой код можно использовать?
То есть в идеале я хочу закомпилить все потом и будет так, что запуская один экзешник, он будет в сайленте уже под нужными админскими кредами запускать второй экзешник, например инстальник.
Помогай двач, заебался копать.
Спасибо тебе.
(вообще контора говно с медленными тоннелями. ГПО не катит раскатка, придумался мне костыль в виде запуска экзешника в назначенных в нужное время, который будет уже админом запускать нужный инстальник. Пиздец костыли, но кручусь.)
Помоги двачик, ты не подводил еще. Спасибо тебе.
Опыта 5 лет питона/js.
Зп хочу 100 за максимальный 9 часовой рабочий день без переработок и мозгоёбки.
Современные системы чем дальше, тем сильнее огораживаются от таких "приколов", потому что всё, что явно не работает от текущего юзера слишком похоже на атаку.
И, если в линуксе ещё можно было бы что-то обсуждать, то в виндах - найди эксплойт к какой-нибудь дырке (желательно, помеченной как "не будет починено", такие были) и пользуйся им.
В php я могу узнать, было ли выполнено условие
Например переменной статус присваиваем действие. Например подключение к БД
$status = mysqli_connect(1.1.1.1, root, 123, BD_NAME);
Если подключение удавалось, то переменная статус была True
Если нет, то False
И далее можно было сделать проверку и вывести сообщение об ошибки или успехе
Можно ли так в питоне?
Пробовал как в php, но не получилось. Пытался загуглить, но чет норм инфы нет, через какие-то заебства такое надо осуществлять
Можете накинуть примеров или ссылок?
Пользуетесь ли вы вообще профилированием, и если пользуетесь - стандартным cProfile + pstats или каким-то графическим?
Щас опробовал несколько графических библиотек (вроде tuna, snakeviz) и не заходит. Пока вобьешь в консоли код для генерации визуального профилирования (графика или табличек или еще чего), пока откроешь его в папке, если огромный проект - долго перещелкивать, пока перещелкнешь до нового места, потом изменять код и все по-новой.
Поэтому я вообще подумал а матерые программисты используют профилирование? Ведь и так понятно какая функция занимает много времени и почему, и прекрасно видят код и как его можно ускорить.
Пока мне реально зашло больше всего cProfile, потому что в терминале быстро нашел нужную функцию, потом посмотрел в коде от каких других функций зависит и понял что можно улучшить.
Но может графическое профилирование как то помогает, ускоряет разработку? Или в ином сильно важно? Подскажите пж.
https://pastebin.com/A8PQ4wCf
Спасибо. Извините.
Это копия, сохраненная 9 марта в 13:49.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.