Received: by 10.180.98.234 with SMTP id el10mr801069wib.3.1348167084732; Thu, 20 Sep 2012 11:51:24 -0700 (PDT) X-BeenThere: dev-python@googlegroups.com Received: by 10.180.90.134 with SMTP id bw6ls1573244wib.1.canary; Thu, 20 Sep 2012 11:51:24 -0700 (PDT) Received: by 10.180.75.8 with SMTP id y8mr999166wiv.4.1348167084501; Thu, 20 Sep 2012 11:51:24 -0700 (PDT) Received: by 10.180.75.8 with SMTP id y8mr999165wiv.4.1348167084489; Thu, 20 Sep 2012 11:51:24 -0700 (PDT) Return-Path: Received: from mail.python.org (mail.python.org. [82.94.164.166]) by gmr-mx.google.com with ESMTPS id cx9si671638wib.0.2012.09.20.11.51.24 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 20 Sep 2012 11:51:24 -0700 (PDT) Received-SPF: pass (google.com: domain of python-dev-bounces+dev-python+garchive-30976=googlegroups....@python.org designates 82.94.164.166 as permitted sender) client-ip=82.94.164.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of python-dev-bounces+dev-python+garchive-30976=googlegroups....@python.org designates 82.94.164.166 as permitted sender) smtp.mail=python-dev-bounces+dev-python+garchive-30976=googlegroups....@python.org; dkim=pass header...@python.org Received: from albatross.python.org (localhost [127.0.0.1]) by mail.python.org (Postfix) with ESMTP id 3XN6V40phKzQj5 for ; Thu, 20 Sep 2012 20:51:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=python.org; s=200901; t=1348167084; bh=/H83mkEVr8J8/KVlWP+NF5YOT11Xvi91OeaIRiHvQ5E=; h=Message-ID:Date:From:MIME-Version:To:References:In-Reply-To: Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help: List-Subscribe:Content-Transfer-Encoding:Content-Type:Sender; b=T8/Ijv9fTFzU84Ds1IhCO1vA45FAzP6yVy9TPrnHSx3VplPeC7NBK8Kdy+ZFflP/N ShtcfE3uuslSoc2w1o1FcKn4Ujq+WC6hapiblM2XtBuOD4+TchREnr+89bttO0+mLc FWJlgYvsYxyylZYDJnCFZ9nuIxKX0DOaVtVGtu44= X-Original-To: python-...@python.org Delivered-To: python-...@mail.python.org Received: from albatross.python.org (localhost [127.0.0.1]) by mail.python.org (Postfix) with ESMTP id 3XN6ST25gdzQc1 for ; Thu, 20 Sep 2012 20:50:01 +0200 (CEST) X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'subject:: [': 0.03; 'argument': 0.04; 'subject:Python': 0.05; "'a'": 0.07; 'arguments': 0.07; 'subject:missing': 0.07; 'argument:': 0.09; 'imply': 0.09; 'incorrect': 0.09; 'positional': 0.09; 'sep': 0.09; 'typeerror:': 0.09; 'def': 0.10; '(but': 0.15; "'b'": 0.16; 'argument.': 0.16; 'b):': 0.16; 'dropping': 0.16; 'from:addr:steve': 0.16; 'missing,': 0.16; 'naive': 0.16; 'nick': 0.16; 'received:adl2.internode.on.net': 0.16; 'received:internode.on.net': 0.16; 'received:ipmail06.adl2.internode.on.net': 0.16; 'received:lns20.mel4.internode.on.net': 0.16; 'received:mel4.internode.on.net': 0.16; 'received:on.net': 0.16; 'subject:Dev': 0.16; 'subject:required': 0.16; 'verbose': 0.16; 'yes;': 0.16; 'wrote:': 0.17; 'thu,': 0.17; '>>>': 0.18; 'subject:] ': 0.19; '"",': 0.22; 'dropped': 0.22; 'pass': 0.25; 'header:In-Reply-To:1': 0.25; 'header:User-Agent:1': 0.26; '(most': 0.27; 'steven': 0.29; "skip:' 10": 0.30; 'call.': 0.30; 'keyword': 0.30; 'function': 0.30; 'error': 0.30; 'expect': 0.31; 'file': 0.32; 'message.': 0.33; 'impression': 0.33; 'traceback': 0.33; 'problem': 0.33; 'agree': 0.34; 'acceptable': 0.35; 'pm,': 0.35; 'but': 0.36; 'too': 0.36; 'skip:p 20': 0.36; 'does': 0.37; 'far': 0.37; 'subject:: ': 0.38; 'mark': 0.38; 'mean': 0.38; 'to:addr:python.org': 0.39; 'subject:-': 0.40; 'think': 0.40; 'remove': 0.61; 'more': 0.63; '20,': 0.65; 'message).': 0.84; 'resolved.': 0.91; 'catalog': 0.93; 'received:118': 0.93 Received: from localhost (HELO mail.python.org) (127.0.0.1) by albatross.python.org with SMTP; 20 Sep 2012 20:50:01 +0200 Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [IPv6:2001:44b8:8060:ff02:300:1:2:6]) by mail.python.org (Postfix) with ESMTP for ; Thu, 20 Sep 2012 20:50:00 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aj4SAFpkW1B20QxNgWdsb2JhbABFhguocY4vJAEBFiYngiABAQUjFR4zCxgCAgUUDQICDwIQGB4TBgIBAYdtAw6nLokZDYlTgSGJGWKDIoIOgRIDjT2GUocpDIU3iAM Received: from ppp118-209-12-77.lns20.mel4.internode.on.net (HELO pearwood.info) ([118.209.12.77]) by ipmail06.adl2.internode.on.net with ESMTP; 21 Sep 2012 04:19:51 +0930 Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1]) by pearwood.info (Postfix) with ESMTP id B576A120492 for ; Fri, 21 Sep 2012 04:49:46 +1000 (EST) Message-ID: <505B654A.90...@pearwood.info> Date: Fri, 21 Sep 2012 04:49:46 +1000 From: Steven D'Aprano User-Agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.6esrpre) Gecko/20120717 Thunderbird/10.0.6 MIME-Version: 1.0 To: python-...@python.org References: In-Reply-To: Subject: Re: [Python-Dev] TypeError: f() missing 1 required positional argument: 'x' X-BeenThere: python-...@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Python core developers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: python-dev-bounces+dev-python+garchive-30976=googlegroups....@python.org Sender: "Python-Dev" On 20/09/12 22:59, Mark Dickinson wrote: > On Thu, Sep 20, 2012 at 1:21 PM, Nick Coghlan wrote: >> +1 for using the unqualified "argument" in these error messages to >> mean "positional or keyword argument" (inspect.Parameter spells it out >> as POSITIONAL_OR_KEYWORD, but the full phrase is far too verbose for >> an error message). > > Ah yes; I see that 'positional or keyword' is a more accurate term > (but agree it's unwieldy for an error message). I also see that I was > naive to think that the 'fix' is as simple as dropping the word > 'positional': > > >>> def f(a, *, b): > ... pass > ... > >>> f() > Traceback (most recent call last): > File "", line 1, in > TypeError: f() missing 1 required positional argument: 'a' > > If the word 'positional' were dropped here, it would give the > incorrect impression that f only requires one argument. I don't expect error messages to give a complete catalog of every problem with a specific function call. If f() reports that required argument 'a' is missing, that does not imply that no other required arguments are also missing. I think it is perfectly acceptable to not report the missing 'b' until the missing 'a' is resolved. But I do expect error messages to be accurate. +1 to remove the word "positional" from the message. -- Steven _______________________________________________ Python-Dev mailing list Python-...@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/dev-python%2Bgarchive-30976%40googlegroups.com