|
from typing import Any, Dict, List, Optional |
|
|
|
import yaml |
|
|
|
|
|
class HardwareConfig: |
|
def __init__(self, data: Dict[str, Any]): |
|
self.machine: str = data["machine"] |
|
self.description: str = data["description"] |
|
self.hardware_provider: str = data["hardware_provider"] |
|
self.hardware_type: str = data["hardware_type"] |
|
self.subsets: List[str] = data["subsets"] |
|
self.backends: List[str] = data["backends"] |
|
self.detail: Optional[str] = data.get("detail", None) |
|
|
|
def __repr__(self) -> str: |
|
return ( |
|
f"HardwareConfig(machine='{self.machine}', description='{self.description}', " |
|
f"hardware_provider={self.hardware_provider}, hardware_type={self.hardware_type}, subsets={self.subsets}, backends={self.backends})" |
|
) |
|
|
|
|
|
def load_hardware_configs(file_path: str) -> List[HardwareConfig]: |
|
with open(file_path, "r") as file: |
|
data = yaml.safe_load(file) |
|
return [HardwareConfig(config) for config in data] |
|
|