return False return True def sa_create(class_, **kw): try: obj = class_(**kw) except TypeError: obj = class_() sa_update(obj, **kw) # update takes care of save/flush return obj sa_create = create.when(class_test)(sa_create) def sa_retrieve(class_, **kw): return session.query(class_).filter_by(**kw).all() sa_retrieve = retrieve.when(class_test)(sa_retrieve) def sa_retrieve_one(class_, **kw): query = session.query(class_).filter_by(**kw) count = query.count() if count == 0: return None elif count == 1: return query[0] else: raise LookupError, 'Received %d results.' % count sa_retreive_one = retrieve_one.when(class_test)(sa_retrieve_one) def sa_update(obj, **kw): [setattr(obj, key, value) for key, value in kw.iteritems()] push_to_db(obj)
# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from api import create, retrieve, retrieve_one, update, delete, count import sqlobject as so def so_create(class_, **kw): return class_(**kw) so_create = create.when('issubclass(class_, so.SQLObject)')(so_create) def so_retrieve(class_, **kw): return list(select_from_kw(class_, **kw)) so_retrieve = retrieve.when('issubclass(class_, so.SQLObject)') \ (so_retrieve) def so_retrieve_one(class_, **kw): results = so_retrieve(class_, **kw) count = len(results) if count == 0: return None elif count == 1: return results[0] else: raise LookupError, 'Received %d results.' % count so_retrieve_one = retrieve_one.when( 'issubclass(class_, so.SQLObject)')(so_retrieve_one) def so_update(obj, **kw): obj.set(**kw)