MCPcopy
hub / github.com/ormar-orm/ormar / SqlJoin

Class SqlJoin

ormar/queryset/join.py:16–438  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14
15
16class SqlJoin:
17 def __init__( # noqa: CFQ002
18 self,
19 used_aliases: list,
20 select_from: sqlalchemy.sql.Select,
21 columns: list[sqlalchemy.Column],
22 excludable: "ExcludableItems",
23 order_columns: Optional[list["OrderAction"]],
24 sorted_orders: dict,
25 main_model: type["Model"],
26 relation_name: str,
27 relation_str: str,
28 related_models: Any = None,
29 own_alias: str = "",
30 source_model: Optional[type["Model"]] = None,
31 already_sorted: Optional[dict] = None,
32 ) -> None:
33 self.relation_name = relation_name
34 self.related_models = related_models or []
35 self.select_from = select_from
36 self.columns = columns
37 self.excludable = excludable
38
39 self.order_columns = order_columns
40 self.sorted_orders = sorted_orders
41 self.already_sorted = already_sorted or dict()
42
43 self.main_model = main_model
44 self.own_alias = own_alias
45 self.used_aliases = used_aliases
46 self.target_field = self.main_model.ormar_config.model_fields[
47 self.relation_name
48 ]
49
50 self._next_model: Optional[type["Model"]] = None
51 self._next_alias: Optional[str] = None
52
53 self.relation_str = relation_str
54 self.source_model = source_model
55
56 @property
57 def next_model(self) -> type["Model"]:
58 if not self._next_model: # pragma: nocover
59 raise RelationshipInstanceError(
60 "Cannot link to related table if relation.to model is not set."
61 )
62 return self._next_model
63
64 @next_model.setter
65 def next_model(self, value: type["Model"]) -> None:
66 self._next_model = value
67
68 @property
69 def next_alias(self) -> str:
70 if not self._next_alias: # pragma: nocover
71 raise RelationshipInstanceError("Alias for given relation not found.")
72 return self._next_alias
73

Callers 2

_process_deeper_joinMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected