From: Kirill S. <xi...@ga...> - 2006-09-19 07:28:08
|
Hi Chris, On Mon, Sep 18, 2006 at 09:05:26AM -0400, Chris Ross wrote: > On Sep 17, 2006, at 6:58 PM, Andreas Rumpf wrote: > > YAML is about writing *human-readable* data. No human being thinks > > of eight if he writes 010. In math leading zeros have no meaning. > > Programmers may think otherwise (because of the sucking C > > programming language). In order to not confuse anybody it may be > > adviseable to forbit leading zeros in integers. As an alternative > > spelling for octal numbers I suggest: 0c10 (c instead of o, because > > 0o10 looks to strange). Note that this may affect octal numbers in > > quoted literals as well. > > So please consider this in the next version of the specification. > > I'm not sure, but I don't know that this is actually coded in the > specification. I just scanned through the specification, and while > it does presume that an integer in the form "010" would be octal (8), > I don't think it actually states that it must be interpreted that > way. Specifically, section 2.4 says: > > In YAML, untagged nodes are given an type depending on the application. > > That and other comments lead me to believe that the specification > doesn't describe how integers (or any other scalar type) should be > interpreted by the parser, or the application. > This may be an issue of the Python YAML module more than it is an > issue of the specification. Tho, of course, the specification should > make more clear that this is up to the application to decide if > something as significant as Python's YAML module was to be changed in > this way... Actually, PyYAML allows you to specify custom resolvers for untagged nodes. The default resolver supports the tags defined in the YAML tag repository + Python-specific tags for serialization, but you are not limited by this. -- xi |