Example #1
0
 def __init__(self, data_loader: SystemDataLoader) -> None:
     """Initialiser."""
     super().__init__(
         physical_disks={
             d.Index: d  # type: ignore
             for d in ComponentsLoader(data_loader, DiskDrive).element_generator()
         },
         partition_disks={
             p.component_id: p for p in ComponentsLoader(data_loader, DiskPartition).element_generator()
         },
         logical_partition_relationships={
             r.logical_disk_id: r.disk_partition_id  # type: ignore
             for r in ComponentsLoader(data_loader, DiskPartitionLogicalDiskRelationship).element_generator()
         },
         lookup_volume_information=lambda logical_disk: get_volume_information(logical_disk.component_id),
     )
 def _load_data(self) -> None:
     self._serial_port_by_usb_id = {
         parse_device_id(p.pnp_id): p
         for p in cast(
             Generator[SerialPort, None, None],
             ComponentsLoader(self._data_loader,
                              SerialPort).element_generator())
     }
Example #3
0
 def _list_usb_controller_ids(self) -> List[UsbIdentifier]:
     return cast(
         List[UsbIdentifier],
         [
             parse_device_id(cast(UsbController, usbc).component_id)
             for usbc in ComponentsLoader(self._data_loader, UsbController).element_generator()
         ],
     )
Example #4
0
 def _load_data(self) -> None:
     aggregator = WindowsDiskDataAggregator(self._data_loader)
     disk_data_by_serialnumber: dict = dict()  # The type is enforced so that mypy is happy.
     disk_data_by_label = dict()
     for ld in ComponentsLoader(self._data_loader, LogicalDisk).element_generator():
         aggregation = aggregator.aggregate(cast(LogicalDisk, ld))
         key = aggregation.get("uid").presumed_serial_number
         disk_data_list = disk_data_by_serialnumber.get(key, list())
         disk_data_list.append(aggregation)
         disk_data_by_serialnumber[key] = disk_data_list
         disk_data_by_label[aggregation.get("label")] = aggregation
     self._disk_data_by_serial_number = disk_data_by_serialnumber
     self._disk_data_by_label = disk_data_by_label
Example #5
0
 def _iterate_over_hubs(self) -> Generator[ComponentDescriptor, None, None]:
     return ComponentsLoader(self._data_loader, UsbHub).element_generator()