Nico Schlömer | 12 Jun 2012 23:43
Picon
Gravatar

Re: less verbose Python lib

It's not the storage requirements of the list that are inconvenient
but the fact that I'd have to wait for too long: I want to have the
output as soon as it's available.
Is this a situation where a generator could be helpful? (I have no
experience with those.)

On Tue, Jun 12, 2012 at 11:18 PM, Daniel Goertzen
<daniel.goertzen@...> wrote:
> Perhaps implement your items as a generator instead of building the whole
> list ahead of time.
>
> Dan.
>
>
> On Tue, Jun 12, 2012 at 4:01 PM, Nico Schlömer <nico.schloemer@...m>
> wrote:
>>
>> Compiling the list is difficult for me as the items take a long time
>> to be computed (the emitter is supposed to be part of a numerical
>> code), so I wouldn't want to have to wait for the last item to arrive
>> until they're printed all together.
>>
>>
>>
>> On Tue, Jun 12, 2012 at 10:52 PM, Dennis Lissov <dennis.lissov@...>
>> wrote:
>> > Hello Nico,
>> >
>> > in Python YAML is typically mapped directly to the trees of objects.
>> > The YAML sequence is mapped to the Python list, so using
(Continue reading)

Daniel Goertzen | 13 Jun 2012 16:05
Picon

Re: less verbose Python lib

Sorry, this is a red herring, a generator is not going to work.  I just ran a quick test...

>>> import yaml
>>> import time
>>> def g():
...     for i in range(10):
...             time.sleep(1)
...             yield i
... 
>>> 
>>> yaml.dump(g())
'!!python/object:builtins.generator {}\n'
>>> list(g())
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]



On Tue, Jun 12, 2012 at 4:43 PM, Nico Schlömer <nico.schloemer-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
It's not the storage requirements of the list that are inconvenient
but the fact that I'd have to wait for too long: I want to have the
output as soon as it's available.
Is this a situation where a generator could be helpful? (I have no
experience with those.)



On Tue, Jun 12, 2012 at 11:18 PM, Daniel Goertzen
<daniel.goertzen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Perhaps implement your items as a generator instead of building the whole
> list ahead of time.
>
> Dan.
>
>
> On Tue, Jun 12, 2012 at 4:01 PM, Nico Schlömer <nico.schloemer-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> wrote:
>>
>> Compiling the list is difficult for me as the items take a long time
>> to be computed (the emitter is supposed to be part of a numerical
>> code), so I wouldn't want to have to wait for the last item to arrive
>> until they're printed all together.
>>
>>
>>
>> On Tue, Jun 12, 2012 at 10:52 PM, Dennis Lissov <dennis.lissov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> wrote:
>> > Hello Nico,
>> >
>> > in Python YAML is typically mapped directly to the trees of objects.
>> > The YAML sequence is mapped to the Python list, so using
>> >
>> >    yaml.dump(['eggs', 'bread', 'milk'], default_flow_style=False)
>> >
>> > and if the equivalent output of '[eggs, bread, milk]' is acceptable,
>> > the keyword argument may also be omitted. Unless you need to
>> > explicitly deal with the representation and serialization steps, it's
>> > the easiest way to deal with YAML in Python.
>> >
>> > Good luck,
>> > Dennis.
>> >
>> > On Tue, Jun 12, 2012 at 11:39 PM, Nico Schlömer
>> > <nico.schloemer <at> gmail.com> wrote:
>> >> Hi all,
>> >>
>> >> in C++, typical YAML usage looks like
>> >>
>> >> ============ *snip* ============
>> >> YAML::Emitter out;
>> >> out << YAML::BeginSeq;
>> >> out << "eggs";
>> >> out << "bread";
>> >> out << "milk";
>> >> out << YAML::EndSeq;
>> >> ============ *snap* ============
>> >>
>> >> while the same thing in Python is (as far as I know)
>> >> ============ *snip* ============
>> >> print yaml.emit([yaml.StreamStartEvent(),
>> >>                 yaml.DocumentStartEvent(),
>> >>                 yaml.SequenceStartEvent(anchor=None, tag=None,
>> >> implicit=True),
>> >>                 yaml.ScalarEvent(anchor=None, tag=None,
>> >> implicit=(True, False), value=u'eggs'),
>> >>                 yaml.ScalarEvent(anchor=None, tag=None,
>> >> implicit=(True, False), value=u'bread'),
>> >>                 yaml.ScalarEvent(anchor=None, tag=None,
>> >> implicit=(True, False), value=u'milk'),
>> >>                 yaml.SequenceEndEvent()
>> >>               ])
>> >> ============ *snap* ============
>> >>
>> >> Is there any way to make this less verbose? (I don't even know why I
>> >> need all these options.)
>> >>
>> >> Cheers,
>> >> Nico
>> >>
>> >>
>> >> ------------------------------------------------------------------------------
>> >> Live Security Virtual Conference
>> >> Exclusive live event will cover all the ways today's security and
>> >> threat landscape has changed and how IT managers can respond.
>> >> Discussions
>> >> will include endpoint security, mobile security and the latest in
>> >> malware
>> >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>> >> _______________________________________________
>> >> Yaml-core mailing list
>> >> Yaml-core-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>> >> https://lists.sourceforge.net/lists/listinfo/yaml-core
>>
>>
>> ------------------------------------------------------------------------------
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and
>> threat landscape has changed and how IT managers can respond. Discussions
>> will include endpoint security, mobile security and the latest in malware
>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>> _______________________________________________
>> Yaml-core mailing list
>> Yaml-core <at> lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/yaml-core
>
>

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Yaml-core mailing list
Yaml-core@...
https://lists.sourceforge.net/lists/listinfo/yaml-core

Gmane