<div dir="ltr"><div><div><div>OK,<br><br></div>looking a bit deeper:<br><br>In [69]: timedelta.__new__.__doc__<br>Out[69]: 'Create and return a new object.  See help(type) for accurate signature.'<br><br>In [70]: timedelta.__init__.__doc__<br>Out[70]: 'Initialize self.  See help(type(self)) for accurate signature.'<br><br>In [71]: timedelta.__doc__<br>Out[71]: 'Difference between two datetime values.'<br><br></div>So the none of the docstrings have the proper information.  And:<br><br></div>help(timedelta) returns:<br><br>Help on class timedelta in module datetime:<br><br>class timedelta(builtins.object)<br> |  Difference between two datetime values.<br> |  <br> |  Methods defined here:<br> |  <br> |  __abs__(self, /)<br> |      abs(self)<br> |  <br> |  __add__(self, value, /)<br> |      Return self+value.<br>....<br><br><div>So no signature either.<br><br></div><div>I'm guessing this is because argument clinic has not been properly applied -- so Ihave a PR to work on.<br><br></div><div>but where does help() get its info anyway?<br><br></div><div>I always thought docstrings were supposed to be used for the basic, well, docs. And between the class and __new__ and __init__, somewhere in there you should learn how to initialize an instance, yes?<br><br></div><div>-CHB<br><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 4, 2018 at 6:21 PM, Matthias Bussonnier <span dir="ltr"><<a href="mailto:bussonniermatthias@gmail.com" target="_blank">bussonniermatthias@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"><br><br><div class="gmail_quote"><span class=""><div dir="ltr">On Mon, 4 Jun 2018 at 17:29, Ivan Pozdeev via Python-Dev <<a href="mailto:python-dev@python.org" target="_blank">python-dev@python.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    On 05.06.2018 3:09, Matthias Bussonnier wrote:<br>
    <blockquote type="cite">
      <div dir="ltr">This may even be a bug/feature of IPython, 
        <div><br>
        </div>
        <div>I see that inspect.signature(timedelta) fails, so if  <span style="font-family:monospace,monospace">timedelta? says</span></div>
        <div><span style="color:rgb(34,34,34);font-family:monospace,monospace;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Init
            signature: timedelta(self, /, *args, **kwargs)</span></div>
        <div><span style="color:rgb(34,34,34);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Then
            this may be some IPython internal logic. The timedelta class
            seem to use __new__ instead of __init__ (not sure why)</span></div>
      </div>
    </blockquote>
    <p>Because it's an immutable type.</p></div></blockquote></span><div>Ah, yes, thanks. </div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF">
    <blockquote type="cite">
      <div dir="ltr">
        <div><span style="color:rgb(34,34,34);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">
            and __new__ have a meaningful signature, </span><br>
        </div>
        <div><span style="color:rgb(34,34,34);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">So
            maybe we should fallback on that during signature
            inspection.</span></div>
        <div><span style="color:rgb(34,34,34);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br>
          </span></div>
      </div>
    </blockquote>
    <p>According to
<a class="m_8719785607118336130m_-5298358443040669888moz-txt-link-freetext" href="https://stackoverflow.com/questions/4374006/check-for-mutability-in-python" target="_blank">https://stackoverflow.com/<wbr>questions/4374006/check-for-<wbr>mutability-in-python</a>
      ,<br>
      there are no reliable tests for mutability.</p></div></blockquote></span><div>Sure, but we can test if the signature of __init__ is (self,/, *args, **kwargs), and if it is,  it is useless we can attempt to get the signature from __new__ and show that instead.  We do similar things for docstrings, if __init__ have no docstring we look at the class level docstring. </div><span class="HOEnZb"><font color="#888888"><div>-- </div><div>M</div><div><br></div><div> </div></font></span></div></div>
<br>______________________________<wbr>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/chris.barker%40noaa.gov" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/options/python-dev/<wbr>chris.barker%40noaa.gov</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div>