Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Братаны, прислали тестовое: сделать на выбранном мною фреймворке мини веб-приложение где будет кнопка "авторизоваться", при нажатии на нее происходит oauth в контакте и показывается всякая ебень на этой же страничке На чем пилить? Если б был свой кастомный crud, то все по хуйне, а так с вк взаимодействовать придется
Анон, выручай! Вчера мне помогли код написать. Нужно всего лишь строчку желтым выводить. Подправь для вывода, плз. https://pastebin.com/WszHK8yk
Вот тут написано, что было найдено в аналогичных скриптах, где вводится цветом. >>1751660 → Вся сложность в том, чтобы задать всю эту строчку, как переменную и просто присвоить ей цвет, как я понял.
Я хуй знает куда обращаться с такими узкоспециализированными вопросами, но может в этом тредю найдутся люди которые поднимали сервер на Sanic внутри WSL.
>>1752264 Да какая-то куча трейсбеков при попытке это дело просто поднять. Хз какой host и port параметр указывать: 127.0.0.1/8080, 0.0.0.0/8080, localhost/81, ничего не подходит, я эти параметры минут 30 перебирал. А трейсбек один и тот же: File "uvloop/loop.pyx", line 1879, in create_connection File "uvloop/loop.pyx", line 1858, in uvloop.loop.Loop.create_connection ConnectionRefusedError: [Errno 111] Connection refused
Я уже по всем фреймворкам и кейвордам загуглил. Потом пошел, достал ноутбук с 20.04 убунтой, как и версия wsl: все запустилось. Как он может connection refused к локалхосту выводить?
>>1752283 Да так можно вечно перебирать. Ладно, спасибо за помощь, хуй знает, это наверное в фреймворках какая-то проблема, есть какие-то особенности в их работе шо их в WSL не запустить, так как python3 -m http.server поднимает спокойно 0.0.0.0/8000 в терминале.
>>1752153 Джанго и немного фласка у них. Но им вроде как похуй на мой выбор Прост для питона есть ебалион oauth2 либ, каждой твари по паре, может кто уже пилил подобное, интересно на чем легче будет
>>1752296 Нет. Это DIY фреймворк. Ещё тебе background tasks самому делать, Pydantic прикручивать и OpenAPI(Swagger). Смысл есть если именно под себя будешь пилить.
>>1752280 → Делаешь инициализирующую функцию где выбираешь радномно время запуска по какому нибудь промежутку юникстайма на конкретный день или как тебе хочется и формируешь таски. Потом берешь кронолибу, которая бы формировала таски в инициализирующей функции по указанному времени.
>>1752329 Вспомнить что? Байтоебство? Тебе шашечки или ехать? Если ехать, то бери фреймворк готовый, если хочешь бенчами мериться и майнтейнить проект то aiohttp.
>>1752400 Я другой нюфак в питоне и вообще программировании: а как работают while true функции? Как часто они проходят этот цикл? Сколько раз в минуту, например? Или они так не работают?
>>1752420 Бесконечный цикл. time.sleep(2) заставляет приостановить выполнение на 2 секунды. Напиши while True: print("Gvido was not right about switch statement") time.sleep(1) И потом попробуй другие значения. Выход из скрипта ctrl+c
Во блин, как во Фласке запарсить текущий url? У меня после редиректа в параметрах url передаются данные (http://myhost.com/#user_id=228), как его оттуда вытащить? Когда делаю:
Сам метод init тоже что ли надо указывать как async? ---
Немного переделал, все работает, но правильно ли? Хз. Вызов create_new_game тоже должен выглядть game = await create_new_game() ? Так же экспериментально было установлено, что в load_questions нужна инструкия return, иначе будет None в переменной, по почему так? await f.read() ведь должен не только возвращать упревление, но и значение, разве нет?
>>1752319 В инит функцию пихать некомильфо. Возвращает же questions.
В if __name__== 'main': loop = asyncio.get_event_loop() game = Game(*args) loop.run_until_complete(game.load_questions()) ,А что вообще должно быть? Aiofiles иногда медленнее отрабатывает чем синхронная. Бывает и такое.
>>1752465 Так работают т.н. SPA-сайты. Логика и интерфейсы на клиенте, на сервер ходят только за данными. Можно повторять эти запросы, можно рендерить страницы каким-то селениумом и грабить готовые. Я хз, что ты хочешь сделать.
У меня два скрипта типа perviy_script.py и vtoroi_script.py. запускаю через консолечку, правый клик в папке python3 perviy_script.py user loh pass pidor ковыряюсь в носу жду, потом правым кликом в другой папке типа python3 vtoroi_script.py linage2_bot_run
И он работает 10 мин и выключается.
Так вот, я хочу это так автоматизировать что бы на ноуте включил, уехал в отпуск а он каждый день это делал вместо меня и в рандомное время типа как человек.
Я так понял рандом должен быть на основе время в системе и вероятности, типа в 16:00 вероятность 50%, в 2часа ночи вероятность 10% и при позитвном отклике вероятности добавить рандомно от 1 до 30 минут к началу запуска что бы не было заметно что чётко включает каждый день сразу в 00 минут.
И как это сделать? Я в программировании ноль....
Сразу на фриланс.ру идти? Мне кажется это все просто должно быть и вы напишете мне на халяву или подскажите что и как это безнадежно я пробовал несколько раз в программирование и не получается
>>1752491 Какие там вероятности, блять. time.sleep(random.randint(1800, 7200)) От полчаса до двух раномная пауза. Потом запускаеешь свои скрипты. И ставишь в планировщике утром и вечером, например.
>>1752122 (OP) Анон ты вчера мне помог определить айпи используя https://api.ipify.org. А можно ли так же вытянуть, что за страна, и вставить, как значение в строчку вывода?
>>1752543 Какую домашку? Я питон в жизни не изучал. Мне просто нужен скрипт, не более. Да и какие домашки, в школе питон что ли проходят? Да и каникулы.
Помогите неофиту плес. Почему когда я перевожу строку с латиницей в байты, то получается: b'abcdeg' А когда перевожу строку с кириллицей: b'\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5' почему так нахуй?
>>1752594 >>1752597 Спасибо вам, запутался из-за того что ожидал что encode() вернет мне строку байтов: encode('abcde') => 97 98 99 100 101 а он возвращает вообще какой то непонятный объект. Пришлось через for вытаскивать значения байтов. Может у класса bytes есть какой то метод чтобы получить сами значения байтов?
>>1752454 >Сам метод init тоже что ли надо указывать как async? Юзай классовые методы типа такого @classmethod async def create(cls): ____connect = await create_connect() ____return cls(connect)
>>1752617 Просто выдает принтабельные символы принтабельными, а так представление не имеет значения, может быть хоть так, хоть эдак. Есть метод hex. Можешь прогонять вручную через list(bytestr).
>>1752619 Ну хуй знает. Тебе ещё тонну handler'ов писать и в продакшен ты его никогда не запустишь. Видел недавно поломанную conda с сервисом на twisted. Ну охуеть чо, что-то лазили менять в API и все слетело
>>1752659 Это непростая тема и мало кто-то в ней действительно разбирается, в основном нужен какой-то злоебучий проект с этим связанный, чтобы влезть туда и таки прохвать чо почем.
>>1752791 >Не нашел где скачать. Хз как правильнее будет скинуть но вот https://dropmefiles.com/MB8Uy Сравнить с первой не могу, т.к. первую не читал, но пока половину этой прочел - в принципе неплохо, если до этого с докером не работал, наверное, даже совсем неплохо будет. Подробные примеры, картинки, команды дает как легаси (которые почти во всех источниках), так и новые
>>1752813 Скачал, скоро залью. Пробежался по оглавлению и книге - выглядит неплохо, пойдет для в ката в докер, вместо листания документации и гугления. На первых парах, есесно.
Суп программач. Копипастаю из faq тренда. Как мне устанавливать модули питона пипом, чтоб модуль был доступен для всех пользователей? Типа если я от админа в консоли cmd напишу pip install хуйнянейм, а потом из под юзера запущу питон, то он напишет, что модуля хуйнянейм нет. И приходится запускать питон от админа. Пять минут в гугле ничего не нашел для винды. Хелп.
>>1753092 Ну ты общую директорию возьми ёпт, у каждого юзера должен быть прописан PYTHONPATH соответствующий. Хотя я бы сразу на venv садился, ибо нехуй
ля, когда захожу на погромач в питоновый тред плашка "избранное/топ тредов" чинится и снова отображает новые посты, мистика. Привет аноны! Подскажите, пожалуйста, материал по сериалайзерам джанго, не могу понять как собрать ответ вида {user1:{phone1,phone2},user2:{phone4,phone6}} из двух таблиц пользователи и телефоны.
>>1752857 Не знал про Пакт, просто искал есть ли новое издание кукбука из шапки, думал мб по аналогии с питоновским кукбуком будет что-то интересное, а в итоге просто неплохая книжка для тех кто с докером не работал, с картинками, объяснениями, ссылками на документацию
>>1752571 Не могу, т.к. у меня остальной скрипт на питоне. Тебе сложно написать несколько строчек решения?
>>1752582 Не понял что это за скрипт? Ты в нем прописал айпи. Мне лишь надо, чтобы на впске, когда мой скрипт на питоне запускается, то он тащил в скрипт айпи + название страны.
С айпи мне помогли. По сути мне нужно, чтобы добавлялась еще одна переменная в строку вывода, а именно страна. Анон, будь аноном, помоги анону!
https://pastebin.com/4zrpxT99 (страна должна в конце строки добавится, как #country (диез в этом случае обязательная часть, которая в итоговой строчке даст понять, что это страна)
Всем привет. Камрады пните в нужную сторону плиз. Есть таблица в экселе и также необходимо сделать в Power BI используя Python. Собственно вопрос питон позволяет сделать подобную визуализацию что бы потом можно было подтянуть данные из БД? Что читать ? Куда бежать? Заранее всем спасибо за ответ
Реализовать демон, который предоставит HTTP API для загрузки, скачивания и удаления файлов - получив файл от клиента, демон возвращает в отдельном поле http response хэш загруженного файла - демон сохраняет файл на диск в следующую структуру каталогов: store/ab/abcdef12345... где в конце - хеш
Удаление и доступ к файлам осуществляются по этому хешу конечно же. На чем пилить? В смысле - я б навалял подобное на Django но тут нужен "демон", че делать?
>>1753620 Все что я делал на этих асинхронках это парсил разные сурсы и записывал инфу на драйв. Мне джангоближе Хз кстати что делать с "хешем". Я б просто uuid намутил и хрен с ним
>>1753638 Скорее всего предполагается, что хеш от содержимого файла даст его уникальное имя. Это будет работать как дедупликация: если много юзеров будут грузить одну и ту же смищную картинку, то система не будет дублировать ее данные, а зальет ее только один раз. Если взять от хеша первые несколько символов, то ты можешь создать подкаталог, в который положишь сам файл. Это нужно потому, что файловые системы обычно хуево переживают миллион файлов в одном каталоге. В каждый из подкаталогов будет падать примерно одинаковое количество файлов с хеш-именами, потому что каждая часть хеша имеет линейное вероятностное распределение.
В общем, твоя задача в том, чтобы получать файл, хешировать его и класть на диск с хеш-именем. import hashlib в зубы и вперед.
Но я бы отдельно заметил - и это был бы хороший знак для проверяющих, что голова у тебя в принципе варит - что этот демон не имеет никакого практического применения, кроме тестового.
1) Тебе нужно место, в которое ты будешь грузить файлы. Если ты данные в памяти на время загрузки, то есть шанс, что вся твоя память будет быстро засрана при большой нагрузке, когда куча юзеров захочет одновременно сложить свои файлы. Надо класть данные на диск во время передачи, а потом от этого уже считать хеш.
2) Хоть задача передачи и складывания файлов является IO-зависимой, подсчет хешей будет CPU-зависимым, так что при одновременно загружаемом большом числе маленьких файлов или меньшем числе больших, система встанет раком из-за подсчетов.
Можешь сказать, что при неизвестном профиле нагрузки имеет смысл попилить задачу на две части: один демон будет принимать и складывать вообще все файлы на диск под временными именами, а второй демон будет просыпаться при определенных условиях (при достижении какого-то количества файлов >>И<< раз в несколько минут), чтобы прохешировать и дедуплицировать данные. При этом задачу именования файлов следует тоже разделить на две части: давать файлам имена по уидам, возвращать юзеру этот уид, а потом, когда хеш будет посчитан, сделать какие-то пометки в какой-нибудь бд про соотношения уида и содержимого.
>>1753655 Джун это. На пистоне прогаю около 1.5 лет но о вкате стал задумываться не так давно. Специальность которую я закончил была связана с инфокоммуникациями поэтому бэкграунд по сетям у меня уже был, но на ней ловить нечего, по крайней мере в России
>>1753674 Спс, годно В задании кстати не определено что это за "файлы" и каков их размер
>>1753685 Раз не определено, то пиши в соответствии с ТЗ и приложи к этому пояснительную записку. Скорее всего от тебя ждут именно решения в лоб и будут не слишком рады, если ты начнешь задавать вопросы без решения. А вот показать, что у тебя есть мозг, все-таки стоит.
>>1753685 Ну сейчас массовый перекат на systemd даже LTS, но внутрянка systemd конечно же отличается. Параметры там например сложнее задавать. Я пилил на systemd, так как ubuntu 18.04
>>1753674 Нинада делать возвращение uuid вместо хеша, у нас так в соседнем отделе завалили чувака, который задачу не по ТЗ сделал, хотя все было хорошо
Кстати, но есть же небольшая вероятность что хеши разных файлов совпадут. Как с таким борятся? В том же словаре питона эти файлы просто будут положены в одну "ячейку-массив" где после совпадения по хешу будет линейный поиск за время О(n), а как быть в остальных случаях?
>>1753724 В systemd Environment задаётся >>1753797 The hash of a file is the hash of its contents. Metadata such as the file name, timestamps, permissions, etc. have no influence on the hash. Assuming a non-broken cryptographic hash, two files have the same hash if and only if they have the same contents.
Это тот же файл будет. Пропусти I/O операцию в таком случае,не?
Ruby JavaScript-дебил вкатывается в тред. Много лет назад вкатился в кодинг через Рубин на Рельсах. Рельсировал недолго, а работу нашёл вообще фронтендером. Сейчас ищу что-то для быстрых бекенд прототипов с норм языком. Node.js естественно пробывал, но ощущения не те. Мозг сопротивляется писать иначе на ноде, чем для браузера. Типа язык тот же, но набор фич разный. В итоге вместо быстрого прототипа я в среднем сижу неделю и настраиваю проект (все эти линтеры/бабель/конфиги баз данных/ормы и т.д.). Помню в своё время как легко было фигачить круды на рельсах. Но рельсы официально ВСЁ. Поэтому выбор пал на Питончик. Аноны поясните чому тут такие сложные инструменты? Попробовал запилить хеллоу-круд на Джанге и началось: 1. Выбери виртуальную среду (venv/pyenv/virtualenv) 2. Выбери пакетный менеджер (pip/pipenv) 3. Создай ручками то/это/поправь конфиг
Я что-то не так делаю? Есть ли что-то для яваскрипт-дебилов наподобие рельсов?
Питон учу чтобы перекатиться потом в дэйта сайенс инбифо: яваскрипт-дебил может перекатиться только нахуй
>>1753923 >1. Выбери виртуальную среду (venv/pyenv/virtualenv) Чтобы не засирать машину десятками сторонних либ ты делаешь виртуальную среду, при переносе на сервер собрать список нужных либ можно 1 командой, а не вычленять и составлять его самому из всех либ что есть на ПК. Если работал на ноде, считай что с виртуальным складываешь все в node_modules в проекте, а не засираешь папками весь ПК >2. Выбери пакетный менеджер (pip/pipenv) Пользуйся пипом и не еби мозги >3. Создай ручками то/это/поправь конфиг Все равно все шаблонно идет везде
Как кстати сервится файл когда юзер запрашивает его через api? Раньше мне приходилось сервить только статику и картинки, с обоими задачами справлялся nginx, когда я ему просто передавал нужный url, а что если юзер запрашивает произвольный файл? Открывать его через open(filename, "rb") норм? Это не дыра в безопасности? И не лишняя ли нагрузка на систему? Есть способы более эффективно сервить файлы в частности в джанго?
>>1754037 > from django.http import FileResponse >>> response = FileResponse(open('myfile.png', 'rb')) А где там дыра? Ну так валидируй тип файла имя по regex. Проверь что это именно имя файла.расширение а не /etc/groups
Аноны, прошел курс по python на coursera от ВШЭ, было кучу задач по матеше и как такого опыта мало дало. Что посоветуете делать дальше?(P.S мне 17 лет, так что универ не вариант)
>>1754139 > думал попробовать на ruby Нахуя. Для этого есть python и R. По ним больше всего инфы, курсов и тд. Дата сайенс очень чего в себя включает. Матеша нужная для машинного обучения, после первого курса норм зайдет, а так у тебя мотивации не хватит разобраться, думаю. Лучше тогда кеггл дрочить и уже потом разобраться как оно работает.
>>1752122 (OP) Слушайте, можно ли в теории реализовать такую задумку на питон kivy?
Приложение для интервального повторения повторения мат формул, значений тригонометрии, интегралов, возможность добавлять свои формулы, значение. Я использую подобное приложение для изучения инглиша, за месяц бустанул словарный запас от нищих 700 слов до 2.4к в реальности чуть меньше, но не намного.
Как перестать писать скрипты и начать писать программы? Непонятно, то ли знания ООП и паттернов проектирования страдают, то ли я в принципе не умею в питоню. Начал писать файловый процессинг с валидацией и шифрованием, тем не менее кажется что мой код - некрасивая, кривая хуйня (костыль). Чего не хватает, что почитать?
>>1754324 Из этого отрывка не совсем понятно чего ты хочешь добиться. DRY - по мне так из разряда того, что ты не должен копипастить свой код на разные методы. Если есть что-то повторяющееся, то выноси в отдельные классы/методы и переиспользуй их.
>>1754309 Почитать пару док по либам, как они работают, и собственно всё. На первом этапе думаю этого хватит. Остальные технические нюансы узнаешь в процессе, если они тебе понадобятся.
>>1754309 Можешь написать жука-спредовика. Мне мой в своё время на пару пива за день наскребал. находил штук 20 полудохлых монет с большим спредом и небольшой активностью, и держал крайние позиции. Не знаю, будет ли сейчас работать. Года 4 назад дело было.
>>1754330 вконце забыл sleep(1) Смысл в том, чтобы повторять выполнение некоторых операций some_fucking_operation(), если они вернут исключение. Операции могут быть разные в разных мястах, и для каждой строки такую обвязку писать неправильно. А штатного метода типа декоратора @repeat(5) для отдельной строки кода не нашел.
>>1754334 Паттерны с guru и брал , в принципе, там классно описано, мне нравится. Знаешь, такое чувство, что в коде слишком много императивщины. Я пытаюсь прикрутить объекты, но основной каркас получается как последовательность инструкций - это так у всех, или только у меня? Собственно я один на проекте и подчерпнуть знания не у кого особо. Листаю гит, смотрю как опытные дядьки делают, но чет не особо выходит, как по мне.
Один из вопросов конфигурации - жескто волнует. Вот у меня есть yaml файл конфигов, как мне заебись описать структуру таким образом, чтобы у меня все поля были описаны по типу гошной структуры. Типо если я напишу:
class Config: class DataSource: url: str username: str password: str ... а потом прочитаю yaml файл с помощью pyyaml, и запишу в поля класса, это нормально будет?
не хочется юзать простой словарь - там не понятно какие ключи есть, а каких нет
>>1754338 Может у тебя изначальный поход немного не тот? Зачем тебе повторять некоторые операции несколько раз подряд. Если это решение каких-то проблем с сетью, то ты можешь на более низком уровне абстракции эти репиты сделать, а потом во всех high level методах переиспользовать один метод, который будет репитить операцию, если не получил ответ например.
>>1754342 Ну пусть будет деление на n, где n - случайное число, или работа с файлом, который может быть занят, или таймаут какой-нибудь, да тысячи применений, а метод по сути универсальный.
Как упорядочить информацию о питоне и его обширных стандартных библиотеках и стоит ли вообще этим заниматься? Я то все время просто гуглю "how to do X in python", и точечно смотрю что я могу сделать и с помощью чего, а что нет и надо искать либы в pip. Меня такой подход не подводил, но что на собесе по этому поводу спрашивают? Я же не скажу им на интервью: "сейчас, загуглю, поищу в доках минут 15 и скажу ответ". Или вот такие вещи как дата классы. Новая фишка, совсем необязательная, столкнулся с ней на моем проекте. Так бы вообще про них не узнал, а выглядит полезно. И сколько еще такого, что просто не найти, так как гайды двух и трехлетней давности?
>>1754408 >Как мне задать множество чисел, например множество K от 1010 до 1020, при этом не храня все промежуточные значения? Через генераторы же: range(10^10, 10^20). Значения будут вычисляться по мере надобности.
Сап дорогие аноны.На связи ньюфаг, который просит помощи у достопочтенных анонов.Суть задачи такова: есть список рандомных строк, и нужно написать функцию которая принимает этот список и возвращает среднюю длину слов в этом списке.Я код накатал, но не пойму в чем ошибка что он не работает.Помогите пожалуйста.Вот то что у меня получилось:
>>1754350 Я для любой технологии собираю книжки формата cookbook. Читаешь оглавление. Примерно запоминаешь что такие то классы задач описаны и потом при необходимости вчитываешься.
Конечно, они имеют тенденцию устаревать. Но можно же с нее начинать. Там точно отфильтрована масса. Эта в 2013 написана :
Python. Книга рецептов / пер. с анг. Б. В. Уварова. – М.: ДМК Пресс, и страниц не очень много - 648
Ну а после pip, нужно выработать некое чувство оценки github. Метрики - звездочки, активность разработчиков, набор открытых и закрытых issues.
Вообще не вижу тут особой проблемы. Поиск новых библиотек так часто у тебя происходит? Со временем ты их все узнаешь и перестанешь беспокоиться.
Шарит кто за pytest? Пробую запустить файст text_name.py через cmd командой pytest -v а он мне PermissionError: [WinError 5] Отказано в доступе В чем прикол? От имени администратора пробовал запускать, конечно. Дал админу полный доступ к дискам и файлам, не помогает
>>1754711 там же где и про python 2.x - библиотека opencv
но вообще, нынче модно image embeding и облачное зрение. Загружается в Гугл картинку - получаешь текст описания. (и продаешь последние штаны чтобы иметь возможность оплачивать счета GCP)
Почему на слудющем шаге ноль записывается в каждый вложенный список массива game_board, а не только лишь в тот единственный на котором остановилась итерация ?
Почему на слудющем шаге ноль записывается в каждый вложенный список массива game_board, а не только лишь в тот единственный на котором остановилась итерация ?
>>1754769 Не понял, нихуя. i == 0, это первый список из массива. И я записываею в этот список цифру, почему записывает и в следующий ведь до i == 2 еще не дошло. Схуя ли он лезет в каждый вообще ?
Как в Джанго или в другом веб приложении сделать перенаправление с www сразу на этот же ресурс но без приставки www? У меня просто https://myresource.com бесит когда добавляется www и ничего не открывается
Двачане, как найти стажировку по путону, если я студяга работяга закончивший 2 курс. И сколько времени нужно потратить на получение знания для прохождения стажировки успешного допустим с нуля, хотя не совсем так, ибо в других языках опыта немного есть. На плюсах год сидел по долгу учёбы, потом семак java дрочил и js пол годика. Но всё дальше лабораторок не заходило, что грустно. Вот решил в питон вкат оформлять тотальнофинальный так что задаю вопрос сюда. Алсо как питон для спортивного программирования, а то после курса дискретки хуяка стоит на это. Прямо хочется попробовать. И если не трудно там около роудмап какой-нибудь мне дебилу. Буду премного благодарен, а так же с меня как обычно ни-ху-я
>>1754928 Пиздец твою речь читать сложно крч не осилил дальше вопроса
> Двачане, как найти стажировку по путону читаешь про стеки-хуеки, пробуешь, понимаешь чем хочешь заниматься. Составляешь резюме, смотришь на hh вакансии, рассылаешь по тем которые максимально подходят тому чем ты хочешь заниматься. Первый год работай за символическое бабло в районе 20к-40к, потом можешь перекатываться на человеческую 100к
самое сложное будет не бросить универ на последних курсах
>>1754928 > как найти стажировку по путону Джаст гугл ит. > И сколько времени нужно потратить на получение знания для прохождения стажировки успешного допустим с нуля, хотя не совсем так, ибо в других языках опыта немного есть. Зависит только от тебя. > Алсо как питон для спортивного программирования Медленный, из преимуществ только длинка. > И если не трудно там около роудмап какой-нибудь мне дебилу. Джаст гугл ит.
Господа, помогите понять как в сериализаторе ДРФ сделать обратную вложенность. Вот у меня есть модель "сеансы" которая определяется внешним ключом к "фильмам" и в.к. к "кинотеатрам". Если я беру стандартный пример из доки. Во вьюхе беру "фильмы" и собираю сериализатор по этой модели с дополнительными полями "сеансы" которые получаю через обратную привязку и указанием в поле "фильмы" модели "сеансы" related_name. Получается я разобрал свои "сеансы" по фильмам, а как разобрать "сеансы" по фильмам и по кинотеатрам одновременно, чтобы была структура такого вида {фильмы: [фильм1:{названиеФильма, ещеКакиетоДанные, кинотеатры: [ кинотекатр1:{названиеКинотеатра, ещеКакиетоДанные, сеансы: [ сеанс1:{данные1бданные2}]}]}]}
Гайс! Начальство въебало говна и решило, что я прогроммист и в общем надо автоматизировать обработку эксель файлов. Помогите понять логику того, что надо сделать. Короче, есть 300-400 одинаковых по структуре эксель файловс разными названиями офк, их надо объединить в один и по нескольким столбцам просуммировать соответствующие ячейки т.е. чтобы в итоговых ячейке С2-С100 была сумма всех С2-С100 из этих файлов. Какой алгоритм для такой хуйни будет?
>>1754932 >Первый год работай за символическое бабло в районе 20к-40к, потом можешь перекатываться на человеческую 100к Через год он перекатится максимум на 60, если в ДС.
>>1754956 Бля, я потерял письмо с заданием, которое мне давали для стажировки в мыло. Могу просто покидать вакансии стажировок из телеги, где есть питон
>>1754984 Это все этого года вакансии. Просто скорее всего их в открытом доступе нет. Энивей чел спрашивал про то, что нужно знать для стажировки с питоном.
>>1753547 Я не шарю в питоне. Будь бабло щас, заказал бы у фрилансера этот тупой скрипт. Но на мели. Помоги анон, поделюсь парочкой впсок для впн. Можешь свой поднять или можешь моими шс пользоваться. Просто заебался уже вручную каждый раз делать. Так хоть скрипт будет рутиную работу сокращать.
В идеале еще хочу, чтобы вывод конечной строчки помимо выводил куар прямо в терминал. Опять же примеры нашел, но не ебу
>>1753547>>1754995 Ну вот я смог нарыть например, как тащить джейсон >import requests >response = requests.get("http://ip-api.com/json/") >response.raise_for_status() >print(response.json())
А дальше? Как из этого словаря вытащить страну и в переменную его закинуть, чтобы в конечный вывод вывести, включая переменную?
>>1754995 https://pastebin.com/31qJU7Wp Строчки 16, 22, это то, что я добавил. Я бы от халявной впски не отказался. Пиши в телеге @besteady отвечу, если надо ещё как-то поправить
>>1754987 Рубрика вопросы от ретарда продолжается. А с какого момента можно считать, что я знаю питон и могу кидать заявку, а то питон как и почти любой другой яп это ебучий океан бесконечного познания и досконально его знать скорее всего нельзя
>>1754999 > А с какого момента можно считать, что я знаю питон и могу кидать заявку, Вот тут я кстати не смогу ответить. Но вообще это наверное можно нагуглить, какие вопросы спрашивают на собесах по питону.
>>1754946 Не совсем понял структуру моделей, но если судить по примеру с JSON`ом, то делай по возрастающей, сериализатор к сеансу, потом сериализатор к кинотеатрам, в котором поле сеансы сериализуется с помощью прошлого, потом также для фильма.
>>1755030 Я так же размышлял, но видимо мне не хватило мозгов это реализовать. В доке приведен пример где "агрегрирующая" модель(типа сверху json идет из первого ключа к последующим) выводит в себе другую модель. если провести аналогию, то "альбом"в примере, это мой "кинотеатр", а "трэк" - это "сеанс". Вот подобное одиночное я могу соорудить, а что-то отличное от доки я сделать не могу. Типа собрать кинотеатры по сеансам, я хз как. Если подскажите, что гуглить или как делать буду благодарен.
>>1755072 >Вот подобное одиночное я могу соорудить, а что-то отличное от доки я сделать не могу Так просто сделай одиночное, а потом добавь еще 1 слой, там же в доках показано как сделать их еще и для записи. >Типа собрать кинотеатры по сеансам, я хз как. Фильтр по квери параметрам?
>>1754998 Добавь try...except иначе на таймауте или недоступности все будет крашиться. Например глюк DNSresolver или задержки на линии. Я попадал на такое с aiohttp. >>1754995 Сразу нельзя было сказать? Но на твоем месте я бы попробовал вкатиться в скриптоебство. Просто потому что в следующей реализации что-то поменяется или придется что-то расширить. Понятно что сейчас у тебя "дедлайн", но так-то азы выкурить легко.
Это сводный отчёт что-ли? Представь что все файлы у тебя это листы excel. Скриптом читаешь (скорее всего придется делать мультипоток) все файлы, сохраняешь в массивах необходимое и потом пишешь в итоговый (сводны отчёт) файл. Однако если количество ячеек (т.е. массивы разные по размерам) придется приводить их эталону. Например если массив А имеет 20 элементов, а массив В 18 элементов, то либо ты создаёшь маппинг А['А1':10, 'A3':20]..... B['A1':30, 'A2':10]...., либо считаешь сразу, что если в сводном ячейка есть, а в исходном нет, то добавляешь в массив исходного значение 0 с индексом отсутствующего элемента. Как-то так. Попробуй нарисовать, мне лень.
>>1754960 открываешь exel файл в pandas, сохраняешь данные в этом файле в отдельный дата фрейм где будут хранится все объединенные файлы, потом открываешь следующий exel файл и конкатинируешь его к тому дата фрейму, потом как нибудь посчитаешь сумму по строчкам или столбцам смотря как тебе надо
Как создать внутри класса счетчик его экземпляров?.. Ну допустим у меня есть переменная класса MyClass.counter и она увеличивается при каждом вызову __init__, но как ее уменьшать при удалении?..
Привет, как удалить строку в файле, зная её номер. К сожалению встроенного простого средства для этого я не нашёл. Конечно можно сперва прочитать при помощи readlines Затем удалить элемент по индексу и получившуюся парашу записать в файл переписав всё содержимое Может быть знаете вы знаете более изящный способ?
Есть ли какой-то cheat sheet чтобы проверить работу или наличие какой-либо стандартной функции или либы для конкретной версии питона. Проект работает на 3.5.9, но совместим с 3.6.8 и пишу на нем. Хотел использовать fстринги, но заметил что они только в 3.6 появились. Не хочу все время ловить ошибки на CI/CD.
>>1755136 >Понятно что сейчас у тебя "дедлайн", но так-то азы выкурить легко. Нет никакого дедлайна. Я для себя это делаю. Просто нехуй заняться, застрял из-за вируса, и без впн нихуя не работает. Заодно и решил настроить скрипт, т.к. пробую разных хостеров и утомился каждый раз вручную прописывать.
>Добавь try...except Так помоги, добавь. А то может чел выше не увидит.
>>1755429 Да, можно делать for line in fh >>1755429 Поэтому можно делать так ^, через тот же enumerate, построчно читая и записывая и пропустив нужную строчку.
Какой пайтоновсвкий фреймворк для GUI посоветуете, чтобы максимально быстро и беспроблемно забабахать вот такой простенький интерфейс, как на пикрелейтед? По сути, слегка интерактивную таблицу. В ячейки периодически текст выводится.
>>1755327 >>1755084 Ребята спасибо, но видимо я слишком туп чтобы это сделать upd: >Сериализатор внутри сериализатора Переопределение метода помогло, спасибо
>>1755877 Норм. А че? Там нужно знать питон и статистику в рамках вуза. Дальше ковыряешь вилкой данные и подносишь на блюдечке настоящему ML-щику. До нейросеток не допустят еще 5 лет.
Там альфу джанги 3.1 с асинхронными вьюхами выкатили https://docs.djangoproject.com/en/3.1/releases/3.1/ Есть вообще существенная разница между деплоем wsgi и asgi приложений? Раньше только с синхронными дело имел
>>1756008 1. Хрюша может просто скипнуть твое резюме без объсянения причин 2. Надо будет выполнить тестовое прежде чем попасть на собес 3. Помимо пистона придется расшарить еще N дисциплин, например базовую настройку серваков, протоколы, sql и nosql бд, линух, докеры (опционально)
Можно как-нибудь посылать запросы с одного и того же айпи всегда? Или только за бабло наверное? Пишу тут программку чтобы статистику из дрочильни загружать, а там апи токен к ip адресу привзан какого-то хера, а он меняется постоянно разумеется.
Антоха, как сделать вот такое отложенное поведение:
1. при первом вызове функции она создаёт таймер на N секунд и уходит спать или отдаёт контекст. 2. если во время этих N секунд эта функция будет вызвана снова, к таймеру добавятся ещё N секунд. 3. если прошли N секунд и эту функцию никто не вызывал, то она что-то делает, а потом удаляет таймер.
сам я ещё никогда ничего толкового не делал с асинком или потоками, так что не знаю как подойти к этому. возможно есть какой хитрый функционал в стандартной библиотеке, но я не знаю.
>>1756292 >>1756301 Ну я и говорю что за бабло. Ок, спасибо. Просто не такая уж важная информация, чтоб за неё платить. Хотел просто попробовать бота написать, а идей не было. Вот подумал типа можно бота сделать, который статистику об игре будет выводить или про кланы. Хотя вот 2 дня токен не обновлял, а он работает до сих пор.
Вообще, я тут ещё всё это захотел в класс запихать чтоб круто типа. Гляньте плз, так вообще делают? По-моему удобно. Я типа создаю игрока, а потом всякими методами что надо получаю. А потом можно будет создать класс про кланы и унаследоваться от этого класса и типа к каждому игроку клана применять методы игрока. Я правильно понимаю суть ООП, лел? Ну типа норм в конструктор запихивать запрос, сохранять весь ответ, а потом уже применять к этим данным методы? >>1756287
>>1756417 Сорян, хрень какую-то написал. Чего я там наследовать буду, если запрос в конструкторе. Надо будет просто для каждого игрока в клане свой объект создавать и все.
Пацаны, помогите с матрицами, нихуя не понимаю. Нужно обойти матрицу и найти кратчайший путь от первого элемента к последнему. Патрица NxM Крашусь уже на попытке обойти матрицу, так как ебашусь об границу, а как проверить границу матрицы - хз. Я понимаю, что должно получиться что-то типа дерева и в конце минимальный находим и все. Помогите плиз
>>1756567 Сразу все поменять сложно, поэтому постепенно делают. Сейчас можно уже в каких-то отдельных вьюхах пробовать мутить, потом ещё че добавят. Так шаг за шагом и релизнуть через год-два
>>1756540 Ты попробуй себя прочитать и понять, что ты написал. Может сам до идей каких дойдёшь.
Как у тебя матрица задана? В каком формате она тебе передаётся? Что ты подразумеваешь под "обойти матрицу"?
Матрица эта таблица NxM. Таблицу можно совершенно по-разному хранить. Это может быть одномерный список, список списков, или ещё что-нибудь. Элементы могут быть совсем разными. Обойти можно граф, но не матрицу, остаётся лишь догадываться, что путь может состоять из соседних ячеек вбок или вверх.
Что такое "кратчайший путь"? Как ты считаешь длину пути, метрика какая?
Вот видишь, сколько вопросов. Если ты ответишь на них, вероятно ты сам решение придумаешь. А пока не ответишь, только гадать остаётся.
Как на низком уровне обрабатывать (принимать и отсылать) rest-запросы в Питоне? Я нахерачил несколько View на джанго rest но это не дает особого понимания работы всего механизма
list = [1, 2, 3] for a in list: if a == 1: do something continue elif a == 2: do something continue elif a == 3: do something continue else: do something
Нужны ли тут continue? У меня программа построена так, что она войдет только в одно условие на каждом проходе цикла, но я хотел еще сделать чтобы она не проверяла на соответствие остальные условия, после того как нашла что хотела. Или питон это сам делает?
>>1756836 Какие кстати есть нормальные бэкенд фреймворки для Пистона в 2020 кроме Джанго? Предпочтительно с асинхронностью Просто смотреть в сети этот лол, по числу звезд на гитхабе например Фласк стоит на 1м месте среди всех питоновских фреймворков, но бля Фласк это ж тупое говно тупого говна
Дорогие аноны, прошел курс от ВШЭ и хочу спросить, что делать дальше? Основу понял, но не уверен, что это вся. Так вот вопрос, стоит ли переходить на следующий уровень, а именно django или лучше почитать больше литературы?
>>1757089 >курс от ВШЭ Если в этом курсе не было: баз данных, контейнеров, линуха, базовых алгоритмов, TCP/IP, основ борцовской техники и мастер-класса Гордона Рамзи, то курс твой и выеденного яйца не стоит
Сап аноны, Вот есть сайт, на котором через время появится кнопка, однако на данный момент ее код отсутствует и появится лишь с обновлением. Возможно ли как-то прописать код для нажатия этой кнопки заранее? То есть прога будет работать и при обнове сайта она находит кнопку и нажимает ее. Если нет, то вопрос другой - как на Manjaro заставить выдавать звуки? На винде был winsound, тут же не понятно, print('\a') и подобные команды для alert звука не срабатывают. Причем на винде\онлайн компиляторе работает и видимо именно ОС блокирует этот звук
>>1757148 А как я буду обращаться к кнопке если не знаю ее id? Идея вообще была, что селениум открывает браузер и находит ее, только как все это реализуется без знания того как будет выглядеть код кнопки не ясно
>>1757037 Самый "взрослый" это FastAPI. Нагрузили всем необходимым, но можно и на Starlette делать (FastAPI на его основе сделан). Sanic вроде как ещё быстрее, но количество issues удручает. Aiohttp нормальный такой скелет для создания своего фреймворка. Да и погуглить можно python3 asyncio web. У FastAPI и Sanic ооочень годная документация. У FastAPI есть свой CookieCutter образ как для Django. В комплекте FastaAPI+VueJS. Как запускаться: Linux, так как uvloop на шиндоус не завезли и uvicorn дропает поддержку IOCP + nginx + gunicorn + uvicorn + starlette/fastapi. Nginx идёт с поддержкой JS внутри, так что дохуя можно и там валидировать или же изменять запросы на сам бэк. Gunicorn это WSGI, а uvicorn ASGI и занимается как раз uvloop петлей и другой логикой для асинхронного фреймворка. Вот так на пальцах. Для ORM GINO или peewee.
>>1757216 Кривой. Есть peewee-async. GINO пока только postgres поддерживает, хотя это самый адекватный вариант. Tortoise ORM двигается медленно (сука, каламбур) в версиях, но поддерживает все SQL кроме корпоративных и хочет взять лавры SQLAlchemy но в асинхронке. В peewee хоть связи объектов нормально можно выстроить. Как вариант... Возможно. Вообще перекат на GraphQL и тогда похуй на все.
>>1757222 > GraphQL мне оч нравится он идеологически, но вот писать эти query резолверы выглядит как шаг назад по сравнению с пайдентик+фастапи. Если есть опыт, то не подскажешь чего годного погуглить чтобы сделать графкл апи?
>>1757210 Совсем FastAPI не зашел, ну его нахуй. Aiohttp/falcon/flask - ван лав. Gino это отдельный пиздец, мне иногда казалось, что это говно нихуя не продакшен-рэди. На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ, а ебли меньше. Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже. Мимодругойанон
Вопрос знатокам: Какие реальные задачи помогает решить использование асинхронного веб-фреймворка, в отличие от синхронного?
>>1757223 >мне оч нравится он идеологически, Переизобретение SQL для джаваскриптодебилов? чем? это же полностью ебанутая хуйня, которая со временем пройдет
Вот кстати немного мудрости от залетного зумерка с Хабра, который возбудился от фразы "GraphQL" но не воодушевился "нормальной формой", ибо на одной мухосранской конфе с нее повели носом
>>1757466 Не помню на память, какая нормальная форма о чём, но все они о том, чтобы избежать дублирования данных, чтобы не хранить те данные, которые можно получить из других.
Это здраво в академическом плане, решает проблему синхронизации данных при изменении, конфликты соответствующие и т.п., но мягко говоря не практично, когда надо лезть в десяток зависимостей ради получения каких-то данных, когда нельзя кешировать, делать агрегаторы и т.п. Ну бред.
Надо хорошо понимать все плюсы и минусы, та вещь, которую в теории надо знать. Академическая наука.
Все эти GraphQL... Красивая идея, но реально ведь масса проблем с перерасходом ресурсов, с безопасностью и другим. Конечно круто, что пользователь может запросить любые данные, но за каждым запросом стоят ресурсы по его обработке, возможные оптимизации запросов, права доступа и т.п. В итоге получается, что просто нельзя позволять произвольный доступ к данным, надо втыкать костыли и оптимизации. В мечты о вселенском счастье начинают приходить проблемы реальной жизни.
>>1757378 А ты ждешь что если нумерация 1., а не 0., то это готовое к продакшену? >Совсем FastAPI не зашел Ну хуй знает. А что именно не так? Он под влиянием Джанго и Фласки же создавался. >На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ Это даже нагрузкой нельзя считать. >Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже. А что там у тебя такое CPU bound? Asyncio это же вообще про другое.
Run uvicorn --reload from the command line for local development. Run gunicorn -k uvicorn.workers.UvicornWorker for production. Additionally run behind Nginx for self-hosted deployments. Finally, run everything behind a CDN for caching support, and serious DDOS protection.
Сами разрабы так советуют. В принципе uvicorn за nginx reverse-proxy нормально работает.
Вся разница по сути. Ну или если хреновый вариант (почему я смотрю в сторону GraphQL) и для выдачи результата нужен запрос в несколько БД (MySQL, PostgreSQL/Redis), то можно их выполнить таким образом
async def get_from_rdbs(id): data = .... # коннектимся и получаем результат, надо делать обработчики ошибок и прерванного коннекта return id, data
async def get_from_memory_db(id): data=.... # то же самое
async def log_operation(log_data:str): # пишем асинхронным логгером запись, что были запрошены данные тогда-то и тогда, можно ошибки записать сюда
@app.get('/user/{id}') async get_user_by_id(id): tasks = BackgroundTasks() tasks.add_tasks(log_operation('Requested data of user ID {id}') gathering_tasks = [] gathering_tasks.append(get_from_rdbs(id) gathering_tasks.append(get_from_memory_db(id) rdbs_result, memorydb_result = await asyncio.gather(*tasks)
return JSONResponse({'SQL':rdbs_result, 'Redis':memorydb_result}, background=tasks) Сначала ответ, потом логирование. Возможно Celery в этом плане лучше, так как в pending tasks в таком случае ничего бы не было. А так добавился таск логирования.
Используем асинхронные библиотеки чтобы не блокировало asyncio loop. SQLAlchemy сразу на выброс
>>1757550 Мда, ну такое себе, спасибо, антош. >>1757530 > А ты ждешь что если нумерация 1., а не 0., то это готовое к продакшену? Тогда не понимаю чому ты ее тут указал, она ж не готова для спокойного запуска и работы. peewee неплоха, но чот непривычно после алхимии. АсинкПГ норм, но привязка к постгресу не всем подходит. > >Совсем FastAPI не зашел > Ну хуй знает. А что именно не так? Он под влиянием Джанго и Фласки же создавался. Под влиянием то да, как-то жерез жопу сделано, как по мне. > >На практике же оказалось, что ебучие 20-30рпс с жсоном, фласк держит збс, как и ФастАПИ > Это даже нагрузкой нельзя считать. Можно. Во-первых это не малые значения, во-вторых каждый запрос ещё идёт в бд, что тоже даёт нагрузку. > >Да, фласк проц грузит больше, но в пределах разумного, железо одно и тоже. > А что там у тебя такое CPU bound? > Asyncio это же вообще про другое. Хм, у меня - ничего, фласк запускаю с uwsgi и он создаёт процессы/потоки, в них идёт обработка запросов, поэтому и потребление ЦПУ возрастает.
>>1757566 >Хм, у меня - ничего, фласк запускаю с uwsgi и он создаёт процессы/потоки, в них идёт обработка запросов, поэтому и потребление ЦПУ возрастает. Например, у тебя будет по 300-400 запросов в секунду в базу, засирать все процессами/потоками можно только ограниченно. Так же тебе не дадут всемогущий цпу и для оптимизации утилизации ресурсов юзается асинхронность, т.к. все эти 300 запросов можно обрабатывать в одном потоке.
>>1757574 Когда будет пиковая нагрузка в 60%+ по ЦПУ я возьму новый сервер и сделаю балансировку запросов через нжинкс. Она и сейчас есть, но джаст фор фан. Но суть я уловил. Для небольших проектов хватает синхронных фреймворков, но опыт работы с асинхронными - жирный плюс.
>>1757566 Ну ты хотел разницу увидеть ASGI/WSGI вот она, а чем асинхронные либы отличаются от обычных тебе >>1757574 рассказал.
Если сравнивать треды и корутины, то тут без бенчмарков все ясно, просто посмотри на htop. Даже в idle режиме полный пиздец творится. >>1757592 >Когда будет пиковая нагрузка в 60%+ по ЦПУ Ну везет, хули. А бывает и так: перенесли все с Windows 2016 с 2/4 core 4 Gb на писюльку 4/4 (Celeron) с 4Gb, но уже на Linux. Так там охуенно удалось развернуться и въебать Process и разелить логику с монолита на отдельные сервисы. Когда говорил: "а не дешевле ли взять одну хорошую машину и запустить все в Docker" мне сказали что денег не запланировано, баста.
По сути это 10 объектов с такими вот мини серверами. Каждый со своей логикой и задачами.
>>1757594 Ну и вдовесок. Задача такая чтобы логика отрабатывалась именно на локальных серверах, единый йоба сервер нельзя. Нет гарантированного канала связи. В ином случае все бизнес процессы встают колом.
>>1757592 >Когда будет пиковая нагрузка в 60%+ по ЦПУ я возьму новый сервер А потом тебе девопс говорит, что бы ты шел нахуй и переписывал свой говнокод, т.к. на новый сервис денег не выделили
>>1757619 Потому тебе дают фреймворки и инструментарий, чтобы не городить велосипед.
Ты же должен понимать, что если куча данных бизнес-логики хранится в памяти (даже не NoSQL), а просто в виде словарей, объектов тем больше у тебя ресурсов требуется. И не всегда это решение лучше чем чтение с диска или по сети.
Раз тут асинхронная шняга пошла, то вопрос, как вы решеаете проблему гонки в микросервисах? Я вижу два варианта: Первый, завести хранилище типа etcd и при апдейте делать проверку лока и реджектить запрос. Из минусов я вижу сетевые задержки и новую точку падения. Второй, делать шардирование по ключу между несколькими инстансами и выполнять их последовательно. Тут минусы в настройке балансировщика (хз даже что тут юзать, на ум только кафка какая нибудь приходит) и более сложная реализация (хотя может и нет, так как никогда такого не делал)
>>1757621 Ясно, понятно, никакой конкретики. А так, я новичок и мне не понятен твой бугурт в мою сторону. Я же не могу понять, хороший ли этот курс или нет, т.к. другого я не видел.
народ, вопрос по Django Передаю в Шаблон некий контекст(к примеру 100 записей из Модели запросом Model.objects.all()) Как из шаблона вызвать к примеру - Model.objects.all()[-10] То есть мне надо 10 последних записей нарисовать в шаблоне циклом
>>1757602 Сервер стоит 5-10-15$. Если выросла нагрузка == пришли клиенты == получили прибыль. Либо бизнесс одобряет горизонтальное масштабирование и загребание $$$ дальше, либо нахуй.
Как попасть на работу джуну ? Живу в дс2, смотрю объявления на хх, так без опыта там их штук 20, 10 из которых занесло туда кривым поиском и ищут там с +3 года опыта.
Посмотрел я такой про fastapi и решил заделать на нем бота для телеги (логика связана с обращениями к вк через их апи) но сцуко че-то взять в толк не могу: обращения к бд же внутри роутов через Алхимию будут синхронными... как добиться асинхронного чтения из бд?..
>>1757909 >Что же рыночек так порешал то На западе тонны перекатывающихся в веб парашу дата саенсистов/аналитиков /матанофизикохимиков/ебланивших компутер саинтестов и инженеров некуда девать
>>1757918 Для ажахов и подобной хуйни проще подсматривать и повторять запросы, так даже проще. Исполнять жабаскрипт в большинстве случаев нужно только для всяких челленджей и подобных защитных шняг. Для них тоже можно обойтись без браузера и гонять через ноду.
В скрипте запускаю мейн с n=4. Каждый таск делается 3 секунды. Если делать как на первом пике, то выдаёт Task was destroyed but it is pending! потому что скрипт выполнился за 1 секунду и таски не успели сделаться(я так понимаю). На втором пике с костылем в виде слипа всё норм работает.
Как сделать нормально? Уже спать надо, и не могу сообразить к чему тут надо хуй shield приложить
>>1758193 Я не асинхронщик, но что то дофига вопросов. Если у тебя функция мейн асинхронная, то откуда и как ты ее вызываешь? Почему луп создается внутри мейна? Как ты саму функцию мейн в луп положишь? Насколько я знаю, луп ДОЛЖЕН быть только один.
>>1758206 Он же не создаёт луп, а берет активный. Да и лупов может быть несколько, только луп внутри лупа создать нельзя, на сколько помню, ну или я с трэдами путаю.
>>1758193 asyncio.create_task(coro, *, name=None)¶ Wrap the coro coroutine into a Task and schedule its execution. Return the Task object.
If name is not None, it is set as the name of the task using Task.set_name().
The task is executed in the loop returned by get_running_loop(), RuntimeError is raised if there is no running loop in current thread.
This function has been added in Python 3.7. Prior to Python 3.7, the low-level asyncio.ensure_future() function can be used instead:
Пробуй так и запускай asyncio.run(main()) в debug=True. Иначе так и будешь гадать. Loop пока нужен для того чтобы сигналы ловить, asyncio.run без обработчиков идет, но думаю в 3.9 добавят, так как сейчас херня без задач.
как в pandas сделать в целом объединение данных из нескольких журнал по "поиску ближайшего соответствия" ?
То есть, у меня есть php fpm access.log, где посчитаны доскольнально cpu time и еще два лога в котором точного идентификатора позволяющего объединить запросы в принципе нет. Но если смотреть глазами, то понятно какой запрос где. Можно объединить по IP и времени (а по script ptah нельзя, так как там всегда index.php ) Просто время будет отличаться на миллисекунды. (А может и больше. Иногда сервак может начать тормозить особенно сильно)
Питоногоспода, я не программист, но периодически возникает желание помониторить и понаблюдать некоторые процессы в социалках. Везде пишут, что питон хорош для начинающего лоха и что им можно парсить ресурсы. Или есть что-то более подходящее для моего случая? Кроме хакселя. Собирать инфу хочу с блогспота, жж, фб, вк, ютуба и т.п.
>>1758291 Флаг дебага что-то вообще ничего не дал. Но я всё равно нашел решение кмк - мейн закрывался после того как generator отработал, и ему похуй, что там таски ещё крутятся. Поэтому надо их ждать; добавил это в строчках 17, 18. код: https://pastebin.com/M149Lpyd
>>1758418 scrapy, документации официальная очень толстенная. у ВК есть свой API, у ФБ тоже. Я так понимаю как раз защита от ботов коим scrapy и является. >>1758442 Значит в IDE что-то не включил или в environment
There are several ways to enable asyncio debug mode:
Setting the PYTHONASYNCIODEBUG environment variable to 1.
Using the -X dev Python command line option.
Passing debug=True to asyncio.run().
Calling loop.set_debug().
Я так и подумал что ты не ждал таски. Ты mutable объект что ли изменяешь? gather может выплевывать или отрабатывать exception. Я вот тоже теперь штудирую high level методы для asyncio в Python 3.8, только привык к чему-то уже меняют. Выйдет 3.9 и все по новой блять
>>1758448 Но ты учти что у тебя файлы пиздец какие огромные будут, ротацию делай обязательно или сращу складывай в БД. Я ничего лучше не придумал как взять для этого Yandex Clickhouse. Клиентов овердохуя, работает по HTTP, есть реализация ORM и asyncio (не ORM). При том можно брать JSON файл и сразу пихать в таблицу. Можно вообще нативным клиентом для линуха по Cron отрабатывать >clickhouse-client -n --query="SET input_format_skip_unknown_fields=1; INSERT INTO event FORMAT JSONEachRow;"
Алсо, тут ребята запилии свой логгер на базе logging, который сразу в JSON формате пишет и добавляет немного асинхронки. На самом деле они пишут, что это не полная асинхронность, но зато сразу обычный синтаксис для корутины.
>>1758450 >Ты mutable объект что ли изменяешь Нет, код же прикрепил. Этот код - подзадача на пути решения другой, которую я придумал.
>Я вот тоже теперь штудирую high level методы для asyncio в Python 3.8, только привык к чему-то уже меняют Ага, я меняю свой майндсет yield-based корутин на asyncio, и мне пока второе привлекательнее выглядит, более user-friendly.
Хм, а если БД стоит на удаленном хосте а не на локальной машине, то по идее для запиливания базовой асинхронности достаточно просто посылать асинхронные request-ы к ней через cursor = await Model.query(data), ведь так? Так кто-то делает?
>>1758523 Разница в том, что запрос идет не сразу на ssd а в сеть. Пока он летит в сети, можно другие задачи исполнять. Даже если бд не поддерживает параллельное исполнение операций и ставит локи на каждый запрос, серваку будет похрен, пока от бд не придет response, он может обслуживать других клиентов
>>1758548 И? Че ты мозги ебешь? всю дорогу в вебе это срали на это и никогда не писали асинхронно. Сайты открывались и всем было заебись. А тут им внезапно в джанге понадобилась асинхронность
Анончики, как учить джангу лучше всего? Может-быть есть курсы какие хорошие?, и можете подкинуть задач для реализации, чтобы я попутно изучая мог это прорабатывать? Хочу в будущем бэком заниматься на питоне.
>>1758555 Малаца. Разница между БД на localhost и remote какая? Ну latency.
host 127.0.0.1 The host name or IP address of the MySQL server. port 3306 The TCP/IP port of the MySQL server. Must be an integer. unix_socket The location of the Unix socket file.
На localhost ты через unix_socket что ли коннектишься? Вряд ли.
Ну будет отклик не 0.02мс, а аж 0.1мс если канал не полное дерьмо. Какая тут разница в реализации если ты абстрагируешься от конкретики? Сейчас БД на локальной ноде, потом хуяк и на ноде в удаленном ДЦ, а у тебя кода заточен под единичный случай.
>>1758577 >На localhost ты через unix_socket что ли коннектишься? Вряд ли. ахах. на самом деле в большинстве случаев - да. ну в стандартной сишной либе mysql это так так работает. волшебное имя.
>>1758589 Учтем что Linux конечно же лучше и надежнее других систем, но unix_socket в отличие от inet_socket сразу же дает ограничения. Допустим есть кейс, когда надо разнести прложение на составляющие. Возможно нам даже дадут выделенный сервер для БД, а возможно заставят страдать хуйней и паковать вещи и пиздовать на улицу все в контейнеры, которые ну допустим запущены на той же машине. Тогда что? У тебя изоляция сред, вот прокинутый маршрут до контейнера и все. К1: БД#1 К2:БД#2 K3:Бизнес логика К4:Веб хуйня. И ебись как хочешь. В принципе это и на железе можно и нужно так делать (есть опыт говнокода, который потом со слезами на глазах разносил согласно логики)
Смотрю витео с ютубчика про бинарные операторы. Остановился конкретно на НЕ ака ~ (отрицание). Поясните, какой смысл менять знаки на противоположные, если в итоге можно было просто поменять знак и прибавить 1 к последнему разряду? Какой толк от этого числа с противоположными знаками?
>>1758359 что-то я разочаровался в этой ссанине. дело в том, что pandas.read_csv можно научить засасывать файлы и потом обрабатывать колонки, а js нужно построчно читать.
Не оч. вдохновляет. Как бы загружать именно одной операцией такой файл со строками json ?
>>1759185 Так как же как и с одним файлом. Делаешь glob и в цикле read_excel или еще какой-нибудь read_csv. Обучалок довольно много, но они все будут про рафинированные датасеты. Нахваливают не работу с файлами, а последующую обработку данных из файлов.
Сап двач. Есть хромовский плагин с логин формой. Как залогиниться на джанго сервер? Ведь просто взять инпуты из формы и сунуть в пост реквест я не могу.
Так всё, время пришло, я определился с языком и мне очень зашел пайтон из всех бекэнд языков. Лутца прочитал, всё понял, применил на практике. Вопрос, мне еще пару лет назад понравилась паста про вкат в питон. Есть ли смысл сейчас ему следовать? Хиккующие выблядки будут мне сосать?
>>1759242 не понимаю как у человека осилившего оба тома Лутца могут еще возникать какие-то вопросы. Ты уже должен был устроиться джуном на 300-й странице
>>1759108 js? нихуя не понял из твоего потока мыслей
df.to_json(orient='split') '{"columns":["col 1","col 2"], "index":["row 1","row 2"], "data":[["a","b"],["c","d"]]}' pd.read_json(_, orient='split') col 1 col 2 row 1 a b row 2 c d
>>1759249 >>1759250 Спасибо, поискал, нашел вакансию стажером, буду к собесу готовиться. Хотя по стеку, который они требуют ощущение, что я буду стажером стажера).
>>1759311 На заре своего долбоебизма (ну хули там память, процессорное время. У меня 6 ядер и 24 гига!) Я пробовал SQLAlchemy + pandas для того чтобы заливать таблицу в MySQL. Это... Пиздец. Вот прям пиздец-пиздец. Объект pandas в памяти оставляет такой слепок, что реально думаешь податься в байтоебство. При том там была таблица xls ну наверное 300х30. С json боюсь не лучше будет, ну потом сам посмотришь. У меня просто было 3+Гб логов со всех сервисов за месяц. И тогда уже херово настроенный MySQL захлёбывается.
Немного байтоебский вопрос: если я напишу декоратор для функций, который замеряет их время исполнения и захочу делать import time только внутри scope этой самой функции, то модуль будет импортироваться при каждом определении функции? Или даже при каждом вызове декорированной функции? Просадок по производительности не будет?
>>1759479 Меня заинтересовал этот вопрос. Согласно документации отличия есть: 1. У OrderedDict есть методы для изменения порядка в словаре 2. Обычный dict и OrderedDict по разному реализованы: обычный dict эффективно выполняет свои функции как словаря, то есть быстрый поиск элементов, эффективное хранение, и все такое, а поддержка порядка элементов вторична, в свою очередь OrderedDict эффективно осуществляет изменение порядка элементов, а все остальное для него вторично. 3. OrderedDict при операции сравнения учитывает порядок элементов, то есть: >>> {"a": 1, "b":2} == {"b": 2, "a": 1} #Для обычных словарей порядок не важен True >>> OrderedDict({"a": 1, "b":2}) == OrderedDict({"b": 2, "a": 1}) #Для OrderedDict порядок важен False >>> OrderedDict({"a": 1, "b":2}) == {"b": 2, "a": 1} #Для OrderedDict и обычного словаря, внезапно, порядок опять не важен True 4. До версии 3.8 к обычным словарям нельзя было применять reversed
Возможно, в каких-то отдаленных версиях обычный словарь и вберет в себя все полезное от OrderedDict, и OrderedDict запретят, ввели же в обыне словари поддержку порядка и reversed, но вот пока свои отличия у них есть
Реально импорт делается один раз, то есть инициализация модуля происходит один раз, вне зависимости от того, сколько раз и откуда ты этот модуль импортируешь.
При импорте ведь исполняется весь код импортируемого модуля. Он исполнится только один раз.
Надо изучать стандарт, что при этом реально происходит, я имею в виду механизм копирования имён функций в пространство имён, откуда ты импортируешь, но подозреваю, что это просто копирование одной глобальной переменной, объекта-модуля. Соответственно, накладных расходов считай и нет.
Вот у меня есть сайт где переход на следующие страницы осуществляется не в url (типо не site.com/pages/1..2..3), а с помощью js'а. Поэтому я нихуя не могу получить данные на следующей страницу
Как мне получить их? С селениумом не хочу ебаться.
>>1759495 Нарушение PEP8 да и потом банально такой говнокод сложнее будет читать. Из-за таких вот хуяк-хуяк как хочу так и пишу (camelCase имена переменных и методов) потом вылезают дебильные ошибки. Я бы накорню такую хуйню запретил. Банальное неуважение к чужому труду.
>>1759560 Пишу опять. Я понял что можно выполнить жс код в консоле чтобы он передвинул на следующую страницу, а в какой библиотеке я также смогу отправить на сервер выполнение жс кода чтобы он мне прислал новые html данные?
>>1759612 А у меня автор книжки советует. "Automate Boring Stuff with Python 3"
Also, в PyCharm какой оптимальный способ пробовать новые хелловорды и прочие учебные примеры? не создавать же каждый раз проект? Но плодить говнофайлы внутри проекта тоже вроде как-то не выход... Советы?
Есть вопрос по aiohttp_session Добавил мидлвеар по инструкции. При каждом обновлении страницы пользователем воздается новая сессия (пик 1). Кука на клиент не приходит (пик 2). Чому так?
>>1759641 > Also, в PyCharm какой оптимальный способ пробовать новые хелловорды и прочие учебные примеры? не создавать же каждый раз проект? Но плодить говнофайлы внутри проекта тоже вроде как-то не выход... Советы? Бамп
>>1759463 У тебя какие-то фантомные боли и широкие выводы по одному неудачному эксперименту. В целом, охуенно ,pandas , охуенно быстр. Ведь он использует numpy, а тот байтоебский.
Сап аноны, ньюфаг на связи.Собственно пришел к умным людям за помщью.Есть задача: сделать функцию, которая принимает список строк, эта функция должна вернуть список, в котором содержатся самые длинные слова в этих строках. Собственно нашел вариант, но совсем туплю в том как его доработать под свои нужды.Помогите пожалуйста с этим.Сам вариант: ef longest_entry(lst): total_entries = len(lst) current_entry = 0 longest_length = 0 while current_entry < total_entries: this_entry = len(str(lst[current_entry])) if int(this_entry) > int(longest_length): longest_length = this_entry longest_entry = current_entry current_entry += 1 return longest_length
>>1759967 Ну вот тебе и ответ, что об этом можно думать. Я бы мог затестить, загрузить трек, но и что дальше. Как мне понять хорошо это получилось или нет, если я не знаю чего я хотел добиться этим.
async код из синхронной функции
Аноним25/07/20 Суб 22:00:09№1760171415
Петян, использую стороннюю либу, которой нужно передать функцию, либа иногда дёргает этот калбек. Мне нужно в нём вызвать асинхронный код, то есть передавать управление. как это делается?
Че за ссанина, почему я не могу просто импортировать модуль из той же папки через from .settings import DATABASE_URI: ImportError: attempted relative import with no known parent package
А также не могу произвести импорт вроде: from myproject.settings import DATABASE_URI - в таком случае он говорит что myproject не существует(No module named 'myproject'), но файл же бля лежит прямо в ней нахуй
>>1752315 > background tasks самому делать aiojobs > Pydantic прикручивать Так ли это сложно? > OpenAPI(Swagger) Тут сыглы, сам немало кода написал. Но там история такая, что библиотек хороших нет, не специфично aiohttp.
>>1760283 Можно, но не нужно. >>1760253 Он тебе говорит, что относительные импорты можно только в пределах пакаджа. Это там где ты инит.пу расставил. Это блядь не путь в файловой системе, чтобы ../../../../etc/passwd импортировать.
>>1759960 Это называется числа с плавающей точкой IEEE 754. Эта хуйня такая прямо в железе, там ограниченное количество бит и бинарное представление, которое не всегда хорошо мапится на десятичное.
Я вот сижу пержу, думаю запилисть MultiDict - это как обычный словарь, но ключей для каждой записи несколько. Предыстория такова - есть путь к файлу, и имя проекта в файле (не совпадает с именем, может содержать любые символы и тд). Нужен эффективный поиск как по пути файла, так и по названию.Можно, конечно, хранить все это дело в бд, с индексами по двум столбцам, но что то не хочется. А так сделал мультисловарь - типо {(key1, key2): 'blabla'}. Сет, конечно, можно вроде как ключ использовать, но вот искать только во одной части нет. Каккие идеи?
Так бля, я походу в танке. Вот тут рассказывают про дохренища линтеров для кода, но я просто юзаю PyCharm и он мне в подробностях в реальном времени все подсвечивает. Ни разу не юзал эти "линтеры". Что за прикол?
>>1760541 Ну так в пайчарм встроена парочка из этих линтеров. Ты всю жизнь ими считай пользовался, но не знал. Отдельно они особенно нужны если ты хочешь по рукам пиздить ждунов при каждом коммите.
>>1760490 И создал Гвидо Python и стала всем вокруг хорошо Каждый мог писать код как ему вздумается И каждый мог вкатиться в ОйТи И пришли инфоцыгане и стали коммерцией заниматься На седьмой год взъерепинилось коммьюнити Негоже говнокодить как вздумается, правила нужны И создали PEP8 и было радостно программистам Но горько взрыдали вкатывальщики, не осилили они PEP8 И ересь понесли инфоцыгане выдумав свои правила
>>1760575 Ты вообще в курсе для чего эти неймспейсы создавались?
> Namespace packages are designed to support being split across multiple directories (and hence found via multiple sys.path entries)
То есть, пакадж с инитпай находится через sys.path lookup ровно один раз, дальше все его модули и субпакаджи будут фиксированно внутри этого каталога.
Неймспейсы же нужны чтобы ты мог кусками ставить какой-нибудь огроменный пакадж типа zope и чтобы общий инитпай не перетирался при каждой установке и не удалялся при каждом сносе.
>>1760575 К примеру, когда ты делаешь from jopa import govno, если jopa это неймспейс то попробуется целый десяток путей вместо одного: ./jopa/govno.py /usr/lib/python/jopa/govno.py /home/user/.local/lib/python/jopa/govno.py /usr/local/lib/python/jopa/govno.py и далее. И так каждый раз на каждый модуль. Это не простые проходы по файлам у тебя в проектике.
Ну и в целом, ты всегда ограничен sys.path. Нельзя так просто, без привлечения importlib взять любой файл из любого места в системе.
>>1760632 Да тебе хоть в глаза ссы, всё божья роса. Там почти нихуя не поменялось и инит живее всех живых. Просто добавили возможность зумерам стрелять себе в колено, а они и не против.
>>1760662 > Там почти нихуя не поменялось ты так думаешь?
> Просто добавили возможность зумерам стрелять себе в колено а раньше возможностей выстрелить в колено не было?
напомню, разговор о том что инитпу давно не нужен и вопрос антуана был сколько еще эту устаревшую инфу + собственные фантазии вроде > К примеру, когда ты делаешь from jopa import govno, если jopa это неймспейс то попробуется целый десяток путей вместо одного: ./jopa/govno.py /usr/lib/python/jopa/govno.py /home/user/.local/lib/python/jopa/govno.py /usr/local/lib/python/jopa/govno.py и далее. И так каждый раз на каждый модуль. Это не простые проходы по файлам у тебя в проектике. буду повторять
>>1760672 Окей, если технически тебе мозги вставить нельзя, давай гуманитарно. Найди мне на docs.python.org фразу что инитпу устарел, все срочно перекатываемся на простые каталоги с модулями.
>>1760702 ты про это? > К примеру, когда ты делаешь from jopa import govno, если jopa это неймспейс то попробуется целый десяток путей вместо одного: ./jopa/govno.py /usr/lib/python/jopa/govno.py /home/user/.local/lib/python/jopa/govno.py /usr/local/lib/python/jopa/govno.py и далее. И так каждый раз на каждый модуль. Это не простые проходы по файлам у тебя в проектике.
> Ну и в целом, ты всегда ограничен sys.path. Нельзя так просто, без привлечения importlib взять любой файл из любого места в системе. так нихуя не объясняет зачем нужен инитпу
вот я и хочу чтобы ты разобрался и эволюционировал из кода в стиле > import govno в что-то хорошее
у тебя пытливый ум может быть даже сможешь стать ручным qa когда-нибудь
>>1760714 > Неймспейсы же нужны чтобы ты мог кусками ставить какой-нибудь огроменный пакадж типа zope и чтобы общий инитпай не перетирался при каждой установке и не удалялся при каждом сносе. так это полная хуйня, какой инитпай кем перетирается?
>>1760708 > у тебя пытливый ум может быть даже сможешь стать ручным qa когда-нибудь Ой какой ты смищной. Я уже пуд соли сожрал на импортах вплоть до реализации своего --import-- чтобы сделать сэндбокс не делай так, оно всё равно не безопасно, из банального пустого кортежа можно получить доступ даже к аллаху. Инит расставлять обязательно, кроме случая когда ты знаешь для чего ты его оттуда убрал. Ну можешь ещё в наколеночных проектах не делать, в принципе работать будет, но не более.
>>1760716 Ну смотри. Делаешь ты отдельные пакеты для СУБпакаджей. Чтобы можно было pip install yoba_core yoba_gui yoba_daemon, но при этом не завозить в систему yoba_sound yoba_render. Вот чтобы эта хрень импортировалась через from yoba import gui тебе, по старой системе нужен yoba/--init--.py. И такой же инит нужно во всех yoba__xxx пакаджах сделать. То есть, пакаджи будут конфликтовать по этому файлу, хотя он может быть у всех одинаковый, в том числе пустой. Когда ты сделаешь pip uninstall yoba_daemon, оно удалит в том числе этот инит, чем сломает уже установленные yoba_core и yoba_gui. Вот для такого случая нужны неймспейсы.
>>1758452 бля, меня жаба задушила хранить гигабайты json. переделал эту дрочильню опять на простой классический лог запросов с дополнительными колонками
>>1760941 Ну ты можешь банально форматировать строку '/n /r'. Хорошо когда у тебя формат логов всегда совпадает. Я например записывал request/response в виде JSON, traceback тоже в него выводил. Как итог были колонки logDateTime (DateTime(, logDate(Date), logLevel(String), logSource(String), logData(String). Партиция была по logDate, logLevel, logSource. В итоге нормально все хранится. Ну и выводить удобно. Дело вкуса. По-хорошему вообще надо брать готовые инструменты, если ресурсы позволяют.
Кто нибудь может поучить программированию за не слишком большую денежку? В первую очередь интересует, как работать с def и try/except надо объяснить прям на пальцах. Условно могу писать совсем прямые скрипты, да и то в основном на селениум. А информацию по работе с def try/except я не понимаю без нормального объяснения с примерами. Нужно чтоб я мог задавать тупые вопросы, а мне них легко и понятно отвечали. Учусь быстро и схватываю на лету, когда есть конкретные примеры и конкретика
>>1761102 Меня бы кто научил. Я пришел в этом в году в этот тред и до сих пор удивляюсь. Рандомохуи узнавшие про 2+2 претендуют на каких-то жуниоров. Я в сто раз больше знаю, но боюсь что-то предлагать, потому что не могу себя оценить. 95% постов из серии ололо палка-палка-огуречик-получилось что? Раз в месяц тут бывают ровные пасаны, от постов которых я чувствую тепло в писечке. Как стать таким же и заработать мильйон? Все задатки у меня есть, не хвататет пафоса и университетского понимания ебучих формул. Как стать таким, не ходя в офис к бородачам?
>>1761102 Тут 75% треда из тупых вопросов, возьми какую-нибудь книгу или видеокурс на рутрекере и учи, могу посоветовать "[tceh] Разработчик на Python", там довольно понятно чел объяснял, правда не помню с самых ли основ, и учи, тупые вопросы как и остальные задавай сюда. >>1761140 Ну так попробовал бы сходить на собеседование, анон, вдруг твоих знаний как раз и хватит
>>1761144 Да неудобно задавать тупые вопросы. Было бы проще заплатить по 500 р за урок, чтоб объяснили нормально то, что хочу знать на самом деле. Книги и курсы - пиздец гавно, уровня print("2+2") if = 4 print("ok") else print(not ok)
Это ж пиздец, этому учат по 2 месяца, нахуй оно надо
>>1761144 Я хикка и не хочу не собеседования, но суммы вроде 140к в год меня будоражат. На апворке у меня 15к в год и это более чем для моего мухосранска, а тут в десять раз больше. А тут ещё масковские ололо-жуниоры набегают в тред со своими зарплатами, вот я и думаю.
>>1761148 Я не знаю на какие курсы и книги ты натыкался, но тот же цех там у него вроде был от основ самого питона до бд, легкого фронта и разных полезных либ. >Да неудобно задавать тупые вопросы Анонимная борда, хули тут неудобного. Слишком неудобно - открой приватный режим. >>1761152 >Я хикка и не хочу не собеседования Многие кампании разрешают работу из дома, прособеседуйся а потом сколько хочешь хиккуй.
>>1761154 Я добрался до разбора байткода различных вариантов, но академичного знания не хватило для разбора сишных исходников. А так бы я вам доставлял инсайды как всё работает. Этого очень не хватает в среде питонистов.
Анон, вызывал ли у тебя когда-нибудь страх сам процесс обучения?
Изучаю алгоритмы и структуры данных на питоне и часто ловлю себя на том, что не могу усидеть на одном месте, когда хочу написать что-нибудь своё или делаю что-то по памяти: появляется какая-то пустота в груди, из-за чего приходится вставать и бездумно ходить по дому или лихорадочно переключаться на вкладку с информационным мусором. Может быть это и не страх, но точно какое-то обеспокоенное чувство.
>>1761171 Конечно, решается просто - ставь перед собой какие-то мини цели, мне помогает. Типо - 1 глава - 20 минут всякой хуеты в инете, хождения и т.д., но сначала именно 1 глава, какой бы скучной она не была.
Че делать? Нахуячил пиздатый скрипт, зарилил через pyinstaller exe файл, скидываю на другой пк с вин10, вылетает хуета от смарт скрина типа невозможно запустить, какого хуя? Смартскрин отключить не могу, нет доступа
Понимаю, что многие сейчас обоссут меня или засыпят помоями, но все же, при наличии средних знаний и желании для начала выучить синтаксис, а также при наличии свободных средств, стоит ли купить курсы на Яндекс Практикуме по пайтону? Деньги есть с основной высокооплачиваемой работы не связанной с IT. 85к они просят не проблема отдать. Хочу наставничества и хорошего обучения азам. Жду совета анона. Всем спасибо.
>>1761102 try выполняет блок кода и except'ом ты просто обрабатываешь ожидаемые ошибки ЕКСЕПШЕНЫ, finally выполняешь обязательный блок кода, допустим нужно те обработать логику деления на 0 шобы не пейсать не красивый if пишешь експет ДивБауЗиро и выводишь сообщение
>>1760710 ну я тож туда смарел, только не особо понял шо за байт код, есть статья про то как читать это? или всё шо нужно знать так ето стек который грузит все ето?
Если тут сидят "что мне почитать чтобы ебашить на пихоне как настоящий кодер" сразу пиздуйте на Medium/Habr и смотрите кто и что реализовывал, хоть тот же Хуяндекс в Я.Такси. В живом мире недостаточно просто кодить все на питухоне, часто придется подбирать и другой инструмент для реализации.
Ящитаю обязательно к ознакомлению Redis/Memcached MySQL/PostgeSQL, RabbitMQ/Kafka. Иначе когда спросят а как вы реализовывали NoSQL можно будет жиденько обосраться. Ну и хотя бы раз попробовать Jinja2 Templator и понять что это сука прошлый век и рендерить не на клиенте это моветон.
>>1761690 Какими терминами, братиш? Все гуглится и есть в тех же примерах Django Celery/Redis или Celery/RabbitMQ. NoSQL даже в педивикии описан. OLAP и OLTP там же и с примерами. Хуже чем r/learnpython, пиздец. Пора перекатываться в Go/Julia
>>1761820 Ты жопочтец? Redis как MQ можно использовать, вот только дохуя чего нет в отличие от RabbitMQ. MySQL ещё много где используется. Миграция на Postgres возможна, но не тебе решать когда это делать и будет ли от этого выгода. Хотя если на галере, то похуй. Я не говорил о штудировать. Я говорил о том, чтобы посмотреть реальные живые примеры, а не дрочево Automating Boring Stuff. Пощупать библиотеки хотя бы на примерах.
>>1761346 >Портфолио из 6 веб-сервисов. Вместе они дадут полноценный онлайн-продукт — аналог Netflix Ну охуеть, то-то они слились в порыве страсти с kinopoiskhd. Я не знаю кто эту хуйню затеял, но на Хабре вполне адекватные посты от хуяндекса бывают. Тут же просто очередной хайптрейн по курсам, ещё и C++ для хайлоад предлагают, а не go (политика, кек).
Привет ребятки, студент-любитель джавы в треде. Есть небольшой опыт работы в компании(стажировка) на Спринге. Следующий вопрос: Почему вам нравится питон? Просто, куда не глянь я со своей колокольни не могу найти плюсов. С питоном сталкивался в школе(ЕГЭ на нём писал) и в универе(курс Теории Автоматического Управления) - с каждым разом убеждался, что язык полная х*а для чего-либо больше Хелло Ворлда: - Отсутсвие статической типизации - из-за чего нету нормального аутокомплита в ИДЕ, да и вообще писать неприятно(Да, есть аннотации типов, но они работают через одно место) - Язык медленный - Многопоточность только для IO - ООП полное уг (Даже в JS лучше) - Долбанные __self__, и прочая фигня(Такое даже в C редко встречается)
Так вот, какие у него киллер-фичи за которые вы его любите? У C/C++ наприер - прямой доступ к памяти и скорость работы(при хорошо написанном коде), Java/C# - очень легко писать код, который легко поддерживать(Чистый код так сказать). И так с большинством языков. Помогите найти плюсы, предстоит на нём учить курс Machine Learning а сука так не хочется к этому языку прикасаться - расскажите о нём всё самое красочное, чтобы меня отпустило. Спасибо
>>1761883 > Помогите найти плюсы, предстоит на нём учить курс Machine Learning а сука так не хочется к этому языку прикасаться - расскажите о нём всё самое красочное, чтобы меня отпустило Детский сад
>>1761883 Все завязывается на том, как и где ты используешь язык. Можно сколько угодно орать, что Хаскел для тру-мужигов, но количество вакансий говорит об обратном На Пистоне удобно писать автоматизационные скрипты (часто для линуха), нейронки, управлять кластерами Биг Даты и ебошить микросервисы-апишки (к вопросу "медленности" - тот же FastAPI держится на уровне с Нодой и как правило фреймворк оказывается "медленным" в первую очередь потому что ты делаешь уебанский server-side рендеринг темплейтов или юзаешь неоптимизированные ORM-запросы а не из-за фреймворка как такового, никого не волнует сколько раз за секунду твоя параша может высрать plain text "Hello world")
>предстоит на нём учить курс Machine Learning Ну так ебошь курс не на Питоне. Ой, погодите-ка, остальные курсы ведь каличное УГ и вакансий для них 1.5 штуки
>>1761883 >из-за чего нету нормального аутокомплита в ИДЕ В пайчарме все работает, только для своих функций надо использовать type hints. Для локальных переменных внутри функций необязательно. >Язык медленный Для большинства задач это не имеет значения, а когда имеет, то для питона есть куча библиотек написанных на крестах. Тот же Numpy работает не медленнее, чем код написанный на C++. В крайнем случае можешь сам написать тяжелый кусок кода на крестах. >Многопоточность только для IO Есть multiprocessing, пусть и со своими подводными. Но в целом согласен. >ООП полное уг (Даже в JS лучше) Чего конкретно не хватает? Питон не заставляет следовать ООП парадигмам - как хочешь, так и пиши, но для такого языка это наоборот хорошо. Есть множественное наследование вместо интерфейсов как на джаве, что заебись. >Долбанные __self__, и прочая фигня Это небольшие придирки. >Так вот, какие у него киллер-фичи за которые вы его любите Во-первых, на нем быстрее всего решать задачи, будь то нейронка, веб сайт или небольшая утилита. Если ты пишешь проект самостоятельно и он меньше 10k LOC, то выбирать надо однозначно питон. Для машоба, дата саенса и прототипирования в целом - однозначно питон. Во-вторых, к нему самое большое количество библиотек на все случаи жизни. В-третьих, у него есть REPL и соответственно возможность дописывать код прямо в рантайме.
>>1761820 >Ты кучу раз ошибся в написании "PostgreSQL" Аноны, объясните, так почему Постгрес, а не Мускул? Видел что все бенчмарки веб-фрейморков питона на нем, но почему именно?
Я не понимаю этого нытья. Паттерны им показали, используй. Пук-пук простыня-спагетти. А то что жава превращается в огромный package с abstractshitnumber1.java concreteshitfornumber2.java с им нормально. 1 класс 1 файл. Почему? Нахуй идите, мы так захотели. Хочешь расширить функционал? Поебись сначала. Не принадлежит package? java.shitforproject.interfaces.implementation.huipizda.commercial.govno. Каеф.
Сап. Знаю основы python, но только недавно определился с сферой - машинное обучение и AI в общем. Есть тут челы, которые шарят за эту тему? Мне бы хотя бы примерный путь обучения(литературка, курсы). Сейчас еще в самом треде машинного посмотрю, но решил сразу в python написать.
Кто ещё использует mypy? Блять, что за логика у него ебанутая? Почему если у функции аргумент Dict[str, Union[int, str]], то объект Dict[str, str] на вход этой функции -- НИСАВМИСТИМА. Блять, как же от него бомбит. Вложенный TypedDict тоже через жопу работает, так как он считает, что значения, возвращаемые .items() -- это экземпляры object. Чего блять? Я аннотации для кого указывал?! Говно какое-то блять. 2 дня пишешь код, потом как мудак ещё 2 дня пишешь тесты и занимаешься хуйнёй с этими ебучими аннотациями, чтобы эта хуйня ошибки сыпать перестала. Ну в рот его ебать, я за аннотации, конечно, но когда они начинают почем зря мозги ебать, нахуй оно надо тогда ёпт?