Create a copy of this ``Column``, uninitialized. This is used in :meth:`_schema.Table.to_metadata` and by the ORM.
(self, **kw: Any)
| 2460 | return self._copy(**kw) |
| 2461 | |
| 2462 | def _copy(self, **kw: Any) -> Column[Any]: |
| 2463 | """Create a copy of this ``Column``, uninitialized. |
| 2464 | |
| 2465 | This is used in :meth:`_schema.Table.to_metadata` and by the ORM. |
| 2466 | |
| 2467 | """ |
| 2468 | |
| 2469 | # Constraint objects plus non-constraint-bound ForeignKey objects |
| 2470 | args: List[SchemaItem] = [ |
| 2471 | c._copy(**kw) for c in self.constraints if not c._type_bound |
| 2472 | ] + [c._copy(**kw) for c in self.foreign_keys if not c.constraint] |
| 2473 | |
| 2474 | # ticket #5276 |
| 2475 | column_kwargs = {} |
| 2476 | for dialect_name in self.dialect_options: |
| 2477 | dialect_options = self.dialect_options[dialect_name]._non_defaults |
| 2478 | for ( |
| 2479 | dialect_option_key, |
| 2480 | dialect_option_value, |
| 2481 | ) in dialect_options.items(): |
| 2482 | column_kwargs[dialect_name + "_" + dialect_option_key] = ( |
| 2483 | dialect_option_value |
| 2484 | ) |
| 2485 | |
| 2486 | default = self.default |
| 2487 | if default is not None: |
| 2488 | default = default._copy() |
| 2489 | onupdate = self.onupdate |
| 2490 | if onupdate is not None: |
| 2491 | onupdate = onupdate._copy() |
| 2492 | server_default = self.server_default |
| 2493 | server_onupdate = self.server_onupdate |
| 2494 | if isinstance(server_default, (Computed, Identity)): |
| 2495 | args.append(server_default._copy(**kw)) |
| 2496 | server_default = server_onupdate = None |
| 2497 | else: |
| 2498 | if server_default is not None: |
| 2499 | server_default = server_default._copy() |
| 2500 | if server_onupdate is not None: |
| 2501 | server_onupdate = server_onupdate._copy() |
| 2502 | |
| 2503 | type_ = self.type |
| 2504 | if isinstance(type_, SchemaEventTarget): |
| 2505 | type_ = type_.copy(**kw) |
| 2506 | |
| 2507 | c = self._constructor( |
| 2508 | name=self.name, |
| 2509 | type_=type_, |
| 2510 | key=self.key, |
| 2511 | primary_key=self.primary_key, |
| 2512 | unique=self.unique, |
| 2513 | system=self.system, |
| 2514 | # quote=self.quote, # disabled 2013-08-27 (commit 031ef080) |
| 2515 | index=self.index, |
| 2516 | autoincrement=self.autoincrement, |
| 2517 | default=default, |
| 2518 | server_default=server_default, |
| 2519 | onupdate=onupdate, |