[requirements][mistral] Add yamlloader to global requirements

Oleg Ovcharuk vgvoleg at gmail.com
Wed Mar 27 21:56:51 UTC 2019


I’ve checked this solution. It doesn’t work as well in Python 2.7 - dumped yaml includes this ugly parts "!!python/object/apply:collections.OrderedDict».
Yes, it could be fixed by including another hundred lines of code, but it still smells like we just copy and paste existing solution.

> 15 февр. 2019 г., в 8:28, Renat Akhmerov <renat.akhmerov at gmail.com> написал(а):
> 
> This looks like a solution, yes. Thanks.
> 
> @Oleg, please take a look. Maybe we really decided to add a new yaml lib too early.
> 
> 
> 
> Renat
> On 15 Feb 2019, 00:16 +0700, Ben Nemec <openstack at nemebean.com>, wrote:
>> 
>> 
>> 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
>>> 
>> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20190328/f3848eda/attachment.html>


More information about the openstack-discuss mailing list