Spaces:
Running
Running
| # Thunder/utils/config_parser.py | |
| import os | |
| from typing import Dict, Optional | |
| from Thunder.utils.logger import logger | |
| class TokenParser: | |
| def __init__(self, config_file: Optional[str] = None): | |
| self.tokens: Dict[int, str] = {} | |
| self.config_file = config_file | |
| def parse_from_env(self) -> Dict[int, str]: | |
| try: | |
| multi_tokens = { | |
| key: value.strip(" '\"") | |
| for key, value in os.environ.items() | |
| if key.startswith("MULTI_TOKEN") and value.strip(" '\"") | |
| } | |
| if not multi_tokens: | |
| return {} | |
| sorted_tokens = sorted( | |
| multi_tokens.items(), | |
| key=lambda item: int(''.join(filter(str.isdigit, item[0])) or 0) | |
| ) | |
| self.tokens = { | |
| index + 1: token | |
| for index, (_, token) in enumerate(sorted_tokens) | |
| } | |
| return self.tokens | |
| except Exception as e: | |
| logger.error(f"Error in parse_from_env: {e}", exc_info=True) | |
| return {} | |