mirror of
https://github.com/hanzoai/datastore.git
synced 2026-09-26 13:55:07 +00:00
Follow-up to #105171, which added `ruff` with a deliberately narrow, bug-class-only rule set and left the unused-name and star-import rules off pending a dedicated cleanup pass. This enables that second batch in `pyproject.toml` and fixes every violation across the tree (the bulk in integration tests): - `F401` unused-import and `F841` unused-variable: removed, preserving any side-effecting right-hand side (e.g. `result = node.query(...)` becomes `node.query(...)`). Two `try: import ...` feature probes are kept with `# noqa: F401`. - `F541` f-string-missing-placeholders: dropped the redundant `f` prefix. - `F403`/`F405` star imports: every `from module import *` is expanded into explicit imports of the names actually used, taken from each name's real origin, so stdlib/third-party names import from their real source rather than through a test "convenience bundle". The now-empty `tests/integration/helpers/kafka/common_direct.py` bundle is removed and its three remaining consumers import `_VarintBytes`/`KafkaAdminClient` directly. Eliminating the star imports surfaced a real bug the wildcard had masked from `F821`: `generate_presets.py` in `test_prometheus_protocols` called an undefined `execute_instant_query_with_http_api`; fixed to the existing `execute_query_via_http_api`. No `black`/`isort` reformatting was applied (neither is enforced in the style check), so the diff is limited to the lint fixes themselves. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
54 lines
2.0 KiB
Python
54 lines
2.0 KiB
Python
import os
|
|
|
|
import xml.etree.ElementTree as ET
|
|
|
|
def get_database_disk_name(node):
|
|
if not node.with_remote_database_disk:
|
|
return "default"
|
|
tree = ET.parse(os.path.join(os.path.dirname(os.path.realpath(__file__)), "remote_database_disk.xml"))
|
|
root = tree.getroot()
|
|
|
|
disk_element = root.find(".//database_disk/disk")
|
|
return disk_element.text if disk_element is not None else "default"
|
|
|
|
|
|
def replace_text_in_metadata(node, metadata_path: str, old_value: str, new_value: str):
|
|
db_disk_name = get_database_disk_name(node)
|
|
disk_cmd_prefix = f"/usr/bin/clickhouse disks -C /etc/clickhouse-server/config.xml --disk {db_disk_name} --save-logs --query "
|
|
|
|
old_metadata = node.exec_in_container(
|
|
["bash", "-c", f"{disk_cmd_prefix} 'read --path-from {metadata_path}'"]
|
|
)
|
|
|
|
new_metadata = old_metadata.replace(old_value, new_value)
|
|
write_to_file(node, db_disk_name, metadata_path, new_metadata)
|
|
|
|
|
|
def write_metadata(node, metadata_path: str, content: str):
|
|
db_disk_name = get_database_disk_name(node)
|
|
write_to_file(node, db_disk_name, metadata_path, content)
|
|
|
|
|
|
def write_to_file(node, db_disk_name: str, file_path: str, content: str):
|
|
# Escape backticks to avoid command substitution
|
|
escaped_content = content.replace('"', r"\"").replace("`", r"\`")
|
|
disk_cmd_prefix = f"/usr/bin/clickhouse disks -C /etc/clickhouse-server/config.xml --save-logs --disk {db_disk_name} --query "
|
|
node.exec_in_container(
|
|
[
|
|
"bash",
|
|
"-c",
|
|
f"""printf "%s" "{escaped_content}" | {disk_cmd_prefix} 'w --path-to {file_path}'""",
|
|
]
|
|
)
|
|
|
|
|
|
def move_file(node, source_path: str, destination_path: str):
|
|
db_disk_name = get_database_disk_name(node)
|
|
disk_cmd_prefix = f"/usr/bin/clickhouse disks -C /etc/clickhouse-server/config.xml --disk {db_disk_name} --save-logs --query "
|
|
node.exec_in_container(
|
|
[
|
|
"bash",
|
|
"-c",
|
|
f"{disk_cmd_prefix} 'move --path-from {source_path} --path-to {destination_path}'"
|
|
]
|
|
) |