[ticket:413]
- added an error message if you actually try to modify primary key values on an entity
and then flush it [ticket:412]
-
+- extensions
+ - added "validate=False" argument to assign_mapper, if True will insure that only mapped
+ attributes are named [ticket:426]
0.3.3
- string-based FROM clauses fixed, i.e. select(..., from_obj=["sometext"])
- fixes to passive_deletes flag, lazy=None (noload) flag
-from sqlalchemy import mapper, util, Query
+from sqlalchemy import mapper, util, Query, exceptions
import types
def monkeypatch_query_method(ctx, class_, name):
setattr(class_, name, do)
def assign_mapper(ctx, class_, *args, **kwargs):
+ validate = kwargs.pop('validate', False)
if not isinstance(getattr(class_, '__init__'), types.MethodType):
def __init__(self, **kwargs):
for key, value in kwargs.items():
+ if validate:
+ if not key in self.mapper.props:
+ raise exceptions.ArgumentError("Invalid __init__ argument: '%s'" % key)
setattr(self, key, value)
class_.__init__ = __init__
extension = kwargs.pop('extension', None)