Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #197208
| Path | csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Ian Pilcher <arequipeno@gmail.com> |
| Newsgroups | comp.lang.python |
| Subject | [SOLVED] Struggling to understand Callable type hinting |
| Date | Sat, 18 Jan 2025 10:17:31 -0600 |
| Lines | 35 |
| Message-ID | <mailman.90.1737217058.2912.python-list@python.org> (permalink) |
| References | <f01d0808-16fb-4b91-a518-a84d6973fee1@gmail.com> <113709c0-0530-47c7-ad8d-8294dd00924f@DancesWithMice.info> <3da391eb-b245-429b-bcc1-3c88ef557241@gmail.com> <11ea559c-26da-4676-8bfc-1e58660d45cd@gmail.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8; format=flowed |
| Content-Transfer-Encoding | 8bit |
| X-Trace | news.uni-berlin.de jbnJYezT60ClfET1VeSRdwqlkaWO1O8eBnnyrKFenuMg== |
| Cancel-Lock | sha1:UIhbEdrGuhy0kKG5DrY1s3CKRj0= sha256:HH2Z9uTeXFEU0GawWJEMzFE0pPDAsvP9hZZANbj0Z70= |
| Return-Path | <arequipeno@gmail.com> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| Authentication-Results | mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=gmail.com header.i=@gmail.com header.b=ePRg8u7E; dkim-adsp=pass; dkim-atps=neutral |
| X-Spam-Status | OK 0.034 |
| X-Spam-Evidence | '*H*': 0.93; '*S*': 0.00; 'skip:@ 10': 0.03; 'def': 0.04; 'parameter': 0.04; 'arguments': 0.16; 'instance': 0.16; 'intuitive': 0.16; 'received:mail-oi1-x22a.google.com': 0.16; 'subject:hinting': 0.16; 'threading': 0.16; 'wrote:': 0.16; 'message-id:@gmail.com': 0.18; 'to:addr:python-list': 0.20; 'subject:] ': 0.20; 'unable': 0.21; 'to:name:python- list@python.org': 0.24; '(and': 0.25; 'cc:2**0': 0.25; 'interface': 0.26; "isn't": 0.27; 'fact': 0.28; 'think': 0.29; 'header:User-Agent:1': 0.30; 'seem': 0.31; 'takes': 0.31; 'am,': 0.31; "doesn't": 0.32; 'disabled': 0.32; "wouldn't": 0.32; 'but': 0.32; "i'm": 0.33; 'there': 0.33; 'header:In-Reply-To:1': 0.34; 'received:google.com': 0.34; 'subject:[': 0.34; 'from:addr:gmail.com': 0.34; 'really': 0.36; '...': 0.37; 'way': 0.38; 'read': 0.38; 'list': 0.39; 'use': 0.39; 'two': 0.39; 'this,': 0.39; 'try': 0.40; 'method': 0.61; 'skip:b 10': 0.63; 'delivery': 0.64; 'your': 0.64; 'skip:t 20': 0.65; 'types': 0.67; 'skip:t 30': 0.67; 'respond': 0.68; 'supposed': 0.76; 'out.': 0.80; 'skip:= 70': 0.84; 'subject:type': 0.93 |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737217056; x=1737821856; darn=python.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=hkaKBrxdtnC5nLVrGw3oas86Oz1EVuYAJeItB1wKkSs=; b=ePRg8u7EJodJvxMmFqpPGV+0c8fJJ7QU8e6O3SkGBMwoP6ivxkNRXxcwHydPM+20uS Wcl4FbOuUbRoMCjQ2X8zQht9lH+xV5rAtQUVK3Hy7iAQY7cvK7el1PInTw4MMJuNNpUG h0H5sfjk0wxp01u5EgnVVrphc6cspg5fpqML8gQxuqAEz3Wyv03FCCPpaXH1CfsJJus9 yOkiIHMbmGlCXj+O9dA4dZ9sBWoKnYOFldP2xRaZzFU5OUSw0pZUrIUyvWNdyrTJPIPA r/esPIoMq+dGGWeWKq2W4pk5lJ0FGidjivXGj1g8kW88PEnp/o4y7M5cpAM4Z7aClhmV 9I9A== |
| X-Google-DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737217056; x=1737821856; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hkaKBrxdtnC5nLVrGw3oas86Oz1EVuYAJeItB1wKkSs=; b=W7xIb0AHs08uHJ0vKaLJJT2gcCt3Cvzmxen8VWhZLiZgtv3fAeAvs1cZnGbS0TXpkG KPvLR9U3uBO6KzFHtgrOMEfUhS1+lozf20i7sGvZnctuwfmK0x/lrdnMHigRWbWjSTR2 DUDgADc+Gg9gwPQCRNLUui3tggBbqPoS4r7brwIwpjYSHk2XPX2XSmc/hCASSy/suss1 yK6NVrOueR+2r+cyRhI2iVNngG+/VOC/BHhA5aGxFQa00X/3OKUWRj0E58lgPxetE0iP uLPS/r/7yOfHLL7exHVYRTqdEVeXcNz+/xgvmNyBqmjjAtDPCoRpwtL+e5wIiY/yNllf yXiA== |
| X-Gm-Message-State | AOJu0YzK30iqPNWK0ryzAMrIzbHNGnzjRboFZ1GbEnAW0VlkbnAYvcwF atovpr55FJWrGIf+I1vfKlYL80gxpCx2HgyrV6WCw8cwbTNQhE1VjRkXKw== |
| X-Gm-Gg | ASbGnctGCheGiuJ4ROsfaSSrs0Sm4ECIXP9qEw43DUZOhc1ZDdLRXl4XiVFUjLPjxWL l7q89mhZu/7aafJYotre5jzDYbYOHNQKyXqjtf8VTsKeI0E+g6x9EBmCFW/Alx8YshVdCfDFGN4 UWmKh96RsqLp/ogdxH9uQ5L5DtM7BUUReKtlVjNIEQx6HWb+IJEDOorlb9BIZ+wRBqkBDd3Q8Vr F6ZlxhmW1lGFmYHyowRomfm4Lr8WatNf8JePSGte7mXMXZ0KlS8ebvCt3n5j8ZwLxZgiF6ReUEc PhLcJI3mq+t2p769WLqBUrlcivOKyRBGvPAs2PY= |
| X-Google-Smtp-Source | AGHT+IFckYehh53Xottxt2BX+z4AkphOch797iEaho8D/y/3p5RPo2sPpSHnHEhTbbXKTYzpVF4xCA== |
| X-Received | by 2002:a05:6808:179d:b0:3eb:7c84:a808 with SMTP id 5614622812f47-3f095a5f4c4mr9334532b6e.5.1737217054328; Sat, 18 Jan 2025 08:17:34 -0800 (PST) |
| User-Agent | Mozilla Thunderbird |
| Content-Language | en-US |
| In-Reply-To | <3da391eb-b245-429b-bcc1-3c88ef557241@gmail.com> |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.39 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <https://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <11ea559c-26da-4676-8bfc-1e58660d45cd@gmail.com> |
| X-Mailman-Original-References | <f01d0808-16fb-4b91-a518-a84d6973fee1@gmail.com> <113709c0-0530-47c7-ad8d-8294dd00924f@DancesWithMice.info> <3da391eb-b245-429b-bcc1-3c88ef557241@gmail.com> |
| Xref | csiph.com comp.lang.python:197208 |
Show key headers only | View raw
(Note: I have mail delivery disabled for this list and read it through
GMane, so I am unable to respond with correct threading if I'm not cc'ed
directly.)
On 1/18/25 8:52 AM, Ian Pilcher wrote:
> (And even that wouldn't really be correct, if it worked, because it
> doesn't express the fact that the arguments of the two Callables are the
> same. I believe that ParamSpecs are supposed to address this, but there
> doesn't seem to be any way to use a ParamSpec when one or more of the
> parameter types is known.
I think that I figured it out.
__P = typing.ParamSpec('__P')
@staticmethod
def _check_eof(
method: collections.abc.Callable[
typing.Concatenate[BufferScanner, __P], None
]
) -> (
collections.abc.Callable[
typing.Concatenate[BufferScanner, __P], bool
]
):
...
Mypy is happy, and it catches me if I try to use the decorator on some-
thing that isn't a method of BufferScanner (or some other callable that
takes an instance of BufferScanner as its first positional argument).
--
========================================================================
If your user interface is intuitive in retrospect ... it isn't intuitive
========================================================================
Back to comp.lang.python | Previous | Next | Find similar
[SOLVED] Struggling to understand Callable type hinting Ian Pilcher <arequipeno@gmail.com> - 2025-01-18 10:17 -0600
csiph-web