Path: csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed2.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.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'parameters': 0.04; 'warnings': 0.04; '"__main__":': 0.09; '*args,': 0.09; '__name__': 0.09; 'caller': 0.09; 'msg': 0.09; 'obsolete': 0.09; 'sphinx': 0.09; 'cc:addr:python-list': 0.11; 'def': 0.12; '**kwargs)': 0.16; '**kwargs):': 0.16; 'foo(object):': 0.16; 'param': 0.16; 'parameters,': 0.16; 'positional': 0.16; 'subject:based': 0.16; 'subject:class': 0.16; 'skip:f 30': 0.19; 'solution.': 0.20; 'import': 0.22; 'cc:addr:python.org': 0.22; 'print': 0.22; 'cc:2**0': 0.24; 'asking': 0.27; 'header:In-Reply-To:1': 0.27; "i'm": 0.30; 'inspect': 0.31; 'class': 0.32; 'skip:c 30': 0.32; '-----': 0.33; 'skip:_ 10': 0.34; 'skip:d 20': 0.34; 'really': 0.36; 'keyword': 0.36; 'wishes,': 0.36; 'thank': 0.38; 'how': 0.40; 'you.': 0.62; 'information': 0.63; 'name': 0.63; 'received:194': 0.64; 'notice:': 0.67; 'person,': 0.68; 'skip:w 30': 0.69; 'privileged.': 0.69; 'disclose': 0.74; 'to:addr:yahoo.com': 0.81; 'medium.': 0.91 X-IronPort-AV: E=Sophos;i="5.07,744,1413237600"; d="scan'208";a="3827027" Date: Mon, 12 Jan 2015 16:20:51 +0100 (CET) From: Jean-Michel Pichavant To: Albert-Jan Roskam In-Reply-To: <1098350771.199383.1421070276837.JavaMail.yahoo@jws10769.mail.gq1.yahoo.com> Subject: Re: class-based class decorator MIME-Version: 1.0 X-Mailer: Zimbra 7.2.7_GA_2942 (ZimbraWebClient - GC37 (Linux)/7.2.7_GA_2942) Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Python 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: 45 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1421076121 news.xs4all.nl 2852 [2001:888:2000:d::a6]:60732 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:83612 LS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLQo+IEZyb206ICJBbGJlcnQtSmFuIFJvc2thbSIg PGZvbWNsQHlhaG9vLmNvbS5kbWFyYy5pbnZhbGlkPgo+IGltcG9ydCBmdW5jdG9vbHMKPiBpbXBv cnQgaW5zcGVjdAo+IGltcG9ydCB3YXJuaW5ncwo+IAo+IHdhcm5pbmdzLnNpbXBsZWZpbHRlcigi YWx3YXlzIikKPiAKPiBjbGFzcyBjaGVja19kZXByZWNhdGVkX2FyZ3Mob2JqZWN0KToKPiAKPiAg ICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlcHJlY2F0ZWRfcGFyYW1zLCBtc2c9Tm9uZSk6Cj4gICAg ICAgICBzZWxmLmRlcHJlY2F0ZWRfcGFyYW1zID0gZGVwcmVjYXRlZF9wYXJhbXMKPiAgICAgICAg IHNlbGYubXNnID0gbXNnCj4gCj4gICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBmdW5jKToKPiAgICAg ICAgIEBmdW5jdG9vbHMud3JhcHMoZnVuYykKPiAgICAgICAgIGRlZiBpbm5lcigqYXJncywgKipr d2FyZ3MpOgo+ICAgICAgICAgICAgIGFyZ3NwZWMgPSBpbnNwZWN0LmdldGFyZ3NwZWMoZnVuYykK PiAgICAgICAgICAgICBkZWZhdWx0X3NpZ25hdHVyZSA9IGRpY3QoemlwKGFyZ3NwZWMuYXJnc1sx Ol0sCj4gICAgICAgICAgICAgYXJnc3BlYy5kZWZhdWx0cykpCj4gICAgICAgICAgICAgY2FsbGFy Z3MgPSBpbnNwZWN0LmdldGNhbGxhcmdzKGZ1bmMsICphcmdzLCAqKmt3YXJncykKPiAgICAgICAg ICAgICBkZXByZWNhdGVkX2NhbGxzID0gWyhwLCBhKSBmb3IgcCwgYSBpbiBjYWxsYXJncy5pdGVt cygpCj4gICAgICAgICAgICAgaWYKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw IGluIHNlbGYuZGVwcmVjYXRlZF9wYXJhbXMgYW5kCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYSAhPSBkZWZhdWx0X3NpZ25hdHVyZVtwXV0KPiAgICAgICAgICAgICBmb3IgKHBh cmFtLCBhcmcpIGluIGRlcHJlY2F0ZWRfY2FsbHM6Cj4gICAgICAgICAgICAgICAgIG1zZyA9ICJ5 b3UncmUgdXNpbmcgb2Jzb2xldGUgcGFyYW1ldGVycyBpbiAlczoKPiAgICAgICAgICAgICAgICAg WyVzOiVzXSIKPiAgICAgICAgICAgICAgICAgbXNnID0gbXNnICUgKGZ1bmMuX19uYW1lX18sIHBh cmFtLCBhcmcpCj4gICAgICAgICAgICAgICAgIG1zZyA9IG1zZyArICIgIiArIHNlbGYubXNnIGlm IHNlbGYubXNnIGVsc2UgbXNnCj4gICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBE ZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKPiAgICAgICAgICAgICByZXR1cm4gZnVu YygqYXJncywgKiprd2FyZ3MpCj4gICAgICAgICBmdW5jdG9vbHMudXBkYXRlX3dyYXBwZXIoaW5u ZXIsIGZ1bmMpCj4gICAgICAgICByZXR1cm4gaW5uZXIKPiAKPiBpZiBfX25hbWVfXyA9PSAiX19t YWluX18iOgo+ICAgICBjbGFzcyBGb28ob2JqZWN0KToKPiAKPiAgICAgICAgIEBjaGVja19kZXBy ZWNhdGVkX2FyZ3MoWyJvbGQiLCAib2xkZXIiXSwgInVzZSAnYnJhbmRfbmV3Jwo+ICAgICAgICAg cGFyYW0gaW5zdGVhZCIpCj4gICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgb2xkPSJvbGQiLCBv bGRlcj0iYW5jaWVudCIpOgo+ICAgICAgICAgICAgIHByaW50ICJoZWxsbyIKPiAKPiAgICAgICAg IEBjaGVja19kZXByZWNhdGVkX2FyZ3MoZGVwcmVjYXRlZF9wYXJhbXM9WyJvbGQiLCAib2xkZXIi XSkKPiAgICAgICAgIGRlZiBiYXIoc2VsZiwgb2xkPSJkZWZhdWx0Iik6Cj4gICAgICAgICAgICAg cHJpbnQgIndvcmxkIgo+IAo+ICAgICBmID0gRm9vKG9sZD0ib2xkIiwgb2xkZXI9ImRpbm8gZXJh IikKPiAgICAgZi5iYXIoImduYXJseSIpCj4gCj4gICAgIGhlbHAoZikgICMgbm93IHRoZSBzaWdu YXR1cmUgaXMgKmFyZ3MsICoqa3dhcmdzLCB3aGljaCBtYWtlcyBteQo+ICAgICBTcGhpbnggZG9j dW1lbnRhdGlvbiBsZXNzIHJlYWRhYmxlIQo+IAo+IEJlc3Qgd2lzaGVzLAo+IEFsYmVydC1KYW4K CkkgZG9uJ3QgcmVhbGx5IHVuZGVyc3RhbmQgaG93IHlvdSBzdWNjZXNzZnVseSBtYW5hZ2UgcG9z aXRpb25hbCBwYXJhbWV0ZXJzLCBzaW5jZSB0aGUgY2FsbGVyIG1heSBub3QgbmFtZSB0aGVtLgpJ J20gYXNraW5nIGJlY2F1c2UgaWYgeW91ciBpbnRlbmQgdG8gY2hlY2sgb25seSB0aGUga2V5d29y ZCBwYXJhbWV0ZXJzLCB0aGVyZSdzIGEgbXVjaCBzaW1wbGllciBzb2x1dGlvbi4KCkpNCgoKLS0g SU1QT1JUQU5UIE5PVElDRTogCgpUaGUgY29udGVudHMgb2YgdGhpcyBlbWFpbCBhbmQgYW55IGF0 dGFjaG1lbnRzIGFyZSBjb25maWRlbnRpYWwgYW5kIG1heSBhbHNvIGJlIHByaXZpbGVnZWQuIElm IHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBub3RpZnkgdGhlIHNl bmRlciBpbW1lZGlhdGVseSBhbmQgZG8gbm90IGRpc2Nsb3NlIHRoZSBjb250ZW50cyB0byBhbnkg b3RoZXIgcGVyc29uLCB1c2UgaXQgZm9yIGFueSBwdXJwb3NlLCBvciBzdG9yZSBvciBjb3B5IHRo ZSBpbmZvcm1hdGlvbiBpbiBhbnkgbWVkaXVtLiBUaGFuayB5b3UuCg==