New submission from Mark Dickinson: The submit methods of concurrent.futures.ThreadPoolExecutor and concurrent.futures.ProcessPoolExectutor raise TypeError when submitting a callable with a keyword argument named 'fn' or 'self':
Python 3.3.0rc2+ (default:3a880d640981, Sep 18 2012, 16:29:28) [GCC 4.2.1 (Apple Inc. build 5664)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import concurrent.futures >>> def awkward(*, fn): return fn * 1729 ... >>> with concurrent.futures.ThreadPoolExecutor(1) as e: ... e.submit(awkward, fn=3) ... Traceback (most recent call last): File "<stdin>", line 2, in <module> TypeError: submit() got multiple values for argument 'fn' An obvious solution is to change the declarations of the submit methods from: def submit(self, fn, *args, **kwargs): ... to def submit(*args, **kwargs): self, fn, *args = args I don't think this is quite good enough, since it'll introduce a regression for anyone who was doing executor.submit(fn=...). ---------- messages: 170650 nosy: mark.dickinson priority: normal severity: normal status: open title: concurrent.futures: Executor.submit keyword arguments may not be called 'fn' (or 'self') type: behavior versions: Python 3.2, Python 3.3 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15966> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com