Re: Any practical reason type(environ) must be dict (not subclass)?

Jason Madden <[email protected]> Fri, 25 Mar 2016 10:04:24 -0500
Newsgroups gmane.comp.python.web
Message-ID <[email protected]>
Cj4gT24gTWFyIDI1LCAyMDE2LCBhdCAwNTowMSwgQ29yeSBCZW5maWVsZCA8Y29yeUBsdWthc2Eu
Y28udWs+IHdyb3RlOgo+IAo+IEdpdmVuIHRoYXQgZ2V2ZW50IGlzIGtlZXBpbmcgaG9sZCBvZiBp
dHMgb3duIHJlZmVyZW5jZSB0byB0aGUgZW52aXJvbiwgd2h5IGRvZXMgZ2V2ZW50IG5vdCBzaW1w
bHkgd3JhcCB0aGUgZW52aXJvbiBkaWN0IGluIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoaXMg
ZnVuY3Rpb25hbGl0eSBkaXJlY3RseT8gSW4gdGhhdCBtYW5uZXIsIGdldmVudCBjYW4gZXhwb3Nl
IGl0cyBvd24gZXJyb3IgaGFuZGxpbmcgYmVoYXZpb3VyIGFzIGRlc2lyZWQsIGFuZCBjb250aW51
ZSB0byBmb2xsb3cgUEVQLTMzMzMuCgpJIGRpZCBjb25zaWRlciB0aGF0LCBidXQgZGlkbid0IHdh
bnQgdG8gZG8gdGhhdCB1bmxlc3MgdGhlcmUgd2VyZSBhY3R1YWwgcHJhY3RpY2FsIHByb2JsZW1z
IHBhc3NpbmcgdGhlIHNhbWUgb2JqZWN0IHRoYXQgZ2V2ZW50IHJlZmVyZW5jZXMuIE1ha2luZyBh
IGNvcHkganVzdCB0byBwYXNzIHRvIHRoZSBhcHBsaWNhdGlvbiBhZGRzIGFkZGl0aW9uYWwgdGlt
ZSBhbmQgbWVtb3J5IHJlcXVpcmVtZW50cyB0aGF0IGFyZSBhbHdheXMgbmljZSB0byBhdm9pZCBp
biBhIHNlcnZlci4gCgo+IEluIGZhY3QsIEkgYmVsaWV2ZSB0aGlzIGlzIGV4YWN0bHkgd2hhdCBQ
SiB3YXMgZ2V0dGluZyBhdC4gVGhlIGFiaWxpdHkgdG8gc3ViY2xhc3MgdGhlIGRpY3Rpb25hcnkg
KGluIHRoaXMgY2FzZSwgdG8gc3ViY2xhc3MgaXQgd2l0aCBvbmUgdGhhdCBoaWRlcyBzb21lIGtl
eXMgb24gcHJpbnRpbmcpIGlzIG9ubHkgdXNlZnVsIHRvIHRoZSBlbnRpdHkgdGhhdCBkb2VzIHRo
ZSBzdWJjbGFzc2luZywgYmVjYXVzZSB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgc3Vi
Y2xhc3Mgd2lsbCBub3QgYmUgbG9zdCBzb21ld2hlcmUgZWxzZSBpbiB0aGUgV1NHSSBzdGFjay4K
CkkgbG9va2VkIGF0IG1vc3Qgb2YgdGhlIG1pZGRsZXdhcmUgbGlzdGVkIG9uIHRoZSBXU0dJIGhv
bWVwYWdlIFsxXSwgYXMgd2VsbCBhcyBhIGRlY2VudCBzYW1wbGluZyBvZiB0aGUgcGFja2FnZXMg
aWRlbnRpZmllZCBhcyBtaWRkbGV3YXJlIG9uIFB5UEkgWzJdLiBJIGRpZG4ndCBmaW5kIGFueSB0
aGF0IHBhc3NlZCBhIG5ldyBlbnZpcm9uIG9uIHRvIHRoZSBuZXh0IGFwcGxpY2F0aW9uOyB0aGV5
IGFsbCBzZWVtIHRvIHNpbXBseSBwYXNzIG9uIHRoZSBlbnZpcm9uIG9iamVjdCBhcyBnaXZlbiB0
byB0aGVtLiBOb3cgdGhhdCdzIGp1c3QgYSBzYW1wbGluZyBzbyBvYnZpb3VzbHkgaXQgZG9lc24n
dCBtZWFuIHRoYXQgc3VjaCBjb3B5aW5nIGRvZXNuJ3QgaGFwcGVuLiBCdXQgZG9pbmcgc28gZWxp
bWluYXRlcyB0aGUgYWJpbGl0eSBmb3IgbG93ZXIgbWlkZGxld2FyZXMgdG8gY29tbXVuaWNhdGUg
d2l0aCB1cHBlciBtaWRkbGV3YXJlcyB0aHJvdWdoIHRoZSBlbnZpcm9uIGlmIHRoZXkgYXJlIG1v
cmUgdGhhbiBvbmUgbGF5ZXIgc2VwYXJhdGVkLS0tYSByZWFsLXdvcmxkIGV4YW1wbGUgaXMgc2V0
dGluZyBgcGFzdGUuZXhwZWN0ZWRfZXhjZXB0aW9uc2AtLS1zbyBwcmFjdGljYWxseSBzcGVha2lu
ZywgSSBpbWFnaW5lIGl0J3MgcXVpdGUgcmFyZS4KCj4gQmVjYXVzZSBvZiB0aGF0LCBJ4oCZbSBk
aXNpbmNsaW5lZCB0byB3YW50IHRvIHdpZGVuIHRoZSBzcGVjIGhlcmUuIFBK4oCZcyBvcmlnaW5h
bCBhbmFseXNpcyBpcyByaWdodDogYWxsb3dpbmcgc3ViY2xhc3NlcyBkb2VzIG5vdCBwcm92aWRl
IG1vcmUgdXRpbGl0eSB0aGFuIGRpc2FsbG93aW5nIHRoZW0sIGJ1dCBpdCBkb2VzIGFsbG93IG1v
cmUgYnVncyB0byBjcmVlcCBpbiBkdWUgdG8gaW5jb25zaXN0ZW50IGV4cGVjdGF0aW9ucy4gQmV0
dGVyIHRvIGhhdmUgYW4gb2JqZWN0IHdpdGggYSBrbm93biBzZXQgb2YgYmVoYXZpb3VycyBhbmQg
aGF2ZSBhcHBsaWNhdGlvbnMvc2VydmVycyB3cmFwIGl0IGluIGN1c3RvbSBmdW5jdGlvbi4KCkkn
bSBub3Qgc3VyZSBJIGFncmVlIHdpdGggdGhhdCwgYnV0IEkgY2FuIHNlZSB0aGUgYXJndW1lbnQu
CgpJIHN0YXJ0ZWQgb3V0IGJ5IGFza2luZyBpZiB0aGVyZSB3ZXJlIGFueSAqcHJhY3RpY2FsKiBy
ZWFzb25zIG5vdCB0byBwYXNzIGEgdGlueSBkaWN0IHN1YmNsYXNzIGFzIGVudmlyb24sIGFuZCB3
aGVuIEkgd2FzIHN1cnZleWluZyBleGlzdGluZyBtaWRkbGV3YXJlIGZvciB0aGlzIHRocmVhZCwg
SSBmb3VuZCBhIGJpZyByZWFzb246IGl0IHR1cm5zIG91dCB0aGF0IFdlYk9iJ3MgUmVxdWVzdCBv
YmplY3QgKmFsc28qIHZlcmlmaWVzIHRoYXQgdHlwZShlbnZpcm9uKSBpcyBkaWN0IFszXS4gR2l2
ZW4gdGhlIHBvcHVsYXJpdHkgb2YgV2ViT2IgYW5kIGl0cyBkZXJpdmF0aXZlcyBsaWtlIFB5cmFt
aWQsIHRoaXMgaXMgbm90IGEgY2hhbmdlIGdldmVudCBjYW4gbWFrZS4gV2UnbGwgdGFrZSBhIGRp
ZmZlcmVudCBhcHByb2FjaC4KClRoYW5rcyBhZ2FpbiBmb3IgYWxsIHRoZSBncmVhdCBpbnNpZ2h0
cyBhbmQgZGlzY3Vzc2lvbiEKCkphc29uCgoKWzFdIGh0dHA6Ly93c2dpLnJlYWR0aGVkb2NzLm9y
Zy9lbi9sYXRlc3QvbGlicmFyaWVzLmh0bWwKWzJdIGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5
cGk/OmFjdGlvbj1icm93c2Umc2hvdz1hbGwmYz0zMTkmYz0zMjYmYz01MDYmYz01MDkKWzNdIGh0
dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvYmxvYi9tYXN0ZXIvd2Vib2IvcmVxdWVzdC5w
eSNMMTEyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCldl
Yi1TSUcgbWFpbGluZyBsaXN0CldlYi1TSUdAcHl0aG9uLm9yZwpXZWIgU0lHOiBodHRwOi8vd3d3
LnB5dGhvbi5vcmcvc2lncy93ZWItc2lnClVuc3Vic2NyaWJlOiBodHRwczovL21haWwucHl0aG9u
Lm9yZy9tYWlsbWFuL29wdGlvbnMvd2ViLXNpZy9nY3B3LXdlYi1zaWclNDBtLmdtYW5lLm9yZwo=