Giter VIP home page Giter VIP logo

Comments (4)

Grokzen avatar Grokzen commented on July 21, 2024

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.

Grokzen avatar Grokzen commented on July 21, 2024

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.

Grokzen avatar Grokzen commented on July 21, 2024

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.

sitaktif avatar sitaktif commented on July 21, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.