Comments (3)
As you say, default values have nothing to do with validation. Cerberus does not edit the dictionary in any way, therefore could not provide this service. Defaults should be handled before validation, maybe by recurring to the handy setdefault
(docs) method.
Now, if your intended context was the Eve REST API Framework then yes, default values for collection schemas would probably make for a nice feature. Consider opening a feature request issue @ Eve repo in that case.
from cerberus.
I've been thinking about this and actually ended up implementing a default
constraint for Cerberus. It is actually very similar to required
since for the purpose of validation a default value simply means that the field must be present, and it must carry a value (string fields cannot be empty). This will allow for a richer grammar when defining schemas, and pre-processors will have an easier game at supporting default values (think Eve). Stay tuned.
from cerberus.
On second thought, I went with a different approach (transparent rules). a6d4fba
from cerberus.
Related Issues (20)
- Use of __double_leading_underscore preventing extending HOT 1
- Add "description" field to make schemas self-documenting HOT 2
- Improve docs for conditionally required field HOT 1
- Unexpected normalization behavior with anyof_schema HOT 1
- Conditional validation for empty parameter
- Dependencies not being honored? HOT 1
- anyof does not respect nullable: True HOT 2
- install_requires=["setuptools"], in setup.py is wrong HOT 4
- Bug with rules_set_registry() for rule with type dict and included schema HOT 3
- Address DeprecationWarning errors to fix installation warning HOT 1
- Importing cerberus takes too long HOT 3
- Coercing fields does not work recursively HOT 2
- pyproject.toml does not specify requires-python HOT 1
- Rename and Coerce do not work together HOT 2
- anyof does not respect required: False HOT 4
- Inside oneof_schema not work default values for nested keys
- "anyof"/"oneof" and "nullable" do not behave as expected HOT 1
- ImportError: cannot import name 'Iterable' from 'collections' HOT 1
- Python 3.12 - SyntaxWarning HOT 1
- Dynamically set value for schema based on document values [Proposed label: feature_request
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cerberus.