forked from JOJ/Joint-Teapot
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			812 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			812 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from functools import lru_cache
 | |
| 
 | |
| from pydantic import BaseSettings
 | |
| 
 | |
| 
 | |
| class Settings(BaseSettings):
 | |
|     """
 | |
|     Define the settings (config).
 | |
| 
 | |
|     The selected value is determined as follows (in descending order of priority):
 | |
|     1. The command line arguments, e.g., '--db-host' is mapped to 'db-host'
 | |
|     2. Environment variables, e.g., '$DB_HOST' is mapped to 'db-host'
 | |
|     3. Variables loaded from a dotenv (.env) file
 | |
|     4. The default field values for the Settings model
 | |
|     """
 | |
| 
 | |
|     # canvas
 | |
|     canvas_access_token: str = ""
 | |
|     course_id: int = 0
 | |
| 
 | |
|     # gitea
 | |
|     gitea_access_token: str = ""
 | |
|     org_name: str = ""
 | |
| 
 | |
|     class Config:
 | |
|         env_file = ".env"
 | |
|         env_file_encoding = "utf-8"
 | |
| 
 | |
| 
 | |
| @lru_cache()
 | |
| def get_settings() -> Settings:
 | |
|     return Settings()
 | |
| 
 | |
| 
 | |
| settings: Settings = get_settings()
 |