[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] schemas: Add vim modeline
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH] schemas: Add vim modeline |
Date: |
Thu, 30 Jul 2020 14:24:46 +0100 |
User-agent: |
Mutt/1.14.5 (2020-06-23) |
On Thu, Jul 30, 2020 at 01:51:10PM +0200, Markus Armbruster wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
>
> > modify them so that we can load the
> > files straight into the python intepretor as code, and not parse
> > them as data. I feel unhappy about treating data as code though.
>
> Stress on *can* load. Doesn't mean we should.
>
> Ancient prior art: Lisp programs routinely use s-expressions as
> configuration file syntax. They don't load them as code, they read them
> as data.
>
> With Python, it's ast.parse(), I think.
Yes, that could work
> > struct: ImageInfoSpecificQCow2
> > data:
> > compat: str
> > "*data-file": str
> > "*data-file-raw": bool
> > "*lazy-refcounts": bool
> > "*corrupt": bool
> > refcount-bits: int
> > "*encrypt": ImageInfoSpecificQCow2Encryption
> > "*bitmaps":
> > - Qcow2BitmapInfo
> > compression-type: Qcow2CompressionType
> >
> >
> > Then we could use a regular off the shelf YAML parser in python.
> >
> > The uglyiness with quotes is due to the use of "*". Slightly less ugly
> > if we simply declare that quotes are always used, even where they're
> > not strictly required.
>
> StrictYAML insists on quotes.
I wouldn't suggest StrictYAML, just normal YAML is what pretty much
everyone uses.
If we came up with a different way to mark a field as optional
instead of using the magic "*" then we wouldn't need to quote
anything
> I hate having to quote identifiers. There's a reason we don't write
>
> 'int'
> 'main'('int', 'argc', 'char' *'argv'[])
> {
> 'printf'("hello world\n");
> return 0;
> }
>
> > struct: ImageInfoSpecificQCow2
> > data:
> > "compat": "str"
> > "*data-file": "str"
> > "*data-file-raw": "bool"
> > "*lazy-refcounts": "bool"
> > "*corrupt": "bool"
> > "refcount-bits": "int"
> > "*encrypt": "ImageInfoSpecificQCow2Encryption"
> > "*bitmaps":
> > - "Qcow2BitmapInfo"
> > "compression-type": "Qcow2CompressionType"
> >
> > With the use of "---" to denote the start of document, we have no trouble
> > parsing our files which would actually be a concatenation of multiple
> > documents. The python YAML library provides the easy yaml.load_all()
> > method.
>
> Required reading on YAML:
> https://www.arp242.net/yaml-config.html
I don't think this is especially helpful to our evaluation. You can write
such blog posts about pretty much any thing if you want to pick holes in a
proposal. Certainly there's plenty of awful stuff you can write about
JSON, and Python.
> Some of the criticism there doesn't matter for our use case.
Yeah, what matters is whether it can do the job we need in a way that is
better than what we have today, and whether there are any further options
to consider that might be viable alternatives.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- [PATCH] schemas: Add vim modeline, Andrea Bolognani, 2020/07/29
- Re: [PATCH] schemas: Add vim modeline, Markus Armbruster, 2020/07/30
- Re: [PATCH] schemas: Add vim modeline, Markus Armbruster, 2020/07/31
- Re: [PATCH] schemas: Add vim modeline, Daniel P . Berrangé, 2020/07/31
- Re: [PATCH] schemas: Add vim modeline, John Snow, 2020/07/31
- Re: [PATCH] schemas: Add vim modeline, Daniel P . Berrangé, 2020/07/31
- Re: [PATCH] schemas: Add vim modeline, Paolo Bonzini, 2020/07/31
- Re: [PATCH] schemas: Add vim modeline, Dr. David Alan Gilbert, 2020/07/31
- Re: [PATCH] schemas: Add vim modeline, Daniel P . Berrangé, 2020/07/31