first pylint correction
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Build and deploy the backend to staging / Build and push image (pull_request) Successful in 2m26s
				
			
		
			
				
	
				Run linting on the backend code / Build (pull_request) Failing after 30s
				
			
		
			
				
	
				Run testing on the backend code / Build (pull_request) Successful in 2m12s
				
			
		
			
				
	
				Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 15s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Build and deploy the backend to staging / Build and push image (pull_request) Successful in 2m26s
				
			Run linting on the backend code / Build (pull_request) Failing after 30s
				
			Run testing on the backend code / Build (pull_request) Successful in 2m12s
				
			Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 15s
				
			This commit is contained in:
		@@ -1,10 +1,15 @@
 | 
			
		||||
"""Linked and ordered list of Landmarks that represents the visiting order."""
 | 
			
		||||
 | 
			
		||||
from .landmark import Landmark
 | 
			
		||||
from ..utils.get_time_separation import get_time
 | 
			
		||||
 | 
			
		||||
class LinkedLandmarks:
 | 
			
		||||
    """
 | 
			
		||||
    A list of landmarks that are linked together, e.g. in a route.
 | 
			
		||||
    Each landmark serves as a node in the linked list, but since we expect these to be consumed through the rest API, a pythonic reference to the next landmark is not well suited. Instead we use the uuid of the next landmark to reference the next landmark in the list. This is not very efficient, but appropriate for the expected use case ("short" trips with onyl few landmarks).
 | 
			
		||||
    Each landmark serves as a node in the linked list, but since we expect these to be consumed through the rest API,
 | 
			
		||||
    a pythonic reference to the next landmark is not well suited. Instead we use the uuid of the next landmark
 | 
			
		||||
    to reference the next landmark in the list. This is not very efficient, but appropriate for the expected use case
 | 
			
		||||
    ("short" trips with onyl few landmarks).
 | 
			
		||||
    """
 | 
			
		||||
    
 | 
			
		||||
    _landmarks = list[Landmark]
 | 
			
		||||
@@ -12,8 +17,9 @@ class LinkedLandmarks:
 | 
			
		||||
 | 
			
		||||
    def __init__(self, data: list[Landmark] = None) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        Initialize a new LinkedLandmarks object. This expects an ORDERED list of landmarks, where the first landmark is the starting point and the last landmark is the end point.
 | 
			
		||||
        
 | 
			
		||||
        Initialize a new LinkedLandmarks object. This expects an ORDERED list of landmarks,
 | 
			
		||||
        where the first landmark is the starting point and the last landmark is the end point.
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            data (list[Landmark], optional): The list of landmarks that are linked together. Defaults to None.
 | 
			
		||||
        """
 | 
			
		||||
@@ -41,16 +47,19 @@ class LinkedLandmarks:
 | 
			
		||||
        self._landmarks[-1].time_to_reach_next = 0
 | 
			
		||||
 | 
			
		||||
    def update_secondary_landmarks(self) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        Mark landmarks with lower importance as secondary.
 | 
			
		||||
        """
 | 
			
		||||
        # Extract the attractiveness scores and sort them in descending order
 | 
			
		||||
        scores = sorted([landmark.attractiveness for landmark in self._landmarks], reverse=True)
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        # Determine the 10th highest score
 | 
			
		||||
        if len(scores) >= 10:
 | 
			
		||||
            threshold_score = scores[9]
 | 
			
		||||
        else:
 | 
			
		||||
            # If there are fewer than 10 landmarks, use the lowest score in the list as the threshold
 | 
			
		||||
            threshold_score = min(scores) if scores else 0
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        # Update 'is_secondary' for landmarks with attractiveness below the threshold score
 | 
			
		||||
        for landmark in self._landmarks:
 | 
			
		||||
            if landmark.attractiveness < threshold_score and landmark.type not in ["start", "finish"]:
 | 
			
		||||
@@ -59,7 +68,7 @@ class LinkedLandmarks:
 | 
			
		||||
 | 
			
		||||
    def __getitem__(self, index: int) -> Landmark:
 | 
			
		||||
        return self._landmarks[index]
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def __str__(self) -> str:
 | 
			
		||||
        return f"LinkedLandmarks [{' ->'.join([str(landmark) for landmark in self._landmarks])}]"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user