Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/sqlalchemy_utils/relationships/chained_join.py: 8%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

12 statements  

1def chained_join(*relationships): 

2 """ 

3 Return a chained Join object for given relationships. 

4 """ 

5 property_ = relationships[0].property 

6 

7 if property_.secondary is not None: 

8 from_ = property_.secondary.join( 

9 property_.mapper.class_.__table__, property_.secondaryjoin 

10 ) 

11 else: 

12 from_ = property_.mapper.class_.__table__ 

13 for relationship in relationships[1:]: 

14 prop = relationship.property 

15 if prop.secondary is not None: 

16 from_ = from_.join(prop.secondary, prop.primaryjoin) 

17 

18 from_ = from_.join(prop.mapper.class_, prop.secondaryjoin) 

19 else: 

20 from_ = from_.join(prop.mapper.class_, prop.primaryjoin) 

21 return from_