Re: Incompatible change discussion: Pretty printing of ordered dict.

Wes Turner <[email protected]> Wed, 2 Aug 2017 16:29:55 -0500
Newsgroups gmane.comp.python.ipython.devel
Message-ID <CACfEFw9aMEEvFLGaQcYG3Ehh25W9cMG6vCMMHGXcO8PuMNVp_g@mail.gmail.com>
--===============4026831685553916023==
Content-Type: multipart/alternative; boundary="94eb2c1956aa1d75930555cbf707"

--94eb2c1956aa1d75930555cbf707
Content-Type: text/plain; charset="UTF-8"

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] <javascript:;>
> https://mail.python.org/mailman/listinfo/ipython-dev
>

--94eb2c1956aa1d75930555cbf707
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Maybe 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 hre=
f=3D"https://docs.python.org/3/tutorial/datastructures.html#dictionaries">h=
ttps://docs.python.org/3/tutorial/datastructures.html#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">PYTHONHASHSEED / -R</span></=
div><div><span style=3D"color:rgb(34,34,34);font-family:Roboto-Regular,Helv=
eticaNeue,Arial,sans-serif;font-size:14px">=C2=A0 -=C2=A0</span><font color=
=3D"#222222" face=3D"Roboto-Regular, HelveticaNeue, Arial, sans-serif"><spa=
n style=3D"font-size:14px"><a href=3D"https://docs.python.org/3/using/cmdli=
ne.html#envvar-PYTHONHASHSEED">https://docs.python.org/3/using/cmdline.html=
#envvar-PYTHONHASHSEED</a></span></font></div><div><font color=3D"#222222" =
face=3D"Roboto-Regular, HelveticaNeue, Arial, sans-serif"><span style=3D"fo=
nt-size:14px">=C2=A0 - <a href=3D"https://docs.python.org/3/using/cmdline.h=
tml#cmdoption-R">https://docs.python.org/3/using/cmdline.html#cmdoption-R</=
a></span></font></div><div><font color=3D"#222222" face=3D"Roboto-Regular, =
HelveticaNeue, Arial, sans-serif"><span style=3D"font-size:14px">- collecti=
ons.OrderedDict (is backwards compatible)</span></font></div><div><span sty=
le=3D"color:rgb(34,34,34);font-family:Roboto-Regular,HelveticaNeue,Arial,sa=
ns-serif;font-size:14px">=C2=A0 -=C2=A0<a href=3D"https://docs.python.org/3=
/library/collections.html#ordereddict-objects">https://docs.python.org/3/li=
brary/collections.html#ordereddict-objects</a></span></div><div><font color=
=3D"#222222" face=3D"Roboto-Regular, HelveticaNeue, Arial, sans-serif"><spa=
n style=3D"font-size:14px"><br></span></font></div><div><font color=3D"#222=
222" face=3D"Roboto-Regular, HelveticaNeue, Arial, sans-serif"><span style=
=3D"font-size:14px"><br></span></font><br>On Wednesday, August 2, 2017, Mat=
thias Bussonnier &lt;<a href=3D"mailto:[email protected]">busson=
[email protected]</a>&gt; wrote:<br><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;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 href=3D"javascript:;" onclick=3D"_e(event, &#39;cvml&#39;, &#39;IPython-=
[email protected]&#39;)">[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>

--94eb2c1956aa1d75930555cbf707--

--===============4026831685553916023==
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

--===============4026831685553916023==--