File size: 1,163 Bytes
1a1e2eb
 
 
 
3a67739
1a1e2eb
 
 
 
 
 
 
3a67739
 
ffda32c
d3ac0b2
ffda32c
3a67739
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1a1e2eb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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 {}