mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2025-09-11 01:24:36 +00:00
scripts: fix crash when --tool is not set (#15133)
This commit is contained in:
parent
36d3f00e14
commit
20638e4f16
1 changed files with 23 additions and 22 deletions
|
@ -315,28 +315,29 @@ class LlamaBenchData:
|
||||||
|
|
||||||
|
|
||||||
class LlamaBenchDataSQLite3(LlamaBenchData):
|
class LlamaBenchDataSQLite3(LlamaBenchData):
|
||||||
connection: sqlite3.Connection
|
connection: Optional[sqlite3.Connection] = None
|
||||||
cursor: sqlite3.Cursor
|
cursor: sqlite3.Cursor
|
||||||
table_name: str
|
table_name: str
|
||||||
|
|
||||||
def __init__(self, tool: str = "llama-bench"):
|
def __init__(self, tool: str = "llama-bench"):
|
||||||
super().__init__(tool)
|
super().__init__(tool)
|
||||||
self.connection = sqlite3.connect(":memory:")
|
if self.connection is None:
|
||||||
self.cursor = self.connection.cursor()
|
self.connection = sqlite3.connect(":memory:")
|
||||||
|
self.cursor = self.connection.cursor()
|
||||||
|
|
||||||
# Set table name and schema based on tool
|
# Set table name and schema based on tool
|
||||||
if self.tool == "llama-bench":
|
if self.tool == "llama-bench":
|
||||||
self.table_name = "llama_bench"
|
self.table_name = "llama_bench"
|
||||||
db_fields = LLAMA_BENCH_DB_FIELDS
|
db_fields = LLAMA_BENCH_DB_FIELDS
|
||||||
db_types = LLAMA_BENCH_DB_TYPES
|
db_types = LLAMA_BENCH_DB_TYPES
|
||||||
elif self.tool == "test-backend-ops":
|
elif self.tool == "test-backend-ops":
|
||||||
self.table_name = "test_backend_ops"
|
self.table_name = "test_backend_ops"
|
||||||
db_fields = TEST_BACKEND_OPS_DB_FIELDS
|
db_fields = TEST_BACKEND_OPS_DB_FIELDS
|
||||||
db_types = TEST_BACKEND_OPS_DB_TYPES
|
db_types = TEST_BACKEND_OPS_DB_TYPES
|
||||||
else:
|
else:
|
||||||
assert False
|
assert False
|
||||||
|
|
||||||
self.cursor.execute(f"CREATE TABLE {self.table_name}({', '.join(' '.join(x) for x in zip(db_fields, db_types))});")
|
self.cursor.execute(f"CREATE TABLE {self.table_name}({', '.join(' '.join(x) for x in zip(db_fields, db_types))});")
|
||||||
|
|
||||||
def _builds_init(self):
|
def _builds_init(self):
|
||||||
if self.connection:
|
if self.connection:
|
||||||
|
@ -397,9 +398,6 @@ class LlamaBenchDataSQLite3(LlamaBenchData):
|
||||||
|
|
||||||
class LlamaBenchDataSQLite3File(LlamaBenchDataSQLite3):
|
class LlamaBenchDataSQLite3File(LlamaBenchDataSQLite3):
|
||||||
def __init__(self, data_file: str, tool: Any):
|
def __init__(self, data_file: str, tool: Any):
|
||||||
super().__init__(tool)
|
|
||||||
|
|
||||||
self.connection.close()
|
|
||||||
self.connection = sqlite3.connect(data_file)
|
self.connection = sqlite3.connect(data_file)
|
||||||
self.cursor = self.connection.cursor()
|
self.cursor = self.connection.cursor()
|
||||||
|
|
||||||
|
@ -411,27 +409,28 @@ class LlamaBenchDataSQLite3File(LlamaBenchDataSQLite3):
|
||||||
if tool is None:
|
if tool is None:
|
||||||
if "llama_bench" in table_names:
|
if "llama_bench" in table_names:
|
||||||
self.table_name = "llama_bench"
|
self.table_name = "llama_bench"
|
||||||
self.tool = "llama-bench"
|
tool = "llama-bench"
|
||||||
elif "test_backend_ops" in table_names:
|
elif "test_backend_ops" in table_names:
|
||||||
self.table_name = "test_backend_ops"
|
self.table_name = "test_backend_ops"
|
||||||
self.tool = "test-backend-ops"
|
tool = "test-backend-ops"
|
||||||
else:
|
else:
|
||||||
raise RuntimeError(f"No suitable table found in database. Available tables: {table_names}")
|
raise RuntimeError(f"No suitable table found in database. Available tables: {table_names}")
|
||||||
elif tool == "llama-bench":
|
elif tool == "llama-bench":
|
||||||
if "llama_bench" in table_names:
|
if "llama_bench" in table_names:
|
||||||
self.table_name = "llama_bench"
|
self.table_name = "llama_bench"
|
||||||
self.tool = "llama-bench"
|
tool = "llama-bench"
|
||||||
else:
|
else:
|
||||||
raise RuntimeError(f"Table 'test' not found for tool 'llama-bench'. Available tables: {table_names}")
|
raise RuntimeError(f"Table 'test' not found for tool 'llama-bench'. Available tables: {table_names}")
|
||||||
elif tool == "test-backend-ops":
|
elif tool == "test-backend-ops":
|
||||||
if "test_backend_ops" in table_names:
|
if "test_backend_ops" in table_names:
|
||||||
self.table_name = "test_backend_ops"
|
self.table_name = "test_backend_ops"
|
||||||
self.tool = "test-backend-ops"
|
tool = "test-backend-ops"
|
||||||
else:
|
else:
|
||||||
raise RuntimeError(f"Table 'test_backend_ops' not found for tool 'test-backend-ops'. Available tables: {table_names}")
|
raise RuntimeError(f"Table 'test_backend_ops' not found for tool 'test-backend-ops'. Available tables: {table_names}")
|
||||||
else:
|
else:
|
||||||
raise RuntimeError(f"Unknown tool: {tool}")
|
raise RuntimeError(f"Unknown tool: {tool}")
|
||||||
|
|
||||||
|
super().__init__(tool)
|
||||||
self._builds_init()
|
self._builds_init()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -653,6 +652,8 @@ if not bench_data:
|
||||||
if not bench_data.builds:
|
if not bench_data.builds:
|
||||||
raise RuntimeError(f"{input_file} does not contain any builds.")
|
raise RuntimeError(f"{input_file} does not contain any builds.")
|
||||||
|
|
||||||
|
tool = bench_data.tool # May have chosen a default if tool was None.
|
||||||
|
|
||||||
|
|
||||||
hexsha8_baseline = name_baseline = None
|
hexsha8_baseline = name_baseline = None
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue