"_creation_order",
"foreign_keys",
"_has_nullable",
+ "_has_insert_default",
"deferred",
+ "deferred_group",
+ "deferred_raiseload",
"_attribute_options",
"_has_dataclass_arguments",
)
):
self._has_dataclass_arguments = True
- kw["default"] = kw.pop("insert_default", None)
+ insert_default = kw.pop("insert_default", _NoArg.NO_ARG)
+ self._has_insert_default = insert_default is not _NoArg.NO_ARG
+
+ if self._has_insert_default:
+ kw["default"] = insert_default
+ elif attr_opts.dataclasses_default is not _NoArg.NO_ARG:
+ kw["default"] = attr_opts.dataclasses_default
- self.deferred = kw.pop("deferred", False)
+ self.deferred_group = kw.pop("deferred_group", None)
+ self.deferred_raiseload = kw.pop("deferred_raiseload", None)
+ self.deferred = kw.pop("deferred", _NoArg.NO_ARG)
+ if self.deferred is _NoArg.NO_ARG:
+ self.deferred = bool(
+ self.deferred_group or self.deferred_raiseload
+ )
+
self.column = cast("Column[_T]", Column(*arg, **kw))
self.foreign_keys = self.column.foreign_keys
self._has_nullable = "nullable" in kw and kw.get("nullable") not in (