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]>
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
from dataclasses import dataclass
|
|
from typing import Any, Dict, List
|
|
|
|
from .cache import Cache
|
|
from .info import Info
|
|
from .settings import Settings
|
|
from .utils import MetaClasses, Utils
|
|
|
|
|
|
@dataclass
|
|
class RunConfig(MetaClasses.Serializable):
|
|
name: str
|
|
digest_jobs: Dict[str, str]
|
|
digest_dockers: Dict[str, str]
|
|
cache_success: List[str]
|
|
# there are might be issue with special characters in job names if used directly in yaml syntax - create base64 encoded list to avoid this
|
|
cache_success_base64: List[str]
|
|
cache_artifacts: Dict[str, Cache.CacheRecord]
|
|
cache_jobs: Dict[str, Cache.CacheRecord]
|
|
filtered_jobs: Dict[str, str]
|
|
sha: str
|
|
submodule_cache_hash: str
|
|
custom_data: Dict[str, Any]
|
|
|
|
@classmethod
|
|
def from_dict(cls, obj):
|
|
cache_artifacts = obj["cache_artifacts"]
|
|
cache_jobs = obj["cache_jobs"]
|
|
cache_artifacts_deserialized = {}
|
|
cache_jobs_deserialized = {}
|
|
for artifact_name, cache_artifact in cache_artifacts.items():
|
|
cache_artifacts_deserialized[artifact_name] = Cache.CacheRecord.from_dict(
|
|
cache_artifact
|
|
)
|
|
obj["cache_artifacts"] = cache_artifacts_deserialized
|
|
for job_name, cache_jobs in cache_jobs.items():
|
|
cache_jobs_deserialized[job_name] = Cache.CacheRecord.from_dict(cache_jobs)
|
|
obj["cache_jobs"] = cache_artifacts_deserialized
|
|
obj.setdefault("submodule_cache_hash", "")
|
|
return RunConfig(**obj)
|
|
|
|
@classmethod
|
|
def file_name_static(cls, name):
|
|
return (
|
|
f"{Settings.TEMP_DIR}/workflow_config_{Utils.normalize_string(name)}.json"
|
|
)
|
|
|
|
@classmethod
|
|
def from_workflow_data(cls):
|
|
return cls.from_dict(Info().env.WORKFLOW_CONFIG)
|
|
|
|
def set_job_as_filtered(self, job_name, reason):
|
|
self.cache_success.append(job_name)
|
|
self.cache_success_base64.append(Utils.to_base64(job_name))
|
|
self.filtered_jobs[job_name] = reason
|