-
Notifications
You must be signed in to change notification settings - Fork 110
Expand file tree
/
Copy pathconfigs.py
More file actions
188 lines (154 loc) · 3.52 KB
/
configs.py
File metadata and controls
188 lines (154 loc) · 3.52 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
from dataclasses import dataclass
from typing import Any, Literal
@dataclass
class LimitConfig:
time: float | None
depth: int | None
nodes: int | None
@dataclass
class EngineConfig:
path: str
ponder: bool
silence_stderr: bool
move_overhead_multiplier: float
uci_options: dict[str, Any]
limits: LimitConfig
@dataclass
class SyzygyConfig:
enabled: bool
paths: list[str]
max_pieces: int
instant_play: bool
@dataclass
class GaviotaConfig:
enabled: bool
paths: list[str]
max_pieces: int
@dataclass
class BooksConfig:
selection: Literal["weighted_random", "uniform_random", "best_move"]
max_depth: int | None
max_moves: int | None
allow_repetitions: bool | None
names: dict[str, str]
@dataclass
class OpeningBooksConfig:
enabled: bool
priority: int
read_learn: bool | None
books: dict[str, BooksConfig]
@dataclass
class OpeningExplorerConfig:
enabled: bool
priority: int
player: str | None
only_without_book: bool
use_for_variants: bool
allow_repetitions: bool
min_time: int
timeout: int
min_games: int
only_with_wins: bool
selection: Literal["performance", "win_rate"]
anti: bool
max_depth: int | None
max_moves: int | None
@dataclass
class LichessCloudConfig:
enabled: bool
priority: int
only_without_book: bool
use_for_variants: bool
allow_repetitions: bool
trust_eval: bool
min_eval_depth: int
min_time: int
timeout: int
max_depth: int | None
max_moves: int | None
@dataclass
class ChessDBConfig:
enabled: bool
priority: int
only_without_book: bool
allow_repetitions: bool
trust_eval: bool
min_time: int
timeout: int
best_move: bool
max_depth: int | None
max_moves: int | None
@dataclass
class OnlineEGTBConfig:
enabled: bool
min_time: int
timeout: int
@dataclass
class OnlineMovesConfig:
opening_explorer: OpeningExplorerConfig
lichess_cloud: LichessCloudConfig
chessdb: ChessDBConfig
online_egtb: OnlineEGTBConfig
@dataclass
class OfferDrawConfig:
enabled: bool
score: int
consecutive_moves: int
min_game_length: int
against_humans: bool
min_rating: int | None
@dataclass
class ResignConfig:
enabled: bool
score: int
consecutive_moves: int
against_humans: bool
min_rating: int | None
@dataclass
class ChallengeConfig:
concurrency: int
max_takebacks: int
bullet_with_increment_only: bool
min_increment: int | None
max_increment: int | None
min_initial: int | None
max_initial: int | None
variants: list[str]
bot_time_controls: list[str]
human_time_controls: list[str]
bot_modes: list[str]
human_modes: list[str]
@dataclass
class MatchmakingTypeConfig:
tc: str
rated: bool | None
variant: (
Literal[
"standard",
"chess960",
"crazyhouse",
"antichess",
"atomic",
"horde",
"kingOfTheHill",
"racingKings",
"threeCheck",
]
| None
)
weight: int | None
multiplier: int | None
min_rating_diff: int | None
max_rating_diff: int | None
@dataclass
class MatchmakingConfig:
delay: int
timeout: int
selection: Literal["weighted_random", "sequential"]
types: dict[str, MatchmakingTypeConfig]
@dataclass
class MessagesConfig:
greeting: str | None
goodbye: str | None
greeting_spectators: str | None
goodbye_spectators: str | None