-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproject_paths.py
More file actions
75 lines (61 loc) · 4.11 KB
/
Copy pathproject_paths.py
File metadata and controls
75 lines (61 loc) · 4.11 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os
from pathlib import Path
PROJECT_ROOT = Path(__file__).resolve().parent
ENV_FILE = PROJECT_ROOT / ".env"
def _load_env_file(env_path: Path) -> None:
if not env_path.exists():
return
for raw_line in env_path.read_text(encoding="utf-8").splitlines():
line = raw_line.strip()
if not line or line.startswith("#") or "=" not in line:
continue
key, value = line.split("=", 1)
os.environ.setdefault(key.strip(), value.strip().strip('"').strip("'"))
def _path_from_env(env_name: str, default: Path, create: bool = True) -> str:
raw_value = os.environ.get(env_name)
resolved = Path(raw_value).expanduser() if raw_value else default
resolved = resolved.resolve()
if create:
resolved.mkdir(parents=True, exist_ok=True)
return os.fspath(resolved)
_load_env_file(ENV_FILE)
DATA_ROOT = _path_from_env("MLMCBOT_DATA_ROOT", PROJECT_ROOT / "data")
MINEFLAYER_DATA_DIR = _path_from_env("MLMCBOT_MINEFLAYER_DATA_DIR", Path(DATA_ROOT) / "mineflayer")
DETECTION_POVS_DIR = _path_from_env("MLMCBOT_DETECTION_POVS_DIR", Path(MINEFLAYER_DATA_DIR) / "Detection_Povs")
DETECTION_POVS_TEST_DIR = _path_from_env("MLMCBOT_DETECTION_POVS_TEST_DIR", Path(MINEFLAYER_DATA_DIR) / "Detection_Povs_Test")
CAPTURES_DIR = _path_from_env("MLMCBOT_CAPTURES_DIR", Path(DATA_ROOT) / "captures")
PICTURES_DIR = _path_from_env("MLMCBOT_PICTURES_DIR", Path(DATA_ROOT) / "pictures")
MODELS_DIR = _path_from_env("MLMCBOT_MODELS_DIR", PROJECT_ROOT / "models")
BOW_RL_DIR = _path_from_env("MLMCBOT_BOW_RL_DIR", Path(MODELS_DIR) / "bow_rl")
DISCRETE_ARCHER_RL_DIR = _path_from_env("MLMCBOT_DISCRETE_ARCHER_RL_DIR", Path(MODELS_DIR) / "discrete_archer_rl")
NEURAL_NET_DIR = _path_from_env("MLMCBOT_NEURAL_NET_DIR", Path(MODELS_DIR) / "neural_net")
YOLO_DATASET_DIR = _path_from_env("MLMCBOT_YOLO_DATASET_DIR", Path(DATA_ROOT) / "yolov8_dataset")
YOLO_IMAGES_TRAIN_DIR = _path_from_env("MLMCBOT_YOLO_IMAGES_TRAIN_DIR", Path(YOLO_DATASET_DIR) / "images" / "train")
YOLO_IMAGES_VAL_DIR = _path_from_env("MLMCBOT_YOLO_IMAGES_VAL_DIR", Path(YOLO_DATASET_DIR) / "images" / "val")
YOLO_LABELS_TRAIN_DIR = _path_from_env("MLMCBOT_YOLO_LABELS_TRAIN_DIR", Path(YOLO_DATASET_DIR) / "labels" / "train")
YOLO_LABELS_VAL_DIR = _path_from_env("MLMCBOT_YOLO_LABELS_VAL_DIR", Path(YOLO_DATASET_DIR) / "labels" / "val")
YOLO_JSON_DIR = _path_from_env("MLMCBOT_YOLO_JSON_DIR", Path(YOLO_DATASET_DIR) / "unprepared_jsons")
CORRELATION_DATA_FILEPATH = os.path.join(MINEFLAYER_DATA_DIR, "correlation-data.txt")
GRAV_DATA_FILEPATH = os.path.join(MINEFLAYER_DATA_DIR, "gravity-data.txt")
DETECTION_DATA_FILEPATH = os.path.join(MINEFLAYER_DATA_DIR, "detection_data.txt")
DETECTION_TEST_DATA_FILEPATH = os.path.join(MINEFLAYER_DATA_DIR, "detection_data_test.txt")
BOW_SHOT_DATA_FILEPATH = os.path.join(MINEFLAYER_DATA_DIR, "bow_shot_data.csv")
VIDEO_OUTPUT_PATH = os.path.join(CAPTURES_DIR, "video.avi")
IMAGE_OUTPUT_PATH = os.path.join(PICTURES_DIR, "p.png")
DETECTION_POV_OUTPUT_PATH = os.path.join(DETECTION_POVS_DIR, "f.png")
DETECTION_POV_TEST_OUTPUT_PATH = os.path.join(DETECTION_POVS_TEST_DIR, "f.png")
PLAYER_TRAIN_IMAGE_PATH = os.path.join(YOLO_IMAGES_TRAIN_DIR, "p.png")
YOLO_DATA_YAML_PATH = os.path.join(YOLO_DATASET_DIR, "data.yaml")
YOLOV8_MODEL_PATH = os.path.join(BOW_RL_DIR, "yolov8_mc_player_model.pt")
RL_REWARDS_PATH = os.path.join(BOW_RL_DIR, "bow_rewards.csv")
DDPG_RECORD_PATH = os.path.join(BOW_RL_DIR, "ddpg_rl_records")
POLICY_NET_PATH = os.path.join(BOW_RL_DIR, "policy_net.pth")
TARGET_NET_PATH = os.path.join(BOW_RL_DIR, "target_net.pth")
MEMORY_SAVE_PATH = os.path.join(BOW_RL_DIR, "memory.pth")
DISCRETE_POLICY_NET_PATH = os.path.join(DISCRETE_ARCHER_RL_DIR, "policy_net.pth")
DISCRETE_TARGET_NET_PATH = os.path.join(DISCRETE_ARCHER_RL_DIR, "target_net.pth")
DISCRETE_MEMORY_SAVE_PATH = os.path.join(DISCRETE_ARCHER_RL_DIR, "memory.pth")
DISCRETE_STEPS_DONE_PATH = os.path.join(DISCRETE_ARCHER_RL_DIR, "steps_done.json")
DISCRETE_REWARDS_PATH = os.path.join(DISCRETE_ARCHER_RL_DIR, "bow_rewards.csv")
ARROW_POS_JSON_PATH = os.path.join(DISCRETE_ARCHER_RL_DIR, "arrow.json")
NEURAL_NET_SAVE_PATH = os.path.join(NEURAL_NET_DIR, "neural_net.pth")