Comments (14)
Your schema is wrong, it's properties
, not property
, which is why additionalProperties
is still validating foo
there.
from jsonschema.
Yeah, you're right.
But at first time I wanted to post other example (with patternProperties
). Then I changed it to properties
to simplify example (and made typo as well :) )
So, here is the thing:
instance = {"foo": 123}
schema = {
"type": "object",
"patternProperties": {
"^f.o$": {
"type": "integer",
},
},
"additionalProperties": {
"type": "string"
}
}
validate(instance, schema)
raises error as above.
I'm not 100% sure whether additionalProperties
should be aware about patternProperties
.
Draft does not clarify things as well.
from jsonschema.
Ah, OK. I'll have to take a look later, but that sounds reasonable.
from jsonschema.
Had the same issue. Below is my diff - hope this helps
410,417c410
< #extras = set(instance) - set(schema.get("properties", {})) - set(schema.get("patternProperties", {}))
< extras = []
< for k in set(instance) - set(schema.get("properties", {})):
< for regex in set(schema.get("patternProperties", {})):
< if not re.match(regex, k):
< extras.append(k)
< extras = set(extras)
<
---
> extras = set(instance) - set(schema.get("properties", {}))
from jsonschema.
Cool. Any chance you'd like to write the test :)?
from jsonschema.
I can, but what exactly do you need me to do? do you want a sample json-schema.
from jsonschema.
Hi Julian,
I'd like to wrap hobbez1's solution with tests and push it back.
But on my machine, tox failed to run 16 tests.
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Do I need python2.7 (3.*) for this?
from jsonschema.
Well, you'd need a copy of each of python2.6
, python2.7
, python3.2
, and pypy
to run all of tox
, but I'm perfectly OK with just running it against one of those (whichever you have, 2.6 should be fine) locally and then I can run it through tox
before I pull it.
You certainly shouldn't be seeing failures though, can you pastebin those?
from jsonschema.
here it is: http://pastebin.com/gUZJer6m
from jsonschema.
Interesting. I have 2.6.7
locally, which is what I use to test compatibility with 2.6, but I guess I'll have to take a look at that on 2.6.1
. If you have access to a later version it should work, if not gimme a bit I'll take a look at what's going wrong. Thanks for taking a look at this.
from jsonschema.
Ah I remember, this is a unicode thing. Early python 2.6's didn't allow unicode keyword arguments. This should only be an issue in the tests. I'd ignore them, it looks like you have a version of python 3.2 there, so just test against that by doing tox -e py32
and you should be good. Lemme know how that goes. Thanks again.
from jsonschema.
Any luck? Not rushing you, just checking if you're working on this. If not I can merge it myself with the small test case.
from jsonschema.
No luck :)
I didn't have a chance to start working on it. I was planning to prepare pull request on weekends.
from jsonschema.
FYI, finally I've started to prepare pull request :)
from jsonschema.
Related Issues (20)
- Migrating From RefResolver, unable to resolve $ref
- Feature request: Add support for a second message attribute on errors which is guaranteed not to include the failing instance HOT 5
- Python NaN validates against all numeric limits, and shouldn't HOT 2
- validating nan in an enum is no longer supported HOT 1
- Need a custom ref resolver
- Support custom Registry for meta schema in check_schema HOT 4
- `"format":"date-time"` not working HOT 6
- The latest version is slower than 3.2.0 validator HOT 5
- Validation error messages changed after upgrading jsonschema version from 3.2.0 to 4.21.1 HOT 5
- multipleOf fails to validate that 4.02 is a multiple of 0.01 due to floating point math HOT 1
- Unexpected KeyError while running test suite inside GitLab Worker HOT 3
- Enhancing the multipleOf Validator for Improved Decimal Handling in jsonschema HOT 1
- @FormatChecker.checks decorator not a classmethod HOT 1
- RefResolver deprecation docs are confusing and do not explain how to replace a very simple usage (a RefResolver which just specifies a base_uri) HOT 1
- Using the copy button of the code block in the README results in error "zsh: command not found: $" HOT 2
- Support installation via Homebrew HOT 1
- Improve `best_match` when used with applicators HOT 2
- Documentation is out to date HOT 6
- Error importing jsonschema after release 4.22.0 HOT 7
- Mitigate undesired side effect of new `best_match` behaviour with alternative proposal HOT 1
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.