OOI, of those 1577 Callable type hints, how many distinct Callable types?


On 20/12/2021 7:52 am, Andrew Svetlov wrote:
At my job, we have 1577 Callable type hints scattered in 1063 Python files.
For comparison, this codebase also has 2754 dict annotations and 1835 list ones.

On Mon, Dec 20, 2021 at 8:11 AM Christopher Barker <python...@gmail.com 
<mailto:python...@gmail.com>> wrote:

    note: I wasn't thinking -- typeshed, of course, has a lot more than the 
standard lib.  But it's still a collection of widely used somewhat general 
purpose libraries. So I think my hypothesis is still valid.

    -CHB


    On Sun, Dec 19, 2021 at 8:54 PM Christopher Barker <python...@gmail.com 
<mailto:python...@gmail.com>> wrote:

        A question that came up for me is:

        How common is it to need to use Callable for type hints? particularly 
complex versions, specifying what parameters the Callable takes? A more compact 
and easier to read syntax is nice, but not very important if it isn't used much.

        My first thought on this was that I can't remember a single time that I 
wrote production code that took a Callable as a function parameter -- or 
returned one -- OK maybe a few times, but it's certainly rare in my production 
code.

        So I looked in the PEP to see if that issue was addressed, and indeed 
it is:

        "The Callable type is widely used. For example, as of October 2021 it was 
the fifth most common complex type in typeshed,"

        That did surprise me, but on thinking about it, maybe not so much. It 
strikes me that Callable is most likely to be used in fairly low level, general 
purpose functions, like map(), sort(), various functions in itertools, etc. 
Just the sort of functions that are common in the standard library, but may not 
so much in production code.

        I have no idea how to evaluate how common it is in production code -- 
maybe type hinting is common enough now  that PyPi could be searched -- but 
even PyPi is a biased sample, as it is full of, by definition, libraries for 
others' use -- i.e. general purpose tools (less general that the stad lib, but 
still not specialty production code, which I suspect is the majority of Python 
code out there).

        Perhaps some folks that have been type=hinting their production code 
bases could provide anecdotal evidence.

        Anyway, if my hypothesis is correct, then it's not so bad that 
not-so-nice syntax is required to type hint general purpose utilities.

        -CHB

-- Christopher Barker, PhD (Chris)

        Python Language Consulting
           - Teaching
           - Scientific Software Development
           - Desktop GUI and Web Development
           - wxPython, numpy, scipy, Cython



-- Christopher Barker, PhD (Chris)

    Python Language Consulting
       - Teaching
       - Scientific Software Development
       - Desktop GUI and Web Development
       - wxPython, numpy, scipy, Cython
    _______________________________________________
    Python-Dev mailing list -- python-dev@python.org 
<mailto:python-dev@python.org>
    To unsubscribe send an email to python-dev-le...@python.org 
<mailto:python-dev-le...@python.org>
    https://mail.python.org/mailman3/lists/python-dev.python.org/ 
<https://mail.python.org/mailman3/lists/python-dev.python.org/>
    Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/LWIXFDUGRM6Z3KHI3YGV65HWXRD2S4H5/
 
<https://mail.python.org/archives/list/python-dev@python.org/message/LWIXFDUGRM6Z3KHI3YGV65HWXRD2S4H5/>
    Code of Conduct: http://python.org/psf/codeofconduct/ 
<http://python.org/psf/codeofconduct/>



--
Thanks,
Andrew Svetlov

_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/JYZGIDEBV4R5E7XXT3KFS2O545TDTAGT/
Code of Conduct: http://python.org/psf/codeofconduct/

_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/RQ32VDXY7KUXHCUM6DASPVZ434PN5GLM/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to