-
Notifications
You must be signed in to change notification settings - Fork 6
/
model.py
40 lines (33 loc) · 1016 Bytes
/
model.py
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
38
39
40
import random
from datetime import datetime
from typing import List
def get_simulation_id(run_id, run_date=None):
run_date = run_date if run_date else datetime.today().strftime("%Y-%m-%d.%H%M%S.%f")
if not run_id:
run_id = random.randint(1000000, 9999999)
return f"{run_date}__{run_id:0>7}"
class SimulationCase:
def __init__(
self,
problem_name: str,
algorithm_name: str,
run_id: int,
renice: str,
results_dir: str,
id=None,
**params
):
self.problem_name = problem_name
self.algorithm_name = algorithm_name
self.run_id = run_id
self.renice = renice
self.results_dir = results_dir
self.id = id if id else get_simulation_id(run_id)
self.params = params
@property
def config(self):
return self.problem_name, self.algorithm_name
def __repr__(self):
return str(self)
def __str__(self):
return "Simulation:" + str(vars(self))