mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	Drop pytomlpp dependency for Python >= 3.11
Rely on tomllib for Python >= 3.11
This commit is contained in:
		
							parent
							
								
									dbed8da284
								
							
						
					
					
						commit
						ac430a9eaf
					
				
					 2 changed files with 34 additions and 9 deletions
				
			
		|  | @ -15,4 +15,4 @@ setproctitle==1.3.3 | |||
| redis==5.0.4 | ||||
| markdown-it-py==3.0.0 | ||||
| fasttext-predict==0.9.2.2 | ||||
| pytomlpp==1.0.13 | ||||
| pytomlpp==1.0.13; python_version < '3.11' | ||||
|  |  | |||
|  | @ -13,7 +13,18 @@ import copy | |||
| import typing | ||||
| import logging | ||||
| import pathlib | ||||
| import pytomlpp as toml | ||||
| 
 | ||||
| try: | ||||
|     import tomllib | ||||
| 
 | ||||
|     pytomlpp = None | ||||
|     USE_TOMLLIB = True | ||||
| except ImportError: | ||||
|     import pytomlpp | ||||
| 
 | ||||
|     tomllib = None | ||||
|     USE_TOMLLIB = False | ||||
| 
 | ||||
| 
 | ||||
| __all__ = ['Config', 'UNSET', 'SchemaIssue'] | ||||
| 
 | ||||
|  | @ -61,7 +72,7 @@ class Config: | |||
|         # init schema | ||||
| 
 | ||||
|         log.debug("load schema file: %s", schema_file) | ||||
|         cfg = cls(cfg_schema=toml.load(schema_file), deprecated=deprecated) | ||||
|         cfg = cls(cfg_schema=toml_load(schema_file), deprecated=deprecated) | ||||
|         if not cfg_file.exists(): | ||||
|             log.warning("missing config file: %s", cfg_file) | ||||
|             return cfg | ||||
|  | @ -69,12 +80,7 @@ class Config: | |||
|         # load configuration | ||||
| 
 | ||||
|         log.debug("load config file: %s", cfg_file) | ||||
|         try: | ||||
|             upd_cfg = toml.load(cfg_file) | ||||
|         except toml.DecodeError as exc: | ||||
|             msg = str(exc).replace('\t', '').replace('\n', ' ') | ||||
|             log.error("%s: %s", cfg_file, msg) | ||||
|             raise | ||||
|         upd_cfg = toml_load(cfg_file) | ||||
| 
 | ||||
|         is_valid, issue_list = cfg.validate(upd_cfg) | ||||
|         for msg in issue_list: | ||||
|  | @ -176,6 +182,25 @@ class Config: | |||
|         return getattr(m, name) | ||||
| 
 | ||||
| 
 | ||||
| def toml_load(file_name): | ||||
|     if USE_TOMLLIB: | ||||
|         # Python >= 3.11 | ||||
|         try: | ||||
|             with open(file_name, "rb") as f: | ||||
|                 return tomllib.load(f) | ||||
|         except tomllib.TOMLDecodeError as exc: | ||||
|             msg = str(exc).replace('\t', '').replace('\n', ' ') | ||||
|             log.error("%s: %s", file_name, msg) | ||||
|             raise | ||||
|     # fallback to pytomlpp for Python < 3.11 | ||||
|     try: | ||||
|         return pytomlpp.load(file_name) | ||||
|     except pytomlpp.DecodeError as exc: | ||||
|         msg = str(exc).replace('\t', '').replace('\n', ' ') | ||||
|         log.error("%s: %s", file_name, msg) | ||||
|         raise | ||||
| 
 | ||||
| 
 | ||||
| # working with dictionaries | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Alexandre Flament
						Alexandre Flament