more coherent base types
This commit is contained in:
		@@ -1,6 +1,5 @@
 | 
				
			|||||||
from typing import Optional
 | 
					from typing import Optional, Literal
 | 
				
			||||||
from pydantic import BaseModel, Field
 | 
					from pydantic import BaseModel, Field
 | 
				
			||||||
from .landmarktype import LandmarkType
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
from uuid import uuid4
 | 
					from uuid import uuid4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -9,7 +8,7 @@ class Landmark(BaseModel) :
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    # Properties of the landmark
 | 
					    # Properties of the landmark
 | 
				
			||||||
    name : str
 | 
					    name : str
 | 
				
			||||||
    type: LandmarkType      # De facto mapping depending on how the query was executed with overpass. Should still EXACTLY correspond to the preferences
 | 
					    type: Literal['sightseeing', 'nature', 'shopping']
 | 
				
			||||||
    location : tuple
 | 
					    location : tuple
 | 
				
			||||||
    osm_type : str
 | 
					    osm_type : str
 | 
				
			||||||
    osm_id : int
 | 
					    osm_id : int
 | 
				
			||||||
@@ -24,6 +23,7 @@ class Landmark(BaseModel) :
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    # Additional properties depending on specific tour
 | 
					    # Additional properties depending on specific tour
 | 
				
			||||||
    must_do : bool
 | 
					    must_do : bool
 | 
				
			||||||
 | 
					    must_avoid : bool
 | 
				
			||||||
    is_secondary : Optional[bool] = False                       # TODO future   
 | 
					    is_secondary : Optional[bool] = False                       # TODO future   
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    time_to_reach_next : Optional[int] = 0                      # TODO fix this in existing code
 | 
					    time_to_reach_next : Optional[int] = 0                      # TODO fix this in existing code
 | 
				
			||||||
@@ -31,3 +31,7 @@ class Landmark(BaseModel) :
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def __hash__(self) -> int:
 | 
					    def __hash__(self) -> int:
 | 
				
			||||||
        return self.uuid.int
 | 
					        return self.uuid.int
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def __str__(self) -> str:
 | 
				
			||||||
 | 
					        return f'Landmark: [{self.name}, {self.location}, {self.attractiveness}]'
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +0,0 @@
 | 
				
			|||||||
from pydantic import BaseModel
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class LandmarkType(BaseModel):
 | 
					 | 
				
			||||||
    landmark_type: str
 | 
					 | 
				
			||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
from pydantic import BaseModel
 | 
					from pydantic import BaseModel
 | 
				
			||||||
from .landmarktype import LandmarkType
 | 
					from typing import Optional, Literal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Preference(BaseModel) :
 | 
					class Preference(BaseModel) :
 | 
				
			||||||
    name: str
 | 
					    name: str
 | 
				
			||||||
    type: LandmarkType  # should match the attributes of the Preferences class
 | 
					    type: Literal['sightseeing', 'nature', 'shopping']
 | 
				
			||||||
    score: int          # score could be from 1 to 5
 | 
					    score: int          # score could be from 1 to 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Input for optimization
 | 
					# Input for optimization
 | 
				
			||||||
@@ -17,12 +17,5 @@ class Preferences(BaseModel) :
 | 
				
			|||||||
    # Shopping (diriger plutôt vers des zones / rues commerçantes)
 | 
					    # Shopping (diriger plutôt vers des zones / rues commerçantes)
 | 
				
			||||||
    shopping : Preference
 | 
					    shopping : Preference
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""    # Food (price low or high. Combien on veut dépenser pour manger à midi/soir)
 | 
					    max_time_minute: Optional[int] = 6*60 
 | 
				
			||||||
    food_budget : Preference
 | 
					    detour_tolerance_minute: Optional[int] = 0
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    # Tolérance au détour (ce qui détermine (+ ou -) le chemin emprunté)
 | 
					 | 
				
			||||||
    detour_tol : Preference"""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user