| 
									
										
										
										
											2021-01-03 14:32:32 +01:00
										 |  |  | from typing import NamedTuple, Union | 
					
						
							| 
									
										
										
										
											2021-01-21 23:37:58 +01:00
										 |  |  | import logging | 
					
						
							| 
									
										
										
										
											2021-01-03 14:32:32 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class PlandoItem(NamedTuple): | 
					
						
							|  |  |  |     item: str | 
					
						
							|  |  |  |     location: str | 
					
						
							|  |  |  |     world: Union[bool, str] = False  # False -> own world, True -> not own world | 
					
						
							|  |  |  |     from_pool: bool = True  # if item should be removed from item pool | 
					
						
							| 
									
										
										
										
											2021-01-21 23:37:58 +01:00
										 |  |  |     force: str = 'silent'  # false -> warns if item not successfully placed. true -> errors out on failure to place item. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def warn(self, warning: str): | 
					
						
							|  |  |  |         if self.force in ['true', 'fail', 'failure', 'none', 'false', 'warn', 'warning']: | 
					
						
							|  |  |  |             logging.warning(f'{warning}') | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             logging.debug(f'{warning}') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def failed(self, warning: str, exception=Exception): | 
					
						
							|  |  |  |         if self.force in ['true', 'fail', 'failure']: | 
					
						
							|  |  |  |             raise exception(warning) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             self.warn(warning) | 
					
						
							| 
									
										
										
										
											2021-01-03 14:32:32 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class PlandoConnection(NamedTuple): | 
					
						
							|  |  |  |     entrance: str | 
					
						
							|  |  |  |     exit: str | 
					
						
							|  |  |  |     direction: str  # entrance, exit or both | 
					
						
							| 
									
										
										
										
											2021-01-03 17:16:07 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class World(): | 
					
						
							|  |  |  |     pass |