File size: 1,026 Bytes
3eae4cc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import codecs

with codecs.open('old_simulator.py', 'r', encoding='utf-16') as f:
    content = f.read()

# Make sure we import from app.engine
imports = 'from app.engine import DayResult, DaySimulator\n'
if imports not in content:
    idx = content.find('from app.models')
    if idx != -1:
        end_idx = content.find('\n', idx)
        content = content[:end_idx+1] + imports + content[end_idx+1:]

# Make sure SimulationAgentMode is an Enum
enum_def = '''from enum import Enum
SimulationAgentMode = Literal["baseline_policy", "llm_inference", "trained_rl"]

class SimulationAgentModeEnum(str, Enum):
    baseline_policy = "baseline_policy"
    llm_inference = "llm_inference"
    trained_rl = "trained_rl"

SimulationAgentMode = SimulationAgentModeEnum
'''
if 'class SimulationAgentModeEnum' not in content:
    content = content.replace('SimulationAgentMode = Literal["baseline_policy", "llm_inference", "trained_rl"]', enum_def)

with codecs.open('app/simulator.py', 'w', encoding='utf-8') as f:
    f.write(content)