diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-10-09 17:11:56 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-10-09 17:11:56 -0400 |
| commit | 78a7bbdb3b0906a35528bdc829a08f0644d6fd7b (patch) | |
| tree | afedd0ac2a8efec267ff280c54c5a233e153d559 /lib | |
| parent | a47e863dc5638977e2c9f58b3c17cf43156cdb0e (diff) | |
| parent | 2e5e6ff96cc92f342bc53242703991f915741966 (diff) | |
| download | sqlalchemy-78a7bbdb3b0906a35528bdc829a08f0644d6fd7b.tar.gz | |
Merge remote-tracking branch 'origin/pr/203'
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/ext/baked.py | 15 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/query.py | 15 |
2 files changed, 14 insertions, 16 deletions
diff --git a/lib/sqlalchemy/ext/baked.py b/lib/sqlalchemy/ext/baked.py index d8c8843f6..ee9f6f9bb 100644 --- a/lib/sqlalchemy/ext/baked.py +++ b/lib/sqlalchemy/ext/baked.py @@ -272,16 +272,15 @@ class Result(object): Equivalent to :meth:`.Query.one`. """ - ret = list(self) - - l = len(ret) - if l == 1: - return ret[0] - elif l == 0: - raise orm_exc.NoResultFound("No row was found for one()") - else: + try: + ret = self.one_or_none() + except orm_exc.MultipleResultsFound: raise orm_exc.MultipleResultsFound( "Multiple rows were found for one()") + else: + if ret is None: + raise orm_exc.NoResultFound("No row was found for one()") + return ret def one_or_none(self): """Return one or zero results, or raise an exception for multiple diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index 43cb198ea..dc36f2f35 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -2548,16 +2548,15 @@ class Query(object): :meth:`.Query.one_or_none` """ - ret = list(self) - - l = len(ret) - if l == 1: - return ret[0] - elif l == 0: - raise orm_exc.NoResultFound("No row was found for one()") - else: + try: + ret = self.one_or_none() + except orm_exc.MultipleResultsFound: raise orm_exc.MultipleResultsFound( "Multiple rows were found for one()") + else: + if ret is None: + raise orm_exc.NoResultFound("No row was found for one()") + return ret def scalar(self): """Return the first element of the first result or None |
