[requirements][mistral] Add yamlloader to global requirements

Ben Nemec openstack at nemebean.com
Thu Feb 14 17:15:59 UTC 2019



On 2/14/19 10:46 AM, Oleg Ovcharuk wrote:
> Matthew, we use not only load, but also dump. We can't use custom 
> constructor and default representer - the output will be terrible.
> This custom constructor contains about 50 lines of code, representer 
> would have a similar count. Also, we should think about compatibility 
> with Python 2.7, 3.x and about it's performance.
> Summary, we would have about 150 lines of code, which is just copy-paste 
> from `yamlloader` library.
> IMHO, it is better to use existing solutions.

You don't need a complex representer to dump OrderedDicts. It can be 
done in about three lines: 
https://github.com/cybertron/tripleo-scripts/blob/105381d4f080394e68a40327c398d32eb9f4f580/net_processing.py#L302

That's the code I used when I wanted to dump dicts in a particular 
order. Once you add the representer OrderedDicts are handled as you 
would expect.

> 
> чт, 14 февр. 2019 г. в 19:14, Matthew Thode <mthode at mthode.org 
> <mailto:mthode at mthode.org>>:
> 
>     On 19-02-14 16:58:49, Oleg Ovcharuk wrote:
>      > Hi! Can you please add yamlloader library to global requirements?
>      > https://pypi.org/project/yamlloader/
>      >
>      > It provides ability to preserve key order in dicts, it supports
>     either
>      > python 2.7 and python 3.x, it provides better performance than
>     built-in
>      > functions.
>      > Thank you.
> 
>     I'd like to know a little more about why we need this, yaml as a spec
>     itself doesn't guarantee order so order should be stored somewhere else.
> 
>     If all you need is ordereddict support something like this may be better
>     then adding yet another lib.
> 
>     https://gist.github.com/enaeseth/844388
> 
>     -- 
>     Matthew Thode
> 



More information about the openstack-discuss mailing list