Comments (7)
Ye sure that is doable.
It maybe require some bigger refactoring because currently the length/range checks is done inside the scalar validation.
I think that it can be extended to map also.
from pykwalify.
There we go. Implemented in commit: 1847761
Have a look at it.
Keyword 'range' now works for seq, map, str, int. Play around with it some and look at the new test files.
One thing i think i want to do now is to refactor our 'length' because 'range' handles all its cases and more so there is no need to have both currently.
from pykwalify.
I think with this commit something is broken. I'm getting a bunch of failures where I previous had none. It seems the min (and possibly the max) is now doing an exclusive check rather than an inclusive one. So for a schema like:
schema;registers_schema:
type: seq
sequence:
- type: map
required: False
mapping:
reg:
required: True
type: str
value:
required: True
type: int
range:
min: 0
max: 255
With data like:
- reg: I2S_REG
value: 0x00
it will fail with the following error (scalar.range.toosmall: 0 > 0) because the value is zero. If I understand things correctly, 'min' as defined above should allow this. As I mentioned, this worked before your latest commit to the develop branch. Can you investigate?
from pykwalify.
Oh yeah, i must have mixed up something in the refactoring of range... It should be fixed in develop branch now.
from pykwalify.
Seems to have fixed my problem after I eliminated the use of the 'length' directive on strings. I'll do further testing later.
from pykwalify.
'lenght' was refactored out in a83008e because 'range' can handle all cases.
And the bug with 'range' was fixed in 5d114df
from pykwalify.
Closing this because i consider the feature to be implemented in the commits mentioned above.
from pykwalify.
Related Issues (20)
- Union of schemas HOT 4
- rule.py is missing a comma in defined_keywords list
- Deprecation warning due to invalid escape sequences in Python 3.8 HOT 1
- Fails to regex match a mapping with integer keys HOT 1
- AttributeError: 'int' object has no attribute 'startswith'
- Support multiple data type HOT 1
- New release? Maintainers needed or? HOT 2
- Deprecation warning "the imp module is deprecated in favour of importlib" HOT 1
- pattern rule not working with all scalar types HOT 1
- <RuleError: error code 4
- Using fulmatch for regex matching. HOT 1
- Schema Validation Against Multiple Files HOT 1
- Outputting Scan Results in SARIF Format HOT 1
- How can I check key only? HOT 5
- anchors to inherit properties are falsely reported as Duplicate HOT 2
- ReadTheDocs does not seem to be updating
- Some error message for length violations are wrong
- issue while using "unique: true" for the sequence data type HOT 3
- Tests fail with ruamel.yaml 0.18.0
- Core Validation Fails - Multi Threading & Python 3.11 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 pykwalify.