Сохранен 16
https://2ch.hk/pr/res/997773.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Питон-питончик

 Аноним 29/05/17 Пнд 03:24:20 #1 №997773 
.png
Написал небольшой модуль-валидатор для питона

https://gist.github.com/anonymous/d498c292c79e48e3f611c0c7d2369b50

Который позволяет делать такое:

[CODE]
@validate(a="int", b="str", c="json_dict")
def method(self, a, b, c):
pass
[/CODE]

Идея в том, что все аргументы, которые залетают в метод, валидируются спец функциями, и не надо делать это самому внутри метода каждый раз.

Обоссыте, поясните как можно измерить эффективность и покажите мне либу в которой это уже сделано, и я выброшу свою поделку.
Аноним 29/05/17 Пнд 14:57:44 #2 №997961 
some-serious-thought-was-put-into-this-retarded-doll-141333[...].jpeg
>>997773 (OP)
Йобанный свистящий калач с масляным кремом и святой волосней.

Это что-то абсолютного иного уровня нежели стрельба себе в ногу.

Попробуй ООП тред >>996015 (OP)
Аноним 29/05/17 Пнд 15:05:14 #3 №997966 
>>997961
>Попробуй ООП тред
Вообще, тебе уже ничего не поможет.
Аноним 29/05/17 Пнд 15:05:58 #4 №997967 
>>997961
Ты нихуя не понял, валидация не для того, чтобы завести строгую типизацию в питон. А для того, чтобы можно было вызывать функции, например, на веб сервере, данные на который приходят от пользователя, которые надо проверять.
Аноним 29/05/17 Пнд 15:09:25 #5 №997968 
>>997773 (OP)
Еще в 13 году написали.
https://stackoverflow.com/questions/15299878/how-to-use-python-decorators-to-check-function-arguments
Аноним 29/05/17 Пнд 15:12:56 #6 №997970 
>>997968
Ну я сделал по сути тоже самое. Но мне недостаточно просто типы проверить. Нужно проверить, например, что это JSON-объект со значениями-интами.
Аноним 29/05/17 Пнд 15:13:30 #7 №997971 
>>997967
Проверяй их явно. Do it python way
Аноним 29/05/17 Пнд 15:18:10 #8 №997972 
.png
>>997971
Мне надо сделать это в 500 мест. Что, ебашить 500 ифов?
Аноним 29/05/17 Пнд 15:20:24 #9 №997973 
>>997970
Так написал бы лучше с использованием аннотацией типов в 3.5 завезли же.
Аноним 29/05/17 Пнд 15:24:20 #10 №997976 
>>997973
>мне недостаточно просто типы проверить. Нужно проверить, например, что это JSON-объект со значениями-интами.
И как это решит эту проблему?
Аноним 29/05/17 Пнд 15:37:34 #11 №997980 
>>997773 (OP)
Во-первых, пиздуй в питонотред.
Во-вторых, это вполне рабочее решение.
В-третьих, это похоже на велосипед, т.к. что-то подобное уже должно быть в питонских веб-фреймворках.
Аноним 29/05/17 Пнд 16:22:04 #12 №997997 
>>997967
Ну так используй wtforms или coreapi.

А если тебе JSON сшлют - jsonSchema
Аноним 29/05/17 Пнд 16:43:55 #13 №998008 
>>997773 (OP)
Сделай на Классах-дескрипторах, как в Джанго или Алхимии.
Аноним 29/05/17 Пнд 17:00:13 #14 №998015 
>>997976
Так создай нужный тебе тип данных. Так куда логичнее будет.
Аноним 29/05/17 Пнд 17:08:43 #15 №998019 
>>998015
Или лучше заебень метакласс, пусть он сам возвращает объект нужного класса на основе данных json-а.
Аноним 30/05/17 Втр 04:50:59 #16 №998372 
>>997997
JSON – частный случай. Например мне банально нужен bool и я хочу принимать как True/False если вызываю сам, так и 'true'/'false' если залетает от пользователя. А если параметр вообще опущен, то, например, True. Или мне нужен инт, но если он залетел строкой, то влететь уже должен числом.

Зачем делать if и 4 проверки в каждом методе где мне нужен таой функционал, если я могу ебнуть декоратор? Вопрос только в том есть ли такое решение отвязанное от фреймворка?
comments powered by Disqus