(
self,
parent_persist_selectable: FromClause,
child_persist_selectable: FromClause,
parent_local_selectable: FromClause,
child_local_selectable: FromClause,
*,
primaryjoin: Optional[ColumnElement[bool]] = None,
secondary: Optional[FromClause] = None,
secondaryjoin: Optional[ColumnElement[bool]] = None,
parent_equivalents: Optional[_EquivalentColumnMap] = None,
child_equivalents: Optional[_EquivalentColumnMap] = None,
consider_as_foreign_keys: Any = None,
local_remote_pairs: Optional[_ColumnPairs] = None,
remote_side: Any = None,
self_referential: Any = False,
prop: RelationshipProperty[Any],
support_sync: bool = True,
can_be_synced_fn: Callable[..., bool] = lambda *c: True,
)
| 2364 | _local_remote_pairs: Optional[_ColumnPairs] |
| 2365 | |
| 2366 | def __init__( |
| 2367 | self, |
| 2368 | parent_persist_selectable: FromClause, |
| 2369 | child_persist_selectable: FromClause, |
| 2370 | parent_local_selectable: FromClause, |
| 2371 | child_local_selectable: FromClause, |
| 2372 | *, |
| 2373 | primaryjoin: Optional[ColumnElement[bool]] = None, |
| 2374 | secondary: Optional[FromClause] = None, |
| 2375 | secondaryjoin: Optional[ColumnElement[bool]] = None, |
| 2376 | parent_equivalents: Optional[_EquivalentColumnMap] = None, |
| 2377 | child_equivalents: Optional[_EquivalentColumnMap] = None, |
| 2378 | consider_as_foreign_keys: Any = None, |
| 2379 | local_remote_pairs: Optional[_ColumnPairs] = None, |
| 2380 | remote_side: Any = None, |
| 2381 | self_referential: Any = False, |
| 2382 | prop: RelationshipProperty[Any], |
| 2383 | support_sync: bool = True, |
| 2384 | can_be_synced_fn: Callable[..., bool] = lambda *c: True, |
| 2385 | ): |
| 2386 | self.parent_persist_selectable = parent_persist_selectable |
| 2387 | self.parent_local_selectable = parent_local_selectable |
| 2388 | self.child_persist_selectable = child_persist_selectable |
| 2389 | self.child_local_selectable = child_local_selectable |
| 2390 | self.parent_equivalents = parent_equivalents |
| 2391 | self.child_equivalents = child_equivalents |
| 2392 | self.primaryjoin_initial = primaryjoin |
| 2393 | self.secondaryjoin = secondaryjoin |
| 2394 | self.secondary = secondary |
| 2395 | self.consider_as_foreign_keys = consider_as_foreign_keys |
| 2396 | self._local_remote_pairs = local_remote_pairs |
| 2397 | self._remote_side = remote_side |
| 2398 | self.prop = prop |
| 2399 | self.self_referential = self_referential |
| 2400 | self.support_sync = support_sync |
| 2401 | self.can_be_synced_fn = can_be_synced_fn |
| 2402 | |
| 2403 | self._determine_joins() |
| 2404 | assert self.primaryjoin is not None |
| 2405 | |
| 2406 | self._annotate_fks() |
| 2407 | self._annotate_remote() |
| 2408 | self._annotate_local() |
| 2409 | self._annotate_parentmapper() |
| 2410 | self._setup_pairs() |
| 2411 | self._check_foreign_cols(self.primaryjoin, True) |
| 2412 | if self.secondaryjoin is not None: |
| 2413 | self._check_foreign_cols(self.secondaryjoin, False) |
| 2414 | self._determine_direction() |
| 2415 | self._check_remote_side() |
| 2416 | self._log_joins() |
| 2417 | |
| 2418 | def _log_joins(self) -> None: |
| 2419 | log = self.prop.logger |
no test coverage detected