primaryjoin/secondaryjoin are ClauseElement
instances, to prevent more confusing errors later
on.
+
+ - Improved mapper() check for non-class classes.
+ [ticket:1236]
- comparator_factory argument is now documented
and supported by all MapperProperty types,
function. See for details.
"""
- self.class_ = class_
+
+ self.class_ = util.assert_arg_type(class_, type, 'class_')
+
self.class_manager = None
self.primary_key_argument = primary_key
self._requires_row_aliasing = False
self._inherits_equated_pairs = None
- if not issubclass(class_, object):
- raise sa_exc.ArgumentError("Class '%s' is not a new-style class" % class_.__name__)
self.select_table = select_table
if select_table:
self.assertRaises(sa.exc.ArgumentError, mapper, OldStyle, ht1)
+ self.assertRaises(sa.exc.ArgumentError, mapper, 123)
+
class NoWeakrefSupport(str):
pass
('__gt__', 'noncomparable', lambda s, o: object.__gt__(s, o)),
('__nonzero__', 'truthless', lambda s: 1), ]
- if type_.__bases__ == (object,):
+ if isinstance(type_, type) and type_.__bases__ == (object,):
for method_name, option, fallback in forbidden:
if (getattr(config.options, option, False) and
method_name not in type_.__dict__):