From 88d8decaa5f4e63e567e3c6a9694313790454dbd Mon Sep 17 00:00:00 2001 From: Sander Land Date: Mon, 2 Nov 2020 20:48:01 +0100 Subject: [PATCH] positive note, wait to finish --- LICENSE | 3 ++- katrain/core/base_katrain.py | 6 +++--- katrain/core/engine.py | 7 +++++-- katrain/gui/badukpan.py | 2 +- katrain/img/local.png | Bin 22808 -> 8770 bytes 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/LICENSE b/LICENSE index 0d8b8aa..c972dd9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,10 +1,11 @@ This repository includes: -1. Binaries for 'KataGo', which is Copyright 2019 David J Wu et al. +1. Binaries for 'KataGo', which is Copyright David J Wu et al. For on related licenses for these binaries and libraries see https://github.com/lightvector/KataGo 2. Icons from www.flaticon.com, used with permission with the following attributions: - Equalize icon and Thrash Icon: derived from work by bqlqn from www.flaticon.com +- Local search icon: derived from work by Pixel Perfect from www.flaticon.com - Other Menu icons and Flag icons: derived from work by Freepik from www.flaticon.com 3. The True Type Font DIGITAL-7 version 1.02 by Sizenko Alexander, which is free for non-commercial use. diff --git a/katrain/core/base_katrain.py b/katrain/core/base_katrain.py index e8604a8..819a30c 100644 --- a/katrain/core/base_katrain.py +++ b/katrain/core/base_katrain.py @@ -49,13 +49,13 @@ class KaTrainBase: """Settings, logging, and players functionality, so other classes like bots who need a katrain instance can be used without a GUI""" - def __init__(self, force_package_config=False, debug_level=0, **kwargs): - self.debug_level = debug_level + def __init__(self, force_package_config=False, debug_level=None, **kwargs): + self.debug_level = debug_level or 0 self.game = None self.logger = lambda message, level=OUTPUT_INFO: self.log(message, level) self.config_file = self._load_config(force_package_config=force_package_config) - self.debug_level = debug_level or self.config("general/debug_level", OUTPUT_INFO) + self.debug_level = self.config("general/debug_level", OUTPUT_INFO) if debug_level is None else debug_level Config.set("kivy", "log_level", "warning") if self.debug_level >= OUTPUT_DEBUG: diff --git a/katrain/core/engine.py b/katrain/core/engine.py index 17ce22b..914ad34 100644 --- a/katrain/core/engine.py +++ b/katrain/core/engine.py @@ -134,11 +134,14 @@ class KataGoEngine: raise EngineDiedException(died_msg) return ok + def wait_to_finish(self): + while self.queries and self.katago_process and self.katago_process.poll() is None: + time.sleep(0.1) + def shutdown(self, finish=False): process = self.katago_process if finish and process: - while self.queries and process.poll() is None: - time.sleep(0.1) + self.wait_to_finish() if process: self.katago_process = None process.terminate() diff --git a/katrain/gui/badukpan.py b/katrain/gui/badukpan.py index 05e987e..387928b 100644 --- a/katrain/gui/badukpan.py +++ b/katrain/gui/badukpan.py @@ -469,7 +469,7 @@ class BadukPanWidget(Widget): source="img/topmove.png", ) if self.trainer_config["text_point_loss"] and text_on: - if move_dict["pointsLost"] < 0.05: + if -0.05 < move_dict["pointsLost"] < 0.05: ptloss_text = "0.0" else: ptloss_text = f"{-move_dict['pointsLost']:+.1f}" diff --git a/katrain/img/local.png b/katrain/img/local.png index 3bae846f68740d6d30023507d1c205e7f3d76f56..cc4506af2fc6ba9984beefd7b32f398a4819714d 100644 GIT binary patch literal 8770 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 literal 22808 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