[Sqlalchemy-tickets] [sqlalchemy] #547: Check for invalid property names on mapped objects
Brought to you by:
zzzeek
|
From: sqlalchemy <mi...@zz...> - 2007-04-23 14:33:49
|
IzU0NzogQ2hlY2sgZm9yIGludmFsaWQgcHJvcGVydHkgbmFtZXMgb24gbWFwcGVkIG9iamVjdHMN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBSZXBvcnRlcjogIGd1ZXN0ICAgICAgICAgfCAgICAgICAg ICBPd25lcjogIGNsZXZlcmRldmlsICAgICAgICAgICANCiAgICAgVHlwZTogIGVuaGFuY2VtZW50 ICAgfCAgICAgICAgIFN0YXR1czogIG5ldyAgICAgICAgICAgICAgICAgICANCiBQcmlvcml0eTog IG1lZGl1bSAgICAgICAgfCAgICAgIE1pbGVzdG9uZTogICAgICAgICAgICAgICAgICAgICAgICAN CkNvbXBvbmVudDogIEFjdGl2ZU1hcHBlciAgfCAgICAgICBTZXZlcml0eTogIG5vIHRyaWFnZSBz ZWxlY3RlZCB5ZXQNCiBLZXl3b3JkczogICAgICAgICAgICAgICAgfCAgIFN0YXR1c19maWVsZDog IGF3YWl0aW5nIHRyaWFnZSAgICAgICANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBXZSBkZXZlbG9w ZWQgdGhpcyBmdW5jdGlvbiB3aGVuIHBvcnRpbmcgZnJvbSBhbiBleGlzdGluZyBTUUxPYmplY3QN CiBwcm9qZWN0LiBTaW5jZSBTUUxPYmplY3QgYW5kIFNRTEFsY2hlbXkgdXNlIGRpZmZlcmVudCBw cm9wZXJ0eSBuYW1lcywgd2UNCiBkZXZlbG9wZWQgYSBjdXN0b20gX19zZXRhdHRyX18gZnVuY3Rp b24gdG8gdGhyb3cgYW4gZXJyb3Igb24gYW55IGF0dGVtcHQNCiB0byBzZXQgYW4gdW5rbm93biBw cm9wZXJ0eSBuYW1lLiBUaGlzIGhhcyBwcm92ZW4gdG8gYmUgcXVpdGUgdmFsdWFibGUgZm9yDQog dXM7IHdvdWxkIGl0IGJlIHVzZWZ1bCB0byBpbmNsdWRlIHRoaXMgYmVoYXZpb3IgYXMgYW4gb3B0 aW9uIGluIHRoZSBjb3JlDQogU1FMQWxjaGVteT8NCg0KIFRoZSBjb2RlIGlzIGJlbG93LiBBcyB3 cml0dGVuLCB3ZSB1c2VkIGl0IGluIGEgY29tbW9uIGJhc2UgY2xhc3MgZm9yIGFsbA0KIG91ciBv YmplY3RzIGJ1dCBpbiB0aGUgc3Bpcml0IG9mIFNRTEFsY2hlbXkgaXQgY291bGQgYmUgcGF0Y2hl ZCBpbnRvIGVhY2gNCiBtYXBwZWQgY2xhc3MgaW5zdGVhZC4NCg0KIChJZiB5b3UgbGlrZSB0aGUg Y29uY2VwdCBidXQgdGhpbmsgYWRkaXRpb25hbCB3b3JrIGlzIG5lZWRlZCwgeW91IGNhbg0KIGNv bnRhY3QgbWUgYXQgYmFycnkgYXQgZXhjaGFuZ2VmcmFtZSBkb3QgY29tLikNCg0KICAgICBAY2xh c3NtZXRob2QNCiAgICAgZGVmIF9maW5kX2NsYXNzX2Rlc2NyaXB0b3IoY2xhc3NfLCBuYW1lKToN CiAgICAgICAgICIiIlNlYXJjaGVzIGJhc2UgY2xhc3NlcyBmb3IgYSBkZXNjcmlwdG9yIGJ5IHRo ZSBzcGVjaWZpZWQgbmFtZS4NCiAgICAgICAgIFJldHVybnMgaXQgaWYgZm91bmQsIHJldHVybnMg Tm9uZSBvdGhlcndpc2UuDQogICAgICAgICAiIiINCiAgICAgICAgICMgU2VhcmNoIG91cnNlbHZl cyBmaXJzdA0KICAgICAgICAgaWYgbmFtZSBpbiBjbGFzc18uX19kaWN0X186DQogICAgICAgICAg ICAgY2xhc3NfcHJvcGVydHkgPSBjbGFzc18uX19kaWN0X19bbmFtZV0NCiAgICAgICAgICAgICBp ZiBoYXNhdHRyKGNsYXNzX3Byb3BlcnR5LCAnX19zZXRfXycpOg0KICAgICAgICAgICAgICAgICBy ZXR1cm4gY2xhc3NfcHJvcGVydHkNCiAgICAgICAgICMgU2VhcmNoIGJhc2UgY2xhc3NlcyByZWN1 cnNpdmVseS4gTm90ZSB3ZSBkb24ndCBmb2xsb3cgdGhlIHNhbWUNCiBvcmRlcg0KICAgICAgICAg IyBhcyBuZXctc3R5bGUgY2xhc3Nlcy4gVGhpcyB3aWxsIHByb2JhYmx5IGJlIG9rYXkuDQogICAg ICAgICBmb3IgYmFzZSBpbiBjbGFzc18uX19iYXNlc19fOg0KICAgICAgICAgICAgIGlmIGhhc2F0 dHIoYmFzZSwgJ19maW5kX2NsYXNzX2Rlc2NyaXB0b3InKToNCiAgICAgICAgICAgICAgICAgcGFy ZW50X3Jlc3VsdCA9IGJhc2UuX2ZpbmRfY2xhc3NfZGVzY3JpcHRvcihuYW1lKQ0KICAgICAgICAg ICAgICAgICBpZiBwYXJlbnRfcmVzdWx0ICE9IE5vbmU6DQogICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gcGFyZW50X3Jlc3VsdA0KDQogICAgICAgICByZXR1cm4gTm9uZQ0KICAgICAgICAgZGVm IF9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToNCiAgICAgICAgICAgICAiIiJPbmx5IGFs bG93cyBzZXR0aW5nIGFuIGF0dHJpYnV0ZSBpZiBpdCdzIGFscmVhZHkgdGhlcmUgb3INCiBpZiBp dCdzIG9uZQ0KICAgICAgICAgICAgIG9mIHRoZSBzcGVjaWFsIFNRTEFsY2hlbXkgYXR0cmlidXRl cy4gVGhpcyBoZWxwcyBjYXRjaCBlcnJvcnMNCiBzdWNoDQogICAgICAgICAgICAgYXMgbWlzc2lu ZyByZWxhdGlvbnMgb3IgYmFja3JlZnMuDQogICAgICAgICAgICAgIiIiDQogICAgICAgICAgICAg IyBUaGlzIGhhbmRsZXMgdGhlIGNhc2Ugb2YgcHJvcGVydGllcyBkZWZpbmVkIHVzaW5nIFB5dGhv bidzDQogYnVpbHQtaW4NCiAgICAgICAgICAgICAjICJwcm9wZXJ0eSIgZmVhdHVyZSwgd2hlcmUg c2V0dGluZyB0aGUgYXR0cmlidXRlIGdvZXMgdGhyb3VnaA0KIGENCiAgICAgICAgICAgICAjIGZ1 bmN0aW9uLiBXZSBoYW5kbGUgcHJvcGVydGllcyBkZWZpbmVkIG9uIG91ciBjbGFzcyBvciBhbnkN CiBvZg0KICAgICAgICAgICAgICMgb3VyIHBhcmVudHMuDQogICAgICAgICAgICAgY2xhc3NfcHJv cGVydHkgPSBzZWxmLl9maW5kX2NsYXNzX2Rlc2NyaXB0b3IobmFtZSkNCiAgICAgICAgICAgICBp ZiBjbGFzc19wcm9wZXJ0eToNCiAgICAgICAgICAgICAgICAgY2xhc3NfcHJvcGVydHkuX19zZXRf XyhzZWxmLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAgIyBB bGxvdyBzZXR0aW5nIHByZS1leGlzdGluZyBhdHRyaWJ1dGVzLCB0aGUgc3BlY2lhbA0KIFNRTEFs Y2hlbXkNCiAgICAgICAgICAgICAjIHByb3BlcnRpZXMuDQogICAgICAgICAgICAgZXhpc3RzID0g aGFzYXR0cihzZWxmLCBuYW1lKQ0KICAgICAgICAgICAgIGlmIGV4aXN0cyBvciBuYW1lLmZpbmQo J19zYV8nKSAhPSAtMSBvcg0KIG5hbWUuc3RhcnRzd2l0aCgnX0Fzc29jaWF0aW9uUHJveHlfJykg XA0KICAgICAgICAgICAgICAgIG9yIG5hbWUgaW4gKCdfZW50aXR5X25hbWUnLCAnX2luc3RhbmNl X2tleScpOg0KICAgICAgICAgICAgICAgICBzZWxmLl9fZGljdF9fW25hbWVdID0gdmFsdWUNCiAg ICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvciwg J0ludmFsaWQgYXR0cmlidXRlIHJlZmVyZW5jZSBvbiAlczoNCiAlcycgJSAoc2VsZi5fX2NsYXNz X18uX19uYW1lX18sIG5hbWUpDQoNCi0tIA0KVGlja2V0IFVSTDogPGh0dHA6Ly93d3cuc3FsYWxj aGVteS5vcmcvdHJhYy90aWNrZXQvNTQ3Pg0Kc3FsYWxjaGVteSA8aHR0cDovL2V4YW1wbGUuY29t Lz4NCk15IGV4YW1wbGUgcHJvamVjdA== |