Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
>>1711164 → >Кстати, а как добавлять или убавлять обьекты поиска Я не разбираюсь, но предполагаю, что нейроночке скармливается кадр и она просто выдает вероятности сразу по всем объектам, по которым была обучена. То есть убрать, скорее всего, нельзя. Вполне достаточно будет игнорировать ненужное, что-то вроде if CLASSES[idx] == 'dog': print('ne nujno'). >>1711241 → Или она просто подумала, что ты через пару месяцев уйдешь на работу получше, а у нее и без тебя текучка.
Почему ListView в джанге не выдает пагинацию, как надо? Задал я значение paginate_by, но на всех страницах ?page= один и тот же результат (а если обратиться к заведомо невалидной странице скажем ?page=99999 то будет 404 как и должно) С чего бы это? Кто-то сталкивался?
Уволился с работы, хочу перекатиться на новую, только удаленно. Но синдром самозванца заставляет нервничать, кажется что слишком жирно просить 100-120к с моим опытом. Я middle web-разработчик, в общем 3 года опыта, из них 1,5 года на python. Высшего нет.
Помогите ответами: 1. Какие задачи у вас были, когда вы были миддлом? Было бы круто с примером. 2. Норм ли просить такую сумму с моим опытом? 3. Что нужно знать и уметь, чтобы зарабатывать такую сумму?
Сап. Есть скрипт, который производит действия с директориями и файлами. В нем есть команда переноса:
shutil.move(os.path.join(root,file),pathCopy)
Если запускать его через python.exe, то все ОК. Но если скомпилировать в exe через PyInstaller и запустить, то на директориях с определенными символами в названии ругается на несуществующий путь. В частности, с этим ’ (right single quotation mark).
Чует моя жопа, что проблема с кодировками, но не могу понять где.
Есть короткая книга или длинная статья про эту хуйню с await/async?
Я умею в многопоточность на другом языке через обычные мьютексы и потоки и там мне всё понятно, но вот это понять не могу - просто не могу найти пример где параллельно выполняются две обычные блокирующие функции - а без такого примера я не могу понять в чём смысл этого await. Все статьи обрывочные, в одной идёт gather, в другой wait - одни и те же задачи выполняются разными способами и никакой цельной картины сложить не получается.
>>1712283 Мне нужно выполнять параллельно обычные блокирующие задачи (без модификации кода задач в виде расстановки async или ещё чего-то), при это задачи должны иметь возможность создавать новые задачи и ждать их завершения в некоторых случаях. Вопрос не к концепции асинхронщины, а скорее к конкретным примерам кода и синтаксису - я пока даже не приблизился к.
>>1712252 Для полноценного понимания полезно опуститься в историю, посмотреть то же видео с "дедом", что в шапке. Это чтобы понять нюансы и какие-то подводные камни.
Если идти сверху, а не снизу, то await - это ожидание результата.
Если по общему смыслу, главное отличие от многопоточного программирования. В многопоточном программировании у тебя переключение потоков исполнения происходит в произвольный момент времени. В схеме async-await у тебя переключение потоков возможно ТОЛЬКО на операции await.
То есть, когда ты видишь await, это значит ты говоришь "можно переключиться на другой поток, а этот поток исполнения будет ждать, пока не появится результат".
Так на всех платформах. А вот техническая реализация уже может сильно отличаться, свои нюансы везде. В питоне их довольно много.
>>1712304 >Мне нужно выполнять параллельно обычные блокирующие задачи (без модификации кода задач в виде расстановки async или ещё чего-то Не получится. В таком варианте только многопоточное программирование.
Для async-await необходимо, чтобы код был асинхронным, чтобы блокирующие операции, сетевые, использовали специальные примитивы для асинхронности. Это совсем другой стек.
>>1712341 >В таком варианте только многопоточное программирование. threading? >Это совсем другой стек. А, ну и отлично. Мне просто ирл посоветовали async-await для моей задачи - мол удобная штука, то что тебе нужно, а я всё не пойму каким боком её прикладывать. Видимо что-то попутали. Правда изучить её тоже хотелось бы - для этого и спрашиваю, в первую очередь.
Чуваки, я джавист, сегодня моя судьба сложилась так, что пришлось переводить с вашего пайтона на родную джаву код без документации и за полдня работы я осознал, что не хочу обратно в джаву, ваш пайтон просто охуеть какой лаконичный и простой и если он такой же функциональный, как все пишут, то я остаюсь. Охуеть блять разрыв шаблонов у меня
>>1712413 Просто сама Жаба каличная и многословная для 2020, щито поделать Если хочешь в мобилках копаться, лучше иди в Котлин - Жаба скрещенная с Питонухом, а в Пистоне в основном либо веб-бэкенд либо машоб и датасоенс (но тут совсем иные приколы)
>>1712425 Вэб-бэкэнд подходит весьма. Мне не с кем поделиться, но я просто до сих пор в шоке от такой разницы и почему я столько лет не совал носа никуда, кроме жабы.
Сап питонач, знакомый джун пограмист на жабе хочет совета мудрого, заодно и меня подначивает мимо долбоеба без навыков. Что вы можете ему посоветовать для познания азов машинного обучения? Язык книги не важен, хотелось бы что то свежее и желательно с глубоким погружением в тему и мат часть. А я пойду почитаю питон для детей.
>>1711609 (OP) Всем привет. Есть некая задача - смотреть с сайта состояние некой переменной, при каком-то заданном её изменении - оперативно уведомлять меня. Как это можно сделать? Пока что план такой: запилить скрипт в крон при первой прокатке скрипта сохранить значение переменной в файл затем сравнивать значение с этим значением Если оно расходится - аларм - активируем какой-то скрипт на ????? На что-то, на какое-то оперативное оповещение меня. Например, в телеге сообщение написать import telebot; В теории что-то там может прокатить.
Получается, крон каждую минуту прокатывать? А есть какие-то иные варианты? Бох с ним с кроном (хотя интересно), тут скорее про телебот. Есть ли какое-то околотиповое решение?
Как получать вывод ошибок сторонних программ в питоне? У меня есть код например cmd = 'ffmpeg -i file.mp4 newfile.mp4' p = subprocess.call(cmd, shell = True) Когда всё нормально программа ffmpeg отработает без вывода. Но если я допустим ошибусь в пути или параметрах ffmpeg должна выдать что-то типа "No such file or directory". Я это всё делаю в блокноте юпитере. И в консоли откуда я сам юпитер запускаю это отображается. Как мне собственно это "No such file or directory" вывести уже в блокноте?
>>1712558 Хотя в 3.5 вроде добавили subprocess.run() и он по дефолту ждет пока процесс закончится и сохраняет в proc.sterr ошибки в указаной в функции кодировке.
>>1712559 > subprocess.run() и он по дефолту ждет пока процесс закончится и сохраняет в proc.sterr у меня p.stderr() выдает 'NoneType' object is not callable Нашел простой пример result = subprocess.run('ls'). Эта команда должна выдать список файлов. Но у меня вместо того чтобы в юпитере это отобразить отображается в консоли из которой я юпитер запустил. >>1712558 А это сработало. Как раз то что надо выводит. Но при замене Popen на call или run уже не работает.
Салют, у меня есть url, нужно поменять там значения from и to. Пытаюсь сделать через urllib, но он не хочет собирать мне все нормально. В словаре данные меняются, но потом, когда пытаюсь собрать ссылку, то возвращает прошлую.
[Output]: Вот я распарсил ссылку {'orgId': ['1'], 'from': ['1589972154000'], 'to': ['1589972739000'],....
>>1712569 для быстрого переката сгодится A byte of Phyton, есть на русском и бесплатно. Марк Лутс Изучаем Python - эта уже поглубже. А дальше все завист от направления
Как по-божески настроить поведение class based View в джанге в зависимости от того, залогился юзер или нет? Дергать постоянно if self.request.user.is_authenticated?
>>1713093 На самом деле не обязательно лол Декоратор хорош, когда у нас много вьюх, которые так надо кастомизировать. Когда вьюх мало но логика в зависимости от выбранного случая обширная, надо захерачить композицию (отдельный класс-посредник), ему и делегировать исполнение Тут джавист тусовался, он подробнее пояснит, отдельный паттерн для этого говна был
>>1712832 Попробовал сделать urlStr = urlsStr._replace() Теперь передает значения, но все значения в квадратных скобках orgId=['1']&from=['1555926954000']&to=['1555938339000']&var-data_source=['InfluxDB-Jmeter']
>>1713171 >Тут джавист тусовался, он подробнее пояснит, отдельный паттерн для этого говна был Это называется примеси, но суть в любом случае та же что у декораторов. Для class-based лучше миксины, для функций - декораторы.
>>1711609 (OP) Котаны, трабла с добавлением записей через админку django Есть у меня возможность добавления ссылки на сторонний ресурс, включает в себя собственно ссылку ref (кто бы мог подумать?), название title и сурс (source – ForeignKey на модель Site, по сути hostname самого ресурса, в примере на 1м пикриле это был бы yandex.ru) – сурсов ограниченное число – около 10 Как вы поняли, я хочу иметь возможность задать в некоторых случаях значение сурса=null, вроде как, судя по 2му пикрилу, в моделях я все прописал, но ебучая админка Джанги при попытке простого добавления записи ругается, что я должен обозначить поле source. С хера ли?
>>1713387 Да, я пробовал добавлять посты через python manage.py shell – все добавляется лол. То есть это что-то не то с формами админки
Для дебага прописал print(“save method”) внутри метода Post.save – он даже не вызывается, когда пытаюсь добавить запись в админке, то есть форма сразу выдает error и до ORM даже запрос не доходит
Есть ли способ получить нормальную многопоточность на питоне, которая задействовала бы все ядра процессора? threading отметается из-за GIL. multiprocessing не является адекватной заменой, поскольку каждый процесс имеет свою память - если результата вычислений больший, то копирование его назад убьет весь прирост производительности. numba не работает с библиотеками. Пока что у меня один вариант - выносить кусок кода за пределы питона и писать многопоточность на крестах. Нужная мне библиотека (OpenCV) работает и на питоне, и на крестах.
Видал на сайтах боковые или ниспадающие панели, на которых посетитель может поставить определенные галочки или как-то по-другому заполнить поля, и контент, который он будет видеть, будет фильтроваться соответствующим образом… Как такое запилить в Джанго?
Для удобства эта фича будет только у зарегистрированных юзеров, очевидно что нужно вкинуть на страницу какую-то форму, которая будет обрабатывать данные, введенные юзером однако: 1. Где хранить эти данные? Внутри модели User? Это не зашквар? (да и надо учитывать что система будет часто расширяться и видоизменяться, поэтому надо в соответствии с этим пилить архитектуру) 2. Нужны норм виджеты, я не особо шарю в верстке и юзал немного Бутстрап, но тех же моднявых разномастных переключателей там не видал
>>1713455 > Пока что у меня один вариант - выносить кусок кода за пределы питона Это единственный вариант, наверное должен понимать почему без GIL начнется пиздец с памятью.
Господа, объясните пожалуйста ньюфагу правильную последовательность в Django. Т.е., есть у нас следующее: URL - маршрутизатор Views - контроллер Models - модель Templates - шаблон Т.е., какая очередность написания/внесения корректировок в файлы? Сначала шаблон, потом модель, дальше контроллер и в конце маршрутизатор, так что ли?
Вкатился недавно в питон. Сейчас читаю книгу прям совсем для чайников, детей, ибо по другому хуй вольюсь. Что читать дальше. Что бы не терять интерес и не сбиваться с курса?
>>1713524 Лучше сперва писать модель, потом вьюху, а шаблон тебе может и не понадобиться если у тебя api endpoint. Маршрутизатор это одна строчка в routes, хуле там писать? Модель будет для тебя опорой.
>>1713756 Метод (не статический) работает в контексте объкета. В питоне ты этот контекст объекта можешь заметить по передаче self первым аргументом в метод. У функции по дефолту такого контекста нет, хотя ей за просто так можно передать объект или что вообще надо для работы. Ну и да, вызываются методы чаще всего через точку. Твой пример с простым возведением числа в квадрат хуево наглядный. Но допустим у нас есть класс Float, который кое-какие методы имеет. float_object = Float(10.0) float_as_is = 10.0
float_object.square() -> метод, выполнит возведение в квадрат на собственном значении. square(float_as_is) -> функция, выполнит возведение в квадрат на том, что ей явно передается в качестве аргумента.
Пример все равно хуевый и малопнятный, это же всего лишь флоат.
Питоны, такая ситуация: Есть модель с filefield, путь до файла выглядит примерно так media/files/user.id/123456.png, соответственно при смене id в url, можно получить файлы другого пользователя, что нежелательно. Как обычно решается такое? Пока только придумал добавлять рандомную строку в url.
>>1712999 1) from django.contrib.auth.mixins import LoginRequiredMixin ... class WhateverView(LoginRequiredMixin, View): ...
2) from django.contrib.auth.decorators import login_required from django.utils.decorators import method_decorator ... @method_decorator(login_required, name='dispatch') class WhateverView(View): ...
Сап^_^, я Начинающий Геймдевелопер На Пайтон лаба в универе, необходимо расставить объекты в рандомных местах, использую randint со стандартным сидом, видимо, из-за этого объекты ставятся в +- одно место, т.к. вызываются почти одновременно? В общем, как лучше решить эту проблему, чтобы объекты были расставлены адекватно, а не наслаивались друг на друга?
>>1713900 Не, мне уровнем пониже. Типовое решение как послать уведомление куда-то, например в телегу. Есть какой-то модуль, про который погуглить, который так делает?
Ебана, достаю я такой запрос во вью через request.POST.get("categories") - в этом параметре должен храниться список (Array) строк, дебаг через print об этом и говорит. Когда вытаскиваю его оттуда, в результате получается одна строка (последняя в этом списке). Это что за нах?
>>1713912 Сцука, читаю про query_string и QueryDict. Если у этой хрени в значениях список, то она отдает всегда последний элемент, при обращении по ключу... Вот нахера? В чем профит подобного? Хрен ли он не может мне сразу список отдать? json может, а это манда почему нет?
>>1713482 1. Стандартный вариант создать под это дело модель, прикрутить ее к модели user https://docs.djangoproject.com/en/3.0/topics/auth/customizing/#extending-user 2. Это тебе скорее всего нужен моднявый UI kit, вроде primeNG, попробуй поискать bootstrap ui kit, если так привычнее будет. Есть даже вероятность, что найдешь ui kit специально под джангу. >>1713787 Я бы поделил всё поле на квадраты и с помощью randint выбирал квадрат из списка и размещал объект на нем. Правда, я не уверен, что это разрешено условиями задачи.
>>1713937 В QueryDict (питоновский/джанговский объект из request.POST), согласно документации значения обрабатываются именно так: https://docs.djangoproject.com/en/3.0/ref/request-response/#django.http.QueryDict Чтобы достать список, надо юзать не get а getlist (опять же: нахуя?..) А в куках блин вообще никаких Array нет, только string Когда домой приду, скрины закину, чтоб яснее было
Есть такой код. Поясните почему переменная word не видна внутри async def event_message(ctx)? Пишет Unresolved reference 'word'. Как правильно надо делать?
>>1714066 Ну меня есть подозрение, что если внутри def event_message(ctx) написать "global word", то оно возможно заработает. Но это как-то совсем убого. >>1712001 Здесь одни новички, ты лучше нас всё знаешь.
>>1714085 >если внутри def event_message(ctx) написать "global word", то оно возможно заработает Работает! И вроде даже делает что мне надо. >Но это как-то совсем убого. А это почему? Как можно еще решить мою задачу?
>>1714214 >паттерны проектирования По любым понятным. >на python? Вся эта хуета к языку вообще не привязана, общеязыковые конструкции, так что лучше даже не ищи на питоне.
Потом нашел вот такую штуку https://github.com/python-telegram-bot/python-telegram-bot Говорят, что она даже лучше телебота, но я не могу найти для него никакого образца обычной отправки сообщения Просто одно сообщение, там куча всякой непонятной хуерги.
>>1714484 Не, ну я же не совсем валенок все же хоть немного уважаю сидящих здесь людей, и не читая и не попробовав разобраться самостоятельно, просто так спрашивать не буду Там написана строка, которая позволяет отправлять сообщение bot.send_message(chat_id=chat_id, text="I'm sorry Dave I'm afraid I can't do that.") но описание (правильно ли сказать класса) bot нигде нет. А еще что именно импортировать А ещё нужен ли тот самый __name__ == '__main__'
Антош. Почему aiopg'шная sqlalchemy не sqlalchemy вообще блять? Декларативно объявить модель нельзя. Просто взять и кверисет получить нельзя. Какие то движки, какая то хуйня. У меня есть очень простой кусок кода на фласке, пытаюсь переписать на aiohttp, помоги мне антош..https://ru.stackoverflow.com/questions/1137172/Как-читать-и-писать-из-базы-с-aiopg-sa
Есть веб-страница, и на ней есть таблица, которую мне надо спарсить. Проблема в том, что на выходе я получаю только тэги, без данных между ними пик 2. Что я делаю не так?
1. Как сделать так, чтобы он реагировал не только на 'quit', но и на 'Quit', 'QUIT', 'QUit' и так далее? Я уже спрашивал про кейс-инсенситивы, но бля никак не могу усвоить как их решать. Мне нужно чтоб написанное сверялось с quit.lower(), но как хоть убей не пойму.
>>1715058 Есть вопрос попизже: как искать дата-атрибуты блэт? Вот допустим есть у нас <ul data-creation="custom_style"> и че с ним делать? Как определить data-creation в поисковых критериях? Явно заданные дефис херится из-за синтаксиса
>>1715093 >> OrderedDict([('BBB', 5), ('CCC', 3), ('AAA', 1)]) Так и я могу. На выходе получается не словарь, а какая то хуйня вроде кортежа. А мне надо чтобы на выходе стало именно {BBB: 5, CCC: 3, AAA: 1} Можно ли так сделать?
>>1715130 >>1715132 Мне надо чтобы итоговый результат при принте выглядел как ААА - 1, БББ - 2 и так далее. Я пока вот такую хуйню сотворил. Если бы можно было нормально сортировать словарь - было бы удобней.
>>1715141 Это кусок бота для игры в крокодил. Полный текст игры выглядит вот так. Я имя победителя добавляю в словарь и присваиваю ему единицу. А потом сортирую словарь по убыванию и вывожу его в виде Имя - Очки.
>>1711609 (OP) Анончики, выручайте есть строка time_now = datetime.now().strftime('%Y-%m-%d %H:%M:%S') Она записывает в файл время в формате 2020-06-06 21:06:25 А теперь мне нужно достать из файла это время и сделать некоторые действия с текущим временем, которое записано уже указанной командой Когда я вычитаю, он ожидаемо пишет мне, что нельзя вычитать из str str Как можно преобразовать эти самые стр? datetime(time_now) - тоже не преобразовывает, говорит, что нужен инт, а не str
Как "вытащить" основное имя домена? Есть у нас ссылка https://2ch.hk/pr/res/1711609.html как нам вытащить из нее https://2ch.hk ? Да, протокол тоже нужно, чтобы по этой ссылке потом можно было перейти
Как найти текущий месяц?.. Знаю, что есть вот этот способ:
from datetime import datetime today = datetime.today() current_month = today.month
НО мне нужен месяц именно в строчном формате (здесь today.month выдаст число 6). Например сейчас я хочу чтобы вывелась строка "June". Мне че, словарь для этого делать? (выглядеть будет ппц ущербно)
>>1715243 на самом деле мне надо получать лишь первые 3 английские буквы месяца (чтобы потом их передавать в api), но это уже частности, любой довен замутит срез строки
>>1715281 Просто в css-селекторах Белый Человек может задать условие, которое будет выполняться только если один селектор является дочерним для другого, как на пикриле да, такая нотация в питонухе не сработает и через findAll вернется пустой список Я офигею, если узнаю что такого нет в bs4 и надо обязательно плодить циклы вручную
Почему мой код сервера на pythonanywhere.com не работает и что за (зачем нужен) WSGI?
Там что-то про http написано - но мне оно не нужно, я хочу просто принять пакеты по udp со своим собственным протоколом общения, как если бы я у себя дома двойным кликом запустил py-файл. Это возможно на pythonanywhere.com?
>>1715520 Это как шаред хост для пхп, сайтики и любые скрипты выдающие текст может. Ты можешь поднять виртуалку с бриджем, например. Будет как отдельный хост в локалочке.
>>1715529 Но это же ничем не отличается от локалхоста. Я скорее хочу проверить как оно будет работать с маленькой скоростью соединения и пингом, каким образом будут теряться пакеты или перемешиваться их очерёдность, и всё в таком роде.
В Джанго у меня есть модель Group и модель Post (ForeignKey из Post канешн указывает на Group) Как мне отфильтровать посты Post, группа которых называется определенным образом, скажем где Group.name == "Solid"? Фильтрация через Q(group.name="Solid") не катит, т.к. точечная нотация там запрещена синтаксисом
Как "подавить" ошибки в формах? У меня обычная django.forms.Form, в которой галочками надо выбрать сайты (Sites) и жмякнуть Confirm, чтобы данные отправились на бэк. В принципе можно вообще ничего не выбирать и нажать Confirm, на бэк просто отправится пустой список и это норм (никаких редиректов не происходит, страница не меняется). Но когда я ничего не выбираю, Джанго предупреждает меня (пикрил) что типо так не стоит делать. Как убрать это предупреждение?
гудгейм возвращает JSON дерьмо в виде вот такого текста - ['{"type":"message"', '"data":{"channel_id":"1168"', '"user_id":218096', '"user_name":"Mr.Freeeze"', '"user_rights":0', '"premium":0', '"premiums":[]', '"resubs":{}', '"staff":0', '"color":"simple"', '"icon":"none"', '"mobile":0', '"payments":0', '"paymentsAll":{"21264":1}', '"isStatus":0', '"message_id":1591539634552', '"timestamp":1591539635', '"text":":peka: а в сундуке тряпка и 2 монетки"}}']
Как мне это все дерьмо разобрать назад на отдельные элементы? Не имел до этого дело с JSON.
import itertools import pandas as pd import numpy as np
x = ('A', 'B', 'A', 'C', 'A') b = ['1', '2'] y = [''.join(x) for x in list(itertools.product(x,b))] c = np.array(pd.DataFrame(list(itertools.permutations(y,5))).drop_duplicates()).tolist()
Реально ли в моделях джанги вычленить значение из дескриптора-поля? Я хочу внутри одного из методов класса взять поле self.title и привести его к нижнему регистру: self.title.lower() но вот только lower() это операция со строками, а self.title это CharField (IDE говорит мне о том же)
>>1716041 Я почитал про json. Получается я неправильно написал что я хочу. Я использую готовый питоновский вебсокет. И он возвращает с сайта строку в виде что я выше писал. Это как я уже понял нихуя не json. И эту строку я уже сам разделил по ,. Но это получается коряво потому что некоторые параметры внутри себя имеют кучу запятых + само поле текст может иметь текст с пробелами.
Вопрос - как уже готовую строку разделить на отдельные элементы?
>>1711609 (OP) Всем привет Запилил первый осознанный класс, и тут возникли проблемы Грубо говоря, есть класс, на входе у него одна переменная, остальные высчитываются по разных хитровыдуманным методом на основе значения этой самой переменной Но у данного класса есть пара значений, которые он берет из другого файла, если грубо, то это прошлые значения некоторых его параметров. Так как экземпляров класса много, я не могу вписать в def __init__(self, name): забор переменной из текстового файла, ведь там будут лежать переменные для нескольких экземпляров. При этом если задать пустую переменную, а потом поменять, то просто так не поменять =(((( Нашел какой-то хитровыдуманный способ https://qna.habr.com/q/301659 а есть что-то попроще, чтобы не пилить новый класс, который обджект и что-то там делает? Или как лучше сделать? Придумать хитровыдуманный алгоритм, чтобы изх текстового файла брало именно то, что нам нужно?
>>1716199 Главный аспект тут - это безопасность. С клиента тебе может любая хуйня приходить, а на сервере всё лежит спокойно. Плюс есть лимиты на куки, они нужны для небольших значений, не будешь с каждым запросом пересылать портянку. Ну и т.д. Почитай какую-то теорию, это фундаментальный вопрос для любых веб-приложений.
>>1716206 Хотя тот же ебанутый асп.нет всю свою хуйню пересылает в формах скрытыми полями, лол. Пришлось ещё поверху навешивать безопасность и прочее. Норкоманы.
>>1716238 Я с декораторами не дружу, не получилось понять их. Делаю проектик один, функция выдает элемент списка и в следующий раз выдает уже следующий
Есть решение через костыль (сделал класс) но мне кажется есть решение проще
Сука... Проект джанго работал на sqlite, в принципе запускался как надо, решил перенести на Postgres, залил настройки как надо (уже однажды ставил себе Postgres), только захотел сделать миграции и вот такая херня начала вылезать: django.db.utils.ProgrammingError: ОШИБКА: отношение "news_signature" не существует
Ну что этой падле надо? Каких к черту отношений не существует? (news - имя приложения, signature - имя одной из моделей в нижнем регистре) Их и не должно существовать блять, я же только первую миграцию провожу. Бомбит сука
>>1716277 Я не понимаю до конца как работает генератор значит) Я обращаюсь к фунции, она возвращает элемент первый массива, и так до конца массива где снова возвращается первый элемент
>>1716233 Через замыкание (nonlocal), на основе замыкания собственно пилится декоратор и все норм Есть еще решение дауна (но рабочее): передавать в функцию mutable значение по дефолту и использовать стремное поведение питона себе на пользу - сохранять в этот словарь или список свои значения, правда главное не накосячить и случайно не положить туда что-то снаружи
>>1716266 Короче: убрал все файлы из проекта кроме models. Делал миграции для каждой модели отдельно. Вроде получилось. Хуй знает что это за залупа и как в принципе ее фиксить в крупных проджектах
>>1716283 ах, тебе нужна функция с внутренним состоянием. понятно. не проще ли будет извне по глобальной переменной перебирать список? решение не такое ебливое, но такое же по стрёмности.
>>1716158 >>1716142 Докопался до истины. Как оказалось, для того, чтобы успешно изменять переменную класса конкретного экземпляра, сначала нужно создать этот конкретный экземпляр. =(((((
Можно как-то при помощи фласка напрямую принтить текст в textarea, не используя JS? Пишу что-то вроде переводчика, где рядом две textarea, и ты в одну вводишь текст, сабмитишь, и в другой получаешь изменённый вариант. Погуглив, нашёл только с JS ответы.
>>1716333 А так мультилайном можно принтить? И разве можно так напрямую в textarea отправлять? Если ты имеешь в виду "render_template("intex.html", textarea=my_text)".
>>1716031 Спасибо большое! Подскажи еще, плиз, как-то можно оставить только уникальные списки. НО. Уникальность проверять без учета сортировки.
То есть, допустим список A = [ 'A1', 'B1', 'A1', 'B1' ] и список B = [ 'A1', 'A1', 'B1', 'B1'] будут считаться неуникальными, поскольку в них одни и те же элементы, пусть и в другом порядке. А, например, списки A = [ 'A1', 'A1' ] и B = [ 'A1', 'A2' ] уникальными, так как в них различные элементы
Петян, такое дело. Скрипт разрастается, функции добавляются, чики-пуки. Думаю ради фана замутить TUI как в утилах нортона под DOS, да и через коммандную строку уже не комильфо передавать конфигурацию. Конфиг чисто по старинке в ini файл ебану, чтоб дух старой школы был. configparser тут как раз в стандартной либе пистона есть. Так вот, вопрос вообше про конфигурацию и всю хуйню. Думаю с сделать класс/объект (назовём его для краткости Иннокентий) с конфигурацией, при инициализации пусть там будут захаркачены настройки/константы/значения по умолчанию. Так же у Иннокентия будет задача при каждом старте программы проверять наличие ini конфига, загружать его, и обновлять из него свои внутренние значения. Сама же прога будет обращаться к Иннокентию чтоб взять какие-то настройки/константы/значения. Ещё программа (давай называть её Епифания) может будет просить переписывать эти значения у Иннокентия. Ну вообще я хуй его знает, будет просить или сама перепишет, тут уж как они договорятся, я вообще за равноправие в семье, если женщина делает всю работу. Это например если дойду до того, что в свой TUI впихну вкладочку, где опции можно пенять.
Ну как Петян, дело? Я тут походу MVC придумал, да?
>>1716449 И правда, теперь работает. Но теперь у меня другой вопрос: я добавляю в файл со значениями через : значения как в моем посте вот тут >>1716001, но получаю ошибку, что ожидалась запятая.
Почему у меня такой формат не канает? В посте выше все значения также через двоеточия были.
>>1711609 (OP) Есть скрипт, проверяющий сотню тысяч строк данных на предмет валидности, необходимо записывать лог по каждой строке (номер строки и результат: success или fail), лог надо херачить во внешний файл (но можно и бд, мне похрену) csv или txt Как это сделать наиболее производительно? Запись в файл либо вывод на экран отнимают время и ресурсы CPU, как "распаралелить" сами вычисления и запись данных?
Главное правило любого pr-треда: не постить syntax errors с просьбой помощи Один хрен где у тебя этот error: sql, питонух, жс или лисп. Он говорит о том, что ты не знаешь синтаксиса языка, который юзаешь. Поэтому не надо плез действовать на нервы людям, юзай иде с помощью в синтаксисе и учи язык
>>1716556 Иная ситуация: у нас постоянно работает некий скрипт, проверяющий результаты поступающих на вход строк и записывающий результат в бд (либо отсылающий их на сторонний серв через REST), как замутить асинхронную либо параллельную обработку данных?
>>1716581 Хм, кстати, а что это за зашкварная херня, что после отсылки request я обязательно должен тратить время и ждать response? Может мне похеру, дошли данные или нет? Как не получать ответов и продолжить исполнение скрипта?
>>1716594 На веб-сервере только как это будет выглядеть интересно... flask или django потянут такое? (я других фреймворков не знаю прост) Они оба синхронные по своей природе а с очередями там я не особо знаком
Аноны, есть метод в Вьюсете DRF (пик1), пытаюсь написать тест для него (пик2), но получаю, что доступ к методу мне закрыт: {'detail': ErrorDetail(string='You do not have permission to perform this action.', code='permission_denied')} Хотя я же делаю аутентификацию, и изменяю пользователя, созданного сетапе и на это разрешение должно быть.
У меня в веб-приложухе на джанго периодически отправляются запросы к сторонним серверам, которые могут вернуть исключения или зашкварные response_code вроде 429, 404 и т.п. мне нужно в таком случае как-то оповещать об этом админа (меня). В той же джанго есть вроде как способ отправлять email, но вот незадача: можно "собрать" дохрена подобных ошибок разом и по итогу почтовый ящик будет засран всяким говном. Че делать?
Есть такой вот скрипт. Я хочу добавить while цикл, чтоб он просил меня ввести возраст пока я не введу стоп-слово. Мой цикл не работает - он бесконечный.
И я не могу добавить проверку age.lower() == 'quit'. Выскакивает ошибка AttributeError: 'int' object has no attribute 'lower'. Но мне то нужно чтоб если ввелись цифры, то они должны стать не str, а int, то есть на цифры нужно среагировать как на цифры, а на слово как на слово.
>>1716821 У тебя инпут был вне цикла. Ты один раз вводил значение в age (в первой строке), а потом это значение проверял по кругу в цикле while. В итоге у тебя всего два варианта: либо age == 'quit' и ты сразу выходишь из цикла, либо ты бесконечно проверяешь age и живешь в проклятом мире, который сам же и создал.
>>1716196 Хм, блять, поставил я такой себе сессии вместо куков понимаешь ли и теперь когда юзер разлогинивается, данные теряются нах. Куки-то в браузере хранились и поэтому после повторного логина данные никуда не девались Это фишка сессий такая? Долговременное хранение данных в принципе невозможно? Кукам я сам выставлял время жизни
>>1716868 Ну если разлогинивается, то теряются. Если не разлогинивается, то не теряются, лол. Это настраиваемо. Для постоянных данных есть БД, ты получашь нужные записи при логине и можешь настроить сессию.
>>1716887 Вообще, я тебе рекомендую прочитать какую-то книжку именно по вебдеву, там все эти процессы и подходы поясняются, потому что они уже давно изучены и обкатаны и в общем не меняются. Ещё сразу же полезно читнуть литературку по нападению-защите на веб-приложения, это тоже очень многое проясняет.
>>1716907 Сисадмины? Че? Питон язык для веб-приложений, а не веб серверов лол. Если и юзается админом то только для облегчения доступа к сети, вместо десятка curl-ов или nmap-а из терминала
>>1717020 Логично. Но почему когда я делаю это на тестовой строке(1) - все получается. А когда делаю тоже самое на реальных сообщениях(2) из чата - получается ошибка string indices must be integers?
Приветы А где читать/смотреть мануалы, как делать боевые бекенд штуки, если ты вкатыш? Иными словами, меня интересует архитектура и использование паттернов проектирования наверное Вот я хочу склепать асинк веб приложение (групповой чятик) с минимальным кол-вом тупого копипаста сниппетов в целях обучения Я понимаю, что мне как минимум нужна бдшка, слой логики для работы с ней, хттп сервер К примеру, я выбрал sanic + gino + какой-то менеджер задач + што-то ещё Но дело в том, что во в гитхабах этих либ есть только узкие примеры, демонстрирующие их конкретные методы А как это все собрать в полноценное приложение и чтобы оно не выглядело пиздец вырвиглазно, немного непонятно..
>>1717224 Если вкатыш, то надо забыть про асинк и чятики, потому что технологии не самые приятные, лучше напиши банально и синхронно с нуля какой-нибудь круд с админкой, регистрацией, авторизацией, подтягиванием по крону консольной командой инфы в бд, и т.д, очередью для чего-то
Почему код на пикрелейтед возвращает html файл, а не txt? При этом, если скачивать в мозилле, то сначала предлагает сохранить как html, но записывает на диск как txt, а если в хроме скачивать, то прямо в html и сохраняет. Что-то не так с хедерами?
Петян, а накидай годных тулз/программ на питоне для коммандной строки, которые используют конфигурационные файлы для своих нужд. Но так, чтобы код был открытый, красивый и лаконичный. Мне посмотреть, поковырять.
>>1717717 Чет у тебя код не соответствует вопросу. >можно ли c кастовать обратно в А? Можно. Если там вообще под капотом кастинг происходит, а не утиная проверка.
Бля челы, решил тут обмазаться вскодом вместо пичарма и чет сразу же обосрался Линтер вроде успешно подключился, а вот форматтер как-то не совсем Почему может не работать? Точнее оно работает, но явно не так, как должно Допустим, вот этот фрагмент никак не форматируется, хотя на демо сайте yapf работает, как нужно. Короче блин, как прикрутить исправления кода в духе пичарма?
Нужно экспертное мнение гуру джанги. Возможно ли запилить кастомное поле в модели, которое сможет хранить два строковых значения и фильтроваться по любому из них? Про ArrayField я в курсе, но с ним надо весь проект перелопачивать и заменять user_id на user_id__icontains. Надеюсь наебать систему кастомным полем.
Смотрю вроде на примерах пока все, ну кроме разделения интерфейсов наверное, кажется лютым капитанством. Когда смотришь антипримеры как делать не стоит - вообще не понимаешь каким надо быть дебилом что бы так писать. Вроде и так понятно что надо делать так.
>>1717981 А кажется потому, что ресурсы, по которым все учатся, обычно следуют как раз SOLID. SOLID - это не новое изобретение, которому нужно учиться отдельно, а вполне себе самые общие принципы современного ООП. И их по ходу дела изучаешь, даже не зная, что это так называется.
>>1717992 Есть какой-то реальный пример применения последнего принципа? В джанге какой-нибудь возможно? Везде нахожу только совсем игрушечные примеры, не укладывается в голове как это применять.
>>1717981 SOLID - это тупо полиморфизм и здравый смысл. С динамической типизацией интерфейсов нет. Реализуешь сразу метод в классе. Если только с макаками работаешь, то придется запиливать пустой класс, который бросается исключениями, если не реализовать методы.
>>1717998 2 Scoops of Django годная книга по best practise Но насчет интерфейсов ебать себе мозги лишний раз не стоит хотя в 3.9 таки допиливают эту хрень
>>1717852 Хз правильно ли так делать, но можешь сделать поле ArrayField, затем привязать к классу кастомный менеджер модели, в котором перепилить метод get. Он будет реализовывать icontains внутри себя, чтобы не заменять это везде в проекте.
>>1718002 >>1718001 Я просто буду устраиваться на работу снова в ближайшее время, вот хочу знать что отвечать на собеседовании если спросят про солид и как это применяется именно в питоне
>>1718003 Чувствую, что кроличья нора слишком глубока окажется.
>>1718006 О, про менеджеры я как-то и забыл, кстати. Должно сработать, я думаю. Тут правда еще вопрос, можно ли индексировать ArrayField и будет ли эта схема такой же быстрой, как простой CharfField с db_index=True, но это потом бенчмарками померяю.
>>1718016 2 года работал бэкендером на питоне, но о таких вещах как solid даже не задумывался. Сейчас вникаю во все это, и кажется что интуитивно соблюдал все это, кроме инверсии зависимостей. Ее пока не могу постигнуть. Вроде все очень просто, но как и зачем это делается именно в питоне не понимаю.
>>1717852 Звучит как XY Problem. Какая проблема решается? Если значения только два, то их нужно хранить в разных полях. Если нужно, чтобы пара была уникальна, их можно объединить в композитный ключ.
>>1718046 Там немного ебланская система, где у всех юзеров есть уникальные в пределах отдельной Txxxxx команды айдишники вида Uxxxxx и у некоторых юзеров глобально уникальные айдишники вида Wxxxxx. Т.е. однозначно юзера идентифицировать можно по паре Txxxxx + Uxxxxx либо по одному Wxxxxx, если он у него есть. Первая часть с T + U реализована, теперь надо добавить поддержку W. Желательно так, чтобы не переделывать весь проект. В связи с чем я хотел бы сделать поле, чтобы кверисету было все равно U или W айдишник ему передали, он сам внутри разберется, как искать.
>>1718011 идёшь на собеседование - заеби своего оппонента уточняющими вопросами на его кукарёхи. во-первых, сойдёшь за умного, во-вторых подчеркнёшь ничтожество его ёбнутые вопросы. пример:
ХУЙ: знаком ли вам solid и то, как эти принципы используются в питоне? ТЫ : а для чего вам нужны эти принципы и как их используют у вас? ХУЙ: да я сам не знаю, вот ищу кого, кто бы мне подсказал. ТЫ : крайне вероятно, что с вашими маленькими проектами он вам нахуй не нужен. солид красивый концепт на бумажке, но на практике всё выходит, как выходит. простите блять за мат. ХУЙ: но в книге про агильное программирование... ТЫ : а я ебашу KISS расрашенным в стиле американской группы. ХУЙ: а причём тут американская группа? ТЫ : а причём тут агильное программирование? ХУЙ: ладно. может квиксорт на листочке набросаете? ТЫ: а вы синтактический анализ и интерпретацию тоже на листочке будете делать? зачем вам квиксорт? используете часто, но не нагуглили его? вас чем-то не устраивает встроенный тимсорт в питоне? ХУЙ: нет. ТЫ : тогда почему вы спрашиваете про квиксорт? ХУЙ: я вижу, как-то не задалось у нас. ТЫ : у вас часто так?
>>1718066 Я обычно в ответ на тупые вопросы сразу в лоб спрашиваю, сколько у собеседующего см член, если это кун. Пока он тупит, достаю смартфон и показываю фотки своего 21 см бойца. Чухан начинает краснеть и понимать, что проигрывает, тут-то я и занимаю доминирующее положэение
>>1718041 Можно я тебе хуй отсосу? Хоть у меня все равно ничего не работает, но хоть инструкция к действию есть. На винде просто ад и ужас и пакет не хочет устанавливаться вообще никак и ошибки непонятные, на распбиан ВМ версия Тенсорфлоу не хочет подниматься выше 0.11, но ошибка более осмысленная. Видимо версия ТФ слишком маленькая, и чего-то не хватает. Что-то он не может найти.
(По факту мне нужен реалтаймовое распознавание машин и людей, с выводом всего говна в консоль.(Или в файл)) (Я сюда уже обращался с https://pastebin.com/B9JNBhuW таким говном, сказали что тут можно выводить label. Но выводит оно все по очереди, а не все сразу. И распознавание медленное, камера дерганная) Подумал что вот этот код с 10 строчками можно будет допилить до реалтайма, Он вроде как считается быстрым распознаванием, и выводит все. Но чет хуйня.
>>1718054 С точки зрения строения БД, ни U (без T), ни W как главные ключи использовать нельзя. Композитный (T, U) можно, а W, я так понимаю, всегда опциональный.
В любом случае, должно быть два индекса - по (T, U) и по W. Соответственно, два-три поля (например, tid , userid и globaluserid) в модели.
С ним как минимум можно добавить возможность писать .get(userid with globals='W01'). Не уверен, но вероятно возможно добавить таким образом псевдо-поле. Т. е. у тебя есть поля localuserid и globaluserid, а искать все еще можно по .get(userid all types='W01').
Сейчас надо бы перенести проект на Убунту (потому что на винде redis-server работает через пизду), так что встал вопрос: куда и как установить Питон?.. В Винде у меня 3 версии Питона: 2.7, 3.7 и 3.8 - каждый интерпретатор лежит в своей папке в C:\Program Files, а далее по надобности создается среда venv для проекта Как такое заделать в линухе? apt install python просто установит самую последнюю версию дистрибутива, обновив предыдущую же
>>1718121 Ну питон2 и питон3 живут одновременно, а вот с 3.7 + 3.8 легко и просто не получится. Ты уверен, что они оба тебе нужны? Там же вроде все обратно совместимо.
Помоги, анон! Внутри Фляги завёл глобальный словарь USERS, в USERS['username'] храню экземпляры юзеров, которые "онлайн". На каждом запросе имею объект USERS[session['username']] -> class User. Да, мсье знает толк в извращениях и не хочет городить датацентр под редис ради пары десятков клиентов в день. Так вот, на локальной машине всё просто замечательно, а у хостера эта глобальная несчадно уничтожается от запроса к запросу. Можно ли это как-то пофиксить? Или может есть более рациональный способ передавать экземпляр класса внутри сессии без использования глобальных переменных и всяких дачных овощей?
>>1718184 Короче говоря, как нативными средствами сохранить и передать увесистые данные пользователя (в куки всё не влезет), идентифицируемого посредством сессии?
Наверное нужно пояснить, что такая поза нужна, чтобы пользователь мог генерить фоновый процесс и общаться с ним через пайп, который потеряется, если не сохранить объект, породивший процесс. Его я и сохраняю в глобалке. То что я делаю вообще имеет смысл, или мне надо сделать перерыв и сходить на природу?
>>1718190 Чето сложно. Если совсем уж методами из коробки, то храни данные в sqlite. Если не совсем из коробки, то редис простой же. Или может хостер твой предоставляет какой-нибудь mysql бесплатно? Самостоятельные попытки что-нибудь собрать - в той или иной мере переизобретение изложенного выше. Вся инфраструктура веба расчитана на то, что процессы сервера можно без потерь уничтожать и пересоздавать. Идти против течения будет тяжело.
>>1718218 Ну, я бы не страдал хуйней, если бы не руководитель учебного проекта. Кококо, делайте распознавание, там за день можно сделать, сам давно занимался, но там легко, чо вы такие тупые, где результат, ну и так далее Каквсигда.
>>1718233 У меня нет мозгов, и я не занимался питоном, как таковым. Я чисто гуглом программирую. Второй курс, при том что это мой долг, и со мной дрочат первокуры.
>>1718238 >Я чисто гуглом программирую. Если умеешь в гугл, то проблем быть не должно.
Конкретно по твоему вопросу - в репозитории анаконды есть далеко не все библиотеки. Если чего нет - ставь через pip. Через анаконду проще ставить библиотеки, с зависимостями не только на питоне, например Tensorflow, которому нужен cudnn. Для всего остального разницы нет.
>>1718246 > Если чего нет - ставь через pip Вроде если через пип, то устанавливает просто на питон. И если вот так написать conda install -c powerai imageai как тут, то будут собственно конфликты. Если conda install imageai то меня просто нахуй пошлют.
>>1718251 Ставь прыщинукс Потом curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py --user export PATH=$PATH:$HOME/.local/bin в .bashrc python3 -m venv my_cool_proj/.venv cd my_cool_proj source my_cool_proj/.venv/activate pip instal al you need
>>1718251 >Вроде если через пип, то устанавливает просто на питон. Для начала активируй окружение созданное анакондой командой activate. >И если вот так написать conda install -c powerai imageai как тут, то будут собственно конфликты. Ты кроме этого ничего не ставил? Пересоздай заново окружение:
ПОЛУЧИЛОСЬ ГОСПОДИ ПОЛУЧИЛОСЬ ГОСПОДИ АЛЛИЛУЯ ДАЙ БОГ ВАМ ВСЕМ ЗДОРОВЬЯ. Шоб деньги водились, и там тыры пыры.
Но прыщеблядикс не понадобился, хоть и есть расбиан на виртуалочке. От скуки клацнул pip без троечки, и установилось куды надобно.Удивительно, бладжд. Я довен.
Тэк, интересно, а можно источником засунуть камеру, хммммммм.
А что из себя представляет фуллстек сеньор-помидор питонист? Что ни вакансия на летнюю практику, то писать машинку. Это прикольная вещь, вот только там две с половиной либы юзать да яйца чесать во время прогона эпох. А для чего ещё питон активно используется, что ему трудно найти замену и где они "принят" стандартным языком в какой-либо сфере?
>>1718272 ну я пока делаю так: class belmando: pass bodyparts = {"arms": 2, "legs" : 2, "dicks": 1 } b = belmondo() for key, value in bodyparts.items(): b.__setattr__(key, value)
оно всё прекрасно и хорошо, но можно ж как-то слинковать, чтоб при изменениях bodyparts менялись и поля, и наоборот. хуй его знает, какой нить враппер повесить там, что при обращении к полям, он сначала смотрел в словаре.
>>1718280 ну я хуй его знает, как бы всё это хитро сделать. короче расклад такой, есть ini файл с конфигами, который может переписать пользователь. есть у меня внутри дефолтные значения, там просто для большей части оказалось легче comprehension их нагенерировать в словарь. моя хуета будет запускаться, создавать этот словарь, потом щупать конфиг на предмет переопределения и всё это будет сохраняться в бельмандо. в бельманде ещё пару констант, настроеек и прочего говна будет держать. своего рода модель чтоли или state. а уже остальные части будут дёргать бельманду для работы. годно?
Поясните за сокеты. Есть 2 различные программы, перекидывание данных из одной в другую я хочу сделать через сокет. Данные передаются, но при этом стопорится выполнение всей остальной программы.
Как сделать чтобы выполнение шло параллельно? Что-то пробовал асинк, но нихуя не получилось.
>>1718282 Зачем тебе вообще щупать ini файл? При запуске программы забирай из него значения, пихай их в бельмондо. Если настройки можно изменять не только через ini, то все изменения передавай в бельмондо, а по завершению программы сохраняй все в ini. Тебе, по большом счету, для этого нужно в бельмондо два метода .load_from_ini, .save_to_ini. В .load_from_ini и твори свою магию со словарями и setattr >>1718402 https://asyncio.readthedocs.io/en/latest/tcp_echo.html Берешь пример, проверяешь, если работает, то накручиваешь сверху своих хотелок.
>>1718264 Камеру можно через open cv подключить, потом фреймы из камеры подаешь в сетку, сетка делает аутпут в отдельную картинку, этот файл крутишь на показ в бесконечном цикле, но фпс будет дико хуевым сразу говорю, реал тайма 30фпс не будет
Мне надо отправить пост-запрос на сайт, но он постоянно отказывает в доступе, мол запрос подозрительный. Юзер-агент в хидерах есть. Что ему может быть нужно и как это достать через браузер? Там запросы проходят и их можно смотреть, но я почти ничего в этом не понимаю. Использовать селениум или что-то подобное не могу, нужно делать много таких запросов одновременно, а там браузер открывается на каждый.
>>1718506 Скачал заголовки запроса и куки, тепепь просто ждёт и кидает эксепшон про истечение времени и закрытие соединения на той стороне. Насчет подозрительности ничего не сказано, просто не нравится и всё. Возвращает код 200 и жсон, в нем эта строка.
>>1718501 селениум можно запустить в headless режиме, тогда браузера ты не увидешь. и про много запросов ты наверно припезднул, много это несколько десятков тысяч в секунду, а тво сто это так, шутеечки.
>>1718532 По сабмиту формы сайт делает три пост запроса, яндекс, гугл, и на внутреннюю страницу, которая и отдаёт жсон с ответом. Так вот, если перейти на это страницу самому по ссылке с параметрами, тоже кидает отказ. На нужную мне страницу передаётся капча, хотя я ничего не заполнял. Капча каждый раз разная.
Так, запрос в яндекс -- это трекер, а вот в гугл сайт стучится за капчёй. И что с этим делать? Уже начал ковырять селениум, но проблема в том, что у меня ноут, и не самый мощный, а запросов пара тысяч в секунду примерно.
>>1718551 Если это рекапча, тогда понятно. Она может быть невидима и спрашивать свои задачки только если ты подозрительный. Это хуевый вариант, но можно решить с помощью апи с обезьянками.
Я может чего-то не понимаю, но что сложного делать прекомпиляцию классов и функций до импортирования/исполнения модуля? Вот из одного класса А я вызываю конструктор другого класса В, однако ж в таком случае В обязан быть объявлен перед А. Типо логично да? Но вот с практической точки зрения профита никакого, лишь излишние траблы пограмизду. Это та же история как и с __future__.annotations без которого аннотации нереально запилить без предварительного объявления
>>1718568 Насколько я знаю, нет надежного метода автоматического решения. Да и если ты будешь много отправлять, она всё равно быстро начнет сыпать задачки.
Аноны, можно как-то передать доп инфу в Exception? Я в коде бросаю свой кастомный эксепшн, который представляет неверный status_code во время обращения к стороннему ресурсу (404 скажем). Мне бы во время объявления эксепшна как-то закинуть в него инфу об этом status_code, чтобы вышестоящий блок try/except смог его обработать и сохранить Как такое мутить?
>>1718577 Заделал, вроде работает, но к этому идет сопутствующий вопрос: как выйти разом из множества функций? Пока вижу только вариант с броском эксепшна, возвращать None и потом проверять результат каждого вызова на None лишь чтобы самому сделать return None - зашкварная херня
>>1718604 Если у тебя нештатная ситуация - то для этого исключения и нужны.
А у тебя нештатная, раз ты проверяешь промежуточные функции на None и меняешь ветвь исполнения на этом основании.
Не рекомендуется базовые ветви исполнения завязывать на исключения. Условный пример - ты делаешь рекурсивный поиск по дереву, и как только находишь что тебе надо, так делаешь исключение.
Есть два массива, один является срезом второго: a = [0, 1, 2, 0, 1, 2, 3, 4, 0, 4] b = [1, 2, 3, 4] Нужно вернуть смещение b по отношению к a. Есть что-то готовое, или костылить свой метод на index и проверках?
Есть ли хотя бы в теории какая-нибудь реализация декоратора не для функции, а для следующей строки, что бы там ни было, чтобы не городить try: a = 42/0 except: return "хуй"
а вместо этого писать что-то вроде этого: @exception("хуй") a = 42/0 Круто же, ну! Реально это вообще?
Такой вопрос. Программа использует файлы из отдельной папки для своей работы. Иерархия такая - есть папка Программа, в ней 2 папки: папка Питон, в которой окружение питона и сама программа, и папка Данные, в которой различные файлы.
Как сделать чтобы путь сохранялся при переносе папки в другое место?
Вот делаю я какой-то скрипт для работы с данными. Т.е. читаем файл, делаем ахалай-махалай и пишем новый файл. Надо ли там ловить эксепшены с файлами? Я щитаю, упадет и заебись, всё понятно. Надо ли пихать контекстные менеджеры и вообще закрывать файлы? Вот я понаоткрывал файлов и пишу в них по ходу работы. Потом в конце они сами отвалятся. Видел, что пишут в структуры, а потом в конце высирают всё сразу с with. По-моему, это какая-то хуйня.
>>1719156 Жопу тоже можно не подтирать, говно вылезло и заебись, вконце дня например всё равно мыться если, само все почистится. По-моему, вытирать жопу каждый раз это какая-то хуйня.
Если пишешь скрипт для личных разовых нужд, то можно и не ловить. Если хочется, чтобы в случае ошибок можно было сразу видеть, в чём проблема, а не вглядываться красными глазами в трейсбеки, то лучше ловить, писась сообщение об ошибке и выходить.
Если функционал программы сложный, то может потребоваться более сложная логика, когда тебе какие-то сложные действия надо в случае ошибки сделать. Может быть нужно транзакционное или атомарное поведение. Может ещё что.
Ты, блеядь, программист или кто? Ты должен сам понимать, что тебе нужно в конкретной задаче.
А мне вот интересно, где должны обрабатываться исключения? В вызывающей функции или вызываемой? Если в вызываемой, то она может закрысить важную инфу и передавать неверные данные, а если в родительской, то тогда пропадает принцип единой ответственности. Как правильно делать?
>>1719179 Тебе надо думать о принципах инкапсуляции и замкнутости.
Функция должна делать свою работу и максимально изолировать вызывающий контекст от ненужной информации и головной боли.
Что нужно и не нужно уже зависит от логики программы.
В общем случае может быть подход, что твоя функция сама ловит ошибки низкого уровня, обрабатывает их, но потом порождает задокументированное исключение высокого уровня.
Например если твоя функция открывает либо файл, либо берёт данные из базы или сети, в зависимости от каких-то конфигурационных настроек, то не нужно наружу отдавать файловые-сетевые исключения, исключения json и другое. Правильнее их перехватить и выдать другое исключение наружу.
Потому что вызывающий код понятия не имеет, что ты там открываешь, в каком формате данные и т.п. Ему нужно получить результат или характер ошибки, если ошибка была.
>>1719184 Смотри, как реализованы разные библиотеки и пакеты, которыми ты пользуешься. Просто снаружи, для тебя как для пользователя.
Общий принцип - любой поведение должно быть понятным и документированным.
Такой синтетический пример. Допустим тебе надо получить данные из какой-то структуры, сохранённой где-то.
Эти данные могут лежать в файле или в сети. Формат хранения может быть json, yml, xml, pickle, sqlite или ещё какой-нибудь. В функцию ты просто передаёшь имя, а по префексу-расширению делаешь выводы.
Тебе нужно или получить данные, или код ошибки. При этом для тебя ошибка может быть или вида "не удаётся считать источник", или "в источнике нет данных".
Разработчику не нужно знать о всём том лесе ошибок, которые могут возникнуть. Поэтому каждую ошибку ты обрабатываешь внутри, а наружу кидаешь итоговую, и снаружи ловишь исключения только одного-двух видов, вместо нескольких десятков. Такой общий подход.
>>1719185 Спасибо. Получается функция должна ловить у себя исключения и при невозможности принять меры по этому поводу, возбуждать и возвращать новые, более понятные?
И ещё вопросик: Метод класса должен изменять переменную класса и возвращать ошибку, или возвращать значение, которое уже вне его присваивается перменной класса?
>>1719190 >Метод класса должен изменять переменную класса и возвращать ошибку, или возвращать значение, которое уже вне его присваивается перменной класса? Тебе как разработчику решать, как удобнее.
Вообще общий принцип - данные должны быть или корректными, или их не быть вообще. Это критично для БД, файлов, сетевых пакетов и некоторых действий.
Вот если ты пытаешься обновить свой объект данными из какой-то структуры, в которых данные сбойные - лучше вообще не обновить, оставить старые и вернуть ошибку.
Если у тебя программа прерывает работу на ошибке, то без разницы, конечно. Но если она может продолжить работу и делает какие-то действия, то может быть критично.
Вот сам подумай, если у тебя по завершении работы программы данные сохраняются в базу. Ошибка в данных может привести к сбою в базе данных.
В общем тебе решать, в каких случаях как тебе удобнее. Может быть потом ты по своему сбойному объекту-файлу-базе может восстановить источник ошибки, например.
>>1717772 У меня среди знакомых есть 3 истории успеха, где люди реально с нуля вкатывались и довольно быстро устраивались, правда там шарпист, явист и тестировщик. Я сосу хуй, я относительно недавно вкатился и знаний у меня реально не хватает, поэтому пока даже не бомбит.
>>1711609 (OP) Всем привет Есть одна задача для души Есть сложная функция, в которой есть х и у, известна сумма этих х и у, необходимо узнать, при каком соотношении этих xy будет получено максимальное значение. Наверное, с этой задачей я сам как-то справился бы
Но задача несколько интереснее Дальше речь про некоторую игру, так что кого смущает - не читайте Есть сложная функция, описывающая урон персонажа в которой есть х и у, известна сумма этих х и у, а еще есть некоторое дерево талантов, которое влияет на эу самую формулу. Дерево по своей сути простое (просто меняет количество х, у или какой-то множитель формулы), но это именно дерево, т.е. некоторые таланты незлья взять, пока не взяты другие. Подскажите, как оценить максимальное значение функции при заданных х,у и числе талантов? Как вообще такое гуглить? Подскажите, в какую сторону смотреть. Наверняка есть какое-то типовое (хотя бы чуть-чуть) решение, чтобы хоть как-то сузить количество циклов
Привет объясните дауну, для чего нужны штуки типа redis и rabbitmq? Я понял, что вот редис - это типа такая база данных, только выглядит, как обычный словарь. Т.е это такой альтернативный более упрощенный способ хранения данных (вместо sql бд), правильно? А вот для чего используется второе, не совсем понятно
>>1719351 >Т.е это такой альтернативный более упрощенный способ хранения данных (вместо sql бд), правильно? Не только. Он еще гораздо быстрее, так как все данные храняться в оперативной памяти >А вот для чего используется второе, не совсем понятно Это брокер сообщений. К примеру, у тебя есть 2 сервиса, и тебе нужно выстроить коммуникацию между ними. Когда в одном происходит какое-то событие (например, создан новый товар), но этот сервис через рэббит отправляет сообщение во второй сервис, типа создай этот товар на складе.
>>1719351 Это менеджер очередей. У тебя есть синхронная апа1, которая активно срёт данными, и синхронная апа2, которая эти данные потребляет. Чтобы сбаласировать их напрямую через апи надо много поесть говна.
Раббит - это ящик, первая апа складывает в этот ящик данные, вторая апа из него берёт данные. Как только в ящике становится больше N сообщений ты можешь это отследить и запускает ещё один экземпляр апы2, чтобы брать из ящика сообщения в два потока.
>>1719404 Еще фишка рэббита в том, что если сервис, который читает сообщения, не будет доступен на момент отправки, то он сохранит сообщение в очереди, пока сервис не станет доступен. Еще он масштабируется на несколько серверов, если нагрузка большая. Впрочем, как и редис.
Нубский вопрос. Поясните за названия переменных. Какие имена часто используются людьми, которые уже зарезервированны и которые лучше не использовать? Например, выше по треду я называл файл json.py и это вызывало конфликт.
>>1719468 есть имена из стандартной либы вроде hash, id, json их лучше не перекрывать
общепринято для переменных добавлять _ в конце hash_, id_, json_
для файлов сложнее, обычно просто называют по другому, мол, json_utils или json_validators, либо в кровавом ентерпрайзе могут разруливать такое через тот факт, что запускаемый файл лежит в родительской папке и импортят вроде project.json
типичный... Я чет даже не знаю, как запрос составить.
Да, х и у целые. Даже натуральные. Первая часть решается следующим коротеньким циклом https://pastebin.com/JFKX3Jyg МОжет, не очень филигранно, но зато действует. А вот как пришить сюда таланты ебаные? Хуй знает
Какая мысль меня посетила: для всех вариантов талантов просчитать этот цикл, но как просчитать все варианты талантов? К примеру, у нас есть талант А Б С Д, у каждого из этих талантов 10 уровней, каждый уровень таланта Б требует уровень таланта А. Как можно взять все вариации для 10 талантов? Это уже уже ояебу вариантов, а в каждом этом варианте нужно всять еще варианты для первого цикла, бля, это майнинг уже какой-то.
>>1719518 >общепринято для переменных добавлять _ в конце hash_, id_, json_ Так именуют только мудаки, которые ничего тяжелея хера в руках не держали длиннее print('Hello, world') не писали.
>>1719572 Встречается или имеет место? Стиль такой блевотен по одной причине - белые люди читают слева направо, так что id и id_ выглядят практически одинаковыми, отсюда _ никакой полезной нагрузки не несет.
>>1718470 Мне бы аутпут в консольку шоб выводило. Чтобы типо всю хуйню что программа видит на кадре, пусть срет в консолью Нашел код-образец видео захвата, и хотел на сделать по аналогии, ибо занимаюсь методом научного тыка, так сказать, for eachObject in detections: print(eachObject["name"] , " : " , eachObject["percentage_probability"] ) Засунул это в конец SD.py файлика. Хотел чтобы получилось как в FD. Нихуя не выводит.
Наверно обьекты при видео сьемке не так называются. Какие-нибудь .VideoObject Кстати, если запускать, то по итогу вообще 1 фрейм, каждые 5 сек, лул. Но этого в принципе должно хватить. Мне "умные светофоры" делать, там хоть каждые 10 секунд, не важно. Надо правда убрать запись видео, а то она тоже жрет ресурсы.
Нашел вывод всего дерьма в консольку. Но выводит крайне грязно. Скобачки))), Букафки. Но меня все равно радует. Ну надо наверно написать конвертер отпут строки в что-то полезное, и выводить как белый человек.
>>1719404 >>1719406 Ага благодарю спасибо! У меня тут просто переходный период от чтения док и решения задачек на алгоритмы к написанию первого осмысленного пет-проекта (онлайн голосовалку с аутентификацией, статистикой, защитой от дублирования голосов и прочих штуковин) Но первое, что приходит в голову - просто написать кучу обычных реквестов... пук-среньк... А хочется сразу прикрутить "взрослых" технологий
А в чем разница? Кроме сортирования по алфавиту? Мне нужно что-то вроде пропуска ненужных символов или их удалении. Или я неправильно пользуюсь? Вроде питон имеет в своем распоряжении охуенный иструментарий из функций, которые я не знаю :( На сишке я бы как долбоеб прогнал бы всю строку, и принудительно убрал бы ненужные символы.
Как из обычной командной строки вылезти в анакондовскую? Заебало cdхаться до нужной папки. Я видимо долбоеб. Так еще и ctrl+c почему-то не работает.
Посоны, как там у вас на рынке ситуация? А то мне тут печёт с однокашника по физфаку, с которым мы потом вместе мнс'ами в нии были. Учился он не очень, работу делал тоже не очень, статей в первый-второй квартиль в отличии от меня не писал, кандидатскую тоже не сделал. Свалил в дс на пистон в ML или в AI, причём пока работали вместе он каких-то результатов в кодинге не показывал, может конечно он на работе не усирался. Хотя computational materials scince, где мы работали, вполне интересная область, и есть куда пайтон приложить. Говорит, сейчас у него через год работы 150к+, позицию не знаю. Как так?
>>1719835 кадровый голод половина кандидатов вообще не понятно какого хуя отзываются на пайтон девелопера, не знаю про args/kwargs например а хотят 200к, другая половина какие-то ебанутые чуваки вроде тех что пишут по 10к в одном файле или используют венгерскую нотацию. Таким образом чуваков, которых хоть как-то можно во что-то напрячь ну из 10 собесов будет 1 и тот съебет в другую контору.
>>1719835 Работа в industry везде оплачивается лучше, чем в академии. Это даже от страны не зависит. Computational materials scince - звучит круто, думаю, вполне можно поторговаться за ЗП.
>>1719894 > звучит круто Поэтому и не написал "компьютерное моделирование" или дословно "вычислительное материаловедение". Академия, действительно, оплачивается средне. Я много работаю и получаю 75к в нии, работая нс'ом со степенью кфмн. Немного, но для науки норм.
>>1719992 >Фигурные скобки, одинарные кавычки. Все равно непонятно, в чем заключается задача. Каждый элемент листа состоит из одного символа или из нескольких? По-моему тебе нужно что-то вроде этого (для листа l):
>>1719998 Может это ХУ проблема, так сказать. У нас есть вот такой допустим лист. {'cup': 1, 'bottle': 1, 'person': 2} Мне нужно подсчитать сколько челиков. Позже этим же алгоритмом подсчитать допустим кол-во челиков здесь {'bottle': 1, 'cup': 1, 'person': 1, 'vase': 1} А после и здесь {'bottle': 2, 'person': 1, 'toothbrush': 1, 'vase': 1} И так далее пока я не стопну.
Я думал что если убрать кавычки и скобки, написать считывалку будет проще. Хотя похоже одинаково.
>>1720007 ПАСИБА :3 Я просто тупая бака и языка не знает. Поискал что такое словарь, и сделал такъ. rng = 0 rng = output_count.get('person') print(rng) Получилось.
Штош, осталось сделать вывод этого говна на ардуину.
>>1711609 (OP) Вот задача: Напишите программу, которая получает три вещественных числа в одной строке, разделенных пробелом, как-то преобразует их и выводит их на экран как показано в примере: В выводе используйте 1 функцию print()!
Через что лучше работать с электронными таблицами excel, open office? Нужно искать по значаниям в ячейках сравнивать перезаписывать по определенным условиям
парни подскажите как сравнить по столбцу 2 csv файла без заголовков. и если строка со 2го совпадает с первым дописать в совпадающую строку в 1м определенный текст?
Есть шанс вкатится после 33? Хотя бы чисто по фану для себя начать, год назад пробовал стартовать дошел до простенького реддит бота, но забросил, сейчас сам в своем коде не могу разобраться. Имею вышку по инженерной спецухе, производство, 3дэ моделинг, как то можно с пистоном совместить?
>>1720170 > Есть шанс вкатится после 33? Да, но учти, кадровый голод не просто так. Не смотря на огромное количество вкатывальщиков ситуация принципиально не меняется. > 3дэ моделинг, как то можно с пистоном совместить? Сам не моделер, но какие-то плагины на блендера вроде на питоне пишутся. Ты должен лучше знать
Познакомился с peewee, запихиваю json в базу циклами и второй день не могу победить пикрил. Сначала всё норм, но где-то на 2 группе данных вываливается ошибка на выделенной строке. Смотрю содержимое element_group_through - одинаковые значения как в первой так и во второй колонке присутствуют, т.е. успешно записались, значит проблема не в этом. Кто сталкивался? Что ей от меня нужно?
>>1720210 Если и для группы, и для элемента выполнится ветка "get", то ты действительно попытаешься засунуть точно такую же связь, которая была вставлена, когда в предыдущий раз группа или элемент (или обе сущности) были созданы.
3. Не уверен, что тебе это нужно, но у тебя нет ограничений на уникальность групп и элементов. Группу с одним и тем же названием можно создать несколько раз.