( self, target_unit: Unit, sector_size: SectorSize | None = None, )
| 371 | ) |
| 372 | |
| 373 | def convert( |
| 374 | self, |
| 375 | target_unit: Unit, |
| 376 | sector_size: SectorSize | None = None, |
| 377 | ) -> Size: |
| 378 | if target_unit == Unit.sectors and sector_size is None: |
| 379 | raise ValueError('If target has unit sector, a sector size must be provided') |
| 380 | |
| 381 | if self.unit == target_unit: |
| 382 | return self |
| 383 | elif self.unit == Unit.sectors: |
| 384 | norm = self._normalize() |
| 385 | return Size(norm, Unit.B, self.sector_size).convert(target_unit, sector_size) |
| 386 | else: |
| 387 | if target_unit == Unit.sectors and sector_size is not None: |
| 388 | norm = self._normalize() |
| 389 | sectors = math.ceil(norm / sector_size.value) |
| 390 | return Size(sectors, Unit.sectors, sector_size) |
| 391 | else: |
| 392 | value = int(self._normalize() / target_unit.value) |
| 393 | return Size(value, target_unit, self.sector_size) |
| 394 | |
| 395 | def as_text(self) -> str: |
| 396 | return self.format_size( |
no test coverage detected