Comments (4)
I would say no to let yaml
handle this because of several reasons.
First even if yaml
is the most common format for the data and schema this lib is not designed to be exclusively used with yaml
but it could be used with json
or any python data structure if you are using this as a lib in your code. If you pass in a file with json
then i would have to convert the data structure to yaml
and then dump it back to python object with yaml
and that is not a good approach.
Secondly i tried to use the datetime parsing that is already included in yaml
but it was not good enough because it could only handle the most basic timestamp formats but blew up when the timestamp string was altered slightly but was still considered a valid timestamp.
The built-in datetime parsing was also not good enough because i have to define every combination of supported timestamp formats and there is so many combinations.
I think that python-dateutil is good enough to handle timestamp parsing/validation because it makes everything really easy. One problem might be that it support to many formats O.o
from pykwalify.
Also it already checks if the value for the timestamp is a native datetime object already and validates if it is so there is no need to validate further if for example yaml.dump(data)
already returns a datetime. Python-dateutil only adds more functionality that the stdlib do not provide.
from pykwalify.
Also the maintainers of yaml
do not update the lib that often and i think they do not have a high priority to correctly format every possible datetime string into a native datetime object but gives that responsible to the code that uses their lib.
from pykwalify.
Indeeed, because pykwalify supports json as well, your arguments definitely make sense. But also I had a look at the Yaml spec, and it does not seem to define any particular format (other than an example using ISO8601).
Seems like dateutil
will do the job :)
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.