Re: Incompatible change discussion: Pretty printing of ordered dict.
MinRK <[email protected]> Fri, 4 Aug 2017 16:10:04 +0200
| Newsgroups | gmane.comp.python.ipython.devel |
|---|---|
| Message-ID | <CAHNn8BXp28iEn9AxzfckrYU=1x1=F2vOxbJdv4dj8-p9-YNfrQ@mail.gmail.com> |
--===============2609986509484085912== Content-Type: multipart/alternative; boundary="f403043794c0ef16f40555ee0ec2" --f403043794c0ef16f40555ee0ec2 Content-Type: text/plain; charset="UTF-8" I'm pretty strongly in favor of keeping the sorting in our default pretty-printing. It's extremely valuable for interacting with dictionaries to have consistent, predictable display. There are plenty of ways to illustrate dict ordering, such as by iterating through the dict , e.g. `list(dict)`. -Min On Thu, Aug 3, 2017 at 6:38 PM, Carl Smith <[email protected]> wrote: > I'm with Thomas. > > On Wed, 2 Aug 2017 22:30 Wes Turner, <[email protected]> wrote: > >> Maybe a SORT_DICT_KEYS bool configuration setting? Really practically >> only in order to teach: >> >> - dict >> - https://docs.python.org/3/tutorial/datastructures.html#dictionaries >> - PYTHONHASHSEED / -R >> - https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEED >> - https://docs.python.org/3/using/cmdline.html#cmdoption-R >> - collections.OrderedDict (is backwards compatible) >> - https://docs.python.org/3/library/collections.html# >> ordereddict-objects >> >> >> >> On Wednesday, August 2, 2017, Matthias Bussonnier < >> [email protected]> wrote: >> >>> Hi all, >>> >>> As you may or may not be aware, with Python 3.6 the dictionary are >>> ordered by default. It is technically an implementation detail, though >>> some people would love for it not to. >>> >>> Regardless, IPython has for a long time pretty-printed the dictionary >>> with _sorted_ keys, this thus prevent to teach python and show that >>> dictionaries maintain order. Thus there is the question of wether we >>> should disable sorting keys while pretty-printing. >>> >>> https://github.com/ipython/ipython/issues/10110 >>> >>> This seem like a minor change, but I'd like to know if some of you are >>> _relying_ on the ordering of dict when they are printed, or have >>> compelling arguments against (or for) removing sorting of the keys >>> before pretty_printing. >>> >>> If you care about the above subject, please have your voice heard in >>> above issue. >>> >>> Thanks, >>> -- >>> Matthias >>> _______________________________________________ >>> IPython-dev mailing list >>> [email protected] >>> https://mail.python.org/mailman/listinfo/ipython-dev >>> >> _______________________________________________ >> IPython-dev mailing list >> [email protected] >> https://mail.python.org/mailman/listinfo/ipython-dev >> > > _______________________________________________ > IPython-dev mailing list > [email protected] > https://mail.python.org/mailman/listinfo/ipython-dev > > --f403043794c0ef16f40555ee0ec2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">I'm pretty strongly in favor of keeping the sorting in= our default pretty-printing. It's extremely valuable for interacting w= ith dictionaries to have consistent, predictable display. There are plenty = of ways to illustrate dict ordering, such as by iterating through the dict = , e.g. `list(dict)`.<div><br></div><div>-Min</div></div><div class=3D"gmail= _extra"><br><div class=3D"gmail_quote">On Thu, Aug 3, 2017 at 6:38 PM, Carl= Smith <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target= =3D"_blank">[email protected]</a>></span> wrote:<br><blockquote class= =3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd= ing-left:1ex"><p dir=3D"ltr">I'm with Thomas. </p><div class=3D"HOEnZb"= ><div class=3D"h5"> <br><div class=3D"gmail_quote"><div dir=3D"ltr">On Wed, 2 Aug 2017 22:30 We= s Turner, <<a href=3D"mailto:[email protected]" target=3D"_blank">wes= [email protected]</a>> wrote:<br></div><blockquote class=3D"gmail_quote"= style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ma= ybe a SORT_DICT_KEYS bool configuration setting? Really practically only in= order to teach:<div><br></div><div>- dict</div><div>=C2=A0 -=C2=A0<a href= =3D"https://docs.python.org/3/tutorial/datastructures.html#dictionaries" ta= rget=3D"_blank">https://docs.python.org/3/<wbr>tutorial/datastructures.html= #<wbr>dictionaries</a></div><div>-=C2=A0<span style=3D"color:rgb(34,34,34);= font-family:Roboto-Regular,HelveticaNeue,Arial,sans-serif;font-size:14px">P= YTHONHASHSEED / -R</span></div><div><span style=3D"color:rgb(34,34,34);font= -family:Roboto-Regular,HelveticaNeue,Arial,sans-serif;font-size:14px">=C2= =A0 -=C2=A0</span><font color=3D"#222222" face=3D"Roboto-Regular, Helvetica= Neue, Arial, sans-serif"><span style=3D"font-size:14px"><a href=3D"https://= docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEED" target=3D"_blan= k">https://docs.python.org/3/<wbr>using/cmdline.html#envvar-<wbr>PYTHONHASH= SEED</a></span></font></div><div><font color=3D"#222222" face=3D"Roboto-Reg= ular, HelveticaNeue, Arial, sans-serif"><span style=3D"font-size:14px">=C2= =A0 - <a href=3D"https://docs.python.org/3/using/cmdline.html#cmdoption-R" = target=3D"_blank">https://docs.python.org/3/<wbr>using/cmdline.html#cmdopti= on-R</a></span></font></div><div><font color=3D"#222222" face=3D"Roboto-Reg= ular, HelveticaNeue, Arial, sans-serif"><span style=3D"font-size:14px">- co= llections.OrderedDict (is backwards compatible)</span></font></div><div><sp= an style=3D"color:rgb(34,34,34);font-family:Roboto-Regular,HelveticaNeue,Ar= ial,sans-serif;font-size:14px">=C2=A0 -=C2=A0<a href=3D"https://docs.python= .org/3/library/collections.html#ordereddict-objects" target=3D"_blank">http= s://docs.python.org/3/<wbr>library/collections.html#<wbr>ordereddict-object= s</a></span></div><div><font color=3D"#222222" face=3D"Roboto-Regular, Helv= eticaNeue, Arial, sans-serif"><span style=3D"font-size:14px"><br></span></f= ont></div><div><font color=3D"#222222" face=3D"Roboto-Regular, HelveticaNeu= e, Arial, sans-serif"><span style=3D"font-size:14px"><br></span></font><br>= On Wednesday, August 2, 2017, Matthias Bussonnier <<a href=3D"mailto:bus= [email protected]" target=3D"_blank">[email protected]</= a>> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8= ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br> <br> As you may or may not be aware, with Python 3.6 the dictionary are<br> ordered by default. It is technically an implementation detail, though<br> some people would love for it not to.<br> <br> Regardless, IPython has for a long time pretty-printed the dictionary<br> with _sorted_ keys, this thus prevent to teach python and show that<br> dictionaries maintain order. Thus there is the question of wether we<br> should disable sorting keys while pretty-printing.<br> <br> <a href=3D"https://github.com/ipython/ipython/issues/10110" target=3D"_blan= k">https://github.com/ipython/<wbr>ipython/issues/10110</a><br> <br> This seem like a minor change, but I'd like to know if some of you are<= br> _relying_ on the ordering of dict when they are printed, or have<br> compelling arguments against (or for) removing sorting of the keys<br> before pretty_printing.<br> <br> If you care about the above subject, please have your voice heard in<br> above issue.<br> <br> Thanks,<br> --<br> Matthias<br> ______________________________<wbr>_________________<br> IPython-dev mailing list<br> <a>[email protected]</a><br> <a href=3D"https://mail.python.org/mailman/listinfo/ipython-dev" target=3D"= _blank">https://mail.python.org/<wbr>mailman/listinfo/ipython-dev</a><br> </blockquote></div> ______________________________<wbr>_________________<br> IPython-dev mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank">IPython-dev@pyt= hon.org</a><br> <a href=3D"https://mail.python.org/mailman/listinfo/ipython-dev" rel=3D"nor= eferrer" target=3D"_blank">https://mail.python.org/<wbr>mailman/listinfo/ip= ython-dev</a><br> </blockquote></div> </div></div><br>______________________________<wbr>_________________<br> IPython-dev mailing list<br> <a href=3D"mailto:[email protected]">[email protected]</a><br> <a href=3D"https://mail.python.org/mailman/listinfo/ipython-dev" rel=3D"nor= eferrer" target=3D"_blank">https://mail.python.org/<wbr>mailman/listinfo/ip= ython-dev</a><br> <br></blockquote></div><br></div> --f403043794c0ef16f40555ee0ec2-- --===============2609986509484085912== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ IPython-dev mailing list [email protected] https://mail.python.org/mailman/listinfo/ipython-dev --===============2609986509484085912==--