diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-01-27 20:59:33 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-01-27 20:59:33 -0500 |
commit | d706a661709a2c963f8adde53959c5fc42f26d58 (patch) | |
tree | 3c05f02749a8741e6b5b4b01af840b5230473ef0 /lib/sqlalchemy/ext/hybrid.py | |
parent | 81d5c82be665f867482e313affcda784bb42902b (diff) | |
download | sqlalchemy-d706a661709a2c963f8adde53959c5fc42f26d58.tar.gz |
- [bug] implemented standard "can't set attribute" /
"can't delete attribute" AttributeError when
setattr/delattr used on a hybrid that doesn't
define fset or fdel. [ticket:2353]
Diffstat (limited to 'lib/sqlalchemy/ext/hybrid.py')
-rw-r--r-- | lib/sqlalchemy/ext/hybrid.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/sqlalchemy/ext/hybrid.py b/lib/sqlalchemy/ext/hybrid.py index fc09c172d..086ec9033 100644 --- a/lib/sqlalchemy/ext/hybrid.py +++ b/lib/sqlalchemy/ext/hybrid.py @@ -613,9 +613,13 @@ class hybrid_property(object): return self.fget(instance) def __set__(self, instance, value): + if self.fset is None: + raise AttributeError("can't set attribute") self.fset(instance, value) def __delete__(self, instance): + if self.fdel is None: + raise AttributeError("can't delete attribute") self.fdel(instance) def setter(self, fset): |