Issue34637
Created on 2018-09-11 23:34 by rhettinger, last changed 2022-04-11 14:59 by admin. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 9208 | merged | rhettinger, 2018-09-12 00:34 | |
| Messages (8) | |||
|---|---|---|---|
| msg325092 - (view) | Author: Raymond Hettinger (rhettinger) * | Date: 2018-09-11 23:34 | |
Currently, we can write:
>>> sum(range(10), 50)
95
What we want to allow:
>>> sum(range(10), start=50)
95
The positional form would still be allowed.
|
|||
| msg325100 - (view) | Author: Gregory P. Smith (gregory.p.smith) * | Date: 2018-09-11 23:54 | |
+1 agreed. |
|||
| msg325101 - (view) | Author: Steve Dower (steve.dower) * | Date: 2018-09-11 23:57 | |
Woo! Thanks Raymond! |
|||
| msg325103 - (view) | Author: Gregory P. Smith (gregory.p.smith) * | Date: 2018-09-12 00:11 | |
I suggest also allowing the first argument to be a keyword named sequence= as well. (along the philosophy of positional only arguments on APIs that happen to be implemented in C in CPython are a bad legacy) pypy already uses these names: https://bitbucket.org/pypy/pypy/src/4cbeaa8bf545332c36ae277019772aa432693e4c/pypy/module/__builtin__/app_functional.py?at=default&fileviewer=file-view-default#app_functional.py-41 |
|||
| msg325120 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * | Date: 2018-09-12 04:53 | |
Is not this a duplicate of issue31141? |
|||
| msg325124 - (view) | Author: Karthikeyan Singaravelan (xtreak) * | Date: 2018-09-12 05:59 | |
There doesn't seem to be any performance regression hoping that I am doing the benchmarks correctly. Some numbers for the PR. # Master git checkout master git clean -xdf && ./configure && make -s -j4 $ cpython git:(master) ./python.exe Python 3.8.0a0 (heads/master:731ff68eee, Sep 12 2018, 11:19:46) [Clang 7.0.2 (clang-700.1.81)] on darwin Type "help", "copyright", "credits" or "license" for more information. $ cpython git:(master) repeat 10 ./python.exe -m timeit "sum(range(10), 50)" 500000 loops, best of 5: 635 nsec per loop 500000 loops, best of 5: 682 nsec per loop 500000 loops, best of 5: 637 nsec per loop 500000 loops, best of 5: 648 nsec per loop 500000 loops, best of 5: 618 nsec per loop 500000 loops, best of 5: 621 nsec per loop 500000 loops, best of 5: 653 nsec per loop 500000 loops, best of 5: 624 nsec per loop 500000 loops, best of 5: 671 nsec per loop 500000 loops, best of 5: 659 nsec per loop git fetch upstream pull/9208/head:sum-start-keyword git checkout sum-start-keyword git clean -xdf && ./configure && make -s -j4 $ cpython git:(sum-start-keyword) ./python.exe Python 3.8.0a0 (heads/sum-start-keyword:71b890cd56, Sep 12 2018, 11:23:02) [Clang 7.0.2 (clang-700.1.81)] on darwin Type "help", "copyright", "credits" or "license" for more information. $ cpython git:(sum-start-keyword) repeat 10 ./python.exe -m timeit "sum(range(10), 50)" 500000 loops, best of 5: 655 nsec per loop 500000 loops, best of 5: 662 nsec per loop 500000 loops, best of 5: 669 nsec per loop 500000 loops, best of 5: 656 nsec per loop 500000 loops, best of 5: 666 nsec per loop 500000 loops, best of 5: 642 nsec per loop 500000 loops, best of 5: 638 nsec per loop 500000 loops, best of 5: 628 nsec per loop 500000 loops, best of 5: 684 nsec per loop 500000 loops, best of 5: 648 nsec per loop $ cpython git:(sum-start-keyword) repeat 10 ./python.exe -m timeit "sum(range(10), start=50)" 500000 loops, best of 5: 637 nsec per loop 500000 loops, best of 5: 677 nsec per loop 500000 loops, best of 5: 649 nsec per loop 500000 loops, best of 5: 660 nsec per loop 500000 loops, best of 5: 692 nsec per loop 500000 loops, best of 5: 704 nsec per loop 500000 loops, best of 5: 638 nsec per loop 500000 loops, best of 5: 659 nsec per loop 500000 loops, best of 5: 637 nsec per loop 500000 loops, best of 5: 699 nsec per loop I haven't tested the other PR serhiy mentioned since it has merge conflicts and I think it uses the same approach with argument clinic. Thanks |
|||
| msg325150 - (view) | Author: Raymond Hettinger (rhettinger) * | Date: 2018-09-12 17:54 | |
New changeset 9dfa0fe587eae3626ffc973680c6a17f35de3864 by Raymond Hettinger in branch 'master': bpo-34637: Make the *start* argument for *sum()* visible as a keyword argument. (GH-9208) https://github.com/python/cpython/commit/9dfa0fe587eae3626ffc973680c6a17f35de3864 |
|||
| msg325151 - (view) | Author: Raymond Hettinger (rhettinger) * | Date: 2018-09-12 17:57 | |
Discussed exposure of the first argument with GPS and agreed that we don't want people writing API sum(iterable=[10,20,30], start=0). Serhiy, yes this is a duplicate/superseder of issue31141. Will close that at well. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:59:05 | admin | set | github: 78818 |
| 2019-03-31 06:28:59 | xtreak | link | issue36491 superseder |
| 2018-09-12 17:59:37 | rhettinger | link | issue31141 superseder |
| 2018-09-12 17:57:52 | rhettinger | set | status: open -> closed resolution: fixed messages: + msg325151 stage: patch review -> resolved |
| 2018-09-12 17:54:10 | rhettinger | set | messages: + msg325150 |
| 2018-09-12 05:59:58 | xtreak | set | messages: + msg325124 |
| 2018-09-12 04:53:33 | serhiy.storchaka | set | nosy:
+ serhiy.storchaka messages: + msg325120 |
| 2018-09-12 03:51:37 | xtreak | set | nosy:
+ xtreak |
| 2018-09-12 00:34:32 | rhettinger | set | keywords:
+ patch stage: patch review pull_requests: + pull_request8642 |
| 2018-09-12 00:11:03 | gregory.p.smith | set | messages: + msg325103 |
| 2018-09-11 23:57:25 | steve.dower | set | nosy:
+ steve.dower messages: + msg325101 |
| 2018-09-11 23:54:35 | gregory.p.smith | set | nosy:
+ gregory.p.smith messages: + msg325100 |
| 2018-09-11 23:34:59 | rhettinger | create | |