C:\Users\pererach\Downloads\BotLi-main\BotLi-main>python user_interface.py
Traceback (most recent call last):
File "user_interface.py", line 6, in
from api import API
File "C:\Users\pererach\Downloads\BotLi-main\BotLi-main\api.py", line 11, in
from botli_dataclasses import API_Challenge_Reponse, Challenge_Request
File "C:\Users\pererach\Downloads\BotLi-main\BotLi-main\botli_dataclasses.py", line 7, in
@dataclass
File "C:\Users\pererach\Downloads\BotLi-main\BotLi-main\botli_dataclasses.py", line 9, in API_Challenge_Reponse
challenge_id: Challenge_ID | None = None
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
Information:
OS: Windows
Python version: python 3.11
Engine: Stockfish 15.1
Locally
Config:
engine: # Engine settings.
dir: "./engines" # Directory containing the engine.
name: "stockfish.exe" # Binary name of the engine to use.
ponder: true # Think on opponent's time.
silence_stderr: false # Suppresses stderr output.
syzygy:
enabled: false # Activate local syzygy endgame tablebases.
paths: # Paths to local syzygy endgame tablebases.
- "/path/to/syzygy"
max_pieces: 6 # Count of max pieces in the local syzygy endgame tablebases.
instant_play: true # Whether the bot should play directly from syzygy without engine if possible.
gaviota:
enabled: false # Activate local gaviota endgame tablebases.
paths: # Paths to local gaviota endgame tablebases.
- "/path/to/gaviota"
max_pieces: 5 # Count of max pieces in the local gaviota endgame tablebases.
uci_options: # Arbitrary UCI options passed to the engine. (Commenting allowed)
Move Overhead: 100 # Increase if your bot flags games too often.
Threads: 8 # Max CPU threads the engine can use.
Hash: 256 # Max memory (in megabytes) the engine can allocate.
Ponder: True
variants:
enabled: false # Activate seperate engine for other chess variants than standard and chess960.
dir: "./engines" # Directory containing the engine.
name: "fairy-stockfish" # Binary name of the engine to use.
ponder: true # Think on opponent's time.
silence_stderr: false # Suppresses stderr output.
uci_options: # Arbitrary UCI options passed to the engine. (Commenting allowed)
Move Overhead: 100 # Increase if your bot flags games too often.
Threads: 4 # Max CPU threads the engine can use.
Hash: 256 # Max memory (in megabytes) the engine can allocate.
opening_books:
enabled: false # Activate opening books.
books:
# white: # List of names of books to use as white.
# - "WhiteBook"
# black: # List of names of books to use as black.
# - "BlackBook"
standard: # List of names of books to use if there is no specific book for white, black or chess960.
- "DefaultBook"
# chess960: # List of names of books to use for chess960.
# - "Chess960Book"
# Use the same pattern for 'antichess', 'atomic', 'crazyhouse', 'horde', 'kingofthehill', 'racingkings' and '3check' as well.
selection: "weighted_random" # Move selection is one of "weighted_random", "uniform_random" or "best_move".
# max_depth: 16 # Half move max depth. (Comment this line for max depth)
online_moves:
opening_explorer:
enabled: true # Activate online moves from Lichess opening explorer. The move that has performed best for this bot is played.
use_for_variants: true # Whether the Lichess opening explorer should be used for other variants than standard and chess960.
min_time: 20 # Time the bot must have at least to use the online move.
timeout: 5 # Time the server has to respond.
min_games: 5 # Minimum number of games in which the position must have occurred.
only_with_wins: false # Whether to play only moves that have won before.
selection: "performance" # Move selection is "performance" or "win_rate".
# max_depth: 16 # Half move max depth. (Comment this line for max depth)
chessdb:
enabled: false # Activate online moves from https://chessdb.cn/queryc_en/
min_eval_depth: 10 # Minimum evaluation depth. Only for selection: "best".
min_time: 20 # Time the bot must have at least to use the online move.
timeout: 5 # Time the server has to respond.
selection: "best" # Move selection is one of "best", "good" or "all".
# max_depth: 16 # Half move max depth. (Comment this line for max depth)
lichess_cloud:
enabled: true # Activate online moves from Lichess cloud eval.
only_without_book: false # Whether the cloud should only be used if there is no matching book.
min_eval_depth: 10 # Minimum evaluation depth.
min_time: 20 # Time the bot must have at least to use the online move.
timeout: 5 # Time the server has to respond.
# max_depth: 16 # Half move max depth. (Comment this line for max depth)
online_egtb:
enabled: true # Activate online endgame tablebases from Lichess.
min_time: 10 # Time the bot must have at least to use the online move.
timeout: 3 # Time the server has to respond.
offer_draw:
enabled: true # Activate whether the bot should offer draw.
score: 10 # If the absolute value of the score is less than or equal to this value, the bot offers/accepts draw (in cp)
consecutive_moves: 10 # How many moves in a row the absolute value of the score has to be below the draw value
min_game_length: 35 # Earliest move in which draw is offered.
resign:
enabled: false # Activate whether the bot should resign games.
score: -1000 # If the score is less than or equal to this value, the bot resigns (in cp).
consecutive_moves: 5 # How many moves in a row the score has to be below the resign value.
move_overhead_multiplier: 1.0 # Increase if your bot flags games too often. Default move overhead is 1 second per 1 minute initital time.
challenge: # Incoming challenges. (Commenting allowed)
concurrency: 1 # Number of games to play simultaneously.
bullet_with_increment_only: false # Whether bullet games against BOTs should only be accepted with increment.
# min_increment: 0 # Minimum amount of increment to accept a challenge.
# max_increment: 180 # Maximum amount of increment to accept a challenge.
# min_initial: 0 # Minimum amount of initial time to accept a challenge.
# max_initial: 315360000 # Maximum amount of initial time to accept a challenge.
variants: # Chess variants to accept (https://lichess.org/variant).
- standard
- chess960
# - fromPosition
# - antichess
# - atomic
# - crazyhouse
# - horde
# - kingOfTheHill
# - racingKings
# - threeCheck
time_controls: # Time controls to accept.
- bullet
- blitz
- rapid
# - classical
bot_modes: # Game modes to accept against BOTs.
# - casual # Unrated games.
- rated # Rated games
human_modes: # Game modes to accept against humans.
- casual # Unrated games.
- rated # Rated games
matchmaking:
initial_time: 60 # Initial time for matchmaking mode.
increment: 1 # Increment time for matchmaking mode.
rated: true # Activate rated games in matchmaking mode.
timeout: 30 # Time until a challenge is canceled.
variants: # Chess variants (https://lichess.org/variant) to challenge.
- standard
# - chess960
# - antichess
# - atomic
# - crazyhouse
# - horde
# - kingOfTheHill
# - racingKings
# - threeCheck
# min_rating_diff: 0 # Minimum rating distance to opponent. (Commenting allowed)
# max_rating_diff: 300 # Maximum rating distance to opponent. (Commenting allowed)
delay: 10 # Time in seconds the bot must be idle before a new challenge is started.
messages:
# Optional substitution keywords (include curly braces):
# {opponent} to insert the opponent's name
# {me} to insert our name
# {engine} to insert engine name
# {cpu} to insert CPU information
# {ram} to insert RAM size
# Any other words in curly braces will be removed.
greeting: "Hey, I'm running {engine}. Good luck! Type !help for a list of commands." # Message sent to the opponent at the beginning of a game.
goodbye: "Good game, see you next time." # Message sent to the opponent after the end of a game.
greeting_spectators: "Hey, I'm running {engine}. Type !help for a list of commands." # Message sent to the spectators at the beginning of a game.
goodbye_spectators: "Thanks for watching." # Message sent to the spectators after the end of a game.
books: # Names of the opening books (to be used above in the opening_books section) and paths to the opening books.
DefaultBook: "/path/to/DefaultBook.bin"
C:\Users\pererach\Downloads\BotLi-main\BotLi-main>python user_interface.py Traceback (most recent call last): File "user_interface.py", line 6, in
from api import API
File "C:\Users\pererach\Downloads\BotLi-main\BotLi-main\api.py", line 11, in
from botli_dataclasses import API_Challenge_Reponse, Challenge_Request
File "C:\Users\pererach\Downloads\BotLi-main\BotLi-main\botli_dataclasses.py", line 7, in
@dataclass
File "C:\Users\pererach\Downloads\BotLi-main\BotLi-main\botli_dataclasses.py", line 9, in API_Challenge_Reponse
challenge_id: Challenge_ID | None = None
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
Information:
Config: