Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником. Исходник: https://dumpz.org/bASGKD8cCFDf
>>2393267 (OP) Подскажите как с помощью скрипта на пистоне хешировать пароль 100 тысяч раз (sha256). То есть есть пароль, к примеру qwerty10 И мне нужно его 100к раз прогнать через sha256 и получить результат.
>>2393267 (OP) >win 8.1 -а хули не линух? -Потому что пошел нахуй >PyCharm >Cuda 11.1 >ptxas 7.1 , а нужен минимум 7.4 Почему ебучий pip работает через раз? Команды из интернета типа pip --version вообще не работают, ни из консоли, ни из терминала в пайчарме, не из консоли питона. Что за говно? Мне нужно всего одну сразую програмку обновить ptxas, из-за которой не работает ахуенная либа. Как же заебала эта параша, словами не передать. Когда работает - удобно пиздец. А потом хуяк и "pip не является внутренней или внешней командой или исполняемой программой". ССУУУУУКААААА
В PyCharm вроде есть и pip и conda и ещё что-то совсем топовое, но почему-то даже поставить их по инструкции не получается. Какого хуя? Почему это говно вообще называется гайдом, если даже слепо следуя инструкции оно не работает нихуя? Ну пиздец ебаный, уже и в питон вкатился и либу ахуенную нашел по свои задачи и даже вспомнил как писать, а из-за одного всратого пакета нихуя не работает. Обновить его можно было бы через conda или (по идее) через pip, но это говно не запускается даже в PyCharm, хотя оно там стоит. Как и Wheel.
Как пофиксить? Сука! Очко горит как второе солнце.
Ютуб не вариант, так как сейчас сижу на всратоинтернете 40-50кб/с. И похоже из-за блокировок не работает сайт Nvidia, так что скачать и поставить
>>2394008 Бамп. Погромисты, нужен рабочий код, чтобы хешировать пароль в sha256 100к итераций (без salt). Памагите, будьте ж вы людьми, ребята. Поискал в гугле, в виде онлайн-тулз везде предлагают только один раунд хеширования, а мне 100к надо ебануть. У меня кстати только python 2.7 установлен, хз имеет ли это значение, чтобы код исполнялся. Мне выше скинули вариант, но почему-то не работает.
Сап. Задрачиваю питона по Лутцу, начал пикрил. Интерпретатор скачал на телефон. Все правильно делаю или стоит на ноуте с шиндоуз версией? Просто на работе читаю. Для начала пойдет?
>>2394284 А по таким библиотекам хешей можно вскрывать токены wi-fi handshake, чтоб восстановить пароль WPA2? По идее, будет быстрее сравнивать из файла, чем генерировать под каждую комбинацию знаков и сравнивать. Или это делается не так? мимо
>>2394612 ...которые требуют обновить ptxas, который не обновляется через pip и требует 600мб конду, которую скачать нет возможности 20кб/с хотспот. Как ты понимаешь, скачать кали и гайды по ней тоже нет возможности, так что если можешь подсказать как это делать питоном - буду очень благодарен.
>>2394612 >20кб/с >Нужно погуглить и чуть подумать meh... Статьи с хабра грузятся МИНУТАМИ. Я даже не могу нормально почитать про процесс handshake и пакет придётся получать/искать через wireshark. А для работы с ним, надеюсь со второго раза уже понял у меня ничего нет. Единственный вариант - написать своё и оставить на ночь/сутки/неделю, пока не получу доступ к норм сети, не скачаю гайды на ОраклВМ и как делать всё тоже самое, но уже как белый человек. Анон, если ты можешь с этим помочь, пожалуйста - помоги. Я бы не писал в питон, если бы это не было моим единственным инструментом.
>>2393267 (OP) >качаем zipfile37 https://www.geeksforgeeks.org/how-to-brute-force-zip-file-passwords-in-python/ >статья релейтед >работает >открывает архив и достаёт файл, если пароль совпал >качаем rarfile >меняем элементы названий с zip на rar >0 синтаксических ошибок >те-же классы, те-же переменные >не работает Почему так? Я даже пробовал на тестовом архиве, где пароль был 123456. Такой пароль был единственным в .txt файле и всё равно скрипт его не открыл, а zip открывает на ура. В чём проблема? Пробовал и просто extract и open из rarfile - не может открыть запароленный RAR3 или RAR5. Как найти ошибку?
>Взял модуль для зип и заменил там всё на рар? Да. Причём всё запустилось и даже счётчик вариантов крутился проверил принтом. Текущий код — https://pastebin.com/sxv0XS4e
Только файл и .txt сам сделай, там генерация не предусмотрена
>>2394717 Тогда вообще ничего работать не будет, тем более счётчик внутри try работал. Выглядит так словно весь класс в либе просто игнорирует параметр pwd, так как в ручную (через winrar) всё работает и пароль указан верно.
>>2394673 Проснись, ты обо у тебя в примере ничего жс специфичного - вызов методов и обращения к ключам одинаковы, а у цсс свой особый путь языконезависимый синтаксис. Аналог на змее был бы document.query_selector(f'[data-id="{post.dataset["post"]}"]'))
>>2394460 > Лутц это питон 3.3 + 2.7, пиздец старье. > Оно, конечно, классика, но плохой вариант Вот я чёт за пару дней наебся с ним как бобик, думаю есть ли смысол этого Лутца вычитать до конца или переходить сразу на пикрилейтед >>2394510?
>>2395190 Я прочитал два тома Лутца, так скажу нет.
Большую часть, написанного в Лутце, ты просто забудешь без должной практики.
По моим ощущениям, Лутц это книга для новичков в Питоне, а не в программировании как таковом. То есть материал рассчитан на то, что читающий кодил несколько лет до этого на С или Яве и хочет перекатиться на Питон.
Вторая половина второго тома вообще далеко не для новичков, т.к. идут классы и декораторы, а это уже продвинутые темы.
Упражнений в Лутце толковых нет. Это больше reference guide, чем полноценный учебник.
>>2395220 Лучше ничего не учить, а практиковаться. Если натыкаешься на что-то непонятное в чужом коде, то идешь дальше читаешь Лутца.
После глав Лутца про синтаксис, переменные, операторы, типы данных, итераторы, генераторы, модули, лямбды и основы ООП можно идти и разбирать фреймворки, кодить что-то своими руками.
Анончики, спасайте!! Есть два списка: l1 = ["1", "2", "3", "4", "5", "6", "7"] l2 = ["a", "b", "c"]
Мне необходимо, чтоб при проходе элементов первого списка в цикле for выводился принтом элемент списка и соответствующий ему по порядку элемент из второго списка, то есть ожидаемый мною результат таков: 1 a 2 b 3 c 4 a 5 b 6 c 7 a
Самый простой способ, который я нашел для такой реализации, создать несколько условий if по проверке вхождения текущего элемента цикла в соответствующий срез и вывод принта с заранее записанным элементом из второго списка. Загвоздка такой реализации в том, что элементов во втором списке может быть не три, а сильно больше (или же наоборот меньше), а мне необходимо универсальное решение, которое бы позволяло без лишнего гемора присваивать перебором, без повторений, элементы двух априори разных массивов по длине друг к другу. Подскажите хотя бы в какую сторону гуглить, а то я совсем скоро поеду из-за этой задачки((
>>2395717 Алсо, забыл добавить, что необходимо исполнение такого решения (если оно вообще возможно) исключительно в цикле for. Вариант с группировкой этих двух массивов в один и поочередный вывод элементов нового двумерного массива не работает
Подскажите куда копать пожалуйста, а то скоро совсем поеду.
Есть задача.
Есть список с видеокартами ["Radeon RX 580", "MSI GeForce 3050", "Asus GeForce 3060", "Radeon RX 560", "Gigabye GeForce 3080"]
По задаче запилить новый список только с GeForce. Можно ли как-то запилить список не удаляя просто строки с радеоном, а чтобы список формировался по ключевому слову, в данном случае GeForce, чтобы отрабатывал независимо от длинны списка.
Питоновский библиотекарь в треде. Есть ли какие новые книги, что стоит добавить на Sync диск? Если что, можно писать напрямую на почту - [email protected]
В боте у меня есть cron который делает рассылки судя по расписанию (в определенные дни недели в определенное время). Пока писал все было норм вроде но теперь как смотрю - понимаю что с точки зрения организации кода это пиздец. Время рассылок и дни недели у меня в .env файле задаются, там месиво какое-то, в каком формате это все мутить чтобы было ясно, лаконично и просто для изменений?
Ботом потом будут пользоваться другие люди (прогеры) и поддерживать его. Меня тупо обоссут за такую портянку
>>2396098 Ну и что здесь нового у тебя на картинке? по сути только Python concurrency with asyncio заинтресовала, но я в оглавлении ничего крутого не обнаружил.
Когда эти авторы остановятся? Когда им надоест тиражировать залупу об одном и том же?
Антуаны я очень извиняюсь за вопрос из серии как какать но я не могу сейчас не узнать ответ. Я правда читал блядь всю хуйню но я не понимаю сейчас почему конкретно так получается. Занимаюсь хуйней уже неделю, вот сейчас задачка типа напишите ихру в домино. Мне надо вот для начала сгенирить деку, разбить ее на части, найти в этих частях парные кости[0:0],[4:4]. итд вот код https://www.codepile.net/pile/j5AjQKqK он генерит всю хуйню, но мне надо, чтобы когда он видел, что парной кости нет, он решафлил список т.е менял значения переменных игрока/компудахтера по сути и прогонял всё заново. И вот когда у меня pairs = [] он уходит в инфинит луп. А вот я перенес переменные под цикл и все вроде работает. https://www.codepile.net/pile/w7w1NZ8m Но я это блядь натыкал, а не понял. И даже видя результат не понимаю всё равно. Да я даун без понимания скоупа/работы циклов и еще хз чего но если не прямой ответ скажите хоть че прочитать чтобы мне стало ясно как день.
>>2396079 >Постолит Добавил >>2396083 Если бы еще ссылочку на скачивание дал, или сам файл прислал на почту - было бы великолепно. Т.к. не нашел в свободном доступе.
>>2396098 > у него там помойка. Молодец, раз имеешь свежее собрание книг по погромированию. Но каким боком твоя коллекция к книгам анона, если ты ими не делишься?
>>2393267 (OP) Питон нещадно сосется по производтельности в сравнении с любым другим популярным ЯПом. Но бафать ее и не думают, лучше мы блять новых "фич" с тайпингом и паттерн метчингом завезем, чтоб на Жаву и Шарп быть больше похожими. Безусловно блять - необходимое дополнение
>>2396596 Есть гоха которая по производительности лишь немногим уступает крестам, но обладает минималистичным и понятным синтаксисом Есть жс который несмотря на свои причуды ебет по производительности каждый другой интерпретируемый ЯП
Уважаемые господа, подскажите ЧЯДНТ, результат на пикрилейте. Мне нужно чтобы регулярка возвращала тело функции, но когда там больше одного скоупа -- гетается только первый
@ питон медленный потому что он динамический!! @ Жс и пхп тоже динамические но ебут по производительности питон в 4 а то и в 10 раз @ ну пук... динамический... пынямаете?
>>2396661 200 раз задавал этот вопрос адептам "питон медленный потому что динамический", каждый раз начинались виляния очком и невнятные попытки оправдаться питон медленный не потому что "динамический", а потому что спроектирован изначально хуево, навыки кодинга Гвидо на уровне типичного выпускника рашкинской баки направления ИИВТ, может чуть выше
Так достоинства питона не в скорости же. В чем срач?
Давайте тогда сравнивать жабу с Питоном и говорить, что жаба говно, т.к. у нее вместо кода километровые простыни на весь экран, по сравнению с няшным питоном.
На основе чего сделаны Column в той же алхимии? Вот я создал модель Office, поставил ей колонки, навожу на name, по идее name это Column, я напрямую это и задал, но подсказка показывает что при доступе office.name мне вернется str. Как это сделано?
Есть ли смысл сейчас вкатываться в Django? Тут есть вообще вкатуны, которые планируют в ближайшее время куда то стучаться? В какую область подались? Сам являюсь студентом, леплю везде понемногу, но нигде конкретно: тут простенький проект на Django, там простенькую снс-классификатор.
Добавил асинхронный cron в свой проект (потому что сам проект асинхронный и добавлять обычкновенные синхронный реализации - хуйня, будут по долгу блочить мейн тред). Поглядел сурс код. По факту чувак сделал то же что было у меня в голове поначалу: каждые 5 секунд запускать проверку тасков, если времея подошло, то исполнить ее, если нет - ждать дальше. Лол, примитивщина как она есть.
А вот если мне необходимо выполнять таску с точностью до миллисекунды, как быть? Очевидно надо это делать по push-методике (ждать сигнала извне) а не по pull как сейчас (дрочить цикл и ждать исполнения). Только как блэт?
>>2396723 У меня вообще встает когда что-то работает по push а не по pull. Типо запустил ты ожидание, которое практически не потребляет ресурсов CPU, потому что не гоняет постоянных циклов, и как только приходит время, сторонний сигнал запускает процедуру с точностью до микросекунд. Вообще именно так работает сервер, неужели чтобы подобное пилить нужно заделать что-то типо своего асинхронного сервака на локалхосте?
>>2396731 >Типо запустил ты ожидание, которое практически не потребляет ресурсов CPU, потому что не гоняет постоянных циклов, и как только приходит время, сторонний сигнал запускает процедуру с точностью до микросекунд.
Тащемто ожидание и прогон циклов будет, просто в другом процессе из которого ты ожидаешь события. Ты просто его выносишь в другое место и типа у тебя его нет.
>>2396762 Дорабатывал как-то oauth который написали на джанге (ага, джангу подняли просто под сервис который должен возвращать токен), день ебался пытаясь его завести и читая доки либы. Еще день пытался отрефакторить так, чтобы этим говном можно было пользоваться. Потом 2 дня пытался пофиксить проблемы со сваггером, т.к. в нем висело 8 ручек по факту юзались из которых только 2, без прямого редактирования опенапи.жсон схемы это не решалось
Всем привет! Возможно ответ на мой дальнейший вопрос выведет меня на новый уровень. Очень прошу помочь.
Мне нужно получить комментарии к посту телеграм-канала. Использую pyrogram. С получением постов канала - вопросов нет, я их забрал. Теперь у меня есть массив с постами. А вот как получить комментарии к посту?
Вот только я не понимаю как его использовать(( Подскажите, как это сделать, пожалуйста. Думаю поняв это, я наконец-то научусь читать и использовать документации, спасибо.
>>2396786 Читай офф док, там всё очень хорошо расписано. Как деплоить и прочее. Сам читал только то что было нужно, т.к забивать лишней инфой и так забитую голову не хотел. Книги можешь читать если совсем уж камушек.
Я в джанге практически не пользовался местными моделями (юзал mongoengine) да и она больше была как прослойка между внешним и другим нашим апи. Что и было причиной слезть с неё, тк все эти километровые строки с валидаторами и моделями приводили в уныние. К тому же это бек без морды.
>>2396824 Я пытался: Обращался я к элементу currentPost который имеет тип pyrogram.types.Message
currentPost.replies И получал: AttributeError: 'Message' object has no attribute 'replies'
>>2396819 Как раз вот replies у Message и есть этот MessageReplies. В моей ссылке просто описано из чего состоит MessageReplies, как я понял. Окей, а как тогда узнать как получить эти самые элементы?
>>2396818 Спасибо. Основную последовательность models - urls - views - templates я понял.
А вот данные на фронт не отправлял (свой пет делал на чистом джанго, с бутстрапом в качестве css-библиотеки). Я так понял, для полноценного взаимодействия между бэком и фронтом, нужно делать свой API при помощи DjangoRestFramework?
Да и нужно ли вообще джуну на бэке уметь писать фронт-код или достаточно сервер запилить и организовать API?
Чем вообще джуны у вас занимались, какие задачи вы им давали?
И какие еще скиллы нужны, кроме очевидного питона, гита и умения читать и писать простейшие SQL-запросы? Читал, что сейчас активно юзают докер, чтобы разрабы могли в одном окружении работать, а не настраивать его с нуля под каждый проект. От джуна требуется хорошее знание докера?
Не знаю, куда двигаться, после того, как свой круд-пет с кастомной юзер-моделью и поисковой строкой, запилил. Думаю либо прикрутить к пету API, либо уже с нуля новый пет только с API сделать.
>>2396843 Задачи у джунов разные везде. Но у нас поначалу давали небольшие задачи, потом уже цельные проекты, они тоже несложные, просто их надо делать.
В целом достаточно знать базовые вещи, к тому же никто со старта у тебя не будет требовать всё, так что можно освоить остальные вещи в процессе. Ну, если претендуешь на вакансию в каком-нибудь гугле, то да, там надо знать всё.
>>2396803 Конкретную задачу решил, а вот документацию так и не научился читать.
В общем: Первое - получаем посты get_chat_history(chat_id = channelId, limit = 10): Это первые 10 постов.
А потом получаем коменты к этим постам: get_discussion_replies(chat_id = channelId, message_id = currentPost.id): Где currentPost.id это id поста, который получили через get_chat_history
Прислали тестовое: надо сделать DRF API. Обосраться не хочу, так что прощу подсказать, в правильном ли направлении двигаюсь. Надо сделать сохранение в БД Новостей и их Типов. Новость должна иметь структуру: - Имя; - Краткое описание; - Полное описание; - Тип новости. Тип новостей должен иметь структуру: - Имя; - Цвет. Как я понял, тут нужна связь один ко многим. Запилил модели на пике. Скажите, всё ок?
Про производительность это всё праздные вскукареки с задней парты. Во-первых питон сильно вырос в производительности в последних версиях, и работа по оптимизации ведется активная. Во-вторых вполне хватает скорости для поддержки high-load проектов (как раз работаю в таком, нагрузки до 5krps, и это ещё django+rest+postgres). Когда приводят в пример производительность JS, не учитывают его врожденные проблемы с памятью и зависимостями. Лично знаю 3 проекта, которые полностью переехали на Python/Go с JS. Когда сравнивают с PHP, тоже не учитывают, насколько это убогий язык. Третье и самое важное - скорость разработки. Servers are cheap, programmers are expensive. В этом питон уступает разве что RoR, но там производительность вообще уровня помянем. Я работал профессионально с PHP, JS, C# по несколько лет и поверьте, в проблемы с производительностью можно упереться с любым языком и любой технологией, если нанять малограмотное школие. Так что учите базу, матчасть, не привязанную к языку, и не слушайте петухов, кудахтающих, что "язык говно, потому что медленный". Для разных задач разные инструменты, но python неспроста уверенно движется к вершинам рейтингов - благодаря спектру применения и удобству использования
Как с poetry работать? Решил ее накатить вместо обычного pip с requirements, все роюит, но когда надо перебилживать пакеты через poetry install, мне постоянно жалуется на lock-файл:
The lock file is not up to date with the latest changes in pyproject.toml
>>2397092 >The lock file is not up to date with the latest changes in pyproject.toml >Втф Тебе английским языком пишут, что нужно обновить лок-файл, что тебя непонятного? poetry update Пользуйся
>>2393267 (OP) Такой вот вопрос Представим себе, у меня есть класс, я создаю несколько его экземпляров. У них разные параметры, мне нужно сравнить эти экземпляры. Как это лучше сделать с точки зрения кода? Создать класс-сравниватель и передать ему 2 экземпляра? Получается, мне нуно написать класс ради одной функции в нем... Или есть какие-то более элегантные методы?
>>2397125 Зачем тебе классы, если ты не пользуешься возможностями ооп? Делай словарями и запили функцию сравнения, чо ты тут из себя строить пытаешься.
По делу - сравнение внезапно принято делать операторами = > < и т.п. Их поведение переопределяется в т.н. magic methods.
>>2397176 Бле, я же пошутил про словари... Набери в гугле python magic methods, там чтива полтора абзаца, и сможешь сравнивать свои объекты операторами сравнения, как белый человек.
>>2397250 кажется, понял, спасибо) Единственное, нужно будет по хитрому переопределить метод так, чтобы сравнивало и писало неравные, а не простоTrue/False, это же возможно? Проверим...)
ААААА! Что почитать, что бы я понимал как нормально создавать и роутить модули в проекте? Что бы мне не приходилось путаться и задумываться что куда и как импортируется!
Помогите разобарться с асинхронностью и что я вообще делаю не так.
У меня сейчас происходит следующее:
Есть модуль pyrogramMethods Там я использую объект app, который инстанцировал в manageLinks Есть функция (пик2) Если я ее вызову напрямую из файла pyrogramMethods app.run(getChannelId(title)) Она отработает
Есть модуль sqlMethods, где я хочу работать только с бд Методы от туда вызываются из botMainLoop
Есди я импортрую в sqlMethods метод getChannelId из pyrogramMethods и попробую просто вызвать эту функцию(пик3) app.run(getChannelId(title)) То получаю RuntimeError: This event loop is already running Но если я опишу прямо внутри sqlMethods точно такую же функцию (пик4) То все отработает.
>>2397362 app.run используют один в пределах одного потока. Если надо параллельность используй await asyncio.gather(task1, task2...) который возвращает результаты, или asyncio.wait([task1, task2..]) который ждет завершения, или asyncio ensure_future(task) если хочешь запустить async таск и забыть, но лучше не забывать, иногда они теряются.
>>2397362 Ааа, окей. Если я просто вызываю функцию как await getChannelId(channelTitle) то все работает. Похоже дело в том, что app.run() запускает event loop, который у меня по сути уже запущен, когда я стартую бота.
Но все равно, что бы почитать такого, что бы разобраться в асинхронности. И еще вопрос: У меня сейчас в том файле просто набор функций, которые делают ту или иную задачу и возвращают словари. Стоит ли создать класс и оформить все эти функции как методы какого-нибудь класса? Если да, то зачем?
У меня есть объект определенного класса. Он может иметь различную структуру различной вложенности. Я хочу его полностью хранить в бдшке, ну так на всякий случай.
Соответственно мне надо его превратить в строку. Сделать я это хочу через json.dumps() Пишу для этого рекурсивную функцию, которая превращает объект в словарь. Но может я изобретаю велосипед и есть более красивое решение?
Анончики, помогите. Работаю аналитиком, хочу сделать скрипт, который конвертирует схему БД в plantUML для конфлюенса. С конвертацией в plantUML разберусь сам, но возникли сложности с преобразованием в словарь самой схемы из набора команд для создания БД.
Что мы имеем? Файл с командами создания БД такого вида:
create table account ( (описание полей) ); alter table account owner to employees; create index idx_account_person_id on account (person_id); create table account_system ( (описание полей) ); ... и т.д.
На выходе нужно получить словарь с описанием таблиц. Гуглил, но что-то не нашел библиотек, которые могут это все хоть как-то структурировать, вся поисковая выдача засрана ответами на вопрос, как из ответа на запрос получить словарь.
двач запил небольшой тестовый проект на джанге куда бы вдыложить. Подкинь какой нибудь бесплатный хостинг бесплатный это не 30 дней триала то просто бесплатный все время что то пока всякая залупа с пробным периодом попадается
>>2393267 (OP) Проверяю синхронную Джангу. Запустил ее через гуникорн, поставил 8 воркеров. У сервака есть 1 урл и вьюха для него на скрине - он просто спит 2 секунды а потом возвращает ответ. Проверял его с помощью асинхронного клиента который стреляет сразу несколькими запросами и ждет от них ответа.
Я стрельнул 8 запросами и получил все респонсы за 2 секунды. Как это возможно если у меня всего 4 ядра на машине? За сет чего джанга с гуникорном смогли конкуррентно обработать все мои запросы и ждать не более 2 секунд?
>>2397766 Если сделать 20 воркеров и кинуть 20 запросов то будет то же самое - 20 реквестов выполнятся за 2 секунды, хз пока какой лимит и когда производительность начнет просядать
>>2397054 Почти сделал тестовое, но есть проблемка: нужно реализовать возможность получить список всех новостей (имя, краткое описание, имя типа, цвет типа). Получилось передать имя типа через foreign key поле посредством to_field. Но вот цвет как передать - хз. Попробовал через nested relationships, но там работает это всё через сериализатор, к которому другая модель привязывается. То есть я могу сделать список типов новостей, а внутри уже раскрыть, какие новости к ним относятся. Может есть способ попроще расшарить поле с одного сериализатора на другой? Или я творю херню и местные эксперты подскажут, как лучше?
>>2397766 >>2397768 Кароч положняк такой: Если запустить дохера воркеров (скажем 64) и ебнуть столько же реквестов то они выполнятся за 2 секунды, если в теле вьюхи есть операция sleep (или другое подобие io_bound), если оставить то же число воркеров и реквестов но кинуть cpu_bound операцию вроде числодробилки то мы так же применим все 64 реквеста разом ОДНАКО выполняться они будут вовсе не так же быстро. На пикриле 52 миллиона итераций исполняются примерно за секунду. При 64 запросах ответы получил за ~18 секунд
>>2397825 Проверка асинхронного сервера фастапи на 1 воркере дала следующее: при io_bound можно хуярить 64 реквеста и все они вернутся за 2 секунды (если спим 2 секунды в хендлере). Эмпирически понял что на uvicorn однако стоит лимит на 100 коннекшнов разом (100 коннекшнов обрабатывается за 2 секунды, а 101 уже за 4), хз пока как его поднять, хочу попробовать выжать максимум. --limit-max-requests 200 и --limit-concurrency 200 не спасают
Почитал тутор по джанге2, посмотрел видеоуроки Кори. А какая сейчас мета архитектуры веб-приложений на джанге? Где можно подробнее посмотреть/почитать? На дотнете сейчас clean architecture, проекты – разные уровня "луковицы" проекта. А у вас как?
>>2398289 Как же так, в жс динамическая типизация, а файлы скриптов называют статикой, непорядок! А еще Белое море на самом деле не белое, а серо-синее, прикинь?
Погугли что с точки зрения веб-сервера является статикой, прежде чем так жидко обделываться в следующий раз.
Может кто знает inline кнопка в aiogram работает без state'ов, как только выбираю стейт она перестаёт работать, как её заставить работать? И второй вопрос как получить вывод логов используя? dp.middleware.setup(LoggingMiddleware())
Хэллоу, Ворлд! Мне нужно из питона подключиться к базе на MSSQL на удалённом сервере. Использую библиотеку pymssql. Есть все необходимые данные: логин, пароль, название базы. Но вот подключения не происходит. До этого дел с MSSQL не имел. Подскажите, пожалуйста, как проверить, что коннект к базе принципиально возможен? Может в настройках сервера бд что-то надо посмотреть?
Питоны, накидайте годных каналов на ютубе. Что бы разжевать эту кашку для начинающих. А то куча каналов, но некоторых например как хауди хо палят как бездарных хуесосов, не хочется ошибки повторять. Мимо вкатываюсь 2 дня с книгой Эрика Мэтиза
Хочу на Джангу отправлять fetch запрос типа GET http:/url12345.json цифры в юрл будут постоянно меняться и в зависимости от этого выдаваться определённый жсон
Нужно отличить именно этот запрос от обычного GET http:/url12345.html Как сделать? Запросы приходят на один и тот же юрл. Мне нужно как-то различать их. Я знаю, можно их получить во view и там уже if request.method == 'XMLHttpRequest' Но мне нужно, чтобы работали разные view
Есть ли какой-то механизм, который бы позволял получать доступ к пикчам/видео по хэшу, связанному с пользователем? Допустим, на сервере лежат файлы: img_01.jpeg, img_02.jpg, img_03.png Мне нужно чтобы при загрузке страницы пользователю отдавались не реальные пути, а путь по хэшу, к примеру имеем такой маппинг: http://localhost/static/abcdef123 -> img01.jpeg Или без физического переименования/копирования файла такое провернуть нереально? Ну или чтоб как можно меньше дисковых ресурсов съедало
>>2399727 Тегу img как раз похер, тут надо думать, как сервер организовать, чтобы не было лишней нагрузки.
Например чтобы не через скрипт файл качать, а чтобы его вебсервер напрямую отдавал.
Зависит ещё, каким ты ответ от сервера видишь, заголовок и т.п.
>Или без физического переименования/копирования файла такое провернуть нереально? Из брутальных механизмов ты можешь использовать символические или жёсткие ссылки на файл. По идее, если жёсткие ссылки делаешь, то у тебя вообще перерасхода нет, даже inode не расходуется, если символические, то всё-таки файл создаётся, но маленький.
Сап, питонач, может кто помочь с pyqt5? Пилю приложуху для одного сервиса чтоб в юзеринтерфейсе создавать структуры офферов, данные организованы в следующих классах(в дальнейшем их будет больше, как и агрегаций между ними) https://dumpz.org/cCr2zxC5Bb5g Данные планируется выводить в окошке в формате "значения всех полей текущего и вложенных экземпляров", как я решил, через QTreeView. Идея отображать структуру во вюхе такой иерархией: root(Product)/ id | %xxx-xx-xx-xx-xxxx% name | %name% ... combi_list/ combi1 id |... name|.. .... combi2/ .... price_list/ ...(сейм как и ветка выше)
Но что-то никак не могу придумать, как организовать QAbstractItemModel, чтобы она эти экземляры могла отображать... Сперва думал отдельную структуру нодов дерева нарисовать для хранения экземпляров, но наверное будет хуйня, тк в классы уже вложены другие экземпляры... Тогда получается лучше всего будет прямо в классах реализовать отношение парент-чилдрен нодов? Всё что гуглится по примерам использует базовые типы или простейшие словари, но я хотел бы использовать именно экземпляры моих классов из-за логики, построенной на метаднных в полях.
ТЛ;ДР - как правильно и эффективно построить модель для отображения экземпляра класса и всех его полей/агрегаций в QTreeView?
# red ("2022-07-01", "2022-07-02", "2022-07-22", "2022-07-23", "2022-07-29", "2022-07-30"),
# grey ("2022-07-16") )
# а это правила счёта часов по дням в этом месяце! В какое время всё не работает.. CFG_TIME = ( (2022, 07, 09), # год, месяц от, месяц до ("22:00", "01:00"), # это для blue ("22:00", "23:00"), # это для red маркеров ("00:00", "24:00") # это для grey )
А дальше как по этим данным проверить рабочий день и час?? С меня бочка чаю.
>>2393267 (OP) ПАЧИМУ НИРАБОТАЕТ!!: n = int(input("Введите число:")) while n < 0 and n > 10: print("Введите число от 0 до 10") n = int(input("Введите число:")) Где я проебалси? Мне нужно чтобы программа запрашивала число, пока пользователь не введет верное.
>>2400462 В твоей конструкции - меняешь and на or и всё заработает Это потому что while работает пока True, собственно поэтому если у тебя n будет меньше 0, это уже False и цикл стопается, при or у тебя будет False только если оба условия False
Что хочу сделать: Пользователь может создавать объекты(к примеру, рисунки) двух типов: изначально приватные (которые может видеть пользователь) и изначально публичные (которые могут видеть другие пользователи).
Как это сделать?
Модель примерно такая. class Drawing(models.Model): ==#тут остальные поля модели ==isPrivate = BooleanFiled(default=True)
В форме загрузки картинки будет галочка "Опубликовать для всех". Если галочка стоит, то картинка публикуется и в модели isPrivate ставится на False
Как потом отображать картинки? Формировать во view список только из тех картинок, у которых isPrivate == false, затем передавать на template?
>>2401241 > Как потом отображать картинки? > Формировать во view список только из тех картинок, у которых isPrivate == false, затем передавать на template? Ну да, а что не так
>>2401691 Раскладывать файлы по двум папкам приватные/не приватные, отдавать только то, что в публичной папке, при каждом изменении признака перекладывать файл, самому следить за консистентностью и велосипедить атомарность изменений в данных и в файловой системе, если потребуется фильтр по другим признакам - добавлять N^2 вложенных папок. Релизнуть как мвп, не получить ресурсов на переписывание с нуля потому что "и так работает", подождать до момента, когда баги и перформанс перестанут радовать кабана/клиента, понять, что переписывание теперь стоит на пару нулей больше, нанять команду аналитиков, получить от них роадмап рефакторинга в жире по агиле скраму с применением вставьте баззворд здесь и счет на круглую сумму, подсесть на коньяк по вечерам, поручить реализацию тому же ивану, что и делал мвп, просрочить все дедлайны, на горячую голову перевести ивана на должность слесаря по принтерам в бухгалтерии, нанять еще команду разрабов, получить фидбэк по роадмапу, что вот там нереализуемо, а вот там неэффективно, отдать переписывать роадмап аналитику из новой команды разрабов, а пока докупить еще железа под скрипящий пердящий от боевой нагрузки мвп и оплатить специально обученных людей для ручного исправления последствий багов, начать экономить на коньяке, заменив его водкой, вызвонить в отпуске ивана из бухгалтерии, чтобы получить доступы к боевой системе и дать их этим людям, забыть про день рождения сына, получить письмо от разрабов, где они говорят, что сделали половину но уже просят каких-то дево-псов и куа а без них показывать почему-то не хотят, делегировать поиск и найм вот этих вот всех своей секретарше, отложить отпуск, посмотреть и отобрать с секретаршей найденных ею людей, оправдаться перед женой почему секретарша стала звонить чаще, нанять заместителя для решения мелких вопросов, посмотреть отчет куашников о новой версии, получить сроки новой итерации с фиксом новых багов и миграции со старой версии, перевезти теще вещи жены, вынести мусор, в ночь на окончательный релиз пойти в бар и напиться до беспамятства, проснуться, опохмелиться, открыть почту, увидеть заголовок ночного письма "Re: Re: Re: Re: Re: бэкапы?", достать веревку и мыло. Так победим.
Присутствует ли в питон треде представители так называемой бигдаты? Я сам химик-rndшник у которого в шараге было неплохо со статистикой, ну и целом по долгу работы я могу в постановку экспериментов/анализ данных/выдвижение гипотез итд итп, и у меня сравнительно дохуя свободного времени, которое я начал тратить на изучение питона по рандомным интернет-курсам потому что мне нехуй делать. И вот я узнал что есть такая профессия как аналитик данных которая звучит как просто комбинация всего, что я люблю и умею, только с помощью айти инструментария. Где эту хуйню можно осваивать именно с уклоном на дата-саенс, потому что то, что я делаю сейчас все-таки подразумевает петон разработку, а мне бы хотелось переключиться.
>>2401923 Работал раньше в матлабе, крутил-вертел циферок с научных данных на пару десятков гб. Это дата саентизм? Что жто вообще такое? Мне кажется это работа уровня сисадмина, вроде бы и что-то важное делает, а вроде нихера, обычный бэкендер и то больше думает и делает.
asyncio.as_completed позволяет несколько корутин запустить одновременно и по одному результату вытаскивать. Существует ли способ сделать так же, но с бесконечным количеством корутин? При этом результаты должны копиться и ожидать до тех пор, пока их по одному не вытащат.
Пример такой. Простая консольная программа. Она до бесконечности раз в минуту скачивает данные с сервера (httpx или aiohttp), т.е. следит за обновлениями какого-то каталога. Данные кладутся в какой-нибудь fifo-мешок или генератор.
Программа все время ждет ввода от пользователя. И тут надо сделать так, чтобы ничего не блокировалось, и данные продолжали скачиваться периодически даже если пользователь АФК. Пользователь может нажать на кнопку и кусок уже скачанных данных ему выведется на экран (примерно как вытаскивание из asyncio.as_completed).
Господа с многолетним опытом разработки на Пистоне, подскажите как написать.
Сори за платиновый вопрос, но какую книгу самому нубу посоветуете, которому подробно распишут как запустить, и как написать хелло ворлд, и дальше по нарастающей.
>>2402134 >Данные кладутся в какой-нибудь fifo-мешок или генератор Ну так клади данные в fifo-мешок, aka asyncio.Queue
>Программа все время ждет ввода от пользователя Ты делаешь консольное приложение? Если ты делаешь с aiohttp, yt проще ли прикрутить веб-интерфейс какой-нибудь?
>>2402134 Зачем тебе бесконечное число корутин? У тебя же одна корутина фактически, которая делает запрос. Парсить бесконечное число сайтов? Асинкио будет ронять таски, если корутин будет очень много, лучше делай очередь и воркеров. В другом треде пусть консоль висит со всем говном.
Питоняч, поясни за типы. Всю жизнь был уверен, что в Питоне именно значение имеет тип, а не переменная. А переменная - это просто ссылка на объект (а-ля значение) в памяти. То же писалось в книге Лучано Рамальо "Python. К вершинам мастерства" (249 стр). Сейчас прохожу курс на Go в я.практикуме и там теории о типизации есть строка: "В языке Python тип переменной связан с её значением и определяется на этапе выполнения программы.". От техподдержки получил ответ:
>Никакой ошибки нет. Вы сами представили нам строку «В языке Python тип переменной связан с её значением и определяется на этапе выполнения программы.». В каждом языке программирования переменная имеет какой-то тип, однако в Python вы его явно не указываете, вы лишь задаёте значения для переменной. После этого, когда за свою работу принимается интерпретатор (так как Python интерпретируемый язык), он смотрит на значение этой переменной и срабатывает так, например: если тут записано целое число, значит это переменная типа int. Вы можете убедиться в этом, использовав метод type() в языке Python на нужной переменной. В этом случае вам будет указано, какой тип переменной. Это называется неявная типизация и она имеется и в других языках программирования, например, в C#: в этом языке обычно используется явная типизация, то есть приходится использовать явный тип переменной и попытки вставить в эту переменную значение, которое не соответствует типу, приведёт к ошибке в коде. Пример: >int i = 5; >Слово перед i указывает явный тип, целое число, однако если мы можем воспользоваться неявной типизацией, написав вместо типа переменной слово var. >var i = 5; >Тогда код будет работать как работают переменные в языке Python: во время выполнения компилятор будет смотреть не на тип переменной изначально, а будет заглядывать в значение переменной и уже исходя из этого значения будет приводить переменную к нужному типу. >Получается такой вывод: изначально вы не задаёте тип переменной и кажется, что у переменной нет типа в Python, однако тип определяется на моменте работы программы. Это никак не противоречит тому, о чём говорится в строке, которую вы нам прислали.
У меня ощущение, что он не на тот вопрос отвечает. Тип определяется в момент работы программы - с этим никто не спорит. Но тип определяется для значения (в момент создания объекта, т.е.. ДО присваивания), а не для переменной - разве нет? Рассуди, кто прав.
>>2402209 Ответ от их сапорта. >Переменная — это тоже объект. В ваших же строках даются ответы на ваши вопрос: «The type() function returns an object’s type (which is an object itself)» Функция type() возвращает тип объекта. Эта функция применяется к переменным, переменная — это объект. У объектов может быть тип. И всё это содержится в той документации, которую вы нам прислали.
>>2402211 >Ответ от их сапорта. Ты расходуешь их человеко-часы на слишком академические интеллектуальные беседы, к которым они не привыкли. Отсюда неточности формулировок.
Переменная указывает на какой-то объект. Говорить, что переменная имеет тип, некорректно, поскольку ты можешь элементарно перезаписать переменную другим объектом другого типа, в чём принципиальная разница с языками со статической типизацией.
Внутри, сама переменная это просто запись в словаре специальном. Каждая функция имеет свой словарь с переменными, один единственный, из-за этого невозможно сделать области видимости внутри тела цикла и т.п., что норма для большинства языков программирования и чего питону не хватает.
>>2402310 Зачем держать в голове то чем ты никогда не воспользуешься? Гораздо проще просто понимать что с переменными в питоне не всё просто и как появится что-то связанное с ним - загуглить и прочесть. Но нет, надо долбиться дальше, как окрщик и забивать голову мусором. Поздравляю, ты потратил время на ерунду.
Антон, а после прохождения всяких основ, что дальше по хорошему надо бы сделать? Задачки решать? Что-то самому придумывать? Прошу прощения за вопрос, просто я очень неуверенный в себе человек и всё время боюсь пойти куда-то не в ту сторону.
Привет. Есть баш скрипт в авторане убунту 20.04. Он по надобности вызывает питон скрипт. Но он не отрабатывает. Если запускать баш скрипт самому, то все работает правильно, в том числе вызываемый из баш скрипта питон скрипт. Подскажите, в чем может быть дело. (chmod +x всем раздал)
зануда вошел в чат >>2402320 Все так, но >ты можешь элементарно перезаписать переменную другим объектом другого типа, в чём принципиальная разница с языками со статической типизацией фактически неверно. Можно делать Object a = 5; a = "string"; ClassA b = static_cast<ClassA>(new ClassB()); // скомпилируется, но упадет в рантайме не говоря уже про акробатические трюки с рефлексией, где она есть. Там точно также информация о типах лежит рядом с объектом, если она вообще доживает до рантайма (не везде), а информация о "типе переменной" (которая, на минуточку, есть и в динамике, иначе иде бы не работали) умрет еще раньше, чем программа будет запущена - когда компилятор ударит по руками программиста и посчитает размер памяти для стека. Более того, саму информацию о доступных переменных получить там на порядок сложнее, если не невозможно, по сравнению с globals(), locals(). Так что если >Говорить, что переменная имеет тип, некорректно , то это верно в равной степени и для динамики, и для статики.
>>2402459 Бро, спасибо. А можно простой пример акт-проекта привести? Вот самый элементарный. Скажем, если бы ты только вкатывался, ты бы что попробовал воплотить?
>>2402321 Ты потратишь больше времени, пытаясь загуглить, что у тебя не так в участке кода, связанном с переменными. Ну и вообще ленность ума не одобряю. Это не такие уж оторванные от жизни дебри, это буквально база, и если тебе она кажется не нужной, то это говорит о тебе как специалисте.
>>2402181 >Ты делаешь консольное приложение? Если ты делаешь с aiohttp, yt проще ли прикрутить веб-интерфейс какой-нибудь? Идея хорошая, но я делаю для себя и мне для начала надо чтобы просто работало, а потом уже обязательно сделаю что-нибудь красивое. >>2402198 А, ну правильно в общем. Она одна, но она выдает бесконечно ответы в виде инстансов dataclass-а. >Парсить бесконечное число сайтов? Несколько URL-ов в лупе.
Сегодня попробую что-нибудь закодить с тредами и queue. Отпишусь если будут траблы.
>>2402516 Возможные проблемы: 1) ты запускаешь не из того каталога, чем это делает авторан. Из-за этого не открываются какие-то файлы, не создаются другие файлы и т.п. 2) надо думать, что там происходит с выводом информации, куда перенаправляются потоки, из-за этого может падать.
>>2402514 >>Ты делаешь консольное приложение? Если ты делаешь с aiohttp, yt проще ли прикрутить веб-интерфейс какой-нибудь? >Идея хорошая, но я делаю для себя и мне для начала надо чтобы просто работало, а потом уже обязательно сделаю что-нибудь красивое. Веб интерфейс может быть проще, чем ебля с тредами для ввода команд. Через asyncio это тоже вроде бы можно организовать, но не помню.
>>2402467 Мимо Если умеешь основы языка, но не веб, то сделай консольный тудушник. Потом, когда изучишь ORM и какой-нибудь фреймворк, то сделай веб-интерфейс и хранение в БД.
Привет работяги. У меня опыт на пыхе больше двух лет, работаю с нормальными инструментами: symfony, очереди, postgres, контейнеризация, конфигурировал ci сервисы. Сейчас питон изучаю и рассматриваю куда могу попасть, очевидно это веб и тут вопрос. С хорошим уровнем питона, я могу рассчитывать сразу на мидл уровень? Мб кто свичился так, расскажите про разницу в используемых подходах в работе на этих языках?
Щя будет вопрос из категории как какать (извините) Анон сверху вот кидал список "programming challenges" на гите. Может кто-то беглым взглядом оценить качество проектов в этих модулях? Вкатываюсь по этой хуйне, страдаю, матерюсь, но делаю. План работы обвел красным на пикриле. https://hyperskill.org/tracks?category=1 Хочется верить, что занимаюсь не совсем какой-то хуйней а чем-то более-менее нормальным. Дается с трудом, потому что даже программа которая работает и у которой правильная логика допиливается до правильного прохождения тестов еще день сверху. И я чет подумал а может я хуйней занимаюсь зазря.
>>2402610 Да там вроде можно какое-то время еще протянуть на гемах, которые дают за то, что выполняешь таски. А так да, просто акк менять и брать таски которые не сделаны.
>>2402468 У меня в голове много другой важной инфы которую и использую каждый день. Если я не могу изменить механизм хранения переменной, зачем мне это знать? Мне достаточно понимать что есть мутабельные и иммутабельные типы, и не плодить лишнее место в памяти, неправильно используюя компехешенсы. Всё. Если у меня будет задача сделать свой иртерпретатор для питона, тогда освою всё что нужно, а пока такой задачи нет, то и знать мне это себе во вред. А то что переменную можно использовать несколько раз это и так понятно, а как она фактически располагается в памяти: создаёт новый адрес или использует текущий - мне не интересно, потому что у меня нет доступа к указателям и регистрам для того чтобы это контроллировать или как-то оптимизировать.
Запустил uvicorn с одной ручкой на которой мы делаем await asyncio.sleep(1), ебнул на него 1000 запросов одновременно, запросы завершились не за 1 секунду а за 3.8. Почаму так?
Есть вакуха мидла на Кафку. Но я с Кафкой никогда не работал... Я приду а там большие дяди-сеньоры с большими писями, будут каверзные вопросы задавать... Шо делать?
>>2402675 Понимание переменных входит в программу-минимум разработчика на питоне.
Чтобы понимать globals, locals, __dict__ и т.п. вещи, просто интуитивно чувствовать какие-то вещи. Просто вот с этим ты сталкиваешься постоянно.
Есть огромная масса других вещей, которые может быть знать не обязательно, если ты некоторыми направлениями не занимаешься.
Обычно со знаниями так происходит. Ты изучаешь что-то, копаешься, вникаешь в суть. Это у тебя где-то откладывается интуитивно. Потом ты всё то, что тебе не нужно, забываешь. Но смутно помнишь и уже понимаешь, что и как смотреть, если понадобится. И в принципе ты намного лучше язык понимаешь.
>>2401191 >>2401192 Та дешевле макак понабирать. 300$ )) Можно и вручную набить когда красные, синие и серые даты. И правила по времени на этих красках. Мне непонятно как потом по конфиг-переменных проверять именно часы работы (неработы)... Просто пните меня по направлению к решению этого сраного алгоритма. Мне не нужно парсить пдф их ёбаные, они могут и структуру поменять, не опенсурз же !!!
>>2402916 Ты сначала сформулируй задачу нормально. Я, честно говоря, нихера не понял твою проблему. Какие-то даты, синие, красные, охуеть вообще. Распиши задачу на бумажке, сделай схему куда что да как. Там и найдешь ответ, т.к половина решения уже будет сделана.
>>2402916 >Просто пните меня по направлению к решению этого сраного алгоритма. Мне не нужно парсить пдф их ёбаные, они могут и структуру поменять, не опенсурз же Для начала тебе нужно распарсить их ёбаный пдф. Либо использовать извращения, вроде конвертации в картинку с дальнейшим распознаванием.
И то и другое может быть гемором. Картинки распознавать я вот совсем не умею, но кто-то делает эффективно довольно, может несложно, если умеешь.
Вывод: работа приличная скорее всего, проще руками разбирать, судя по всему, это нечасто требуется.
>>2403030 Ты тупой батенька? Я сказал не буду парсить пдф. Я смогу вручную конфиг сделать, мне не нужно пфд парсить!!! Конфиг я вручную сделаю, и для ИП и для ООО отдельно, не в этом проблема.
Прочел и проупражнялся по укусу пайтона Сейчас читаю "Грокаем Алгоритмы" Под рукой есть книжка "Питон. К вершинам мастерства" Лучано Ромальо, хватит мне моей базы без томов Лутца?
>>2403096 ну делай так, что по-умолчанию выходные это сб-вс, если не внесено в список исключений.
дальше в конфиге создавай поле вроде holydays: 2022.05.01-2022.05.09, 2022.06.12 workday_ext: 2022.05.06 и просто парсишь строку любым образом можно загнать в стандартный формат вроде yaml.
hраспарсить легко такой формат строки. Я просто не понимаю тогда, в чём проблема.
>>2403101 >вах какой начитанный жи есть а парсер написать сможешь? ээээ брат в смысле не читал такое в книжке >эээ давай пиздуй нахуй вы не подходите бля сука понаехали тут
>>2393267 (OP) Пацаны, по факту ведь существует лишь 2 модели cron-а: активное ожидание (слипаемся на 5 секунда скажем, проверяем текущие таски, если дедлайн не наступил то слипаемся снова и так постоянно) и "настоящий cron" (запускаем процесс, проходимся по всем таскам и запускаем асинхронные корутины которые слипаются на столько времени, чтобы потом таска выполнилась как раз к дедлайну)
Какой из них пизже с точки зрения надежности и ресурсов CPU/RAM?
Как показывать броузеру фотки, хрянящиеся в БД? Он же их хочет отдельным запросом получить. Стек python+postgres.
- Кешировать картинки в директорию доступную по веб? Но картинки приватные, доступны должны быть только авторизаванному пользователю, а из публичной директории всем видны будут. И непонятно когда можно их удалять.
- Показывать картинки напрямую из БД по запросу броузера? Нагрузка возрастает, т.к. для каждой картинки будет отдельный запрос, авторизация пользователя, расшифровка куки-сессии тяжелым криптоалгоритмом.
- Показывать картинки встраивая бинарные данные в html страницу? Страница тяжелеет на размер картинок и не известно как броузеры с утечками памяти это переживут.
>>2403286 Но из очереди-то их надо достать еще. Тут под капотом тоже либо одно либо другое будет работать. Можно работать на pull - воркер периодически хуярит запрос в очередь и получает джобу либо ничего. А можно на push - очередь сама отдаст воркерам джобу когда придет время
>>2403298 Есть 2 докер контейнера: БД и веб-приложение. И где тут хранить картинки, как не в БД? Если в докере приложения, получится, БД размазывается на 2 докер-контейнера, что услажняет обновлении приложения и создает лишний риск потери данных.
>>2403187 Как сделать ёба функцию от данных ФНС. Парс пдф делать не нужно.
! Вход: (date == d,m,y, hour) ! Выход: true если рабочий день и час
# это конфигурация на месяц CFG_IP = ( # blue ("2022-07-04", "2022-07-07", "2022-07-11", "2022-07-14", "2022-07-18", "2022-07-21", "2022-07-25", "2022-07-28"),
# red ("2022-07-01", "2022-07-02", "2022-07-22", "2022-07-23", "2022-07-29", "2022-07-30"),
# grey ("2022-07-16") )
# а это правила счёта часов по дням в этом месяце! В какое время всё не работает.. CFG_TIME = ( (2022, 07, 09), # год, месяц от, месяц до ("22:00", "01:00"), # это для blue маркеров ("22:00", "23:00"), # это для red маркеров ("00:00", "24:00") # это для grey маркеров )
А дальше как по этим данным проверить рабочий день и час??
Не понимаю чего непонятного. Парсинг дат + часов. Просто не врубаюсь как функцию сделать...
>>2403322 CFG_IP[0] это типа все помеченые # blue это даты когда фнс мать её неработает по правилам, описываемым в правилах CFG_TIME [ # это для blue маркеров ]
# red ("2022-07-01", "2022-07-02", "2022-07-22", "2022-07-23", "2022-07-29", "2022-07-30"),
# grey ("2022-07-16") )
# а это правила счёта часов по дням в этом месяце! В какое время всё не работает.. CFG_TIME = ( (2022, 07, 09), # год, месяц от, месяц до ("22:00", "01:00"), # это для blue ("22:00", "23:00"), # это для red маркеров ("00:00", "24:00") # это для grey ) А дальше как по этим данным проверить рабочий день и час??
>>2403458 Ну я копипастю только потому, что ты тупой сегодня. Я задачу максимально подробно описал уже. Только джанго умеешь или ёбу интернетовскую ???
>>2403458 Ещё раз для особо одарённых. (без парса пдф). Есть 3 вида дат, блу, грей, ред. У них свои графики работ (кто с 22.00ч кто с 01:00ч и тп.). Это от налоговой сраной зависит. Вопрос: как сделать функцию (д,м,гггг, час) чтобы возвращала ответ о том, "я не работаю в сегодняшний час". Ебать, я рожу быстрее.
>>2403490 призываю отвечать там на выбор курсы от яндекса, нетологии, скиллфактори и гикбрейнс понимаю конечно, сорта говна, но с какими будет ближе к реальной работе? паралельно курсам буду читать книжки
>>2403681 Я ничего из книжек не читал кроме доков, работаю, делаю прокладки между апишками на fastapi-aiohttp с очередями на редисе, вебхуками и асинхронными вебсокетами под высокой нагрузкой. Ебусь с ограничениями на запросы и никак не могу наебаться с велосипедами разной степени паршивости. В какой-то момент пришёл к выводу, работает и ладно, благо кода всего на 2-3к строк.
>>2403733 У меня так сложилось, что есть куча айти-бояр знакомых, но сам я из другой отрасли совсем и сейчас занимаюсь от нехуй делать, 100 из 100 реальных ойтишников говорят, что все курсы это говно говна и не стоят даже 3 копейки. Пройди какой-то степик, найди более адвансед версию степика, потом запили пару пет- проектов параллельно читая документации/книжки если надо, толку будет больше и бесплатно.
>>2403770 Курсы может быть очень даже нормальные. Скорее вопрос в публике, что идёт на эти курсы, и зачем идут на эти курсы.
Очень часто мотив такой, что нет большого желания учиться, хотят, чтобы их научили, а это плохо работает.
Потом, надо довольно много времени, чтобы мозги на ИТ перестроились, большинство к этому не готово.
Если чел правильный, готовый, то отдача от курсов может быть очень и очень приличной. Но альтернативные пути тоже есть, просто можно по книжкам учиться. Программированию уж точно.
Функция принимает один аргумент и делает свои функцовые дела. Мне надо в эту функцию прокинуть n аргументов и получить n результатов. Как это сделать нормально? Я сейчас конечно написал типа main(1) main(2) main(3) main(4), а если у меня таких аргументов 20 штутк?
Ньюфаг влетает в тред. Не закидывайте говном только. Есть три стула книги. Какую взять, если я кроме как макросов для Вова, биндов для сампа и конфигов в майнкрафте, ничо в жизни не прописывал? Максимум статейки всякие читал в интернете, т.е. системных знаний нету про ооп и прочее.
Как сделать так чтобы пользователь вводил один из приведенных вариантов (в данных случаях цифру) и в зависимости от выбранного варианта шел определенный сценарий скрипта?
Читал ли кто-нибудь Начинаем программировать на Python Гэддиса Тони, чё скажите? Положительно о ней отзываются вроде, оглавление понравилось. >>2404154 Понравилось, наверное по ней начну обучение
>>2404255 Когда в универе надо было подготовиться к чему-нибудь с 0 я брал книжку, изучал теорию и потом переходил к практике. Учитывая, что программированием не занимался, считаю литературу лучшим вариантом для получения базовых знаний.
>>2403699 Забавно что в большинстве своем двачерки, называющие пьющих алкоголь "быдлом" сами являются нихуя не зожниками - они либо тщедушные дрищи либо жиробасы. Жрут всякое говно, сидят за пекой 24/7, практически не имеют друзей. Но пьющие для них конечно же "быдло"
>>2405028 Лол, ну вредные привычки, типа фастфуда - это же блять то же самое, что алкоголь. От фастфуда же тоже происходят изнасилования и драки, да. Прям удачно поставил в один ряд.
Я на работе для себя написал простенький маленький скрипт, который преобразовывает csv. файлы нужным мне образом.
Скрипт работает как я хочу, но блять я хочу положить его в папку с этим файлами, чтобы просто 2 кликами мышки его запускать в ide (pycharm) и исполнять. Так лол, через pycharm он дает сохранить только модуль main.py, а не весь проект (у меня там библиотеки импортируются сторонние же). Весь проект в виде просто папки виндоус, и так его на запустить просто через эксплорер.
То есть мне надо каждый раз открывать pycharm и там выбирать этот скрипт среди нужных мне и запускать.
Что-то хуйня какая-то, вот sql cкрипт просто кликаешь через эксплорер, открывается sql server management studio с этим скриптом, ты кликаешь и скрипт хуярит.
>>2405251 Почему-то напомнило, как лет пять назад видел линевый впс, внутри которого крутилась виртуалка шиндошса, на которой был поднят денвер с боевым сайтом. Переделывать нормально никто, конечно же, не стал. И тебе не советую, мой юный любитель автоматизации - сломаешь то, что работает, плюс начнешь задаваться неудобными вопросами вроде почему после удаления гланд так болит анус.
>>2405387 Выглядит так, что нужные тебе ссылки на конкретные модели уже вынимаются в parse, и parse_items просто дуплицирует запросы, которые потом не выполняются, так как срабатывает dupefilter. Если в parse сделать callback=parse_item, вместо parse_items, то всё, вроде, парсится как надо -- по моделям.
Сап, питонач Скажите, какие есть некостыльные методы сравнить между собой тип list, typing.List и typing.List[...] так, чтобы истину возвращало только сравнение typing.List и typing.List[...]? Контекст - у меня есть класс, который содержит как поля с обычными списками типа list, так и поля с другими списками классов типа typing.List[MyClass]. В одной функции пытаюсь сдлеать отдельную логику для обычных и типизированных списков, что я пытаюсь реализовать через сравнение с типом typing.List. Сперва думал сделать через __origin__, но тогда получается что обычные списки тогда тоже будут попадать под условие, и пока единственным рабочим решением я придумал > getattr(x, '_name', x) == List._name, где x -тип поля, который может принимать значения str, list или List[MyClass] Увы, такой подход нарушает инкапсуляцию, поэтому я хочу его переделать, но не могу найти, как ещё можно добиться правильного разделения логики.
В частности, отличить List[int] от List можно за счёт того, что get_args(typing.List[int]) вернёт (<class 'int'>,), а get_args(typing.List) или get_args(list) вернёт пустой кортеж.
Правда, не очень понятно, как ты это хочешь использовать. Есть минимальный пример? Чтобы считывать type hints в рантайм для конкретных полей/переменных нужно будет что-то ещё (типа библиотеки typeguard)
>>2406035 > Есть такое О, благодарю, всегда использовал только __args__ и совсем забыл о такой опции
>Правда, не очень понятно, как ты это хочешь использовать. Есть минимальный пример? Я пишу метод (construct()), который будет превращать словарь в экземпляр датакласса. У меня есть иерархия, где CatalogItem - "абстрактный" класс, от которого наследуются остальные. Словарь всегда повторяет структуру классов, поэтому необходимо лишь правильно преобразовать вложенные словари в объекты нужных классов, что этот метод и делает: https://dumpz.org/ct5KxQcPSsmb
Бля, подскажите по целери, я уже заебался. Как сериализовать объект, в котором есть другой объект, ссылающийся на базовый? Циклическая сериализация получается. Или как вообще обойти это? Вызываю task_name.delay(a,b,c some_obj) some_obj - довольно массивный объект, с циклическими ссылками. Если переопределить delay и до вызова родительского метода сделать self.some_obj = some_obj, то после вызова супер он его стирает. А мне прокинуть дальше его надо как-то.
>>2406338 >>2406340 Забавно, что из-за immutable строк там даже что-то типа O(m^2 * (2^n + линейное по n)), что становится заметным с ростом n (пикрил).
Добрый вечер. Извиняюсь, если поносный вопрос, но всё равно задам Как, и в каком порядке, будет лучше вкатываться в Джангу? Сейчас я, как любой нормальный россиянин, первым делом спиздил видеокурс по обычному Питону, чтоб его немного подучить для начала Что ещё нужно знать, чтобы стать адекватной джанго-макакой? Что знать, грубо говоря, не нужно, но нормально поможет? Насколько вообще актуальна щас Джанга, если я живу в РФ, и не планирую никуда переезжать? Есть ли направления, тоже связанные с Питоном (больно нравится этот язык), которые в РФ более перспективны, если я не целюсь переезжать в Силиконовую Долину или даже в Москву, а просто хочу уютно кодить на более-менее тёплом месте?
Заранее сердечно благодарю за все деловые ответы и советы. За посылы нахуй не благодарю
>>2406524 На ней много вакансий, но лучше знать что-нибудь ещё, например, fastapi. Сначала почитать про протокол http, oauth. Потом доки на джанге, примеры. Какую-нибудь бд параллельно. Знать там много не надо. Про деплой сервиса, nginx, certbot, докера чуток и, конечно, git. Дальше можно освоить redis, очереди, периодические задачи, asyncio и aiohttp, плавно перекатываться в fastapi, изучить, параллелизм, треды, асинхронность, конкуретность, адекватную реализацию лимитов на запросы к другим апи. Потом укатиться на go и забыть про питон как о страшном сне.
Аноны, работаю QA. И тут занесло в проект, на котором тесты пишутся на питоне. Посоветуйте какие-нибудь экспресс курсы, чтобы быстро влиться в синтаксис и особенности языка.
>>2407234 > Byte of Python Я не понимаю, это стадо дебилов, или один форсер? Это бесполезная хуйня, типа как выучить отче наш для знания библии, или какой ещё ебанутый пример привести? Оно нихуя не дает.
>>2407234 не, книги не люблю. Мне либо какие-то онлайн курсы подрочить (бесплатные), либо видосы на ютубе. А если ещё и с уклоном в автотесты, то вообще супер будет.
В принципе я совсем уж основы сходу понял, но есть пробелы в наследовании, типизации, декларации свойств у объектов private, public, protected, импортах, required.txt файлах какого хуя кстати у вас зависимости храняться так всрато в отличии от того же nodejs?. Ещё вроде как можно запускать код в разных venv: это тоже слабо понимаю, как работает и для чего нужно.
>>2407251 Бляд, братан, я точно помню что где-то полтора года назад смотрел краткие и толковые уроки как раз по твоим темам, только щас всё забыл нахуй
Бесплатные онлайн курсы лежат на Рутрекере. Потыкайся по раздачам, и посмотри что у них внутри - там всегда уроки разделены по папкам, и у каждого урока своя тема
>>2407274 Я, как ебовеший дата-хоардер и перфекционист смотрю всё - дохуя источников в день. Как начальные питон книги могу посоветовать python crash course (для долбоебов, но сойдет, дальше ещё куча от ностарч, это очень нуб-френдли издательство, там десяток книг по начальному питону), quick python course 3e от manning или introducing python 2e от o'reilly). Это как первая стадия. Можете записать в ОП-пост. Я сейчас чуть нетрезв, могу добавить потом. По интермидиейт книгам ситуация довольно другая, тут тоже надо писать, что мне лень сейчас, если будет спрос, то пишите. индусские блядские книге, говно от амазона или видеокурсы шлите нахуй, это чисто стрижка бабла с даунов.
>>2407279 Про инетмедиейт я дозрел. Есть про вебы - джанго-фласки, есть, про тайпинг, есть про разные области, в целом, чтобы стать крепким питон миддлом надо прочесть книг десять. Это разнится с тем же перлом или пхп, где достаточно пару книг, потому что там есть сильные авторы. Списки тоже могу составить, я слежу за литературой.
>>2407279 >>2407288 Спасибо, добрый человек Краш-курс я читал в своё время, наравне с несколькими другими нубскими книгами. Щас всё забыл, естесна, поэтому решил посмотреть видеокурс, чтоб освежить память и мб какие-то пробелы восполнить оставшиеся В связи с этим вопрос >видеокурсы шлите нахуй Чому? Я видеокурс выбрал потому что у меня с книгами проблема - навязчивое желание всё записывать и конспектировать НА ВСЯКИЙ СЛУЧАЙ. Из-за этого чтение каждой книги у меня растягивается на овердохуя, большую часть времени сижу и пишу конспекты. Без конспектов не могу, кажется что без них всё без толку
>>2407288 Ну раз уж пошла такая тема >Списки тоже могу составить Буду премного благодарен. Я уже выше писал, что планирую в сторону Джанги двигаться, английский, если что, вообще не проблема
>>2407209 нет конечно. Одни вкатуны с вопросами "а как поменять местами элементы в кортеже. И другие нубасы, которые сложнее чем создать кортеж с новым порядком не могут ничего.
>>2407342 А это и не надо. Пздец, менять местами элементы в листе. Вы ещё сортировку пузырьком сделайте. 90% из задачек с курсов нахуй не пригодится. Из решение и спрашивают тут.
Сап. Подскажите, как нужно правильно тестировать апи на дрф? Я тут сайтик делаю, уже почти сделал, но нихера тесты не писал, да, типа надо бы было сначала их писать, но прям очень влом, потому что не понятно, че делать надо. Ну вот, если я например прост создам несколько фикстур как бы, жсон файлов просто, с данными, которые должны быть при каждом запросе, и буду тупо их сравнивать с ответом сервера, это насколько норм? В принципе у меня сайтик из кучи крудов состоит и всё. Я его делаю так, для демонстрации скиллов типа. Или так делать прям херово и это будет минус?
>>2407517 Не ну я это чувствую, потому что делаю вот, делаю, а потом надо че-то там поменять оказывается в хуйне, которую я месяц назад сделал, и у меня че-то там перестает работать где-то, а я уже и забыл че там как должно быть. А так тест бы запускал и он бы показывал, че где отвалилось.
>>2407527 Че где отвалилось показывают логи Тесты заставляют писать крупных конторах, чтоб ты там бекдор не всунул какой и анально следить за твоим кодом. Никогда не понимал в чём их смысл, если ты проект пишешь один.
>>2407604 А что у тебя за приложулька? Тестируй очевидные вещи.
Например, что view использует правильный template, что такая-то страница возвращает 200 для залогиненого пользотеля и 401 для незалогиненного и тому подобное.
Если апи пишешь, то проверяй, что твое апи не дает делать запросы без токена/авторизации.
>>2407613 Ну я чет смотрел там видосы, говорили вообще, что для вью отдельно писать надо, для сериализаторов, для моделей. Влом чет. Думал прост делать типа запросы и тестировать что приходит. Ну и вот я ещё слышал, что типа не надо тестировать там работу самого джанго. Типа эти вот авторизации и статусы надо тестировать? Оно же всегда будет работать по идее.
>>2407631 >Ну и вот я ещё слышал, что типа не надо тестировать там работу самого джанго Ну да, за тебя уже разрабы джанги все протестировали. Для вката пойдет, если ты просто умеешь простейшие юнит-тесты писать.
В целом, от тестов плохо не бывает. Добавил фичу - добавил сразу тесты. Но для соло-проекта уровня круд тесты и правда не нужны с точки зрения процесса разработки. Но для твоего обучения лучше пару десятков тестов написать.
ПОМОГИТЕ БЛЯЧТЬ РЕШИТЬ ЭТУ ЗАЛУПУ В МОСКВЕ: Список july_temperatures хранит дневные значения температуры в цельсиях за июль в Москве. Сделайте лето теплее — напишите цикл, который добавит по 10 градусов к каждому значению. Выведите изменённый список на экран.
ПОДСКАЗКА: Чтобы изменить значения исходного списка, напишите цикл с перебором по индексам. В теле цикла прибавьте 10 к каждому элементу july_temperatures. Используйте оператор для сложения с присвоением +=.
только я нихуя все равно не понял, т.к. в практикуме еще не было функции enumerate и не понял, для чего ты использовал две переменные, хотя может тоже потому что не шарю ща enumerate
>>2407959 for key, _ in enumerate(july_temperatures): ___july_temperatures[key] += 10
Да, можно вот так, вторая переменная не нужна в принципе. Но так как enumerate возвращает кортеж из двух чисел, то нужно их куда-то присвоить. В таких случаях переменную, которая не нужна называют "_".
>>2407398 Если ты напишешь тесты хоть какие-нибудь то это однозначно плюс Как именно ты написал тесты на демо проекте никто никогда смотреть не полезет
Насчет жсон файлов -- поломай что-нибудь нарочно и посмотри как этот твой тест падает Если из сообщения об ошибке четко понятно что поломалось то ты молодец садись пять Если же вылезает невъебучая простыня из которой хер проссышь что произошло тогда надо переделывать
сап питонач написал вьювер для просмотра XY-model но отрисовка дохуя медленная т.к. приходится перерисовывать все спины. как пофиксить? есть мысля как то добавить их в дин объект и двигать его, но как бля это сделать? если че это на tkinter говно
>>2408162 в ткинтере create_line возвращает число через это число ты можешь манипулировать стрелочками после того как они уже нарисованы в том числе можно делать move()
c = tk.Canvas() x = c.create_line(0, 0, 100, 100) c.move(x, 10, 10)
Я вот кстати не понимаю почему вкатунские курсы так устроены. Ну т.е да понимание базы бла-бла-бла, но нахуя писать какие-то тупорылые циклы с len, когда есть компрехеншен/энумерейт, степик в этом плане вообще шизоидная площадка и не дает тебе пользоваться тем, что ты не изучил, и заставляет тебя решать задачи в 4 строчки кода 35ю строчками иф/элсов чтобы ты понял как они работают. Пиздец блядь,
>>2408507 Они делаются для людей с мозгом дошкольника, либо прогуливавшего информатику. Объясняют базовые вещи, но на примере языка который собираются изучать. Отсюда и идут эти кринжовые задачки, которые потом применяют в проекте. Ещё твой однострочник использует больше памяти, т.к делает новый лист, надеюсь ты в курсе этого?
Работал с джангой давным давно, потом метался то во фронте, то пхпшником, сейчас думаю вернутся, какие фреймворки сейчас популярны, я так понял джанга уже не настолько актуальна?
>>2408589 Примерно как рельсы, судя по всему. А вкатуны туда ломятся как не в себя. А похапе что - хлебай себе пивас и прибивай фиксами всё что отваливается.
Сап. Подскажите, вот у меня есть апи на дрф, там типа эндпоинт, который создает запись в бд, но там есть связи по внешним ключам. Ну допустим товар в магазине и у товара есть там категория или производитель. Ну и я делаю форму создания товара. Так вот откуда мне взять варианты для формы с названиями категорий и производителей? Мне нужно сделать по эндпоинту с вьюхой и сериализатором для каждого такого селекта и делать запрос просто чтобы получать список названий с айди или как-то можно лучше сделать?
>>2409375 Ну я пока придумал прост сделать типа один эндпоинт "product-options", который возвращает сразу варианты для всех полей, чтоб не делать по запросу на сервер для каждого и вьюха одна только, а сериализатор для каждого селекта уже. Вроде норм.
Привет, подскажите следующее: Я получил айдишник фотки/видео из сообщения в телеге. Могу отправить этот файл при помощи его айдишника. А как я могу сохранить сам файл?
>>2393267 (OP) Есть тг-бот, периодически вношу в него изменения, иногда изменения кардинальны и чтоб у юзеров все работало надо чтобы они "перезапустили" бота нажав на /start Логично присылать всем юзерам уведомление после подобной перезагрузки, чтоб они перезагрузились иначе поведение бота может быть неожиданным. Перезагрузку надо автоматизировать, в голове у меня вертится один подход: в сеттингах прямо в коде указывать номер версии в формате X.Y.Z когда меняется X или Y (предыдущая версия сохраняется в БД) то всем юзерам шлем ведомление.
Вопрос лишь в том - стоит ли это захардкоживать и обязывать именно разработчика менять версию или это обычно делают как-то иначе?
всем приветик в этом треде подскажите, как с помощью pandas и read_excel прочитать row-based табличку из экселя? где ключи в первом столбце, а значения во всех остальных. transpose() не работает так, как хотелось, по ключам не получается обратиться
>>2396699 Такс, я тут из своих фронтендов решил немного поразбираться в ваших бэкендах. Вот начал учить питон и джанго, а оказывается это совсем для лохов, а я-то думал все бекенд делают на этом джанго. А что тогда питонисты еще используют на бэке? Или имелся ввиду вообще не питон? Фронтером уже давно работаю, есть некое общее понимание того, как работает бек, но вот детально с ним не работал. Джанго мне для начала я так понимаю подойдет, чтобы поразбираться, но интересно было бы узнать, что сейчас у вас для бэка актуально. Насколько я помню всё с чем я встречался по работе писалось либо на .net либо на laravel
Насколько целесообразно использовать корутины в качестве воркеров? У меня наборы задач хранятся в редисе, откуда воркеры их забирают. Вроде работает отлично, кроме запросов ничего почти нет. Под нагрузкой работают хорошо. Даже слишком хорошо и всё на одном евентлупе штук 40 пока, с запасом. Какие могут быть подводные?
То что ты слышал скорее всего относится к асинхронщине и здесь ситуация двоякая. С одной стороны, асинхронщина нахуй не нужна 99% времени но петухонисты ее тащат просто чтобы вписать в резюме и поскорее гэпнуться. То есть факту ты ничего не потеряешь если забьешь на нее хуй. С другой стороны, эти же челики эвривеар поэтому скорее всего от тебя будут чего-то такого же ожидать. Короче говоря, асинхронщина это социальный конструкт. Сам решай, нужно ли оно тебе.
>>2410410 >Джанго мне для начала я так понимаю подойдет Я б так не сказал. В Джанге происходит много "магии", которая скрыта под капотом, для начала - хуйня. Возьми fastapi, а еще лучше aiohttp - достаточно низкоуровневый чтоб прочувствовать бек но не слишком
>>2410552 А вот и хейтерки ормок подтянулись. Не советую такое, на старте это неправильный фокус: вместо плавного погружения с learn by doing, ты будешь заниматься форматированием строк и литералли ручным перекладыванием джейсонин.
>>2410578 Чел спокуха, это не ты в соседнем треде козыряешь тем что ОСИЛИЛ SQL?
>>2410410 Джанго это не совсем бэк, джанго для крудов.
Начать и уметь как-то очень полезно, будешь понимать, как правильно сайты круд-типа проектировать. И в целом на джанге много чего полезного можно сделать.
>>2410628 >хейтерки ормок Чиртилла, ты понимаешь что к фастапи или аиохттп ты могешь прикрутить любую ормку (кроме джангоговна которое разумеется надо с дополнительными плясками подтягивать) в щелчка которую захочешь? А можешь вообще не прикручивать? Ровно как и с кучей других сервисов/фич которые по дефолту в Джангу встроены но либоь не юзаются либо кусок говна. Не задумывался о таком?
>>2410650 >прикрутить любую ормку Чел советовать алхимию для знакомства я бы не стал. Напомни что там еще ты планировал прикрутить? И как именно об этом челик должен узнать? Ему самостоятельно изобретать ОРМки? Так получаются инвалиды которые до пенсии форматируют скуэль фстрингами.
Короче, нихуя я с тобой не соглашусь. Сначала лучше взять джангу где все примитивы под рукой и только потом смотреть как их сделать руками.
смотрю ютуберов они непонятные я застрял на условных оператарах
не понимаю зубрить тупо хочу понять не понимаю психую много курю
например while хули он такой непонятный
помогите а, я не претендую на миллионы я старый просто мозги размять нада а ваши IT скоро станут как 100 лет назад требовалось у вельмож знания письменности типо если читать не умеешь пиздуй в поле
не хочу через 10 лет в поле помогите дайте годнго ютубера или что-то
надо сказать что я тупой поэтому что овладеть новыми знаниями или информацией мненужно воспроизвести ее десять тысяч раз
есть какие-либо ресурсы, которые дают задачи на каждый этап получения новой информации
Например,ютубер обьяснил мне изначально что такое переменная и как ее создать. Есть какой-то ресурс, где я могу посмотреть задания чтобы выдрочить-задрочить создания всех типов переменных в этом пой-туне ебаном?
но переменные хуй с ними, но вот ебаный whille я его породу ебал
как мне задрочить все комбинации с этим while то бля
простите за матюки,я грузчик с больной спиной и глазами
Сап, питонач Есть класс, который по идее будет билдить огромню форматированную строку. В нём есть методы, которые генерируют куски этой самой строки. Подскажите, а есть ли возможность запилить эти методы так, чтобы я мог их chain'ить друг за другом, указывая входные параметры только в одном вызове, передавал их в остальные и возвращал результат в последнем? То есть типа такого: MyClasss.method1().method2.method3....
Я пока придумал запилить в классе поле, которое аккумулирует результаты работы каждого метода, и каждый метод возвращает self чтоб chain'ить друг друга, но при такой реализации во-первых нужно сперва инициализировать экземпляр класса, во-вторых, параметры нужно передавать каждому методу в цепочке....
>>2410552 Записался на курсы оплатила компания, так что хули бы нет. Сначала дали домашку - сервер на голых сокетах, а потом начали джангу. Так и живём.
>>2410875 Это и так сделано,я скорее неверно вопрос сформулировал, попробую ещё раз - можно ли реализовать подобное через @classmethod, без инициализации класса и как-то пайпить аутпуты одного метода в другой в чейне?
>>2410871 >Есть класс, который по идее будет билдить огромню форматированную строку. В нём есть методы, которые генерируют куски этой самой строки. >Я пока придумал запилить в классе поле, которое аккумулирует результаты работы каждого метода, и каждый метод возвращает self чтоб chain'ить друг друга Это совершенно стандартная реализация шаблона проектирования Строитель, только ещё в конце нужен метод build, который вернёт тебе саму строку и произведёи очистку объекта-строителя, чем он тебе не угодил?
>>2410878 >>2410880 Захотелось, чисто из любопытства после того как функциональными языками пообмазывался, где можно пайпить и каррить функции между собой и в хвост и в гриву. У меня в приложухе на пайкути несколько окошек и в каждом я по несколько раз завожу этого самого строителя и в каждый метод идут почти одни и те же параметры, подумал, мб можно как-то это дело укоротить в плане вызовов... Но ты прав, да, толку в этом мало а самом деле.
>>2410857 >>2410865 Если у тебя нет английского на уровне, что ты можешь на нем обучаться коденху и элементарные вещи вызвают такой стресс, оно тебе нахуй не нужно и ничего не получится. Есть куча других способов спокойно зарабывать через 10 лет, в том числе руками. Лучше в переборку моторов вкатись или я хз. поговорил с пастой
>>2410891 Вкатываешься в рабочую специальность и уебываешь на запад. Потом получаешь примерно как пограмизд. Хотя такие хайтековые автослелсари, которые могут в автомобильные компуктеры вообще зарабатывают дохуя где угодно, насколько я знаю. Потому что там сама машина стоит миллионы.
>>2411613 Ну давай разберем тобой написанное... Как именно по-твоему твой localhost сумеет принять запросо от стороннего сервера? особенно если ты блять установил вебхук на нем как localhost:8000
Это как подписки. Ты заходишь в какой-нибудь сайт и подписываешься на его новости, указав свой адрес. Все новые записи идут к тебе post-запросом как только они появятся. Это гораздо удобнее чем самому опрашивать постоянно их наличие - сайт сам вышлет их тебе как только они будут.
К вам из AQA треда. Чего почитать/посмотреть для старта. Там порекомендовали степик, нашел там курс от самого ресурса, и два связанных, базовых, курса к нему - course/575/promo course/67/promo и course/512/promo Стоит тратить время, или есть что-то лучше? Алсо, в шапке две ссылки на книги накрылись, самая первая и последняя на ЯД.
>>2411706 >>2411632 Спасибо. Просто один из пункт тестового - это выполнять определенное действие по изменению в табличке. Вот я и подумал о вебхуках, только не подумал как их мне отправлять на локалхост.
Нужно ли на сервак выкатывать свое решение в таком случае или достаточным будет в теории обработать сэмулировать запрос вручную и протестить, а они уже сами протестят?
>>2411797 Если у тебя нет белого айпишника (хостишься на своем домашем компе например), ты в принципе не сможешь запустить там сервак чтоб он работал с внешним миром
Хочу сделать бота для одной старой игры. Нашел статью https://habr.com/ru/post/346258/ вроде бы не так сложно, но... очень хочется, чтобы все действо происходило в свернутом режиме, когда окно не разворачивается. Подскажите, реально ли что-то поодобное провернуть, как-то завернув данную идею (из статьи) так, чтобы это все функционировало в оконном режиме?
Или есть вообще какие-то варианты для написания бота, чтобы ээто вес работало в свернутом окне?
>>2411801 Если речь идёт о бд, она находится локально и к ней можно прикрутить вебхук, то адрес на локал и порт. Если надо общаться с внешним миром, просто узнаешь свой адрес и пишешь его чтоб проверить. На постоянке, понятно, это не будет работать.
>>2410669 Я думал джанго и подразумевает рестапи, это тогда мне в сторону DRF нужно учить. Но пока все равно не особо понимаю, почему та же джанго не является DRF, если она точно так же может по эндпоинтам с клиентом работать как и DRF и туда-сюда жсоны гонять
Когда я вижу что проекту меньше 2 лет и он на Джанго, это сразу бросается в глаза как полное отсутствие вкуса и плебейскость. Не уподобляйтесь черни, следите за своими проектами и не унижайтесь, работая в подобных местах.
>>2411894 Если у тебя серый айпи, то перенаправляй не перенаправляй,всё равно получиш хуй, потому что ты уже за провайдерским натом в его внутренней сети, а твой айпи выдали ещё какому-то количеству пользователей.
>>2411827 Так как в статье написано в свернутом режиме не получится. Можешь поставить линукс и сделать 8 виртуальных десктопов Или тупо отбери у бабушки телек и подключи как второй монитор
>>2411830 >>2411801 >>2411894 Ого, не ожидал такого большого фидбека. В общем вебхук у меня не отправлялся на локалхост, ругался на небезопасность. Поэтому я просто сэмулировал в ручную пост-запрос через постмана и отладил этот момент таким образом. Ну и если выкатить проект на сервак, то все будет работать.
аноны, как хостить приложение с tensorflow в зависимостях? два гига занимает (((( амазоновский EC2 t2.micro инстанс не хочет это устанавливать, говорит чето типа memory is full ((((
Как жить с pipenv? Добавил в Pipfile пакет flake8, написал pipenv install --dev, он установил его и обновил Pipfile.lock файл, выяснилось что встал о нвсе-таки криво, я откатил все изменения назад, теперь он серит мне ошибками на Duplicate keys
Надо походу переустановить среду целиком. Как жить с pipenv?
Здарова анонимусы. Я криптохуйло, решил потихоньку начать вкатываться в автоматизацию. https://www.codepile.net/pile/wBJWkMvE Вот смотрите этот кусок кода в принципе делает то, что я хочу: генерирует етн адреса в нужном мне количестве, и выгружает пару адрес : приватник в файлик, с которым я дальше собираюсь работать. Но у меня какое-то чувство что код просто даунский нереально, хотя и работает. Вопросы: 1)можно ли тут как-то получать дикт{адрес: ключ} минуя вот это разбиение на два листа и потом мердж их в словарь выглядит просто ебано как-то 2) Как красиво сделать жсон, чтобы не просто пара значений была, а, например: [ { addres: key_1 pkey: value_1 }, { addres: key_2 pkey: value_2 }, .... ]
Аноны, подскажите можно ли с помощью subprocess реализовать консольное приложение, которое будет выполнять нужное действие по вводу пользовательской команды или при вводе некого end program останавливать выполнение?
>>2420581 Дядя, ты , во первых, в старый тред влетел, во вторых у тебя там куча ошибок, которые даже я, вкатун, могу заметить
1. В строке 27 таб забыл проставить 2. В строке 29 лишнее двоеточие сразу после elif (и по-моему go first должно быть либо 'y' либо 'n', а не 'o', но тебе там виднее)
>>2420582 1. В строке 3 у тебя choice должен быть неравен нулю как строке "0", а сам ответ в строке 5 ты преобразуешь в интеджер - это разные типы данных. Он никогда не будет равен "0", "1" или "3" - только 0, 1 или 3 2. В строке 15 у тебя entry делится на пополам между score и name, если это строка или там список, как на прикреплённом скриншоте. Мб ты так и задумывал, но если нет, то нет 3. У тебя функционал поломан. Насколько я вижу, при choice == '1' у тебя выполняется блок кода, который просто показывает рекорды. А при choice == '2' выполняется блок, который наоборот добавляет рекорд. При этом по идее должно быть наоборот 4. Как у тебя выглядят эти самые entry в списке scores? Как кортежи? Если так, то код в строках 15-16 немного бессмысленный. Лучше просто написать print(entry[1] + '\t' + entry[0]) 5. В строках 23-24 я не особо понимаю что ты делаешь 6. Это не особая ошибка, но вообще тебе бы начать использовать f-строки в своих принтах
Наверное ты уже сам всё это разобрал за столько времени, или просто съебал, но если чё, то вот
>>2441275 Не всегда и везде, а только там где нужно чтобы при выполнения файла сработала указанная функция. А ещё чтобы если ты резко захочешь использовать какую нибудь функцию из файла, у тебя не запустился весь скрипт.
Пытаюсь вкатиться в питон с нуля. Смотрю лекцию МФТИ из шапки треда и возникает вопрос, насколько важно знание математики для новичка, который всю жизнь занимался графическим дизайном?
Аноны, а где можно почитать подробнее как питон работает с памятью для встроенных типов. Вот например. a = 500 b = 500 В данном случае это один объект А вот если сделать так b = b + 1 - 1 То это уже два разных объекта
В каких случаях происходит присвоение одинакового айди и когда он меняется? Гарантируют ли разные айдишки выделение памяти на каждый объект или под капотом может быть так, что эти переменные все ещё ссылаются на один участок памяти с 500?
Анонче, не могу понять разницы между командой .append и .extend. Аппенд просто добавляет в конец строки значение, а экстенд...делает блять тоже самое?? Или добавляет чисто список, который идет в []?