🍁 Jaŭhien
Грязь делает
Tigran
Что-то туплю.. гляньте свежим взглядом. Что делает строка? if num != eval("".join([c for c in input() if c in "()[]<>|"])):
считывает ввод, оставляет только символы ()[]<>|, пытается вычислить результат как выражение и сравнить с num
Мгм
Thanks
Есть ли возможность отправить как-то обратно цифры, обойдя ошибку? for _ in range(100): num = random.randint(100, 100000) print(num) try: if num != eval("".join([c for c in input() if c in "()[]<>|"])): print("Sorry, that's wrong :c") exit(0) except: print("Ouch, that hurts :c") exit(0) print("то, что мне нужно")
Artem
проверить что с ввода пришла число идентичное рандому?
Мне нужно отправить обратно цифры в инпут, таким образом, чтоб использовались скобки
Artem
ну eval это точно не то что тебе надо
Я не пишу прогу
Мне нужно обойти готовую
Tishka17
никогда не используйте eval!!!
Да я его и не использовал
Это бэкенд
Tishka17
👌
👍
Artem
)) грустно кому то с таким беком сидетьб
Vladimir
кстати, а какие кейсы вообще есть когда eval НУЖЕН? я никак придумать не могу вообще нафиг он нужен в языках
UglyKoyote
калькулятор свой писать с гуями)
UglyKoyote
чтобы не парится с операциями
SetazeR
просто eval'ишь всё из конкретной папки
SetazeR
но это ересь и решето
Tishka17
зачем, когда есть __import__
зачем, когда есть importlib?
Aragaer
когда хочешь в своей программе иметь пользовательские скрипты на подмножестве питона
SetazeR
этот импорт работает в той же области видимости в которой выполняется скрипт?
Aragaer
например арифметические выражения
Tigran
когда хочешь в своей программе иметь пользовательские скрипты на подмножестве питона
но ты не сможешь гарантировать, что это будет подмножество
Aragaer
не смогу, но я могу требовать, чтобы это строго был экспрешшн например
Aragaer
да
Aragaer
а, не, это только для литералов
Tigran
ага, но вопрос-то был про eval
Alex
и то небезопасен
Aragaer
арифметику уже не съест
Tigran
ну блин, на экспрешне в питоне что угодно можно сделать
Bogdan (SirEdvin)
Да, надо все писать на чистом коде от ТарасаКТЛ.
Tigran
пользовательский скрипт разорвёт твою сраку одним экспрешном
Aragaer
по-моему была возможность как-то запрещать или разрешать какие-то вещи
Alex
нафиг надо в общем случае. нужны экспрешны либо писать самому либо интегрируешь какой-нибудь язык для этого предназначенный.
Bogdan (SirEdvin)
Да, надо все писать на чистом коде от ТарасаКТЛ.
А все эти патерны, стратегии и прочие штуки придумали только для говнокода, все верно.
Alex
по-моему была возможность как-то запрещать или разрешать какие-то вещи
очевидной и безопасной возможности в питоне не предусмотрено
Alex
поэтому не страдаем херней и используем инструменты по назначению
Alex
eval - примерно никогда.
Bogdan (SirEdvin)
Есть либы для safe eval, на самом деле
Pavel
Есть либы для safe eval, на самом деле
они все очень условно "safe"
Alex
если уж совсем не хочется париться проще lua заинтегрировать
Pavel
если уж совсем не хочется париться проще lua заинтегрировать
писать на луа экстеншны к петону? мсье знает толк
Bogdan (SirEdvin)
они все очень условно "safe"
Ну, там остается только очень ограниченный python без импортов и прочей ерунды. Я, честно говоря, слабо вижу, что там можно катастрофично поломать.
Tishka17
Есть либы для safe eval, на самом деле
У меня есть однострочник: safe_eval=lambda x: x
r
какие то гипотетические примеры
SetazeR
какие то гипотетические примеры
не надо недооценивать человеков
Alex
сделать math bomb очень легко.
r
и часто вообще у вас кто-нибудь въебет подобное в проекте
Tishka17
какие то гипотетические примеры
Безопасность всегда оперирует гипотетичнскими примерами. Потому что никто их обычно не вводит кроме тех редких случаев, когда тебя ломают
r
или у вас даже консольные утилиты атакуют какеры с зелеными экранами
Tishka17
и часто вообще у вас кто-нибудь въебет подобное в проекте
Ну вот у меня несколько миллионов юзеров на проекте, как думаешь, среди них найдется желающий поломать всё?
r
а как это вообще связанно с теми гипотетическими примерами
Tishka17
Эм
r
я просто не понимаю как через все лееры сможет это дойти до эвала в какой-нибудь точке
Nikolay
Он деградирует в инстаграмме
r
канеш дойдет до эвала если он стоит в каком-нибудь эндпоинте первой строкой
Tishka17
а как это вообще связанно с теми гипотетическими примерами
Зачем привыкать писать небозопасный код, который в проде нельзя применить
r
но это как раз и есть гипотетический пример
Bogdan (SirEdvin)
99**9999**999**999
subinterpreter с лимитами по памяти и cpu?)
Vikigo
Снова вопрос по поводу парсера) Есть проект https://github.com/ectogigamau/dns_markdown в котором отсутствует шаблон для вывода результата на фтп из-за чего нет корректного вывода информации, он просто остаётся в бд, и я попытался его хотя бы формировать в csv, но в итоге он мне начинает ругаться на пагинацию и какой то charmap, хелп плиз