From fe8bf1f891c71bab3cc18abbd12c349f3b762ffe Mon Sep 17 00:00:00 2001 From: Ckk3 Date: Sat, 23 Nov 2024 02:08:45 +0000 Subject: [PATCH] fix some mypy --- src/strawberry_sqlalchemy_mapper/loader.py | 8 ++++---- src/strawberry_sqlalchemy_mapper/mapper.py | 20 ++++++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/strawberry_sqlalchemy_mapper/loader.py b/src/strawberry_sqlalchemy_mapper/loader.py index f2ed0d5..64d684c 100644 --- a/src/strawberry_sqlalchemy_mapper/loader.py +++ b/src/strawberry_sqlalchemy_mapper/loader.py @@ -77,11 +77,11 @@ async def load_fn(keys: List[Tuple]) -> List[Any]: # Use another query when relationship uses a secondary table self_model = relationship.parent.entity - self_model_key_label = relationship.local_remote_pairs[0][1].key - related_model_key_label = relationship.local_remote_pairs[1][1].key + self_model_key_label = str(relationship.local_remote_pairs[0][1].key) + related_model_key_label = str(relationship.local_remote_pairs[1][1].key) - self_model_key = relationship.local_remote_pairs[0][0].key - related_model_key = relationship.local_remote_pairs[1][0].key + self_model_key = str(relationship.local_remote_pairs[0][0].key) + related_model_key = str(relationship.local_remote_pairs[1][0].key) remote_to_use = relationship.local_remote_pairs[0][1] query_keys = tuple([item[0] for item in keys]) diff --git a/src/strawberry_sqlalchemy_mapper/mapper.py b/src/strawberry_sqlalchemy_mapper/mapper.py index 542cff4..d734396 100644 --- a/src/strawberry_sqlalchemy_mapper/mapper.py +++ b/src/strawberry_sqlalchemy_mapper/mapper.py @@ -517,14 +517,18 @@ async def resolve(self, info: Info): ) else: # If has a secondary table, gets only the first ID as additional IDs require a separate query - local_remote_pairs_secondary_table_local = relationship.local_remote_pairs[ - 0][0] - relationship_key = tuple( - [ - getattr( - self, str(local_remote_pairs_secondary_table_local.key)), - ] - ) + relationship_key = () + if relationship.local_remote_pairs: + local_remote_pairs_secondary_table_local = relationship.local_remote_pairs[0][0] + relationship_key = tuple( + [ + getattr( + self, str(local_remote_pairs_secondary_table_local.key)), + ] + ) + return relationship_key + + if any(item is None for item in relationship_key): if relationship.uselist: