<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Dec 20, 2015 at 7:25 PM, Alexander Belopolsky <span dir="ltr"><<a href="mailto:alexander.belopolsky@gmail.com" target="_blank">alexander.belopolsky@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Sun, Dec 20, 2015 at 9:00 PM, Guido van Rossum <span dir="ltr"><<a href="mailto:guido@python.org" target="_blank">guido@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>but I would really like to see a change in the repr of negative timedeltas:</div><div><br></div><div><div>>>> timedelta(minutes=-1)</div><div>datetime.timedelta(-1, 86340)<br><br></div></div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_extra">And str() is not much better:</div><div class="gmail_extra"><br></div><div class="gmail_extra">>>> print(timedelta(minutes=-1))</div><div class="gmail_extra">-1 day, <span><span>23:59:00</span></span></div><div class="gmail_extra"><br></div>The above does not qualify as a human readable representation IMO.</div></div>
</blockquote></span></div><br></div><div class="gmail_extra">I'm sure that one often catches people by surprise. However, I don't think we can fix that one without also fixing the values of the attributes </div></blockquote><div><br></div></span><div>I don't see why we have to change td.days for say td =  timedelta(minutes=-1) if we change its repr to "timedelta(minutes=-1)".  For me an important invariant is td == eval(repr(td)) which will be preserved.</div></div></div></div></blockquote><div><br></div><div>Then please just trust me. If the repr() shows different numbers than the attributes things are worse than now. People will casually look at the repr() and assume they've seen what the attributes will return, and spend hours debugging code that relies on that incorrect assumption.<br></div></div><br>-- <br><div class="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div></div>