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&#39;m pretty strongly in favor of keeping the sorting in=
 our default pretty-printing. It&#39;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">&lt;<a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a>&gt;</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&#39;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, &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">wes=
[email protected]</a>&gt; 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 &lt;<a href=3D"mailto:bus=
[email protected]" target=3D"_blank">[email protected]</=
a>&gt; 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&#39;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==--