Встречаем новый революционный Питон 3.13. Питон встаёт на путь избавления от GIL. Подключают JIT технологии. У нас появляется надежда догнать и перегнать C++. Или хотя бы Rust/Go
— Какие книги считаются лучшими? На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать? У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых? Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: https://www.composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в америке живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>3327844 Это было написано не чтобы задеть твоё эго, что, видимо, произошло. Кокнретно означае, что не надо много думать про память, сборки, типы, ООП/ФП, многопоточность и так далее. Сейчас, глядя, что индустрия внезапно не нуждается во всём этом и готова клепать на чём угодно, лишь бы дёшево на начальной фазе, пытаются уже прикрутить всё это, JIT, типы, убрать GIL, делая пародию на нормальный ЯП. С управлением завимиости по прежнему вроде хаос, но я, может быть, не следил. Если ты считаешь себя программистов на Пайтоне - ладно. Речь не о том.
>>3327865 По каким критериям ты решил что питон не язык для программистов? Многопоточность - в нативных библиотеках если она там нужна. А то и вообще гпгпу.
> Мы подумали о слоях нашего приложения, для каждого слоя создали отдельное место, в нашем случае Python-модуль, но впоследствии можно расширить до Python-пакета, и теперь будем создавать функции, в которые ляжет бизнес-логика нашего приложения. А вы подумали? С кем надо перепасть Как вообще научиться думать в эту сторону, учитывая, что в школе такому не учат?
>>3328083 Один из этих языков, в зависимости от области ИТ. Ну и то, если язык не основной, то необязательно экспертно. Как Bash и подобные технологии.
Ну вот и все, приплыли походу. Как мне асинхронную программу запустить из несинхронного кода? Мне нужно в одном цикле (пикрил) обрабатывать ввод в терминале а в другом там тяжелый обсчет и вот это все и да он может быть прерван по команде пользователя, как в ffmpeg короче реализовано.
Ввод то я запилил, а вот с асинхронным запуском сасай, если завернуть код в асинхронную функцию то и запустить через asyncio.run(main()) то обработка консоли естественно не будет работать. Почему так по ублюдочному реализованы асинки? как можно изъебнутся чтоб это приодолеть? Не хочется все это реализовывать на сишке.
Бля говняное пистоновое пидорасище, я его маму ебал. Это точно скриптовый язык с джитом или это декларативная залупа с синтаксисом для компилятора? Что это блять за хуйня почему асинхронный код надо запускать и дожидаться как обычный, какой тогда смысл в такой асинхронщине что за ебанутый мудак его реализовал.
>>3328404 Ты троллишь тупостью уже второй тред подряд? >ой эвент луп блокирует почему так Ну вы посмотрите на него! >как можно изъебнутся Можно повесить всё на один эвент луп, как подобает. Много блокирующего кода одновременно выполняться при этом всё ещё не будет.
Таски какие-то, блядь. Ты вообще понимаешь, что такое async I/O?
>>3328670 Буквально первый раз зашел выяснить почему асинхронные функции в пистоне запускаются фактически вовремя await с ожиданием результата, что это за асинхронщина как этим пользоваться? Это что то уровня
В других языках (js, qt, да даже сишные асинхронные функции из состава mpv) запуск асинхронной функции означает что ты фактически ее запустил а результат будет когда нибудь потом, тебе на промис/future объект скинут потом. И только когда у нас дальнейшее исполнение зависит от результата используется await что бы его дождаться.
В пистонище надо юзать какие то конструкции для запуска асинхронного кода прям как в qt, но при этом результат не как в qt - QtConcurrent.run() ничего не останавливает а asincio.run() loop.run_forever() все нахуй останавливает пока "асинхронные" функции не отработают, причем если я их две создал они будут поочередно-последовательно выполнины, где тут асинхронщина? Чем это отличается от обычного последовательного кода?
>>3328684 >Ты вообще понимаешь, что такое async I/O? По идее io это чтение/запись в какое то устройство (не в память), например в фаил, но поскольку в петухоне какое то свое понимание всего, я уже не уверен >>3328680 Я уже убрал все в класс и асинхронные методы и запускаю асинхронный main, результат - кольца в двух асинхронных методах выполняются поочередно, сначала один отработает до завершения потом второй.
>>3328742 Конкуренция автоматом подразумевает асинхронность, в обычном последовательном коде никакой конкуренции априори быть не может. Есть еще что пиздануть не по делу?
>>3328757 >По идее io это чтение/запись в какое то устройство (не в память), например в фаил И почему ты решил, что либа с названием "asyncio" поможет тебе в параллельном одновременном выполнении блокирующего кода?
>Мне нужно вот это Первый же ответ: >The whole point of asyncio is that you can run multiple thousands of I/O-heavy tasks concurrently, so you don't need Threads at all, this is exactly what asyncio is made for. >asyncio will not make simple blocking Python functions suddenly "async".
>возможно причина в stdin.read() Скорее всего, ведь он блокирующий наверное; я 100 лет не писал на питухоне. А вообще за всю историю питухона простого и понятного эвент лупа ни один питонодебил так и не смог сделать, о чём ещё в прошлом треде говорилось. Почему ты выбрал именно питухон?
>>3328813 А что сложного в питухоновском лупе? То что ты должен явно завернуть main в event_loop? JS этого не требует (потому что он изначально разрабатывался вокруг async операций), но все остальное там плюс-минус тоже самое. CPU bound что в питухоне, что в js блокируют поток. IO Bound не блокируют. Если хочешь сделать аналог new Promise() - заверни задачу в таск или используй тредпул. Че сложного то?
>>3328813 >И почему ты решил, что либа с названием "asyncio" поможет тебе в параллельном одновременном выполнении блокирующего кода? Так изначально мной предполагалось что блокирующий код будет в основном синхронном потоке а другой цикл будет выполняться асинхронно, не важно в одном треде или в разных, там в одном цикле есть sleep(N) а другой ждет пока что то в stdin упадет, и вполне есть свободное время выполнять оба как в одном потоке так и в разных.
Но так естественно не получается нельзя из синхронного кода запустить асинхронный без ожидания, надо типа создавать два асинхронных и запускать, но и так тоже не работает циклы все равно запускаются по очереди и один ждет пока закончится другой. Не важно в каком порядке - даже если первый запущен тот что без stdin.read() он крутится бесконечно пока его не грохнешь, второй с обработкой ввода не запускается.
Питон потому, что нужен просто скрипт без компиляния и с системной обвязкой, из аналогов тоько руби наверное.
>>3327783 Горит от того, что теперь любой мимокрок через полгода-год обучения может тоже программировать и получать за это бабки? Уже не чувствуешь себя настолько элитой? Смирись с реальностью, браточек.
>>3328885 >ждем что бы не произошло выхода А ивенты будет Пушкин обрабатывать? Название run_forever тебе ни о чем не говорит? Ты запускаешь ивент луп, он должен быть, пока есть события для обработки, от корутин или тасок.
Читай Мэттью Фаулер - Asyncio и конкурентное программирование на Python. Там все паттерны, которые тебе нужны
>>3328927 Рантайм мусор собирает, но дескрипторы от ввода-вывода в селекте сам по себе не проверяет, это надо в коде делать. Кому-то асик-авейт не уперся, он мультитредингом или мультипроцессингом пользуется, зачем им ивенлуп в питон встроенный? Питон не нода чтобы вокруг ивент лупа быть построенным.
>>3328885 JS и Dart работают точно так же, ты как-будто никогда асинхронных языков не видел. Только они прячут луп под капот, потому что иначе они не умеют. Но в пайтоне луп необязателен, никто не запрещает тебе создавать треды и джоинить их. Все что тебе надо сделать - создать луп одной строчкой asyncio.run() и просто запускать асинхронные функции из main и его стека функций. Все.
Хочешь промисы-фьючеры? Ну заверни тред с IO Bound в таск, тебе же дали блять to_thread(). Хочешь дождаться выполнения всех задач как в Promise.all? Ну используй gather. Не хочешь дожидаться вообще? Запусти таск без await и пусть он сам все разруливает. Что тебе не так не пойму.
>>3328950 Так же как в JS. Если операция IO Bound - завернул в таск и погнал. Посмотри ради интереса как requests можно использовать асинхронно, не прибегая к помощи aiohttp.
А если тебе байтоебствовать надо и математику свою обсчитывать то ты наебался в тот самый момент как пришел в пайтон. Тут продукты кабанам пишут, а не токенайзеры с компиляторами.
>>3328936 >не нода чтобы вокруг ивент лупа быть построенным Ну ладно это хуй с ним, мне не привыкать, быть было бы еще здорово, если бы эту хуйню еще и предоставили в виде библиотеки для си, но это мечты мечты.
Короче опытным путем было установлено что вот так программы работают асинхронно: кольцо в speedhack получает время, печатает после чего встает на sleep(N) управление передается на второе кольцо и там уже все встает на на ожидании stdin.read() и уже обратно не возвращается.
что интересно если не создавать таски а просто сделать:
то выполняться будет синхронно-последовательно 2-1, то есть бесконечный цикл в task2 будет вращаться бесконечно несмотря на наличие асинхронного sleep
Короче накрутили@наворотили какой то хуеты, которая непонятно как реализована, и непонятно для чего предназначена, но есть покупайте книжку фильки митюхина там все объяснят.
>>3328998 Мне кажется ты занимаешься какой-то хуйней. Тебе за многопоточностью с постоянными циклами для опроса клавиатуры лучше в Go идти. Вот там будешь как дома, хуярить свои stdin/stdout в отдельном треде, ловить это через каналы и исполнять в другом треде.
>>3328998 >то есть бесконечный цикл в task2 будет вращаться бесконечно несмотря на наличие асинхронного sleep
А ты чего ожидал? Await на то и await что дожидается исполнения функции и return'а. Если у тебя там бесконечный цикл то схуяли ты решил что начнется ожидание следующего таска?
В треде или процессе запускай, если тебе надо параллельное исполнение.
>>3328998 Если task1 task2 голые корутины, то будет последовательно эвейтится, если это таски, то возвращятся результат будет последовательно, а код в тасках выполнятся конкурентно. Конкурентно не значит паралельно. Это значит что пока одно таска ждет ио, то выполняется код другой таски.
>>3328998 >и там уже все встает на на ожидании stdin.read() Потому что это блокирующее говно с while true под капотом, которое ничего не знает про asyncio. Тебе же сказали.
>>3329012 так в питоне await обязателен, без него функция даже не стартует. ну и в общем все как >>3329021 описал, фактически с тасками await-ы выполняются конкурентно, то есть пока в одном бесконечном цикле все остановилось на ожидании (у меня там таймер дожидается ~250 миллисекунд от системных часов), то в это время поднимается другой таск а в нем из за чтения с блокировкой уже всё. А привычной асинхронщины в петухоне нет вообще.
Мультитреды избыточны, я думал так: пока в основном цикле все уходит в сон, лезем читать stdin что туда нападало, вычитываем обрабатываем, выставляем флаги, возвращаемся и в зависимости от флагов либо завершаемся либо еще что-то
>>3329021 >Это значит что пока одно таска ждет ио, то выполняется код другой таски. А вот хуй, чтение файла или stdin (как в моем случае) блокирует поток и сасай кудасай работает только с заурядным кодом >>3329009 Go надо компилировать, да еще и требует что бы Go барахло было в наличии, этож совсем некомильфо
>>3329059 Тебе что надо? В отдельном потоке считывать данные с stdin и передавать в основной поток выполнения? Если да, то тебе вообще асинки не нужны, тебе нужны треды и процессы.
>>3329057 >А вот хуй, чтение файла или stdin (как в моем случае) блокирует поток и сасай кудасай Естественно таска дожна содержать await для чтения Для блокирующего ио используй или ThreadPoolExecutor и loop.run_in_executor если без сторонних либ или либы для асинхронного чтения файлов
>>3329057 > так в питоне await обязателен, без него функция даже не стартует. Схуяли обязателен? Ты просто запускаешь таск и он сразу начинает исполняться. Точно так же как работает new Promise() в JS. Если тебе надо дождаться и получить результат выполнения - вот тогда ты уже используешь await.
>>3329057 > Go надо компилировать, да еще и требует что бы Go барахло было в наличии, этож совсем некомильфо
Где требует? Для разработки или для запуска? Для разработки у тебя любой язык будет требовать: что clang, что петухон, что голенг. А вот для запуска нихуя тебе не надо будет кроме операционной системы. Ты просто получишь бинарник, который сможешь запустить как тебе удобно.
Думается мне что ты просто шизофренник-долбоеб, который занимается непойми чем.
>>3329083 > модули как в го подключаются? Как включения исходных файлов или динамически?
Статически скорее. Ближе к тому как c (хотя ты можешь исполнить функцию инциализации модуля во время подключения), но в рантайме ты уже не подключишь модули.
>>3329178 тык бля у меня и так принтхеловорд по сути.
Нихуя себе, все получилось. Все в одном потоке асинхронно, stdin читает keyhook в stdout пишет сообщения speedhack тоже асинхронно вместо print.
Единственное termios.tcsetattr(ifd_attrs, termios.TCSADRAIN, old_setts) выпадал с ошибкой I/O (как я понимаю stdio закрыт или что-то такое) вне асинхронной функции с переносом ошибка пропала, либо она просто из асинхронной программы не вываливается, надо бы разобраться.
Почему один поток в данном случае лучше двух: если пользователь уснет на кнопке P второй поток не будет сходить с ума проверяя условие которое меняется каждые 10 миллисекунд, тем более при его чтении/записи нет локов.
>>3327905 >По каким критериям ты решил что питон не язык для программистов? Гвидо сам так говорил, что создавал язык для не-программистов.
Правда когда питон взлетел, влезли программисты, добавили кучу индустриальной хрени, технологий, всё усложнили. В C++ спасибо не превратили, то нынешний питон совсем не детский, не программист его нормально не вытянет.
>>3328083 В целом поддвачну. Но я видел смешное: > Давай накидаем по-быстрому прототип на Пистоне, а потом - перепишем для пущей скорости. > Ух, получилось ничёшно, а под нагрузкой как? > Вау. > Оставляйте на питоне, нахуй тратить время на переписывание, если оно итак хорошо работает. Иногда, правда, стоит проводится профилирование и, может быть, вынести узкие места.
>>3328085 >Один из этих языков, в зависимости от области ИТ. Я лично считаю, что Питон обязателен длч каждого хотя бы из-за того, что он приучает следить за отступами.
Был у меня печальный опыт конфигурирования систем с логикой, описанной на каких-нибудь своих языках без IDE. Сколько лучей любви и нежности я посылал товарищу, за которым приходилось расставлять табы. 800+ строк даже без подсветки синтаксиса и вообще хуй разберёшь, где заканчивается ода вложенность и начинается другая потому что там не то что отступы (он их ВООБЩЕ, SUKA, НЕ ИСПОЛЬЗОВАЛ) - даже переносы строк были поставлены как повезёт (конец нескольких блоков на одной строке? да постоянно!).
>>3328087 >как башодрисню можно помнить >>3328093 > в Линупсе, то Баш просто необходим. Как человек, который на Баше делал реально интересные вещи ответственно заявляю: даже админы его знают поверхностно. В основном потому что если нужны вещи, требующие хитрых финтов - проще уже взять Перл или Питон.
Мне пришлось его освоить из-за GitLab CI. И я рад, но в работе админа это не так уж полезно.
>>3329083 > модули как в го подключаются? Зависит от флагов сборки.
>>3329317 >не программист его нормально не вытянет. Это если глубоко разбираться - некоторые вещи сделаны настолько отвратительно и неинтуитивно, что не всякий программист разберётся. Для написания портянок а-ля for x in y: eat_this(libaname.dostuff(x, foo='bar')) всякими далёкими от программирования АНАЛИТИКАМИ это всё ещё сильно лучше, чем перл или ш.
>>3329381 >проще уже взять Перл или Питон Проще, но все системные скрипты на Баше >ответственно заявляю: даже админы его знают поверхностно Видел старого пердуна виндового админа, так он двумя указательными пальцами печатал и без мышки впадал в ступор.
>>3329389 >Проще, но все системные скрипты на Баше Нет, конечно. На питоне тоже делают, кроме того чисто скриптами делать моветон, сейчас активнее используют инструменты вроде ансибла, к слову на питоне написанном
>>3329389 >все системные скрипты на Баше Ты системных скриптов не видел?
Типа: > head -1 $(which apt-add-repository) > #!/usr/bin/python3 И так можно много с чем сделать. На самом деле почти всё, что выполняется в системе это или скомпилированный не важно из чего бинарник или Питон (Перл как-то вышел из моды до того, как я им проникся). Раньше можно было хотя бы говорить про SysV init scripts, но те времена давно прошли, как бы кто к этому ни относился. Я, например, негативно. Политика системд по вытеснению всего и вся бесит.
>>3329639 а мне нравится системд, в кои то веки настоящее решение для десктопа. соглашусь с тем что на сервере или в эмбедщине/роутере он нахуй не нужон, инит-скрипты гораздо более предпочтительное решение, но не разделяю плохого мнения о том что системд слишком сильно завязан на линукс, слишком много на себя берет и на него слишком сильно завязаны DE. Ну не получается нормальный десктоп на инитскриптах, нужны сервисы (в данном случае демоны root/user уровней как в макосном launchd) которые позволяют непривелигированным программам получить доступ к функциям доступным только в привелигированном режиме - примонтировать/отмонтировать устройство, перезагрузить пк, итд итп. Понятно что станку на предприятии это не нужно, может быть даже не нужно тонким клиентам в каком нибудь классе или техподдержке, но на десктопе алены с твича запрашивать права на каждый чих или делать это через отваливающиеся костыли, как раньше было это не айс и сдерживает продвижение жнулинуксов в этой области.
>>3329918 >Ну не получается нормальный десктоп на инитскриптах, нужны сервисы (в данном случае демоны root/user уровней как в макосном launchd) которые позволяют непривелигированным программам получить доступ к функциям доступным только в привелигированном режиме - примонтировать/отмонтировать устройство, перезагрузить пк, итд итп. Да, в этом работа системы инициализации. Например, «Апстарт» был системой инициализации. Замечательной. Но «Системд» — это уже давно монолитный монстр с гигатоннами своего ненужного кода, от своих бинарных логов (дважды фэйл) до своей системы контейнеризации. Это НЕ система инициализации. Это квазисистема управления системой. Если бы они смогли, они бы ещё и пакетный менеджер свой зашили бы. Есть и другие претензии, но мы не на той доске, чтобы в них погружаться. Я лично просто держу в голове, что такими темпами скоро придётся переезжать на «Фряху».
>>3329765 Сильно сомневаюсь. Хотя я и приводил выше объяснение: если что-то становится неудобным для баша — в ход идёт Питон. Спермачей, способных написать хоть что-то на ебучей ракушке, вообще полтора анонима. Я с ним знаком не понаслышке, и это пиздец, какой он кривой и контринтуитивный. Но главная проблема в том, что пс — это шелл без задач. С его помощью можно очень ограниченно рулить локалхостом, но на этом всё заканчивается.
Для всех, кто хочет оценить «крутость» повершелла: в конце 10-х до майков дошло, что гуй на сервере неуместен, и они выпустили линейку серверных систем с суффиксом core с ракушкой для манипнипуляций (эх, хотел бы я узнать, какой процент виндовых серверов реально рулится из консоли в эти годы). В итоге, правда, это выглядело откровенно смешно: это не была консольная система, повершелл работал В ОКНЕ, но самое ржачное, что в Server Core оставили ДВЕ гуёвые программы. Эмулятор терминала. И БЛОКНОТ. Блокнот, сука! Потому что в ебучей ракушке нельзя нормально поправить текстовый файл. Для этого просто нет инструментов.
Справедливости для: в поше есть 1 (ОДНА) реально хорошая штука: объектный пайп, благодаря которому всякие таблички от СОВМЕСТИМЫХ программ выводятся, сортируются и фильтруются намного удобнее: фактически cut + sort + uniq можно сделать одной дополнительной командой. Это не ультимативная киллер-фича, но это удобно. Впрочем, как я уже говорил, он настолько беззадачный, что это интересно, но не приносит реальной пользы.
>>3330073 зачем перепиливать велосипед? СистемД даёт немерянную массу возможностей, зависимости, разные типы задач, функционал крона, ограничители прав и дохуя всего ещё.
Ради чего перепиливать, делая кастрированный вариант?
>>3330078 Но это уже НЕ система инициализации (та, что была, была далека от идеала, но полностью справлялась с задачами). И это ёбаный монолит, заменяющий то, что хорошо работает, на свои аналоги, какими бы они ни были. И тебя вынуждают принять их все сразу, без возможности выбора.
>>3330092 >по файлам со спец символами Спермоблядский ламер-гуманитариеблядок с двузначным IQ не осилил кавычки, ору. >кококо язык ПОГРОМИРОВАНИЯ Даун, спокуха, баш тоже полный по тьюрингу и прекрасно позволяет программировать всем, кроме спермодебилов-неосиляторов и прочих немогущих жить без джавапидорского классового бойлерплейта (или какие у тебя там критерии "пок пок настоящево языка ПОГРОМИРОВАНИЯ"). Иди переустанови шипдошс и прекрати позориться.
>>3330092 > Это хотя бы язык программирования Это неудобная всратая говнина.
> На баше форыч по файлам со спец символами это уже событие, блядь. Ты, видимо, видел только > for i in $(ls folder) Потому что В ЭТОМ СЛУЧАЕ обходится результат ls. А вот если у тебя > for i in ./folder/* То всё отрабатывает как должно. С абсолютном соответствии с философией языка. Только кавычки расставить не забудь. То, что Баш позволяет обращаться с ними весьма вольно не значит, что они вообще ненужны. Об этом, кстати, сразу кричит шеллчек даже если ты не сделаешь, как надо: https://www.shellcheck.net/wiki/SC2045
> Я его и использовал для файловых задач, иногда для админства. И это всё, что он умеет и может, пытаться выжать из него больше — глупо, пс не справится. На баше же иногда извращаются и делают сложное, но это чисто по фану.
>Шо-шо? То. Если у тебя рандомная консольная тулза, которая не возвращает объект — ты сосёшь. Например, если какой-нибудь kubectl возвращает текст, и хоть усрись — ты не получишь нормального опыта с ним в майковском недоразумении, потому что он его не обработает штатными инструментами, а других у тебя нет.
> Почему Баш не делает объектный пайп? Потому что он справляется без этого. И в соответствии с идеологией.
Для тех, кому надо, есть другие инструменты, например ksh (отсюда твоё недоразумение и попёрло фичу, кстати) или squirrel shell, но, как показывает практика, это тупо не нужно в том виде, в котором есть.
>>3330124 > for i in ./folder/* > То всё отрабатывает как должно. С абсолютном соответствии с философией языка. Только кавычки расставить не забудь. То, что Баш позволяет обращаться с ними весьма вольно не значит, что они вообще ненужны. > Об этом, кстати, сразу кричит шеллчек даже если ты не сделаешь, как надо: > https://www.shellcheck.net/wiki/SC2045 То есть эту ебань как-то нужно готовить? А в помершелле все работает как надо изкоробки. Почему же тогда прыщеговно валится от пробелов в пути? Сигвин лучше даже не пытаться ставить в program files.
> И это всё, что он умеет и может, пытаться выжать из него больше — глупо, пс не справится. На баше же иногда извращаются и делают сложное, но это чисто по фану. Мне похую, я не проф админ. На этот счет не знаю.
> То. Если у тебя рандомная консольная тулза, которая не возвращает объект — ты сосёшь. Например, если какой-нибудь kubectl возвращает текст, и хоть усрись — ты не получишь нормального опыта с ним в майковском недоразумении, потому что он его не обработает штатными инструментами, а других у тебя нет. Так помершелл это не только powershell.exe, это еще и куча скриптлетов на все случаи жизни. А на прыщах даже такого нет.
> Потому что он справляется без этого. И в соответствии с идеологией.
> Для тех, кому надо, есть другие инструменты, например ksh (отсюда твоё недоразумение и попёрло фичу, кстати) или squirrel shell, но, как показывает практика, это тупо не нужно в том виде, в котором есть. А, все понял, нинужно, кококо.
Я лучше на питоне писать буду чем на этом говнище. У меня после питона просто мозги не работают в этом направлении.
>>3330103 > Спермоблядский ламер-гуманитариеблядок с двузначным IQ не осилил кавычки, ору. А зачем их осиливать, прыщепидор? В cmd тоже какие-то кавычки есть, в рот я его ебал. > полный по тьюрингу и Это критерий языка программирования? Сколько таких полных по хуюрингу никому не нужные валяются?
>>3330297 >А на прыщах даже такого нет. Можно сделать. >program files Спермоблядок, ты же понимаешь, что программисты не пользуются виндусом и не будут ничего ставить в програм файлс? Виндус - это прошивка, изначально ориентированная на неграмотных тётей сраков и прочих потребителей, которые не разбираются в сложных компуктерах и в лучшем случае обучены нажимать полторы кнопки, как обезьянки.
>А зачем их осиливать Не знаю, я не прилагал для этого усилий и всё понял за минуту или вроде того. Ты просто тупая спермоблядь с айсикью ниже 80, раз такие элементарные вещи вызывают у тебя трудности. >никому не нужные То-то спермоблядский помершелл всем охуеть как нужен, лол. Видимо, поэтому все спермобляди-"разработчики" ануса не пытаются пропихивать везде помершелл вместо ужасного пердольного убожества, а ставят СИГВИН и пытаются запустить там баш, после чего ноют, что тот, видите ли, недостаточно инклюзивен и плохо учитывает культурные особенности небинарных спермобляд_ей со СПЕЦСИМВОЛАМИ в именах файлов.
>>3330338 > Можно сделать. Забыл добавить в принципе
> Спермоблядок, ты же понимаешь, что программисты не пользуются виндусом и не будут ничего ставить в програм файлс? Виндус - это прошивка, изначально ориентированная на неграмотных тётей сраков и прочих потребителей, которые не разбираются в сложных компуктерах и в лучшем случае обучены нажимать полторы кнопки, как обезьянки. Ебать дебил 😀 Не видел ни одного программиста на прыщах.
> Не знаю, я не прилагал для этого усилий и всё понял за минуту или вроде того. Ты просто тупая спермоблядь с айсикью ниже 80, раз такие элементарные вещи вызывают у тебя трудности. Зачем осиливать что-то что уже за тебя осилили, пожиратель мозолек?
> спермобляди-"разработчики" ануса Гомофурри с книжкой про перл.жпг
> а ставят СИГВИН Сигвин ставят уж точно не ради баша.
Прыщедолбоеб, объясни, если баш позволяет работать с спецсимволами в именах файлов, почему прыщеговно не работает в пути с пробелами, а помершелл работает всегда, если только скрипт не прыщеблядь писала?
>>3330344 >Не видел ни одного программиста Кто бы сомневался. Хули взять с тебя, спермохлёба Васяна, самого крутого прогера пхп на раёне. >Прыщедолбоеб, объясни Спермодолбоеб, объясни, если помершел такой охуенный ЯЗЫК ПРОГРАММИРОВАНИЯ, почему на нём никто ничего не программирует, а на баше дохуя всего написано и миллионы людей пользуются им каждый день?
>>3330297 >Так помершелл это не только powershell.exe, это еще и куча скриптлетов на все случаи жизни. А на прыщах даже такого нет. На прыщах есть нормальные программы на си, плюсах, питоне, руби, ноде которые принимают аргументы от юниксшела и туда же возвращают. Помершел как я понимаю это вещь в себе как джава-аплеты, майкрософт наверное для этого это все и высрала, хотела аналог джавы, они вообще всему аналог пытаются высрать свои плюсы, свои компиляторы, своя джава (дотнет) и даже свой джаваскрипт (ака тейпскрипт) о котором никто не просил.
>>3330476 Видел на винде и макеч на прыщах почти не видел. Пшел нахуй.
> почему на нём никто ничего не программирует, Как погодка в прыщемирке?
>>3330486 > На прыщах есть нормальные программы на си, плюсах, питоне, руби, ноде которые принимают аргументы от юниксшела и туда же возвращают. Это как?
Выше написано, помершелл - это 1) шелл ближе к питону чем к строковым ЯП вроде бат файлов 2) в пайпе объекты, а не текст как в 80-х. Потыкай хелловелд и назови прыщеаналог.
>>3330067 У меня к системд только одна претензия, процесс создания юнита и его старта занимает порой аж 1..3 секунд на серверах с большим количеством железа (не твой сервер под кроватью, да). Все упирается в тормоза systemctl daemon-reload , который долго генерит какую-то херню , а в последних убунтах он ещё перегружает конфиги netplan. Блять вы серьезно? Мне просто надо положить юнит файл сервиса и его стартануть.. тот же Runit это делает за 0 секунд. Поэтому приходится извращаться с созданием сервисов на лету при помощи systemd-run. Но это говно то ещё.
>>3330608 >шелл ближе к питону чем к строковым ЯП >объекты. а не текст как в 80-х ты живешь в каком то своем выдуманном мире. какие нахуй объекты какой строковый яп че несет
>>3330617 Да это вообще пиздец полный, проигрываю с факпак/снап-дебилов, у которых системд в рантайме ссылки и ассоциацию файлов генерирует и все это дико тормозит Как такую ебалу можно на серьезных щах продвигать как средство дистрибуции приложений.
>>3330642 Я тыкал, нужен был ноджс на винде. Он срал какими то красными и желтыми стенами текста, я вообще не понял как это работает. Может быть из за того что винда в виртуалке была, хз.
Не сомневаюсь что оно как редактор текста emacs - может все, кроме редактирования текста настройки рабочего окружения и запуска программ.
>>3330642 Ну и да ничего не установил, ноджс ни даже помоему этот самый менеджер пакетов шоколатели нормально не работал, вчитываться в эти стены текста которые он там высирает небыло никакого желания учить скриптовый язык с ооп что бы исправить чье то говно ставить пакеты для разработки тем более. Винда для разработки все еще не готова, так что нахуй.
>>3330705 Так менеджер пакетов написан на том самом помершел скрипте. Объектно-ориентированном, революционере. Или на что ты дергаешь я не понял на иконку приложения что ли?
>>3330739 Что именно в нем тыкать? Какое место ты находишь тут самым привлекательным? куда хочется непременно ввести команды или что вы туда вводите. Проясни
>>3330764 дык это не мое, у меня красного текста было больше, А тут всего лишь написано что какая то политика где то не включена. Если ебля с настройками политики и подключением неподключенного из коробки функционала, с постоянным гуглением это то на что у виндовз-даунов шишка колом, то в cmake такого порно полно, по крайней мере если брать старые версии
>>3330793 > Если ебля с настройками политики и подключением неподключенного из коробки функционала, с постоянным гуглением Нету такого. Cmake тут каким концом?
>>3330752 >ПС ЦЕ:\\\ШИПДОШС\систем32> И"ЦЕ:\\\Програм Файлс\\\My Hello World.ps123" Это и есть бест практисы того самого охуенно удобного ЯЗЫКА ПОГРОМИРОВАНИЯ, наголову превосходящего пердольные поделия, или ещё нет?
чуваки, жопа горит, пришлось зайти на ваш молодёжный форум, чтобы высказаться. Короче поставил дефолтный pycharm и тд У меня какие-то проблемы с документацией, либо это считается нормой, не знаю. Допустим по ctrl+q мы хотим получить инфу по методу, но во многих случаях либо там почти нет описания, либо просто сигнатура и ссылка на сайт питона, но когда перехожу по ней, мне вываливается дефолтная страница, где даже нет никаких описаний методов (к примеру asyncio либа), мне надо вручную как-то это настраивать или что? щас бы в 2к24 лазить искать доки по всему инету...
>>3331024 Я не он, но для многих языков доступны исходники. Поскольку Python часто лишь обёртка, а внутри всё на C, исходников нет и надо искать документацию. Удобно, когда хотя бы она есть в исходниках - так тоже много где сделано.
>>3331030 ну да, обычно из коробки всё, а тут такой прикол... всё таки питон не вчера появился, могли бы и сделать по людски хотя бы для стандартных либ
>>3331106 А залупу на воротник не хочешь? Может тебе еще и хинты в стандартную библиотеку добавить? Вообще у меня набралось материала на фрактал плохого дизайна.
>>3330965 >мы хотим получить инфу по методу Какую инфу по методу, Вы, Николай II, хотите получить? Какой тип метод принимает и какой высирает? Но эта инфа Вам ничего не даст полезного и она и так на поверхности. ну высирает метод строку, например, и что дальше, важно же понимать какую строку. А ещё метод ведь может менять объект десять раз по ходу своей логики. Так что кто-то должен всё бросить, пойти и описать логику метода с примерами. У питухона кстати в этом плане всё относительно не плохо, даже выше среднего, доки хорошие. Так что не бухти.
пришел я к вам сказать что питон ваш дерьмо ад какой-то который не подходит не для чего, кроме как скриптинга
захотел я тут потрогать AI для решения пары задач, нашел с десяток "готовых" решений и вот тут началось, приключения на десяток часов с 0 успехом.
одним проектам нужно чтобы версия 3.10 и не выше была, другим наоборот 3.11, но не 3.13 далее начался ад с зависимостями, я знаю об venv и естественно использовал его, но хер бы там плавал, не один проект не смог установится без конфликтов, при том в requirements все прописано по версиям прям четко ==, кое как вручную просмотрев какие версии есть у десятка библиотек я смог для 1 проекта подобрать так чтобы не было проблем, но опять хер мне, при запуске он выдал ошибку что в какой-то библиотеке чего-то там нет и я тупо забил
попутно я попытался пару проектов без venv поставить, вдруг в этом проблема...опять начался ад с зависимостями, одному numpy не выше 2.1 давай, другом же не ниже 2.1.3, проекты к слову друг от друга зависят типа как "микросервисы"
в результате я скачал какой-то дамп с venv внутри на ДЕСЯТОК ГИГОВ БЛЯТЬ, а там даже моделей нет, попытался запустить и у меня почему-то завис gradio дальше "--------" ничего не идет
решил я тупо пример попробовать самый тупой, запустить этот gradio и он вообще ничего не выдает т.е python test.py и все, блок терминала и ничего, хер знает что я там сломал или оно уже было сломано, как это вообще адекватно дебажить чтобы понять где сломалось, тихий ужас, заново все переустанавливать? да в рот его наоборот...там же вручную чистить кучу всего надо так как адекватно оно удаляться не умеет...
вот вам и питон, удобство и простота, настоящий ад, любой компилируемый язык в десяток раз лучше, там хотя бы запустить что-то серьезное можно, а тут сотню гигов выкачаешь разного дерьма и оно не работает хер пойми почему
>>3332326 >если у тебя с venv ничего не получилось. ну у меня получилась папочка на 7+ гигов, в которой невозможно решить конфликт НИКАК, а если закинуть вручную оно тупо не запускается. да да, я тупой надо же добавить (изначально его там нет) omegaconf правильный и все будет, НО... а все потому что оказывается 2.0.5 версия вроде как требует питона меньше 3.10 так как что там в нем требует версию ниже, скажешь ставь ниже и будет счастье? ну да, только другая либа требует МИНИМУМ 3.10, ахуенные требования
и это не косяк проекта, он точно работал когда-то (около год нет новых коммитов), с ним даже видео на ютубе есть где все запускается, это косяк языка который даже с жесткими версиями способен сломать то что вроде бы работало до этого
лозунг питона: сделал однажды - ебись с этим вечно, иначе сломается
>>3332313 >который не подходит не для чего, кроме как скриптинга А для чего по твоему еще должен подходить скриптовый язык? Что ты на нем собрался делать?
>>3332331 Т.е. на ютубе у чотких пацанов работает, а у тебя, немоща, не работает и ты из этого делаешь вывод что ПЛЯХОЙ ЯЗИК. Хммм. Кажется в этой логике есть ошибка.
>>3332313 Пришел я к вам сказать, что ваш Java — дерьмо и ад какой-то, который не подходит ни для чего, кроме как корпоративного геморроя.
Захотел я тут потрогать системы очередей для масштабирования пары сервисов, нашел с десяток "готовых" решений и вот тут началось, приключения на десяток часов с нулевым успехом.
Одним проектам нужно, чтобы версия JDK была не выше 11, другим — строго 17, но не дай бог 21. Дальше начался ад с зависимостями. Я знаю об maven и gradle и, естественно, использовал их, но хер там плавал: ни один проект не смог собраться без конфликтов. При этом в pom.xml все прописано четко с версиями: 4.5.2, 5.+, а io.netty хоть сейчас отдельно выноси. Кое-как вручную просмотрев какие версии чего там нужны, я смог для одного проекта собрать билды, но опять хер мне: при запуске он выдал ошибку, что в какой-то библиотеке чего-то там не хватает, и я тупо забил.
Попутно я попытался пару проектов без менеджера зависимостей собрать вручную — вдруг проблема в этом. Опять начался ад: одному log4j строго 2.17 давай, другому же не ниже 2.17.1, проекты к слову друг от друга зависят, типа как микросервисы.
В результате я скачал какой-то примерный билд на ДЕСЯТОК ГИГОВ, БЛЯТЬ, а там еще и подключаемые JAR-ы с артефактами по полгига. Попытался запустить это чудо, и у меня почему-то завис Spring Boot, который на старте начал поднимать что-то на десяток минут. Дальше "---------" ничего не идет.
Решил я пример попробовать — самый тупой, запустить Spring Boot с простейшим REST. Оно вообще ничего не выдает. Тупо java -jar app.jar и все: терминал блокируется, тишина, ни логов, ни ошибок. Хер знает, что там сломалось, или оно уже сломано было. Как это вообще адекватно дебажить, чтобы понять, где сломалось? Тихий ужас. Заново все переустанавливать? Да в рот его наоборот: там же руками чистить надо миллионы файлов, потому что адекватно оно удаляться, конечно же, не умеет.
Вот вам и Java, корпоративный стандарт! Настоящий ад. Любой скриптовый язык в десяток раз лучше: там хотя бы что-то маленькое на коленке запустить можно. А тут выкачаешь сотню гигов артефактов, и оно не работает, и хер пойми почему.
>>3332792 > Одним проектам нужно, чтобы версия JDK была не выше 11, другим — строго 17, но не дай бог 21. Хуевая зеркалочка. В жаве главное - совместимость в ущерб всему остальному. Плохо стараешься, -15 рублей.
>>3332792 >Одним проектам нужно, чтобы версия JDK была не выше 11, другим — строго 17, но не дай бог 21. Это да, всегда с этого лолировал, почему у жабанов обратная срвместимость не работает.
>>3332797 Немного отвлечённо: Я некогда на одной посиделке с горячительными напитками потрещал к одним кодером у которого продуктового опыта больше, чем у меня юзерского. Ну я тогда высказывался, что для своих "проектов" при прочих равных я беру Пистон, имея в виду все его особенности. Чувак про него знал, но не пользовался, пошёл типичный обмен опытами и мнениям от людей с разной экспертизой. Он мне рассказал про ранние времена в кодинге на C-подобных ЯПах и сравнивал их с нынешними инкарнациями (коротко: общее впечатление смешанное, в целом кривая обучения несколько меняет форму). Когда я повторил за интернетами, что у явы хотя бы охуенная совместимость он просто заржал. Джин-тоник и поздний вечер не позволили запомнить его аргументов, я же их не записывал, но сама реакция практикующего джависта дала чётко понять: мифическая самосовместимость явы это миф.
Впрочем, так для почти любого ЯПа: самые простые программки переживут бОльшую часть изменений в языке, но чуть что серьёзное можно попасть на изменение стандартов. Потому и критикуют Python 2→3: это тот редчайший случай, когда переписывать пришлось даже самые простые программы. С другой стороны — видел я тот питон 2 и его действительно надо было реформировать.
>>3332876 Кого помершего? Так где там нет обратной совместимости?
По питону я могу написать свой фрактал чисто по опыту написания шкриптиков.
Переход на тройку был очень болезненным еще и потому что там в ранних версиях (это хз, до 3.6?) много где проебались. Зачем-то сломали совместимость апи байтов и строк. Open() по умолчанию открывал на винде файл в локальной байтовой кодировке!!! Сука, да она уже давно никем не используется!
А вот сокеты пиздато сделаны. Причем они еще и на си такие же что позволяет реализовать клиент либо сервер и безопасно интерконнектить с приложением без прокидывания библиотек (как пикрелейтед).
Сперва сделал бакенд сервером, а гуй клиентом что на первый взгляд кажется очевидным, ведь в гуе собственный гуевый бесконечный луп а в сервере-бакенде луп обрабатывающий запросы, но из за того что бакенд запущен от рута, а клиент от юзера клиент получается не может писать в fifo который создал сервер, то есть надо либо в локалхост переезжать либо хуй знает ради прикола попробовал поменять клиент и сервер местами не меняя назначения, то есть сервер посылает запросы клиенту а тот их на постоянке слушает/обрабатывает и бля это работает так как в плане приема передачи клиент от сервера не отличаются.
Плюс тут же выяснилось что это единственно правильный алгоритм - первым асинхронно запускается гуй, но он не покажет окно, пока не дождется единственного соединения, а у клиента исключены попытки подключится раньше чем запущеный асинхронно сервер, так как он ждет ввода рута.
>>3334506 > А вот сокеты пиздато сделаны. Причем они еще и на си такие же Свинюш, "апи как в сях" для языка высокого уровня это НЕ комплимент. Даже в перле есть IO:Socket:Inet. > Плюс тут же выяснилось что это единственно правильный алгоритм - первым асинхронно запускается гуй, но он не покажет окно, пока не дождется единственного соединения Це піздєц.
>>3327670 (OP) Аноны, хэлп, начинаю изучать питон и встрял Как в этом сраном питоне сделать, чтобы принимал любые цифры в диапазоне от 1 до 4 и от 5 до 8??? я пробовал и через квадратные скобки и круглые и инт писал за скобками млять по отдельности, если конкретную цифру написать то все робит
>>> a = range(1, 4) >>> 1 in a True >>> 1 == a False >>> 2 in a True >>> 2 == a False >>> 3 in a True >>> 4 == a False >>> 4 in a False >>> list(a) [1, 2, 3]
>>3334884 при kv in a висит крутит бесконечно как вообще диапазоны значений писать? диапазон цифр чтоб подставлялось то что написал 1, 2 ,3 ,4 а если у тебя 100 вариантов? все прописывать? нет лучше что-то вроде 1-100 так ведь? во ткак в питоне диапазоны писать от 1 до 100, например? чтобы инпут сказал - ввели любое число от 1 до 100 и дальше по ифу
Аноны, гляньте по-братски https://pastebin.com/C2YtCH8R Я реализовал стек на базе list и вычисляю значение выражения (5 + 15)/(4 + (2 3)). В обратное польской нотации это будет 5 15 + 4 2 3 + /. Но в результате получаю не 20, а 0,5. Промахнулся, но где?
Функция as_completed() модуля asyncio одновременно запускает объекты awaitable, переданные в итерации aws, ждет их выполнения и по готовности любого начинает возвращать готовые объекты Future.
Другими словами, функция asyncio.as_completed() запускает и ждет выполнения переданных в нее задач/awaitable-объектов, и как только появляются результаты у какой-нибудь задачи, в реальном времени, начинает возвращать их в итераторе. Результаты извлекаются, запуском каждого объекта итератора при помощи оператора await.
Я не понимаю, а зачем нам вообще await выполненной корутины, если as_completed возвращает генератор уже заведомо выполненных корутин? Почему нельзя брать результат сразу без await?
>>3336021 Так, я кажется понял. 1. Мы передаем в as_completed awaitable объекты. 2. Функция as_completed возвращает генератор с корутинами. 3. Мы вытаскиваем из этого генератора очередную корутину, await ее, таким образом возвращая event_loop'у контроль, он вытаскивает еще одну корутину из генератора, опять делает await и так, пока не пройдет все корутины в генераторе. 4. В earliest_result таким образом будет появляться первая корутина, которая вернула значение. Потом вторая, третья и так далее. Поэтому и нужен await, т.к. мы работаем с корутинами(с Future вернее), которые могут успешно выполнится, а могут выкинуть ошибку. Если не использовать await, то мы будем работать с объектом Future, а не со значением, т.к. на момент вызова скорее всего Future еще не преобразуется в значение.
Поговорил сам с собой и все стало ясно. Всем спасибо, все свободны.
Аноны! Прошу помощи. Код на питоне (sqlite, pysimpleGUI) - нужно откомпилировать на pak для ведроида. Прошу как сделать, но как-будто с идиотом разговариваете, по шагам есть такое?
Пацаны, скока у вас весит типовой апп в докере? Я тут собрал дженерик приложение на 3.12-slim с фастапи, оно с какого-то хуя весит 500мб, хотя раньше аппы на том же 3.10 с +- теми же реквайрментами весили ~250мб.
>>3327670 (OP) кто-нибудь работал с такой штукой как Flask-AppBuilder
как в этой фигне задать фильтрацию более сложную, чем его бейс_фильтерс, который можно передавать через ?q=
вот как мне переопределить стандартный метод / который возвращает прямо то же самое, а вот если передан аргумент, например min - то вернет только те значения, где условно fieldA - fieldB < min
Объясните по поводу класса. Конструкции из нескольких классов и прочее ооп это для меня пока не актуально. Я вот нихера не понимал нафига этот селф, есть же функция просто и понятно, зачем еще он. Как я понял в ините класса через селф определяют так сказать глобальные переменные, но внутри этого класса, чтоб то что отработает в функциях внутри класса всегда могло быть вызвано через селф.переменная в другой функции внутри класса. Так?
>>3337564 self указывает на принадлежность самому классу, а не хую собачьему, например. Потом через точку можно обращаться к этим параметрам. Таков протокол инициализации. Глобальные переменные вне функции объявляются.
>>3337569 Ну да, а если один раз вызывается класс, много раз такое видел, селф тогда вообще ни к чему. Ну и зачем тогда его вообще использовать? Но внутри такого класса используют например класс(селф, лол) селф.лол=лол И дальше функция1(селф) селф.лол = 1 функция2(селф) селф.лол = 1 + кек
В таком плане. То есть иначе вне класса бы пришлось объявлять лол как глобал, хотя вне класс она и не нужна. В основном в 100% случаев я с таким применением сталкивался.
С тем чтоб нужно было обращаться например класс.функция2 не сталкивался, потому как обычно код небольшой, хотя пишут в основном примеры такого применения.
>>3337144 mixin это классы-примеси. Вот есть у тебя класс А, класс В и класс С. Все три класса отнаследованы от разных классов и никак друг с другом не связаны. Ты хочешь добавить в эти классы какой-то метод. У тебя выход заходить в каждый класс и определять метод, либо написать миксин один раз и потом его примешивать в нужные классы.
>>3337585 Не понял вопроса. Ты просто self не хочешь писать? Можешь хуй писать вместо self. Но обязательно что-то должно быть,чтобы интерпретатор связал функцию связал функцию с классом. Там по умолчанию нужен как минимум один аргумент.
>>3337585 Блять, чел, классы это ООП. ООП предполагает, что ты из этих классов создаешь объекты и с ними работаешь. Если ты делаешь класс как библиотеку функций, то лучше создай модуль. Что значит класс вызывается? Ты просто берешь пилу и пытаешься ей гвозди забивать. self это ссылка на объект класса. Вот и все.
>>3337597 >У тебя выход заходить в каждый класс и определять метод, либо написать миксин один раз и потом его примешивать в нужные классы.
Питон же поддерживает мультинаследование, почему бы не донаследовать этот метод во всех трех классах? Что так ты докидываешь миксин во все три класса, что так ты дкоидываешь родительский класс во все три класса.
>>3337900 Если это датакласс - используй декоратор и не мучай жопу. Если это не датакласс, то кроме сеттеров в ините у тебя и так будет дохуя другой логики.
>>3337585 Класс это кастомный тип данных, ты можешь создавать объекты этого типа и производить над ними действия через методы (функции). Но чтобы произвести эти действия, нам надо как-то к объекту обратиться, правильно? Вот поэтому во всех методах первым аргументом передается объект экземпляра этого класса - чтобы мы могли обращаться к нему, получать из него данные и изменять в соответствии с придуманной нами логикой. Если у тебя класс это просто набор функций, можешь использовать для методов декоратор @staticmethod - тогда они станут самыми обычными функциями. Также есть @classmethod - тут мы первым аргументом передаем класс и получаем таким образом доступ к другим методам и атрибутам этого класса.
>>3337900 Потому что: - не обязательно атрибуты в self будут совпадать по имени с параметрами (например атрибуты могут быть приватными); - с параметрами могут производиться определенные действия прежде чем они попадут в self (всякого рода нормализация); - кроме перекладывания хуйни в self в init могут выполняться другие инициализации, в том числе с помощью переданных в init параметров; - много прочих других кейсов, блядь. Проще тебе ебало набить, чем объяснять эту хуйню.
>>3337900 Ну не перекладывай, хули тебе надо то. Класс это абстракция ООП как тебе выше уже сказали, вот так ООП в питухоне реализовано, селф явно указывает на экземпляр. Все нуфаги через отрицание классов проходили, это как детская болезнь - "не хочу шапку надевать не нужна она". Если попитонируешь чуть больше чем месяц сам поймешь все плюсы.
>>3337968 Я написал уже пару Мб кода за год вката и ни разу не писал свой класс. Все работает. В чём не прав? Да, дописывал и переписывал классы в чужом коде, а также копипастил классы из примеров asyncio, там без классов никак.
>>3334506 > if __name__ == "__main__": замени на > if "__main__" == __name__: , > data == "exit" на > "exit" == data и так везде. И приучи себя ВСЕГДА так делать.
>>3335075 Только надо помнить, где там границы и с какой стороны строгое, а с какой — нет. >>> 88 in range(88) False >>> 0 in range(88) True Ну и: >>> 14.2 in range(0, 88, .2) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object cannot be interpreted as an integer
>>3338202 Базовый бест практис разработки: при сравнении слева ставь константу или литерал, а справа — переменную, в этом случае у тебя не будет шанса ошибиться и перепутать сравнение и присвоение. Позволяет избежать ошибок вот такого класса: https://habr.com/ru/articles/858088/ Да, это не питон. Да, > if __name__ = "__main__": print 1 в питоне итак выбрасывает исключение "SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?" и, скорее всего, оно так ведёт себя достаточно давно, лень проверять по крайней мере для if впрочем, в других случаях оно не заподозорит неладное. Но ты же не хочешь быть буратиной, которая за пределами своего ЯПа ни бельмеса не понимает? Так вот, если не уверен, что питон будет единственным языком на всю твою жизнь, то приучись сразу делать правильно.
>>3338203 Нет, это то, что преподают на ЛЮБОМ программировании. Жаль, что ты его не изучал.
>>3338235 >Базовый бест практис разработки Чей практис? Где эта святая скрижаль с бест практисами? В блоге зумера смузихлеба на хабре?
Вот у меня есть PEP8 и там написано __name__ == "__main__" . Видимо, дурачки которые PEP8 придумывали, не в курсе были про бест практисы от петушка с двача.
>перепутать сравнение и присвоение Охуительные советы уровня "чтобы посрать снимите штаны (бест практис)" Каким надо быть дегенератом чтобы на полном серьезе такой хуйней себе голову забивать.
На, посмотри как это работает. Делай с одним подчеркиванием, а не двумя. И все заработает. Такая изьебка с приватностью нахуй никому не нужна. Особенно для такой хуйни как левел для ебучих логов. Ебать.
>>3338257 Пиздец просто. т.е. у меня будет в классе levels и и метод Levels с логикой. Как бы не перепутать это говно спустя месяц? Что вы для этого делаете? Как вы защищаете переменные от случайного изменения?
Я почему-то не удивлен возникновению подобных ритуалов >>3338235
>>3338295 Всё работает, только декоратор проперти работает с экземпляром а не с классом, а у тебя _лвл классовая переменная так что ты наверно где то ещё проебался, непонятно что тыам хевертишь вообще (можешь не объяснять) и ты вызываешь Level с большой буквы.
>>3338302 Настоящей перегрузки нет, но идентичное поведение есть. Всё сложно. У тебя в примере имя метода просто перезапишется тем что объявлен позднее.
>>3338315 >ты вызываешь Level с большой буквы Не ту пикчу прикрепил, но сути не меняет. Я вообще логики питона не понимаю, почему для обращения к статическому полю я должен прописывать self._lvl, а не Debug._lvl
В общем, проблему решил иначе и свойства не потребовались.
>>3338478 Ты вызываешь метод класса, хотя пропертя относится к объекту. Если тебе за каким-то хуем нужен статический вычисляемый проперти - это простым путем не сделать, что как бы намекает, что для этого лучше использовать простые функции.
>>3338483 >хотя пропертя относится к объекту В других языках проперти это просто сахар над двумя методами get и set. А т.к. методы могу быть статическими, значит и проперти может быть статическим.
>что для этого лучше использовать простые функции Да, я так и буду делать.
>>3338498 >т.к. методы могу быть статическими Но ты же сам описал проперти как метод объекта, алло. С каких хуёв ты ожидаешь, что он вдруг станет статическим?
>>3338235 >в этом случае у тебя не будет шанса ошибиться и перепутать сравнение и присвоение Вообще никогда не видел человека путающего присвоение со сравнением в коде. Даже когда-то давно на курсах вкатунов. Я уверен это не бестпрактикс разработки, а буквально совет из курсов преподов обучающих азам питона детей 1-3 классов начальной школы, или обучающих программированию умственно-отсталых людей в целях развития когнитивных способностей. А остальных случаях это не бестпрактикс а повод буратине докопаться до столба, в смысле когда доебаться нет к чему, но буратине очень хочется.
>>3338510 >Вообще никогда не видел человека путающего присвоение со сравнением в коде Как заявить что не имеешь опыта коммерческой разработки, не говоря об этом.
>>3338517 Не выдумывай. Если вводить защиту от человека путающего присвоение со сравнением, то надо уже и вводить защиту от путающего файл питона с файлом екселя, путающего линкус с виндой, и путающего файл с директорией. Т.е. тут не защиты нужны, а обстоятельное обучение с нуля.
>>3338523 Малыш, ты даже не представляешь какую хуйню порой пишут взрослые матёрые дяди в запаре и какие это имеет последствия. А свою демагогию и доведение до абсурда - засунь себе в stash.
>>3338528 >обиделся Анон, если ты каким-то образом задействован в обучении детей азам программирования, это наверно хорошо. Хз зачем это детям, но пусть будет. Но аппроксимировать опыт обучения детей на всех остальных кто старше условно 11-класса, ну такое..
>>3338542 Но что в /b/ в основном в массе своей дети, ты знаешь лично из опыта с ними пообщавшись. В контексте нашего треда, общался ты вероятно на тему азов программирования и возможно что именно там твои начинающие кенты путали операции. Ты решил что нужна защита и теперь это беспрактикс у тебя.
>>3338553 Где я выдумываю? В /b/ реально много детей сидит буквально. А путать операции это сугубо детский тейк, когда рассказывают про переменную коробочку, про что такое цикл и т.п. Такая беспрактикс может возникнуть только в процессе их базового обучения, потом она уже не нужна.
>>3338499 Не знаю, что ты хочешь мне доказать — невозможность существования статических свойств? Ну вот в C# они есть, и я тебе рассказал почему. В питоне все шиворот на выворот и исключения из правил на пустом месте.
>>3338567 >Ну вот в C# они есть Искренне рад. Хорошая идея теперь оценивать вообще все ЯПы в контексте опыта с сисярпом, не так ли? В особенности ставить в один ряд два абсолютно разных по сути и по применению ЯПа.
>>3338576 Я не душу другим языком, я знаю как это раздражает. Залетные есть в каждом треде. Но ты сам начал доказывать, что статических свойств не может существовать. Я и так пытался обойти тему сравнения, давай не будем продолжать.
>>3338594 Так там всё верно написано, блеать. Если ты хочешь обращаться к свойству класса - то нужно определить его как таковое: class Zalopa: myprop = "hui"
assert Zalopa.myprop == "hui"
Либо если ты хочешь вычисляемое свойство класса - здесь нужно основательно пропердолиться с перекрытием getattr и вот этим всем.
АНОНЫ ПОМОГИТЕ! Хотел сделать сам, но чёт не вывожу. Суть в чём? Пытаюсь написать одну прогу для двача, но получаю ошибку {"error":{"code":-2,"message":"Доска не существует."},"result":0} Данные отправляю в формате multipart/form-data, то есть всё вроде так и должно быть, ("board", (None, "b")), строка с боард такая, отправляю через реквест requests.post(url, headers=headers, files=data). Что я делаю не так? Почему не робит?
Путём метода тыка выяснил также, что если я просто отправляю запрос без заголовков и данных, то также встречаю ошибку. Так что скорее всего проблема где то в данных, но мне не хватает опыта понять где.
А бля, я долбаёб, я когда хеадерс копипастил скопировал их вместе с Content-type и WebKitFormBoundary, а от реквестом задаётся автоматически, поэтому и не робило, ща закоментил строку и всё работает
>>3339609 После перла в питоне уже ничего не удивительного. Переехав на питон сильно скучаю по гибкости и лаконичности перла. Зато дико кайфую от тайп хинтов и датаклассов питона.
>>3339717 Си это яву на минималках. На ассемблере важно знать@понимать правильный порядок байт, в ассемблере есть команды и типы которые недоступны в языках высокого уровня включая си. Си можно превратить в визуальный ассемблер, для этого надо исключить все знаковые типы, понатыкать макросов асм вставками для нужных типов комманд и использовать их вместо операторов, тогда сишная семантика не будет применятся к конвертации, компилятор не будет ругаться на возможное переполнение итд итп, будет практически ассемблер с поправкой на то что все таки распределение регистров и бранчи-хуянчи все таки будет делать сишный компилятор,, с чем он лучше справляется.
>>3340186 Я уже вырос из тяночек. Мечтаю получить от партии собако либо лисо-жену и трахать ее на половичке в гостинной, на девятом месяце беременности
Осваиваю UML, потому что так реально проще уже чем без планирования. Помогите понять кое-что. Вот решил я всю логику запихнуть в класс Controller. К нему подключаются интерфейсы - для отправки сообщений, получения заказов в телеге и работы с базой данных. Эти интерфейсы связаны с более глубокими классами, например Telegram и DeepDB. Итак, я хочу инициализировать Telegram и DeepDB, чтобы дальше с ними работать.
Но тогда получается, что инициализировать их тоже лучше через контроллер. Столько двойных связей, как их вообще рисовать-то? Это нормально? Какие практики хорошие?
Ну вот накатил я на винду питухон так, поставил вскод, хочу поставить джангу и пип, кароч, чтобы я не набирал в powershell он пишет Python. Че за хуйня, и ничего не происходит при любой команде. На линухе обычно все норм. Как пофиксить?
>>3342867 Так он ничего не устанавливает, у него на все команды этот один ответ. Я не могу ничего накатить толком, не пип не джанго. Что это такое и как фиксить?
>>3342897 так зачем ты на винде страдаешь? я сам как-то поел говна с этим помершел, майкпрософт в своем репертуаре вместо терминала наворотил продвинутую консоль, но так как привилегии в винде ничем не ограничены, то пришлось делать так что бы просто запустить скрипт было невозможно, а то злоумышленники воспользуются. Так что кури мануалы как это говнецо настраивать и заставлять работать или возвращайся на линупс. Если работодатель мудак и заставляет использовать шинду, то там вроде как внутри винды теперь можно чрут от убунты поставить и пользоваться башем, официальная фича.
>>3342864 Если ты так настойчив в стремлении поесть говна, то советую ставить wsl, в него накатывать pyenv и версию питона по выбору. Это будет всяко проще, чем ебля с повершеллом.
Нужна помощь, может кто сталкивался с такой задачей:
Условно есть четыре объема банок краски: 9, 4,5, 2 и 1 литр разной стоимости и разной цены за литр соответственно, причем цена меняется нелинейно примерно как 9<1<2<4,5. Расход литра на квадрат везде одинаковый, 0,17, получается каждой банкой можно покрыть объем/0,17 квадратов. На вход подается площадь под покраску и, внимание, собственно задача: собрать все возможные комбинации, которые гарантированно (можно с избытком, но не более покрытия максимального объема) покрасят данную площадь. У меня есть простое, но не оптимальное решение через вложенные циклы, которым можно находить только попарные достаточные комбинации, а дальше начинается рекурсия и itertools и я обсераюсь.
>>3343031 Есть задача "найти минимальную цену", этим занимается линейное программирование. Твоя же задача сводится к: > Дано V=S/0.17, найти все целые неотрицательные a,b,c,d чтобы > V <= 9a + 4.5b + 2c + 1d <= V+9 И задача эта изич решается перебором.
>>3343042 Да, задача найти минимальную цену, но мне это преставляется как перебрать все варианты и взять самый дешевый, про линейное программирование я только читал, для меня это космос.
>>3343054 Разобраться с линейным программированием дешевле, чем костылить свои костыли, которые к тому же развалятся на S порядка 1e9. Тем более в пайтоне linprog солвер входит в стандартную поставку, там буквально три строки кода.
ИИ дал питону новую жизнь. Если раньше разница во времени между написанием небольшого скрипта на питоне и написанием небольшого скрипта на джаве была незначительной, т.к. поднятие проекта на монструозных системах сборки джавы, запуск среды разработки, и весь остальной кал компенсировались тем, что на джаве просто писать поприятнее, то теперь пишет на питоне ИИ, а не я, я за секунду просто запускаю что он накалякал и ничего не поднимаю, никаких систем сборок, за минуту уже получаю результат. Джава тут даже близко не стоит.
Аноны, я помню в 3.7 нельзя было словари во время итерации менять. Т.е. у тебя словарь в for ты из него ключ удалить не можешь - ошибочка. Что-то не наблюдаю такого больше. В 3.8 версии убрали или я проебался и это поведение всё ещё есть?
>>3343494 Сложное я сам и на джаве пишу. К тому же сложный код почти всегда это плохой код (есть исключения), если правильно сделать архитектуру думать больше кроме как над ней не надо будет.
>>3343531 Ты просто как и все обыватели не понимаешь что такое модель нейронки. Это обратная регрессия в матрице, там причинной логики в принципе быть не можеть, потому-то все текстовые модели весь матан шлют в калькуляторы (ибо матан это суть абстрактной логики). Если то что тебе эта эхокамера возвращает - решает твои задачи, значит у тебя задачи уровня шлепнут вормочку и переложить джисон. И даже на таком уровне нейронка обильно гадит под себя.
>>3343539 Ой блядь, опять дебил уверяет какие нейронки бесполезные, при этом сидя в лейоффе потому что 1 программист с гпт заменил десятерых. И как всегда классический наитупейший аргумент "они ни панастащиму думают!!! читирят", и что? Это мешает тебя выгнать на мороз?
>>3343541 Так они и не думают, это математический фокус, они угадывают. Синтезируют некий средний текстовый продукт на сааааааааааааааааааааамом низком уровне, на том уровне на котором за годы существования стаковрфлоу там треды создавались. Т.е. шлепнуть формочку и переложить джисончик.
И ты зря сразу обиделся и начал визжать, я так-то самый большой нейроинтузиаст на дваче, долгие годы в теме и потому смотрю на вещи реалистично, но и потанцевал технологии я не занижаю. Сейчас текстовая нейросеть на уровне справочника, не более, на мороз она в таком состоянии разве что только тебя может выгнать. А когда общий ИИ высрется, тогда уже не только погромисты соснут, а вообще все.
>>3343543 >они ни думают, они нипанастаящиму думают! они ни панастаящиму думают, ани угадывают! они вообще не угадывают, просто справочник, как в совке в библиотеках лежал! >и вообще всё это нет не я а ты! Бляяя.....
>>3343784 Залетная нюфагиня не понимает, что ООП и классы в частности, это абстракции для человеческого восприятия в первую очередь, а не свод правил. Как писать это вы с коллегами соберетесь и решите. В приложухах же и модулях питухона абстрагирование часто идет на уровне модулей и этого достаточно. Но нюфане нужно обязательно чтобы код был забит кейвордами class, потому что так на курсах яндекса сказали.
>>3343596 В сто раз удобнее чего? Ассемблера? Пайтухон - это самое неудобное говно, которое только смог родить больной спидозный мозг завистливого педика, не осилившего перл, который он и попытался скопировать "для даунов", как и многие после него. Убогий неповоротливый синтаксис а-ля джава, совершенно непригодный для, сука, СКРИПТОВ, методы какие-то, объекты, непонятная залупа с индентациями - всё ради того, чтобы ленивый "непрограммист" с IQ 80 увидел простой only one way to do it и смог поскорее родить высрать свой хелоуворлд. Потом правда окажется, что если копнуть чуть глубже - там тоже всё сложно, и тогда он начнёт задавать вот такие >>3337564>>3337865 вопросы, но это уже похуй, хелоуворд на коленке наговнякать он уже умеет. >кроссплатформа О каких платформах мы говорим?
>>3337599 Кстати, можно позвать MyClass.foo(self) - то же самое, что self.foo(). Всё это бездарный гомосек тоже спиздил из ненавистного ему перла perldoc -f bless.
>>3344446 Иди-ка ты нахуй со своими заряженными вопросами, зелень жирная, и перечитай мой пост. Ещё раз: >всё ради того, чтобы ленивый "непрограммист" с IQ 80 увидел простой only one way to do it и смог поскорее родить высрать свой хелоуворлд. У меня нет претензий к питухону в вакууме - со своей задачей "предоставить обезьяне инструмент для написания кода" он как раз справляется на ура, насколько это вообще возможно. Другое дело - что программисту, который умеет программировать не только на пайтухон, на пайтухон писать никакого смысла нет, если только не подразумевается дальнейшего взаимодействия обезьян с результирующей кодовой базой, потому что пайтухон - это очень плохой язык программирования, единственная киллер-фича которого для программиста не представляет никакой ценности.
Анончик, глянь да подсоби если не сложно. Дело пары минут для тех кто шарит. Я в программировании полный ноль, просто хочу замутить мод для борды 2 чтобы прятать / экипировывать оружие кнопкой. Короче откопал вот этот пикрелейтед мод, думаю с него можно запилить. Он выбрасывает оружие и сразу же экипировывает, типа быстрая перезарядка. Как сюда в код заебенить второе нажатие клавиши? чтобы он не сразу вытаскивал обратно, а по повторному нажатию. А? Несложно же полююбому? Я просто ваще не шарю в этих ваших кодах
>>3344458 Для какой борды? Для двача что ли? У тебя жопа что ли отвалится если ты ВДРУГ нормально разговаривать начнешь, зумер ебучий. Пришел спрашивать, значит твоя задача максимально понятно объяснить что тебе нужно, нет блядь, буду кукарекать сленгом, я его понимаю, значит все в мире понимать должны.
>>3344406 Ты можешь хоть на чём писать автоматизацию. Никто не воспрещает писать на баше/руби, если тебе они больше нравятся. Ну, если ты конечно не стажёр/джун или и того хуже — вкатун. В таком случае разумеется тебе не будет доступно право выбора. Но в 90% случаев баша будет достаточно.
Хочу научиться программировать на питоне. Подскажите, пожалуйста, несколько моментов: 1. Я ручной тестер, хочется для начала начать использовать питон в работе (прочитать 100 файлов, от туда собрать какие-то данные и хуйнуть в один файл -- пример просто рандомный, просто для того, чтобы упростить себе работу). 2. Хочу просто развиваться дальше (лет 10 уже оттягиваю это всё, но осейчас решил просто по дисциплине по несколько часов в день выделять для этого дела время). Может кто-то посоветует как правильно выделять время? В неделю свободно 4 дня. 2 дня из них 2-3 часа. 2 дня по 10 часов могу ебашить. 3. Мне 29. Не поздно?) 4. Лучше же всего на каком-нибудь степике курс пройти? Я недавно изучал книги, думал может по ним выбрать -- как итог для меня это какая-то сухая муть. Во всех книгах расписывают на 4 страницы то, что ИИ условное может пояснить за 2-3 минуты.
>>3346884 Чел, не позорься нахуй. Питон и тестирование - это простейшая комбинация во всём айти. Уровень сложности "ёбанный детсад, ясельная группа". Если бы ты встрял на теме FPGA или блокчейна или финансового программирования - я бы ещё понял, там сложно, там много матана. Но тестированию можно научить даже обезьяну. Два часа в день? Давай посчитаем - ты два часа тратишь на дорогу до работы на общественном транспорте. Так? А что мешает взять книгу в дорогу? Не можешь читать? Ну слушай тогда! Сейчас везде есть функция озвучивания теста, на озоне продаются аудиокниги. Можно по дороге за продуктами воткнуть блютус наушники и слушать. Можно на планшете готовить еду и одновременно смотреть курсы. То что ты до сих пор не изучил питон - это из-за личной лени, ты плывёшь по течению и тебе норм. Нахуй тебе программирование? Ты сюда идёшь только из-за денег и всё? Все эти степики - это несерьёзно. Это не образование. Образование - это стенфорд, это mit, это беркли в интернете полно авторитетных ресурсов. А степик - это хуйня на палке. Он рассчитан на домохозяек, на всяких "тёть глашей", которая не знает как включается компхлютер. Это образование "на отъебись", типа чё вы до меня доебались со своим образованием. Не поздно ли в 29 лет начинать? Блять да с таким соплежуйским темпом как у тебя, вкат займёт ещё лет 50 как минимум. А там глядишь инфаркт, инсульт и можно гробик заказывать.
>>3346897 >) Спроси ты что-нибудь другое - моим ответом было бы "ты ёбаный имбецил и ничего не выучишь", но поскольку речь о питухоне - вот тебе мой ответ: питухон, как правило, может выучить даже обезьяна, имея неделю-две свободного времени. Нет, 29 не поздно. Да, курс на степике вполне подойдёт. Или любое другое говно из первой ссылки в гугле, туториал на w3fools какой-нибудь. Как только поймёшь базовые штуки типа циклов, ветвлений, процедур - сразу пытайся применять полученные знания к предметной области. Если, например, тебе из 100 файлов для каждого файла надо выбрать все строки подходящие под паттерн /^(foo|bar).*/ и ты не знаешь как проверить, что строка подходит под него - не стесняйся спрашивать гопоту, как это сделать. Качество кода вторично - какая разница, если код не делает полезную работу? Оптимизации и красивости уже потом делать будешь. Дрочить неделями задачи, не имеющие ничего общего с реальностью, не нужно.
>>3346903 Два часа в день исключительно на кодинг. В дороге, очевидно, без проблем буду что-то читать. >Нахуй тебе программирование? Чтобы соседскую тёлочку закадрить, очевидно же.
>>3346884 Если вообще не программировал и есть лишнее время - советую курс "Поколение Python" на степике. Там материалов не очень много, но много практики, поэтому базовые навыки написания кода неплохо закрепляются
>>3342900 >>3342907 >>3342912 Не линупс пока не варик, мне надо на винде потыкать джанго и разные сайты екомерс чисто для себя позапускать код Есть рабочие варики как запустить питон, накатить пип, джанго и прочее чтобы потыкать сайты сервак.
>>3346922 > Спроси ты что-нибудь другое - моим ответом было бы "ты ёбаный имбецил и ничего не выучишь", но поскольку речь о питухоне - вот тебе мой ответ: питухон, как правило, может выучить даже обезьяна, имея неделю-две свободного времени. Это плохо?
>>3346884 Ну я вкатился в питон в 29 лет. Правда у меня к тому времени был опыт коммерческой разработки на других ЯП. Общий совет таков: не пытайся "сначала теория, потому практика" - это душная ебанина, которая быстро настоебет. Сразу бери реальную задачу, которую хочешь решить и гугли как это делать. Реализуй, делай ошибки, ищи решения, улучшай код, добейся того, чтобы все работало как тебе нужно. Похуй если код будет кривой-косой - главное чтобы работал. Когда видишь незнакомое понятие - фиксируй себе и потом гугли, изучай. Видишь прикольную фичу - попробуй применить в своей задаче. Не знаешь как улучшить то, что есть - гугли варианты и пробуй их. Касаемо времени - я б не советовал упарываться по 10 часов в день - быстро перегоришь. В этом деле важнее регулярность. Занимайся кодингом по 2 часа, но строго каждый день - тогда будет результат.
>>3346992 Да нет, че ты ему жопу подтираешь. Везде сначала техника безопасности, потом уже практика. Потреблядское отношение нигде особо не приветствуется.
>>3347021 Техника безопасности это не лекция по основам.
Теориям учат в школе/шараге/институте неокрепшие умы малолетних долбоебов, не столько для того что бы их чему то научить, столько для того что бы сформировать определенное мышление. Взрослому дяде который пришел точить детали или писать веб-бакенд на пистоне погружение в теории не нужно, да и поздно. Ну а закатай рукав мудила, чтоб на бесконечный цикл не накрутило это часть производственного процесса, с которым можно познакомится только на нем самом, ну и на физре/трудах в школе разве что.
>>3347108 Уточни что ты подразумеваешь под теорией. Тут помню приходил еблан вкатун который говорил что такие вещи как функция, цикл и ООП это какая-то бесполезная теория, а ему сказали что на теорию время тратить не нужно и он хочет сразу писать то ли магазин то ли форум.
Аноны, писал спамера на питоне + селениум (автозаполнение 1 поля и автоотправка), получилось универсально в плане селекторов + чекбоксов - в итоге способен обходить 4000 уникальных доменов и выполнять функционал. Это примерно 3-6 секунд на сайт.
А сейчас очухался, вспомнил какой спам приходил в формы клиентам на сайте, там будто другая реализация. Питон через request в состоянии таким заниматься и насколько он шустрее в этом направлении?
>>3347431 Нет, не ясно. Что именно плохо? Что обезьяна может выучить питухон за пару недель? Да хуй его знает, странная постановка вопроса. С точки зрения автора идеи завистливого тупого пидора, захотевшего свой перл для даунов - наверное не плохо, ведь питухон для этого и делался. Но вообще вопрос странный.
На Kivy хочу сделать виджет, который дублирует другой виджет, т.е. копирует отрисовку и все события перенаправляет на оригинальный виджет. И я его сделал, написав в нем нечто вроде (сейчас не дома, но в общих чертах):
with self.canvas.before: PushMatrix() Translate(self.x - copy_from.x, self.y - copy_from.y) self.canvas.before.add(copy_from.canvas) with self.canvas.after: PopMatrix()
Проблем нет, пока оба виджета находятся на экране. Все четко работает. Но у меня в софте они находятся в разных "окнах", и эти окна можно скрывать. И если скрыть виджет КОТОРЫЙ КОПИРУЕТ, то оригинальный перестает генерировать сигнал о необходимости перерисовки canvas. Т.е. у этого виджета например выделяешь текст, а графически нихрена не произойдет, пока какое-либо другое событие не обновит окно. Если вновь открыть окно с копирующим, то снова все работает. Если очищать canvas копирующего на время скрытия окна, то не помогает. Пробовал и удалять canvas оригинального, заного заполняя его. Ничего. Че делать то?
>>3346922 >питухон, как правило, может выучить даже обезьяна, имея неделю-две свободного времени. Что значит "выучить"? Применять подходящие подходы и библиотеки к случаю? Или просто научиться базовым вещам? Так и на С можно писать говнокод зная лишь базовые вещи, чтоб любую программу написать в целом достаточно ветвлений и циклов. Только это будет пиздец.
>>3347745 >Так и на С можно писать говнокод зная лишь базовые вещи Вот только на C этот список "базовых вещей" выйдет кратно длиннее - только на то, чтобы перестать охуевать от всяких const char * const, макросов и прочего добра, ты потратишь очень много времени. Тезис в том, что на питухоне этот путь от абсолютного нуля до состояния минимальной продуктивности, когда ты худо-бедно способен выдавать код, делающий полезную работу, получается неприлично коротким по сравнению практически с чем угодно ещё. Ключевое здесь >имея неделю-две свободного времени Пожалуй, стоило поменять местами, да.
>>3348097 >Вот только на C этот список "базовых вещей" выйдет кратно длиннее - только на то, чтобы перестать охуевать от всяких const char const, макросов и прочего добра, ты потратишь очень много времени. Чтобы писать на C тебе не надо знать всяких const char const. Читать чужой - да, писать свой - нет. Макросы туда же, в целом.
>>3347621 >Нет, не ясно. Что именно плохо? Что обезьяна может выучить питухон за пару недель? Основная претензия к питону - он прощает слишком много хуйни, которую прощать не должен. В плане типов например. Я не говорю, что это что-то ужасное, но в конечном итоге поощряется быдлокодерство. Потому что большинству программистов впадлу ебаться, да зачем я буду всё это проверять, код работает и норм. По сравнению с другими более строгими языками java, rust, c#, где тебя сразу расстреляют из говномёта за такую хуйню.
>>3348575 >он прощает слишком много хуйни, которую прощать не должен Си с его арифметикой указателей, позволяющей прострелить ногу в восьми местах и не заметить - это норм. Пистон, который может разрешить сменить переменной тип, может и не разрешить, - говно и выписан из языков. Понил-принил
>>3347683 Джавистов попускают сишарперы и гошники, сишарперов джавистов. Гошников джависты. Растаманов попускают сишники. 1Сников никто не трогает, им и так хуево.
>>3348575 > В плане типов например. Поясни, о чем ты базаришь. Мы вот на работе всегда указываем получаемые и возвращаемые типы с помощью тайпхинтинга. Если где-то произойдет ебатория, то идешка подсветит. Да, приложение не разъебет, но тогда ты можешь использовать пудантик - разъебется даже при попытке прокинуть инт как стр. Все, проблема решена?
>>3348556 Ты нихуя сложнее hello world не напишешь, если вообще не понимаешь, как работают типы и указатели. Даже строку/налл в переменную сложить не сможешь. А если и напишешь, то это будет пиздец и долго оно не проработает. Возможно даже оперативку тебе сожжёт. В питухоне же можно просто писать foo = 'bar', bar = [MyClass(), {}], baz = [foo, bar, None] и так далее, всё это будет нормально работать и останется вполне читаемым и обслуживаемым. Потолок компетентности достигается за полторы минуты. Вкупе с дубовой тупостью всего остального, минимально необходимого для написания чего-то полезного - например, бота для калограма, ВИЗУАЛЬНЫХ НОВЕЛЛ на ДВИЖКЕ от виабушников, дрочева НЕЙРОНОК, скриптов перебора объявлений на лохито и чем там модные зумеры ещё занимаются - получается идеальный инструмент для перебора циклов в цикле непрограммистами-ягуманитариями, гораздо лучший, чем си.
>>3348575 >не должен Почему не должен? Вполне имеет право. Он и не был рассчитан на то, что программисты, владеющие другими технологиями, будут массово и добровольно им пользоваться.
Не особо люблю писать на Пайтоне, но претензии тоже удивляют. >можно освоить за 2 недели Это плохо что ли? Go за то же самое превозносят. В качалке есть ego lifting, тут кажется ego programming. > просто, тупо Тоже плюс. Перестаёшь любить сложносочинённые языки со всякими IO монадами, как только пытаешься на нём решиь реальную проблему, которая вносит реальную сложность, а не надуманную. >он прощает слишком много хуйни, которую прощать не должен Что значит "не должен"? Получается ли на нём делать проекты, которые приносят прибыль? Судя по всему, да. Ну как бы всё.
Программисты любят переоценивать значимость чистого безопасного кода и так далее.
И да, приводить C в качестве примера "надёжного" языка - это, видимо, какой-то троллинг.
Ну вообще у питона объективно две взаимосвязанные проблемы: его тормознутость и его всратая система пакетирования. При том если бы питон был быстрый, то нужда в тысяче версий whl сишных врапперов под каждую версию и архитектуру просто бы отпала.
Ебаный рот этого парсинга хмл, какой же пиздец, нихуя нипанятна
Как распарсить этот пикрилейтед кал если набор возможных тэгов заранее известный, но в каждом элементе верхнего уровня он разный? Я делаю term.find(''entry2") и сосу хуй потому что ошибка тэг не найден. Ясен хуй он не найден, его нет нихуя во втором и третьем элементе списка например.
>>3350555 Там полная хуета, можешь забить. Я тоже из этого треда узнал, что "ого нихуя, есть вот Хирьянов, ебашит ваще адские лекции по алгоритмам". По факту там ненужная теоретическая поебень, которую даже не применить в работе. Что-то на уровне курса БЖД на экономфаке.
>>3350023 > Это плохо что ли? Go за то же самое превозносят. Конечно плохо. Единственный правильный язык - это лишп. С точки зрения прыщедегенерата.
> Что значит "не должен"? Получается ли на нём делать проекты, которые приносят прибыль? Судя по всему, да. До небольшого размера - да.
> И да, приводить C в качестве примера "надёжного" языка - это, видимо, какой-то троллинг. На нем сегодня даже дрова и проливки для микриков не пишут. Явно нуб какой-то писал.
>>3350048 > Ну вообще у питона объективно две взаимосвязанные проблемы: его тормознутость Приведи пример где тебе это мешает.
> его всратая система пакетирования. Конкретно? У меня к ней тоже есть претензии, но я хочу тебя послушать.
> под каждую версию и архитектуру просто бы отпала. На винде архитектура ровно одна.
>>3350690 >Приведи пример где тебе это мешает. Тем что любая более-менее тяжёлая либа тащит за собой ворох сишного/крестового/фортрановского ливера ради ускорения. Из-за этого у питона костыльный и очень жирный рантайм. Из-за этого тебе надо лавировать не только между версиями питона, между конфликтующими версиями питонячих библиотек, но и между версиями системных библиотек и девтулов.
>Конкретно? Качать пакет чтобы узнать его зависимости. Отличное решение. Я как раз собирался прокачать через себя десяток-другой гиготрафика чтобы зарезолвить зависимости.
>>3350744 > лавировать не только между версиями питона Не слышал, но ок. Можешь пример привести?
> между конфликтующими версиями питонячих библиотек, А где их нет?
> но и между версиями системных библиотек и девтулов. А это что?
То есть у тебя претензии к тому что библиотеки нативные? Все языки с нативными библиотеками на помойку?
> Качать пакет чтобы узнать его зависимости. Отличное решение. Я как раз собирался прокачать через себя десяток-другой гиготрафика чтобы зарезолвить зависимости. Где тебе реально это мешает?
Меня вот больше другое бесит. Все обновления без логов. Обновился на нерабочую версию и хочешь вернуться назад? Хуй тебе!
>>3350888 Что нести? Открой Реддит и посмотри. Несколько сотен миллионов еженедельно активных пользователей. Деньги в проекте есть. Это то, о чём шла речь. > Имеет Нет, не имеет. В микросервисной архитектуре не так важно, на чём написано отдельный компонент, их сложность управляема. Но, конечно, в вашей конторе написаи бы макаронный монолит на какой-нибудь Яве с AbstractProxyFactorySingletonVisitorBeanInterface, без этого с большим количеством loc не совладать.
>>3350690 >На винде архитектура ровно одна. Это та у которой есть/нет 3DNow, SSE4e, SSE4.1, SSE4.2, VT-x, AMD-VT, SSE5, FMA4, AVX, AVX2, AES-NI в зависимости от производителя и его линейки процессора? Под нее еще в линуксе предлагают версии ввести, а то все ядра собираются под дженерик без поздних расширений.
>>3350916 > 3DNow Ты откуда это накопипастил, кловн? 😀 В магазине бинари под x64 И ВСЁ! Алсо что мешает в рантайме определять фичи проца и запускать нужный код?
Плохой пример, анон. Весь код новый пишется на го, на пытоне легаси. Питон как язык для реддита выбрали в 2005ом году, это не значит что сейчас имеет смысл совершать такой выбор
>>3350942 >что мешает в рантайме определять фичи проца и запускать нужный код? Для этого надо сначала написать код адаптированный под каждую фичу или даже наборы фич, а потом еще написать библиотеку которая "в рантайме" будет определять и подставлять нужное и интегрировать ее в приложение. Такой подход использует ffmpeg, но большинство кода просто на уровне препроцессора подставляет нужное, тем самым предлагая либо собрать под всех (в том числе пикрелейтед) либо с учетом именно твоей машины.
Таким образом получается вроде "архитектура" одна, а субархитектураы разные. В конечном итоге все придет к тому чтопод каждый процессор будут собираться модули во время запуска, как шейдеры на видеокартах.
>>3350946 Да это вообще всё равно. Взлетело? Да. Работает? Да. Что и требовалось доказать. В текущем состоянии практчески монополиста форумов в интернете вне социальных сетей они, думаю, могут себе позволить писать код хоть на Расте.
сап, питоняч, помоги раскумекать тему синхронизаций.
есть два итерируемых объекта, для простоты пускай будут списки. в одном пики точенные, в другом хуи дроченные. что пики, что хуи имеют поле id и не хешируются. для простоты каждый хуй равен пике с тем же значением id. надо найти пересечение и разницу двух итерируемых коллекций.
были бы возможны хеши, решил на множествах. предлагайте вариантики без двойного цикла, если есть.
>>3351956 Напиши больше шкриптика на одну страницу.
pathlib.Path(".").glob("*") в отличие от glob() возвращает не строку. При попытке сложить со строкой будет вылет. Если бы свыня разродилась хинтами, это бы подсветила ide. Вот как так - хинты вроде бы есть, но в стандартной библиотеке они не нужны.
Нанял питониста писать круд на фласке.. ебет вола уже 3 месяца. Постоянно тыкаю его в мелкие баги. Фиксит одни, новые возникают. Это пиздец. Как же это заебало. Просрал 400 баксов. Хочу послать его в хуй, но как искать нормального чтобы это не повторилось?
>>3352014 Ну а вообще твоя задача невиполнимая - ты хочешь чтобы почти бесплатно, быстро и качественно (без багов). Выбери два, как говорится. Так то ты челика наебал, а не он тебя. 400 баксов за 3 месяца работы? Если есть баги - значит тебе есть что пощупать, значит он работу в основом выполнил.
>>3352248 В том что он ебаклак. Ебал вола. Каждый мелкий баг занимает по 5 дней. Вот так и набежало 3 месяца. Неужели нельзя сразу нормально сделать? Пример багов: - при нажатии на кнопку edit не подсасывается из бд значения в форму и показывает пустую форму. Ну это пиздец халтура же. - заход в панель только со 2й попытки всегда работает . Тоже пиздец.
Ну и тд. Было сделано ТЗ в котором все описано. Когда он говорит, что все готово!!!11 то я тупо беру проверяю 1й пункт тз и он тупо не работает. Даю время на исправление. Потом 2й пункт.. опять не работает. Итд.
Заебало пиздец. Походу шлю его в хуй и ищу нового. Ну нельзя так подходить к работе. Мне нужен рабочий продукт а не так чтоб я ещё тестировал на очевидные баги. Ладно там какие-то не очевидные баги, все не предусмотришь, это простительно.
>>3352273 Возможно, он очень неопытный. Возможно, он пытается эксплуатировать тебя так же, как и ты его. В любом случае, его работа стоит минимум в 10 раз дороже в любой компании, а то и в 20.
>>3352278 Но причина батхерта в чем? Ты потратил на неработающий прототип сделаный с нуля почти нихуя. Теперь будешь платить другим, за исправление багов. Обычно так Олены проекты и делают - не мытьем так катаньем выжимают соки из пролетариата, пока не получится продут терпимого качества. Ни один спец не будет за 400 баксов месц работать. Но с другой стороны если заплатишь 4000 - не факт что наймешь не проходимца. Смирись с тем что будешь делать итеративно из того что есть на рынке.
>>3352292 То есть такой подход в разработке это норма? Когда кодер на ставке что-то вяло коммитит, а по сути перекидывает говно через забор тестерам, а они ему обратно? Таких надо на мороз сразу, тем более сейчас рынок Олена, а не работника.
>>3352431 На мороз или нет - это Оленчику ситуативно решать: месяцами перебирать условно бесплатных чмонек с улицы, пока не найдется более мене работящий или искать дорогого проходимца. Формулу "быстро, качественно и дешево сделать невозможно - выбирай два из трех" никто не отменял. У мелкого ИП опции делать дорого нет (например обратиться в галеру), поэтому он может расчитывать только на долго и с нервами.
>>3352273 Дегенерат, ведь ты же жизненный цикл разработки софта себе даже не представляешь, если требуешь от одного несчастного микрочелика за 400 баксов выполнить работу команды.
Ыыы ептабля ну чё сложно чтоли без багов писать, ну епта там же надо только чтобы в базу подсасывалось по кнопке, ну че ты епта ебёшь вола ебаклак уволен нахуй. Пиздец просто, сама суть тупого жлоба, ОленОленыча.
>>3353382 Я не представляю себя на его месте. Накидал кнопок на форму, чето работает, чето нет, пох, потом разберемся, Я СДЕЛОЛЬ! Это стандарт веб разработки в 2025? Чем это отличается от бесплатного Чатгпт? На мороооз. На мороз.
>>3353461 > Я и не сомневался, что ты не представляешь о чем кукарекаешь.
А что не так? Я сам на фрилансе с 2010 до 2020, сотни выполненных проектов, правда по сисадминству и серверам, когда говорю сделаль, то железобетонно уверен что оно работает. А не как этот ебаклак.
У меня винда уже писал, кароч питон не очень пашет на винде. Советовали wsl поставить, а есть гайды по этой теме команды чтоб юзать норм, мне надо поставить джангу например, ну и так некоторые пакеты накатить.
>>3353463 Каким образом твой опыт работы уборщиком, баристой и говночистом коррелирует с разработкой ПО? Впрочем, это риторический вопрос, можешь не отвечать. Будучи уборщиком, ты можешь посмотреть на пол и сказать, есть ли говно на полу, и если его нет - "говорю сделаль" (пикабушник ебучий). А чтобы сказать то же самое про софт, нужно его обложить тестами. Ты ведь наверное думал, что за 100 баксов в месяц один челик тебе ещё и юнити тесты запилит, жлоб некомпетентный.
>>3353783 есть float('nan') его не может не быть так как IEEE754 нан в любых сравнениях с числами дает фолс, даже с самим собой >>> float('nan') == float('nan') False
Принёс вам покушать интересную головоломку https://github.com/snooppr/snoop/ На гитхабе есть проект, с открытым кодом. Он существует в бесплатной и платной версией. Они отличаются базой сайтов, в платной их намного больше (308 и 4752) В репозитории лежит файл с сайтами от бесплатной и платной версией. Казалось бы, переименуй файл, но автор предусмотрел такой фокус Файл BDdemo открывается с помощью функции BD в файле snoopbanner.py. Для этого он раскодирует base64, разворачивает строку, ещё раз раскодирует и получает json. От полной версии BDfull ещё проще, он один раз закодирован base32 Если после этого сохранить содержимое из BDfull в BDdemo, то программа не заработает. Файл BDflag содержит так же 4752 объектов, и содержит страну каждого сервиса
import base64 import json with open("BDfull", "r", encoding="utf8") as f_r: db = f_r.read()
db = base64.b32decode(db) trinity = json.loads(db.decode("UTF-8"))
ndb = json.dumps(trinity, ensure_ascii=False).encode("UTF-8") ndb = base64.b64encode(ndb) ndb = ndb[::-1] ndb = base64.b64encode(ndb) with open("BDdemo_fake", "wb") as f_w: f_w.write(ndb)
В коде есть три очевидные проверки:
req_retry = True if "full" in VERSION or len(BDdemo_new) > 399 else False os.execl(sys.executable, sys.executable, *sys.argv) if len(BDdemo_new) > int(403.9) else "dif_time" BDdemo_new = BDdemo if len(BDdemo) < 404 else sys.exit()
Но по какой-то причине программа закрывается без ошибок с файлом от полной версии, даже если подсунуть thread__ = 1 и запустить без интернета Возможно дело в 700 строчке? Не работал с библиотекой rich Сколько пыхтел в дебаггере, так и не нашёл в чём дело. Сможет ли кто дать подсказку?
Сап двач! Очередной вкатун в раздумиях: 29 годиков, образование гуманитарное, не дурак, английский знаю. Хочу вкатиться в бэкенд, но чето нихуя не нахожу вакансий на джун позиции, вместо этого постоянно висят вакансии типа "младший аналитик данных". Так вот, на каком уровне должен быть питон чтобы подавать туда резюме и вообще есть ли смысл, может быть продолжать учиться до бэкендера? 2. Друг постоянно говорит, что я даун и не надо мне время в пустую тратить тк буду конкурировать с типами, которые олимпиадники, кодят с 12 лет и образование у них по профилю. Правда ли это? Я думаю такие зажроты только в топ компании идут, не?
>>3354995 Держи лайфхак - пишешь в гугле <профессия на английском> roadmap - и тебе выдаст список вещей, которые тебе нужно будет изучить. Например, junior data analyst roadmap, junior python backend developer roadmap.
Ну и закладывай на обучение + поиск работы как минимум год-полтора.
Чел в америке - principal software engineer, автор книги по Питону - не может найти работу, потратил почти все сбережения, через месяц выставляют на мороз из хаты, будет жить в машине. Что происходит? Как такой чел может сидеть без работы? Реально такой голяк с работой в ит глобально - если уволили, то всё? Это касается только вакансий на Питоне или на всех остальных языках тоже такая ситуация?
>>3354995 >Правда ли это? Я думаю такие зажроты только в топ компании идут, не Сейчас у трети зумеров есть ИТ вышка. Так что на позицию джунов всегда достаточно людей с ИТ вышкой. В этом плане твой друг прав. В любое помойное место найдется студент желающий там работать. Просто потому что сейчас уже 2025 год на дворе и это означает, что выпускаться будут те, кто поступил в 2021. Как раз во время самого большого хайпа на айти.
>>3355875 >I am deeply passionate about diversity and inclusion! It's the one topic I'll get ferocious about. I have been blessed to be on the receiving end of white American privilege Ору нахуй! Ну шо, сынку, помогла тебе твоя diversity? И как же ты со своего privilege end в barrel бездомности-то заглянуть умудрился?
>>3355875 >автор книги по Питону Он хуйню какую-то для начинающих написал уровня "переменная это коробочка". Сейчас у каждого вонючего индуса с немытой продрищенной жопой есть подобная книга.
Апргрейд пип выводит такую ошибку shutil > File "/usr/local/lib/python3.12/site-packages/setuptools/compat/py311.py", line 21, in shutil_rmtree > return shutil.rmtree(path, ignore_errors, onexc=onexc) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >TypeError: rmtree() got an unexpected keyword argument 'onexc' Чо это за херня и как фиксить? Почему в адресе есть и py3.12 и py3.11 >python3.12/site-packages/setuptools/compat/py311.py
>>3353511 Ищи как поставить и настроить WSL Даже если ты заставишь работать пистон в помершеле то дальнейшая эксплуатация питона и его модулей может упереться в то что в интернете все примеры для линукс систем
>>3356832 Все на винде пашет, не работают только какие-то единичные скрипты, где разработчик жестко привязывается к ОС (либо потому что скрипт решает задачи в конкретной системе, либо потому что он долбоеб)
>>3356971 Конкретно с джанго проблем вообще никаких, я неебу где он там проблемы нашел. Так проблемы бывали регулярно если какая-то свыня не посчитала нужным выложить бинарник. Pycurl таким например страдает. Сторонней конпеляции как в дебилиане в питоне нет. Даже сука способа подключить сторонний "репозиторий" нет! Не пидары ли?
>>3354995 Олимпиадники – куски говна, которых много раз обассывали за их говнокод. Собственно олимпиады – решение задач на скорость. Знаю одного чела из МГУ, который дофига математик и алгоритмы знает. Так вот, с него горит у сеньоров, так как он говнокод пишет. И что-то алгоритмы его код не ускоряют, делали замеры.
>>3357204 В дебиане компоненты дистрибутива. Если дистрибутив собран под armv9 то и бинарии в репе под armv9, собранные с учетом версий и путей к библиотекам в данной конкретной системе.
Имаджинирую ебало дегенерата который в pip репозиторий кладет архив с .dll библиотекой собранной под 32битную спермерку.
>>3357364 Большинство пакетов имеют хиджаб репозиторий где ведется разработка силами сообщество, в нем есть релизы и автозапаковка в архив которую просто достаточно подключить в pypi. А вот так вот https://github.com/eddiehe99/dlib-whl делают только дегенераты.
Вот я написал скрипт, который парсит сайт, пиздит видео и субтитры, конвертирует видос и сабы в один контейнер и сохраняет по папкам/категориям. В скрипте используются и пакеты которые импортируются без pip install, и те которые нужно устанавливать пипом, и ффмпег который устанавливается вообще отдельно. Я хочу этот скрипт передать другим людям, у которых тоже стоит питон. Как мне это сделать, чтобы скрипт у них завелся?
Я не кодер, нихуя об этом не знаю, и нихуя не могу нагуглить. Хелп плиз
>>3357536 Не въебусь что тебе не нравится. Бинарные колеса вообще? Если они есть все ставится без проблем.
>>3357629 Зависимости в requirements.txt. Если на месте не захотят ебстись, можешь сделать независимый экзешник.
>>3357636 > Вариант 2: собрать deb или rpm пакет с прописанными зависимостями (ffmpeg установится вместе с ними). Люди - это пользователи windows, а не прыщехуесосы.
>>3357667 >Люди - это пользователи windows, а не прыщехуесосы. это те люди которым майкрософт обновляет виндовс когда считает нужным? И которых прокатывают с поддержкой и которым нельзя купить новую версию ибо не только лишь все достоены ставить их продукт. Как давно мочу в рот принимал прежде чем понял что мс тебя держит за людя?
>>3357703 Как можно поставить ffmpeg через пип инсталл? Эта залупа же обычный исполняемый файл, который еще и в PATH прописывается. Если пояснишь как поставить через пип, то я лучше так сделаю.
>>3357748 Обсуждать десктоп пиздуй в /s/ долбоебина А я все думаю че за шиз здесь срет бегает, а это школьник с разделов где гадами сруться на тему amd vs intel
>>3358162 Неужели на кривой залупе прод держите? Чего и требовалось доказать - даже сами спермобляди признают, что сперма это говно, рассчитанное на неграмотных даунов-потреблядей и малопригодное для кого-либо ещё, и брезгуют ей пользоваться для хоть сколько-нибудь серьёзных вещей, лол. Иди ставь свои зависимости для хелоуворда через цмд.екзе, говноед.
>>3358201 Там интеграция с гитом ну и вообще редактор нормальный. Плюс из за того что это все таки electron там можно писать расширения как на браузер, только на редактор.
>>3358419 >Как и в pycharm и вообще в любой ide. Они умеют создавать проект в виде локального git репозитория, трудно сегодня представить IDE которая этого не умеет хотя бы при помощи плагинов. Но они при этом не умеют его администрировать, создавать бранчи откатывать комиты, мержить код с разруливанием проблем, для этого предполагается юзать или сторонние гуи https://git-scm.com/downloads/guis или стандартную консольную утилиту.
А VS Code все есть, по крайней мере тот же электроновый GitHub Desktop становится не нужным.
Есть ли возможность сделать в kv так, чтобы условие влияло на содержимое canvas? Что вот is_focus = True, то добавлять эти инструкции, если False, то удалять. А то получаеца что ну меняю я цвет, епт, да, невидимым становится рамка (т.е. графически ее нет), но по факту она будет обработана в цикле рендера и видеокарта ее тоже будет рисовать, несмотря на то что по сути рисовать ее не надо. В python коде то понятно как это сделать, ебануть условие на фокус просто, повесить там пару биндов на размер и позицию (чтоб если меняется то и рамку надо перерисовать собственно). Но kv использовать намного чище, бинды энти сами собой создаются, да и не хочу графику в код тянуть. Но и не хочу чтобы ненужная хуйня у меня высчитывалась.
>>3359942 Из таких мелочей и создаётся репутация компании. Жидбрейнс в данном случае контора пидорасов, а пайчарм это тяжеловесное и кривое поделие, с недавнего времени умело копирующее интерфейс божественного VScode
Че можно почитать по архитектуре приложений? Смотрю на старших коллег, которые ебашат вообще адские инверсии зависимостей и интерфейсы интерфейсов, я просто повторяю за ними без особого понимания, смотря на их говнокод - с нуля я такое не напишу. Где это можно изучить структурно?
>>3360640 я настолько нуб, что не знал, что в виртуальную среду нужно модули устанавливать. не обращайте внимания а всё почему? потому что дрочу нейронку для обучения, а не сам в мануалах копаюсь
>>3360662 >>3360759 Нет, не в этом проблема была >>3360758 Нужно! Начало работать сразу после того как я установил модуль в pycharm, виртуальная среда хуё-маё, странно что в системе был уже установлен, но ему похуй.
Как импортировать модуль по абсолютному пути, из файла, находящегося за пределами проекта? Получаю исключение: >attempted relative import beyond top-level package
Например я хочу в этот модуль: >C:\Solutuons\Hui\HuevyModule.py импортировать этот модуль: >C:\Solutuons\Pizda\PizdatyModule.py
Путь к PizdatyModule я получаю через переменную окружения.
>>3362268 У меня есть директория с ComfyUI, есть директория с Trellis. Оба проекта работают сами по себе. Я хочу прикрутить ноду для комфи, но я не хочу дублировать все говно из Trellis в папку с нодой. Я думал, что я просто обращусь у нужному модулю, но это говно просто так не работает.
>>3362268 Или вот даже взять ComfyUI. Моя нода находится по пути: D:\ComfyUI_windows_portable\ComfyUI\custom_nodes\MyNodes\Test.py Но в комфи есть дефолтные ноды, расположенные уровнем выше: D:\ComfyUI_windows_portable\ComfyUI\nodes.py
И я не могу воспользоваться этими нодами из-за абсолютно той же ошибки. Это такая защита, чтобы я не шатал то, что не следует?
>>3362293 >>3362287 И как тогда работает конда? Зависимости для Trellis находятся вообще за пределами корневой папки треллиса — в envs самой конды, а часть в temp вообще на другом диске, однако это не мешает треллису иметь доступ ко всему.
>>3362301 А это что-то даст? Я это написал чисто для обозначения объекта обсуждения.
ComfyUI — обертка над Stable Diffusion для генерации изображений. Trellis — майкрософтовская нейросеть для превращения изображения в 3д модель, путем создания видео с оборотом на 360, а затем фотограмметрией создается 3д модель.
>>3362316 Ну для обеих есть батники, запускающие файл .py, затем из браузера я захожу по локальному адресу на страницу с интерфейсом. В Trellis в принципе есть демка .py где никакого локального сервера нет, просто выполняются три функции: загрузки изображения, конвертации в видео, затем конвертации в 3д.
Причем Trellis запускается в отдельном пространстве Conda. Я щас пытался всю папку треллис кинуть в область видимости ноды, потом запустить комфи из того же окружения, что и треллис, но модули просто не видят зависимостей, которые находятся в пространстве конды. А там этих зависимостей просто дохуя, на 10 гигабайт. Сами зависимости устанавливались через пип: торч, куда, модели.
Надо щас погуглить, может есть возможность обмена между двумя приложениями, типа именованных каналов. Через жопу, конечно, но у меня нет опыта сделать по уму. Есть конечно готовые ноды для комфи, где этот трейлс уже интегрирован — там как раз все зависимости устанавливаются в одну кучу. Но там нулевая безопасность, я чет не хочу это трогать.
>>3362335 Так это отдельный софт со своим инсталлятором? Вообще такие вещи обычно ставятся пипом. Ну если не хочешь - расширь sys.path через питон или переменные окружения.
>>3362335 > Причем Trellis запускается в отдельном пространстве Conda. Я щас пытался всю папку треллис кинуть в область видимости ноды, потом запустить комфи из того же окружения, что и треллис, но модули просто не видят зависимостей, которые находятся в пространстве конды. А там этих зависимостей просто дохуя, на 10 гигабайт. Сами зависимости устанавливались через пип: торч, куда, модели. А, ну тогда неебу.
>>3362342 Тем, что устанавливает зависимости в определенном окружении. И эти зависимости не шатают другие приложения на питоне.
>>3362341 >расширь sys.path Пробовал, та же ошибка. Не хочет лезть выше топ левела. Причем и в комфи и в треллисе есть папка utils, например: D:\ComfyUI_windows_portable\ComfyUI\utils D:\Trellis\utils Так вот, программа несмотря на указание абсолютного пыталась импортировать >sys.path.append( r'D:\Trellis') >from utils import render_utils Писк был в утилитах комфи, судя по ошибке: >Отсутствует модуль 'render_utils' по пути 'D:\ComfyUI_windows_portable\ComfyUI\utils'
>>3362348 > Тем, что устанавливает зависимости в определенном окружении. И эти зависимости не шатают другие приложения на питоне. Virtual env есть и в пипе, если ты об этом.
Так телепатически я тебе не скжау в чем проблема. Да и лень ковыряться.
>>3362806 1) кури про ifless подход. Каждый иф в цикле убивает ебёт предсказание переходов в проце и убивает производительность. Грубо говоря например вместо
if a>34: print('banana') else: print('apple')
Пишешь что-то вроде:
result = (a>34) 'banana' + (a<=34) 'apple' print(result)
Из задачи ветвления логики задача свелась к математической операции и процу становится сильно легче выполнять твоё говно.
2) избавляйся от append - дорогая операция по изменению размера списка. Например вместо этого создай bitarray нужной длины и там помечай единичками нужный индекс. В конце по этим индексам соберёшь результат
3) избавляйся от обхода списков, переписывай на векторных операциях при помощи numpy, тогда проц за одну операцию будет считать весь массив
>>3363412 Все тобой перечисленное не имеет отношения к интерпритируемым языкам с JIT
Этот код в процессе исполнения многократно перекомпилируется с учетом статистики и применять здесь принципы которые используются для оптимизаций в обычном статически-компилируемом коде здесь бесполезно и вредно.
>>3362806 Интерпритируемые языки идеально подходять для алгоритмов где много лапши и вызовов и плохо подходят для обработки данныхю Тем более для графических данных надо использовать видеокарту - перепиши свою функцию на си/плюсах с GLSL и подключи библиотекой в питон.
>>3363412 >Каждый иф в цикле убивает ебёт предсказание переходов в проце и убивает производительность С учетом миллиардов операций прокессора в секунду - не похуй + не поебать ли?
>>3363422 >GLSL Идея то как раз была в том чтобы написать рендер на cpu, ну короче видимо нихера, можно конечно поставить по 50 "пикселей" на ширину и тогда будет ~15 фпс, но это нифига не воспринимаемо визуально говно если сложные модели Видимо челленж говно, и нужно смириться и заюсать moderngl или opencl сука обидно хотя если модели очень низкополигональные то можно и так рендерить
>>3363655 > Идея то как раз была в том чтобы написать рендер на cpu Так пониешь ты считаешь треугольники на CPU а потом получившийся фрейм копируешь в видеопамять что бы вывести на экран, при том что у тебя там спецпроцессор для считания треугольников и куча более быстрой памяти.
Если у тебя или то на чем планируется запускать может не быть видеоускорителя, то обычно там на уровне библиотеки или ос просто то же самое компилируется для CPU и рендерится@выводится через фреймбуфер. Это же высокоуровневый язык примитивов, а не ассемблер, хотя он наверное может содержать какие то платформозависимые функции но это не твой случай.
Анончики, посоветуйте проектов годных, а то я потерялся. Вот я поупражнялся с циклами, кейсами, ифэлсами и тд. А что дальше? Гугл предлагает либо сделать игру угадай число либо написать сайт с поддержкой бд. А есть что-то среднее между уровнем смешарика и ультрахардкором?
>>3364117 1) Вот можешь написать такой рендер >>3362806 поставить растеризацию 60*60 пикселей, сделать пару простеньких моделей звездолетов и сделать космический шутан как на сегах всяких только в 3д 2) любое моделирование: метод монтекарло, мол динамика, или микромагнетизм пох либо через уравнение ландау-лифшица с моментами, или через ту же монтекарлу 3) мини ide для питона на питоне, но это посложнее ты там говна лопатами пожрешь, подразумевается с дебагером и своей консолькой с вводом выводом Делай тогда уж на pyqt считай тебя за такой проект с руками оторвут
Анон, который делегировал создание crud панели ебаклаку фрилансеру, репортинг ин итт.
Предыстория -я решил что уже достаточно кабан и можно делегировать. Дал ТЗ фрилансеру на создание crud за $400. Оплатил полную сумму вперёд (проебался, но где). Фрилансер ебал вола 2 месяца, закрывая в неделю по микрофиче (+ пару кнопок на форму). Я занял выжидательную позицию (ебать я лох х2). С периодичностью в пару недель фрилансер писал "я СДЕЛОЛЬ", и на каждый такой вскукарек был мной сформирован список багов несовместимых с ТЗ. На каждый пофикшенный баг возникало 2 новых. К новому году кое что все таки начало работать, но выглядело как ядерная война (чего стоят только извещения с помощью js alert() ).
Я пообещал ещё $200 на доработку, проходит пара недель и нихуя. Чисто по доброте душевной отправил ему соточку чтоб не насрать себе в карму и послал его в хуй.
За пару вечеров набыдлокодил на flask весь нужный функционал + доп.фичи, на реализацию которых у ебаклака ушло бы ещё пару месяцев ебания вола. И выкатил в прод и запустил живых юзеров.
Мораль - то ли я пока не дорос до делегирования. То ли при делегировании надо жёстко ебать долларом и спрашивать статус каждый сука день.
Делаю тут парсер сайта одного, вроде все получается. Единственное, возник вопрос с фласком и в гугле найти решения не могу (или гуглю не так). В общем, изначально писал все в одном файле app.py - и рендер шаблонов и парсинг страницы, так как ссылка лежала в переменной. Теперь хочу переписать код так, чтобы получать ссылку из формы на странице при нажатии на кнопку. То есть, мне надо вызвать функцию при рендере шаблона, но не могу догнать, как это сделать
Привет! Вопрос, есть ли в интерпретаторе питона какой-нибудь флаг чтобы включить проверку type-хинтов. Пока что нашел только mypy как левую утилиту, но есть ли такое в стандартной поставке питона?
>>3365902 >>3365897 Да, чтобы перед запуском программы выполнялась проверка типов и только если все ОК -> программа запускалась. Ну или хотябы чтобы это делалось во время исполнения программы
Поясните за матчасть. Вот в планах сделать учет купленных товаров, посредством парсинга чеков. То есть, пользователь заходи на сайт, вводит ссылку на чек, товары заносятся в таличку. Далее, он вводит другой чек и товары добавляются в ту же самую таблицу. Как такое организовать вообще?
>>3366528 Сделай в Бд маппинг между юзером и его текущим списком товаров Класс юзера - действия - Добавить\удалить товары в список и показать их список.
>>3366564 Может пока просто в файлик как-то записывать и при запуске сервера просто оттуда читать? Или это не профессионально? Что-то пока не хочется с бд ебаться.
Есть лист с наименованием товаров, в цикле хочу добавлять новую строку с наименованием. Мой код не работает, при чем ошибок не выбивает никаких. Вычитал, что надо постоянно обращаться к бд, но не работает нихуя. https://www.online-python.com/n0acXMgViI
Питонисты, можете посоветовать библиотеку для распознавания текста, которая хорошо работает и с английским языком, и с русским? pytesseract частенько лажает на кириллице и пытается разбить сложные символы вроде "Щ" "Ж" "Ы" и подобные на всякие сомнительные огрызки.
Подскажите литературу по углубленному ООП или в целом архитектуре приложений. Не уровня class Animal, а про правильное использование абстрактных классов/интерфейсов, про инверсию зависимостей, такие вот темы.
на выходе получается урл картинки типа data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAc4AAAHOCAYAAAAR5umwAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAyXSURBVHgB7d1LUlvXGobhpU3DUOngjgvSMYzg4BGEjCCeQXxGkHgEsUcQnxEEjyDOCEJGEG как правильно картинку спарсить? извлекаю так: img_tag = product.find('img') img_url = img_tag.get('src') if img_tag else None if img_url and img_url.startswith('/'):
аноны подскажите пжлст, хочу себе в телегу сделать группу или бот, куда буду скидывать сериалы которые посмотрел и коротенькое мнение, чтобы не забыть что за говно я посмотрел и чтобы там была опция поиска по названию, типа чтобы не дублировать уже добавленное. можно в ли телеграме такое сделать или надо писать приложение? я ноль в пайтоне, но неплох в верстке, и в приницпе готов пощупать пайтон если на нем такое написать можно
Какой же харкач мёртвый сайт. Каждый второй макакен что-то говнякает на Питоне, а тут мёртвый тред. Ваще никого нет. Даже перекатить некому. Пусть гниёт.
Аноны, можете посоветовать книги или методички какие-либо для начинающих в этом деле? Я сама искала, но хотелось бы услышать мнение более опытных в этой сфере людей.
>>3371804 Это самая бесполезная хуета - учить язык чтобы стать программистом. Даже не буду объяснять насколько это ущербно и насколько быстро тебе надоест.
То ли дело когда у тебя стоит конкретная цель - сделать сайт чтоб рубить бабло. Или автоматизировать рутинное действие. Или собрать данные и продать. Или что-то иное, где скилл программирования это только инструмент.
И тут ты начинаешь читать базу (если полный нуль) или конкретику, и впереди у тебя цель, ты все прочитанное уже с ней сопоставляешь, пригодится для нее или нет. Пример, если ты хочешь колупать ардуины, то усиленно обращаешь внимание на работу с последовательным портом. Если веб, то flask и бд.
А просто так читать и тренить абстрактную залупу это доставляет, только если ты нерд и задрот.
>>3372022 Спасибо. Пока что мне бы просто хотелось разобраться и понять насколько мне это нужно. Т.к. я пока ещё учусь в школе (7 класс) не могу скачать, что быть программистом и учиться на эту профессию это моя мечта. Я бы хотела чисто для общего развития. Мне всё-таки в той или иной степени эта тема интересна.
>>3372327 А ну раз ты еще школота то ок. Только: не увлекайся лабами! Они к реальной разработке имеют ровно 0 назначения. Денег за них платить не будут.
— Какие книги считаются лучшими? На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать? У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых? Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: https://www.composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
>>3375363 — Дайте нормальные книжки на русском! Мы, блядь, не в цензура живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>3375365 — Дайте нормальные книжки на русском! Мы, блядь, не в пин'досии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
Аноны, помогайте! Нашел даббер на питоне еще писавшийся в 20 гадах, азял его до основу, докрутил до адекватности и актуальности. Все вроде работает, но почему-то посты которые он должен копирповать, он копирует кое-как. Топовые паблики полностью игнорирует, а рандомные каналы знакомых спокойно берет в оборот. Гуглил на счет антидабберерских ботов и софта для тг каналов, ничего схожего даже по запросу нет. Делалась все через библиотеку pyrogram,