Comments (2)
That does seem undesired at first glance -- possibly/probably fixable as you say -- can you open a new issue so it's not forgotten?
from jsonschema.
Hi, not sure if you expected one side effect. It is too minor for mentioning it in the separate issue, so leaving it here.
schema = {'oneOf': [
{'properties': {'run': {'type': 'string'}}, 'required': ['run']},
{'properties': {'uses': {'type': 'string'}}, 'required': ['uses']},
]}
instance = {'uses': 1, 'run': 1}
error = exceptions.best_match(Validator(schema).iter_errors(instance))
print(schema, "\n\n", error)
After the fix it produces:
1 is not of type 'string'
On instance['run']:
1
Conceptually, it is not clear why run
has priority (I understand that technically it has priority due to the alphabetical order).
Based on real example https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/github-workflow.json
As an alternative proposal, the relevance function could not be changed, but best_match
could distinguish errors having different error.path in the same subscheme, and choose first of them (maybe having even not the minimal relevance, but the maximum one for this particular subscheme provided that it is still minimal among different subschemes).
from jsonschema.
Related Issues (20)
- Documentation is out to date HOT 6
- Error importing jsonschema after release 4.22.0 HOT 10
- Mitigate undesired side effect of new `best_match` behaviour with alternative proposal HOT 4
- jsonschema not work with python3.13 HOT 1
- When certain types of error messages are converted to strings, certain schema properties are incorrectly converted HOT 3
- Python 3,.13 not yet working due to PyO3 maximum supported version HOT 4
- Relative pointers fail to evaluate HOT 5
- 4.22 fails with pytest, black and so on HOT 1
- `jsonschema._format.is_css_color_code` and `jsonschema._format.is_css21_color` never exist if the latest version of `webcolors` is installed HOT 2
- FR: Variant without Rust dependencies HOT 1
- Support hiding annotation keywords when reporting errors
- float number, range validation failure HOT 4
- [Quality of life : Error] Type Check for Schema and Instance Arguments in jsonschema.validate() HOT 3
- Validate formats in `check_schema`
- Validate examples within the schema
- NewValidator created after descend does not use extended validators from parent HOT 1
- "email" format validation is too relaxed HOT 1
- Installing ddtrace breaks tests with the jsonschema library HOT 6
- Inconsistent behavior when setting `default` HOT 1
- Status of type annotations
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 jsonschema.