[Python-Dev] Docstrings on builtins
chris.barker at noaa.gov
Wed Jun 6 13:56:33 EDT 2018
On Tue, Jun 5, 2018 at 8:01 AM, Ivan Pozdeev <vano at mail.mipt.ru> wrote:
> In : print(str.__doc__)
> str(object='') -> str
> str(bytes_or_buffer[, encoding[, errors]]) -> str
> Create a new string object from the given object. If encoding or
> errors is specified <...>
As you can see, the start of the type's docstring contains constructor
> And iPython does the "right thing" here, too:
In : str?
Init signature: str(self, /, *args, **kwargs)
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
> Timedelta's one should probably do the same.
OK, I've found the docstring in the source and will submit a PR.
> On Mon, Jun 4, 2018 at 6:21 PM, Matthias Bussonnier <
> bussonniermatthias at gmail.com> wrote:
>> On Mon, 4 Jun 2018 at 17:29, Ivan Pozdeev via Python-Dev <
>> python-dev at python.org> wrote:
>>> On 05.06.2018 3:09, Matthias Bussonnier wrote:
>>> This may even be a bug/feature of IPython,
>>> I see that inspect.signature(timedelta) fails, so if timedelta? says
>>> Init signature: timedelta(self, /, *args, **kwargs)
>>> Then this may be some IPython internal logic. The timedelta class seem
>>> to use __new__ instead of __init__ (not sure why)
>>> Because it's an immutable type.
>> Ah, yes, thanks.
>>> and __new__ have a meaningful signature,
>>> So maybe we should fallback on that during signature inspection.
>>> According to https://stackoverflow.com/ques
>>> tions/4374006/check-for-mutability-in-python ,
>>> there are no reliable tests for mutability.
>> 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.
>> Python-Dev mailing list
>> Python-Dev at python.org
>> Unsubscribe: https://mail.python.org/mailman/options/python-dev/chris.
> Christopher Barker, Ph.D.
> Emergency Response Division
> NOAA/NOS/OR&R (206) 526-6959 voice
> 7600 Sand Point Way NE
> (206) 526-6329 fax
> Seattle, WA 98115 (206) 526-6317 main reception
> Chris.Barker at noaa.gov
Christopher Barker, Ph.D.
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev