Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'author:': 0.03; 'operator': 0.03; 'argument': 0.05; 'preferred.': 0.05; 'definitions': 0.07; 'diff': 0.07; 'expressions': 0.07; 'skip:` 10': 0.07; 'subject:PEP': 0.07; 'think,': 0.07; '*args,': 0.09; '[0,': 0.09; 'arguments': 0.09; 'contexts': 0.09; 'lst': 0.09; 'pep': 0.09; 'def': 0.12; 'bug': 0.12; '#todo': 0.16; '(0,': 0.16; '(1,': 0.16; '==========': 0.16; '[2,': 0.16; '``**``': 0.16; '``*``': 0.16; '``lambda': 0.16; 'argument,': 0.16; 'be:': 0.16; 'cares': 0.16; 'collections': 0.16; 'dictionaries': 0.16; 'evaluates': 0.16; 'incomplete': 0.16; 'inverse': 0.16; 'it),': 0.16; 'iterable': 0.16; 'iterators,': 0.16; 'kwargs': 0.16; 'necessary;': 0.16; 'needless': 0.16; 'operator.': 0.16; 'positional': 0.16; 'rationale': 0.16; 'report)': 0.16; 'simplifies': 0.16; 'subject:Rough': 0.16; 'text/x-rst': 0.16; 'tuples,': 0.16; 'unbound': 0.16; 'unpack': 0.16; 'unpacking': 0.16; 'valid.': 0.16; 'vastly': 0.16; 'applies': 0.16; 'followed': 0.16; 'prevent': 0.16; 'skip:= 10': 0.16; 'filename:fname piece:txt': 0.16; 'discussion': 0.18; 'bit': 0.19; 'skip:f 30': 0.19; 'seems': 0.21; '>>>': 0.22; 'import': 0.22; 'otherwise,': 0.22; 'previously': 0.22; 'replace': 0.24; 'skip:` 20': 0.24; 'skip:{ 20': 0.24; "i've": 0.25; 'source': 0.25; 'first,': 0.26; 'references': 0.26; 'pass': 0.26; 'primary': 0.26; 'function': 0.29; 'url:bugs': 0.29; 'patch': 0.29; 'url:code': 0.29; 'draft': 0.30; 'liable': 0.30; 'sets': 0.30; 'waste': 0.30; 'especially': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; '(which': 0.31; 'code': 0.31; 'too.': 0.31; 'ball': 0.31; 'fine,': 0.31; 'skip:= 20': 0.31; 'anyone': 0.31; 'another': 0.32; 'quite': 0.32; 'url:python': 0.33; 'limitation': 0.33; 'standards': 0.33; 'to:name:python-list': 0.33; 'sense': 0.34; "i'd": 0.34; "can't": 0.35; 'anywhere': 0.35; 'knows': 0.35; 'definition': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'combination': 0.36; 'keyword': 0.36; 'version:': 0.36; 'url:org': 0.36; 'should': 0.36; 'too': 0.37; 'two': 0.37; 'email addr:python.org': 0.37; 'being': 0.38; 'skip:[ 10': 0.38; 'to:addr:python-list': 0.38; 'track': 0.38; 'little': 0.38; 'does': 0.39; '(from': 0.39; 'to:addr:python.org': 0.39; 'how': 0.40; 'liked': 0.60; 'affect': 0.61; 'extended': 0.61; 'areas': 0.61; 'skip:* 10': 0.61; 'further': 0.61; 'first': 0.61; 'such': 0.63; 'more': 0.64; 'hours': 0.66; 'status:': 0.68; 'ranges': 0.74; '**no': 0.84; '**this': 0.84; '3.4': 0.84; 'forced': 0.84; 'lone': 0.84; 'look.': 0.84; 'standing': 0.84; 'unclear': 0.84; 'valid,': 0.84; 'working,': 0.84; 'favour': 0.91; 'whereas': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=H1ugPQh1Maf13LITm/semwI7ZUFifXjeRGfoch5pDC8=; b=G0e0r8tPxYLCXX9y+l6/6Y0ehWvNywVdfhoxp/XUIJupBIxxp5AIdqXFoEqdGGetZN qDJXijRg1x0nL0iXAICdhXFNI2uMt7/wrJgH0HtWynzDN5UuBah0/Ip27jKIcttYQmnd N1DVMjKLXFD2YosC1w8ZV1Avv+Ev0btiWJLfcg1fdDLch/xv8yPKBl3o0iUOu0CLJT+F Qmh9C9WM0r2ZrkPJlkqzW2lgLnsH8Mkx9EzyUNMDYBspAFTqBzLntYXO9t2LPHANh3sl PzvNqLIiu1LTs75TD96ARvpuJx+Lc2DlZfuaFpXD6SnmIRforGjJx7kIxoyhyVTnaIi0 OPsQ== X-Received: by 10.152.120.228 with SMTP id lf4mr9402403lab.65.1372556160662; Sat, 29 Jun 2013 18:36:00 -0700 (PDT) MIME-Version: 1.0 From: Joshua Landau Date: Sun, 30 Jun 2013 02:35:20 +0100 Subject: Rough sketch of a PEP for issue2292 To: python-list Content-Type: multipart/mixed; boundary=089e0117691564011e04e055225b X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 111 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1372556164 news.xs4all.nl 15877 [2001:888:2000:d::a6]:45539 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:49469 --089e0117691564011e04e055225b Content-Type: text/plain; charset=UTF-8 In order to get the ball rolling, and because after hours of futzing I still can't get the diff to work (yeah, fine, I'm incompetent), I've started sketching out how a PEP for http://bugs.python.org/issue2292, "Missing *-unpacking generalizations" might look. It's attached if anyone cares to look. You can insult me over it if you want, but I'd prefer if you liked it :P. I also don't mind additions to it if you feel you want to waste some time. If anyone knows how to get the patch (from the bug report) working, or where to find http://code.python.org/python/users/twouters/starunpack after code.python.org was deleted in favour of hg.python.org (which seems not to have it), that'd be nice too. Again, this is a sketch. It's incomplete and I'm likely to replace large parts of it tomorrow. There's also very little justification and, I think, there are too many code blocks. So it's all liable to change. --089e0117691564011e04e055225b Content-Type: text/plain; charset=UTF-8; name="pep-####.txt" Content-Disposition: attachment; filename="pep-####.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hijkbmem0 UEVQOiBYWFgKVGl0bGU6IEFkZGl0aW9uYWwgVW5wYWNraW5nIEdlbmVyYWxpemF0aW9ucwpWZXJz aW9uOiAkUmV2aXNpb24kCkxhc3QtTW9kaWZpZWQ6ICREYXRlJApBdXRob3I6IEpvc2h1YSBMYW5k YXUgPGpvc2h1YUBsYW5kYXUud3M+CkRpc2N1c3Npb25zLVRvOiBweXRob24taWRlYXNAcHl0aG9u Lm9yZwpTdGF0dXM6IERyYWZ0ClR5cGU6IFN0YW5kYXJkcyBUcmFjawpDb250ZW50LVR5cGU6IHRl eHQveC1yc3QKQ3JlYXRlZDogMjktSnVuLTIwMTMKUHl0aG9uLVZlcnNpb246IDMuNApQb3N0LUhp c3Rvcnk6ICNUT0RPCgoKQWJzdHJhY3QKPT09PT09PT0KClRoaXMgUEVQIHByb3Bvc2VzIGV4dGVu ZGVkIHVzYWdlcyBvZiB0aGUgYGAqYGAgaXRlcmFibGUgdW5wYWNraW5nIG9wZXJhdG9yLgoKU3Bl Y2lmaWNhbGx5OgoKTXVsdGlwbGUgdW5wYWNraW5nczo6CgogICAgPj4+IHByaW50KCpbMV0sICpb Ml0pCiAgICAxIDIKICAgID4+PiBkaWN0KCoqeyd4JzogMX0sICoqeyd5JzogMn0pCiAgICB7J3gn OiAxLCAneSc6IDJ9CgpVbnBhY2tpbmcgZG9lcyBub3QgcHJldmVudCBmdXJ0aGVyIGFyZ3VtZW50 cyBiZWluZyBwYXNzZWQ6OgoKICAgID4+PiBwcmludCgqWzFdLCAyKQogICAgMSAyCiAgICA+Pj4g ZGljdCgqKnsneCc6IDF9LCB5PTIpCiAgICB7J3gnOiAxLCAneSc6IDJ9CiAgICA+Pj4gZGVmIGYo KmFyZ3MsIGxhc3QpOiBwYXNzCgpLZXl3b3JkcyBhcmd1bWVudHMgbXVzdCBzdGlsbCBmb2xsb3cg cG9zaXRpb25hbCBhcmd1bWVudHMgYnV0IG5vdyBtdXN0IGFsc28gZm9sbG93IGBgKmBgLXVucGFj a2luZ3MuIFRoZSBmdW5jdGlvbiBvZiBhIGxvbmUgYGAqYGAgaW4gZnVuY3Rpb24gZGVmaW5pdGlv bnMgaXMgdW5jaGFuZ2VkLgoKVW5wYWNraW5nIGluc2lkZSB0dXBsZXMsIGxpc3RzLCBzZXRzIGFu ZCBkaWN0aW9uYXJpZXMsIGFuZCBjb21wcmVoZW5zaW9ucyBmb3IgaXRlcmF0b3JzLCBsaXN0cywg c2V0cyBhbmQgZGljdGlvbmFyaWVzOjoKCiAgICA+Pj4gKnJhbmdlKDQpLCA0CiAgICAoMCwgMSwg MiwgMywgNCkKICAgID4+PiBbKnJhbmdlKDQpLCA0XQogICAgWzAsIDEsIDIsIDMsIDRdCiAgICA+ Pj4geypyYW5nZSg0KSwgNH0KICAgIHswLCAxLCAyLCAzLCA0fQogICAgPj4+IHsneCc6IDEsICoq eyd5JzogMn19CiAgICB7J3gnOiAxLCAneSc6IDJ9CgogICAgPj4+IHJhbmdlcyA9IFtyYW5nZShp KSBmb3IgaSBpbiByYW5nZSg1KV0KCiAgICA+Pj4gWyppdGVtIGZvciBpdGVtIGluIHJhbmdlc10K ICAgIFswLCAwLCAxLCAwLCAxLCAyLCAwLCAxLCAyLCAzXQoKClJhdGlvbmFsZQo9PT09PT09PT0K CkN1cnJlbnQgdXNhZ2Ugb2YgdGhlIGBgKmBgIGl0ZXJhYmxlIHVucGFja2luZyBvcGVyYXRvciBm ZWF0dXJlcyBzb21ld2hhdCBhcmJpdHJhcnkgcmVzdHJpY3Rpb25zLgoKQSBsaW1pdGF0aW9uIG9m IG9uZSB1bnBhY2tpbmcgcGVyIGZ1bmN0aW9uIGNhbGwgbWFrZXMgc29tZSBmdW5jdGlvbiBjYWxs cyBtb3JlIHZlcmJvc2UgdGhhbiBuZWNlc3Nhcnk7IGluc3RlYWQgb2Y6OgoKICAgIGZ1bmN0aW9u KCoqYXJndW1lbnRzLCAqKm1vcmVfYXJndW1lbnRzKQoKb25lIGlzIGZvcmNlZCB0byB3cml0ZTo6 CgogICAga3dhcmdzID0gYXJndW1lbnRzLmNvcHkoKQogICAga3dhcmdzLnVwZGF0ZShtb3JlX2Fy Z3VtZW50cykKICAgIGZ1bmN0aW9uKCoqa3dhcmdzKQoKb3IsIGlmIHRoZXkga25vdyB0byBkbyBz bzo6CgogICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgQ2hhaW5NYXAKICAgIGZ1bmN0aW9uKCoq Q2hhaW5NYXAobW9yZV9hcmd1bWVudHMsIGFyZ3VtZW50cykpCgpUaGlzIGFsc28gYXBwbGllcyB0 byBhbnkgY2lyY3Vtc3RhbmNlIHdoZXJlIHlvdSB3b3VsZCBsaWtlIHRvIHVucGFjayBwb3NpdGlv bmFsIGFyZ3VtZW50cyBmb2xsb3dlZCBieSBhbm90aGVyIHBvc2l0aW9uYWwgYXJndW1lbnQ6OgoK ICAgIGZ1bmN0aW9uKCphcmdzLCBhcmcpCgoKRnVuY3Rpb24gZGVmaW5pdGlvbnMgYXJlIGFsc28g bm93IG1vcmUgc3ltbWV0cmljYWwgd2l0aCBhc3NpZ25tZW50OyB3aGVyZWFzIHByZXZpb3VzbHkg anVzdDo6CgogICAgZmlyc3QsICpvdGhlcnMsIGxhc3QgPSBpdGVyYWJsZQoKd2FzIHZhbGlkLCBu b3cgc28gdG9vIGlzOjoKCiAgICBkZWYgZihmaXJzdCwgKm90aGVycywgbGFzdCk6CiAgICAgICAg Li4uCgogICAgZigqaXRlcmFibGUpCgoKVGhlcmUgYXJlIHR3byBwcmltYXJ5IHJhdGlvbmFsZSBm b3IgdW5wYWNraW5nIGluc2lkZSBvZiBjb250YWluZXJzLiBGaXJzdGx5LCBpdCB3b3VsZCBtYWtl IHNlbnNlIGZvcjo6CgogICAgbHN0ID0gKDEsIDIsIDMsIDQsIDUpCiAgICBmaXJzdCwgKm90aGVy cywgbGFzdCA9IGxzdAoKdG8gYmUgdGhlIGludmVyc2Ugb2Y6OgoKICAgIGZpcnN0LCBvdGhlcnMs IGxhc3QgPSAxLCBbMiwgMywgNF0sIDUKICAgIGxzdCA9IGZpcnN0LCAqb3RoZXJzLCBsYXN0CgoK U2Vjb25kbHksIGl0IHZhc3RseSBzaW1wbGlmaWVzIGRpY3Rpb25hcnkgImFkZGl0aW9uIiBzdWNo IGFzOjoKCiAgICBjb21iaW5hdGlvbiA9IGZpcnN0X2RpY3Rpb25hcnkuY29weSgpCiAgICBjb21i aW5hdGlvbi51cGRhdGUoeyJ4IjogMSwgInkiOiAyfSkKCmFuZCBlcXVpdmFsZW50cywgYXMgbm93 IHlvdSBjYW4ganVzdCB3cml0ZTo6CgogICAgY29tYmluYXRpb24gPSB7KipmaXJzdF9kaWN0aW9u YXJ5LCAieCI6IDEsICJ5IjogMn0KCndoaWNoIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IGluIGNv bnRleHRzIHdoZXJlIGV4cHJlc3Npb25zIGFyZSBwcmVmZXJyZWQuIFRoaXMgY2FuIGFsc28gaGVs cCByZXBsYWNlIGBgbHN0ICsgW2l0ZW1dYGAuCgoKU3BlY2lmaWNhdGlvbgo9PT09PT09PT09PT09 CgpUaGlzIGlzbid0IG15IGZvcnTDqSwgc28gaXQgd2lsbCB0YWtlIGEgYml0IGxvbmdlci4KCkZ1 bmN0aW9uIGNhbGxzIG1heSBhY2NlcHQgYW4gdW5ib3VuZCBudW1iZXIgb2YgYGAqYGAgYW5kIGBg KipgYCB1bnBhY2tpbmdzLCB3aGljaCBhcmUgYWxsb3dlZCBhbnl3aGVyZSB0aGF0IHBvc2l0aW9u YWwgYW5kIGtleXdvcmQgYXJndW1lbnRzIGFyZSBhbGxvd2VkIHJlc3BlY3RpdmVseS4gSW4gYXBw cm94aW1hdGUgcHNldWRvLW5vdGF0aW9uOgoKOjoKCiAgICBmdW5jdGlvbl9jYWxsKAogICAgICAg IFsoKmFyZ3N8YXJnKSwgXS4uLgogICAgICAgIFsoKiprd2FyZ3N8a3dhcmc9PGV4cHI+KSwgXS4u LgogICAgKQoKVGhlIGZ1bmN0aW9uIGBgbGFtYmRhICphcmdzLCBsYXN0OiAuLi5gYCBub3cgZG9l cyBub3QgcmVxdWlyZSBgYGxhc3RgYCB0byBiZSBhIGtleXdvcmQgb25seSBhcmd1bWVudCwgYW5k IHRodXM6OgoKICAgIGRlZiBmdW5jKCphcmdzLCAqLCBrZXl3b3JkX29ubHkpOgogICAgICAgIC4u LgoKaXMgdmFsaWQuIE90aGVyd2lzZSwgZnVuY3Rpb24gZGVmaW5pdGlvbnMgcmVtYWluIHVuY2hh bmdlZC4KCgpUdXBsZXMsIGxpc3RzLCBzZXRzIGFuZCBkaWN0aW9uYXJpZXMgbm93IGFsbG93IHVu cGFja2luZy4gRGljdGlvbmFyaWVzIHJlcXVpcmUgYGAqKmBgIHVucGFja2luZywgYWxsIHRoZSBv dGhlcnMgcmVxdWlyZSBgYCpgYCB1bnBhY2tpbmcuIEEgZGljdGlvbmFyeSdzIGtleSByZW1haW4g aW4gYSByaWdodC10by1sZWZ0IHByaW9yaXR5IG9yZGVyLCBzbyBgYHsqKnsnYSc6IDF9LCAnYSc6 IDIsICoqeydhJzogM319YGAgZXZhbHVhdGVzIHRvIGBgeydhJzogM31gYC4KCgoqKkkgYW0gdW5j bGVhciBvbiB3aGF0IHRoZSBkZWZpbml0aW9uIGZvciBjb21wcmVoZW5zaW9ucyBzaG91bGQgYmU6 IHNob3VsZCoqIGBgeyoqZCBmb3IgZCBpbiBkaWN0c31gYCAqKndvcmsgYXMgd2VsbCBhcyoqIGBg eypzIGZvciBzIGluIHNldHN9YGAgKipwYXIgZXhlbXBsZT8qKgoKCkJhY2t3YXJkcy1JbmNvbXBh dGliaWxpdHkKPT09PT09PT09PT09PT09PT09PT09PT09PQoKUGFydHMgb2YgdGhpcyBjaGFuZ2Ug YXJlIG5vdCBiYWNrd2FyZHMtY29tcGF0aWJsZS4KCi0gYGBmdW5jdGlvbihrd2FyZz0iZm9vIiwg KmFyZ3MpYGAgaXMgbm8gbG9uZ2VyIHZhbGlkIHN5bnRheDsgYGBmdW5jdGlvbigqYXJncywga3dh cmc9ImZvbyIpYGAgaXMgcmVxdWlyZWQgaW5zdGVhZAoKLSBgYGxhbWJkYSAqYXJncywgbGFzdDog Li4uYGAgbm8gbG9uZ2VyIHJlcXVpcmVzIGBgbGFzdGBgIHRvIGJlIGEga2V5d29yZCBvbmx5IGFy Z3VtZW50CgoKKipJIGRvbid0IGZlZWwgSSBoYXZlIHRoZSBzdGFuZGluZyB0byBtYWtlIGEganVk Z21lbnQgb24gdGhlc2UgY2FzZXMuIE5lZWRsZXNzIHRvIHNheSB0aGUgZmlyc3Qgb2YgdGhlc2Ug aXMgYSBtb3JlIHNpZ25pZmljYW50IGh1cmRsZSBhbmQgd2lsbCBhZmZlY3QgbW9yZSB3b3JraW5n IGNvZGUuKioKCgpJbXBsZW1lbnRhdGlvbgo9PT09PT09PT09PT09PQoKKipObyBpZGVhLiBJIGtu b3cgbm90aGluZyBhYm91dCB0aGUgaW1wbGVtZW50YXRpb24gY29kZS4qKgoKCkRpc2N1c3Npb24K PT09PT09PT09PQoKKipUaGlzIGlzIHF1aXRlIG9sZDsgYW55IGhlbHAgZmluZGluZyB0aGUgc291 cmNlIGFuZCBhcmVhcyBvZiBkaXNjdXNzaW9uIHdpbGwgYmUgYXBwcmVjaWF0ZWQuKioKCgpSZWZl cmVuY2VzCj09PT09PT09PT0KCioqRGl0dG8qKgoKCkNvcHlyaWdodAo9PT09PT09PT0KClRoaXMg ZG9jdW1lbnQgaGFzIGJlZW4gcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluLg== --089e0117691564011e04e055225b--