MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / __init__

Method __init__

lib/sqlalchemy/orm/strategies.py:2998–3030  ·  view source on GitHub ↗
(self, parent, strategy_key)

Source from the content-addressed store, hash-verified

2996 return user_input
2997
2998 def __init__(self, parent, strategy_key):
2999 super().__init__(parent, strategy_key)
3000 self.join_depth = self.parent_property.join_depth
3001 is_m2o = self.parent_property.direction is interfaces.MANYTOONE
3002 is_m2m = self.parent_property.direction is interfaces.MANYTOMANY
3003
3004 if self.parent_property.omit_join is not None:
3005 self.omit_join = self.parent_property.omit_join
3006 else:
3007 lazyloader = self.parent_property._get_strategy(
3008 (("lazy", "select"),)
3009 )
3010 if is_m2o:
3011 self.omit_join = lazyloader.use_get
3012 elif is_m2m and not self.parent_property._is_self_referential:
3013 join_cond = self.parent_property._join_condition
3014 self.omit_join = join_cond.secondary_covers_parent_primary_key
3015 else:
3016 self.omit_join = self.parent._get_clause[0].compare(
3017 lazyloader._rev_lazywhere,
3018 use_proxies=True,
3019 compare_keys=False,
3020 equivalents=self.parent._equivalent_columns,
3021 )
3022
3023 if self.omit_join:
3024 if is_m2o:
3025 self._query_info = self._init_for_omit_join_m2o()
3026 self._fallback_query_info = self._init_for_join()
3027 else:
3028 self._query_info = self._init_for_omit_join()
3029 else:
3030 self._query_info = self._init_for_join()
3031
3032 def _init_for_omit_join(self):
3033 pk_to_fk = dict(

Callers

nothing calls this directly

Calls 6

_init_for_joinMethod · 0.95
_init_for_omit_joinMethod · 0.95
_get_strategyMethod · 0.80
__init__Method · 0.45
compareMethod · 0.45

Tested by

no test coverage detected