4 ms·
How does it compare to established, actively maintained, projects like the following ones ? - https://github.com/alecthomas/voluptuous https://github.com/alect
by fermigier 9y ago
How does it compare to established, actively maintained, projects like the following ones ?
- https://github.com/alecthomas/voluptuous https://github.com/alecthomas/voluptuous
- https://github.com/schematics/schematics https://github.com/schematics/schematics
- https://github.com/pyeve/cerberus https://github.com/pyeve/cerberus
- https://github.com/fuhrysteve/marshmallow-jsonschema https://github.com/fuhrysteve/marshmallow-jsonschema
- fermigier 9y agoEven more interesting projects here: - https://awesome-python.com/#data-validation https://awesome-python.com/#data-validation
- shazzy 9y agoAlso a shameless plug for my python library for declarative multi-field validation: https://github.com/shezadkhan137/required https://github.com/shezadkhan137/required It makes it easier to expresses complex inter-field validation rules, and is meant to be used with other validation libraries.
- willvarfar 9y agoMay I join you in shameless plugging? My own obiwan: https://pypi.python.org/pypi/obiwan https://pypi.python.org/pypi/obiwan It predates the MyPy syntax and, in my opinion, is a gazillion times prettier and my "pythonic". I'm not bitter ;) It's "actively maintained" but I haven't needed to do anything in ages - it just works :) PySchemes seems to have very similar syntax, but obiwan is also able to validate signatures in function annotations and is particularly good at validating JSON and msgpack APIs (the python code to validate an API is self-describing and makes excellent API documentation for other parties).
- logronoide 9y agoWhy is better PySchemes than others like Voluptuous? I’m happy with it, but open to new stuff.
- StavrosK 9y agoMy preferred library is "schema", as it's very functional.
- chucksmash 9y agoIt looks similar to voluptuous. Browsing READMEs, the other three examples expose their own library level representations for primitive types (e.g. Field.int() or {"type": "int"} instead of the primitive Python type int).
- xapata 9y agohttps://github.com/selik/destructure https://github.com/selik/destructure Similar design to Voluptuous, but it also supports a destructuring bind instead of just validation.
- BerislavLopac 9y agoOr https://github.com/python-attrs/attrs https://github.com/python-attrs/attrs
- carapace 9y agoAlso, https://github.com/neoinsanity/ontic https://github.com/neoinsanity/ontic