mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Rewrite of function fBytes() in arc_summary.py
Replace if-elif-else construction with shorter loop; remove unused parameter "Decimal"; centralize format string; add function documentation string; conform to PEP8. Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com> Closes #6784
This commit is contained in:
		
							parent
							
								
									5c2552c564
								
							
						
					
					
						commit
						47c8e7fd97
					
				@ -88,36 +88,38 @@ def div2():
 | 
			
		||||
    sys.stdout.write("\n")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def fBytes(Bytes=0, Decimal=2):
 | 
			
		||||
    kbytes = (2 ** 10)
 | 
			
		||||
    mbytes = (2 ** 20)
 | 
			
		||||
    gbytes = (2 ** 30)
 | 
			
		||||
    tbytes = (2 ** 40)
 | 
			
		||||
    pbytes = (2 ** 50)
 | 
			
		||||
    ebytes = (2 ** 60)
 | 
			
		||||
    zbytes = (2 ** 70)
 | 
			
		||||
    ybytes = (2 ** 80)
 | 
			
		||||
def fBytes(b=0):
 | 
			
		||||
    """Return human-readable representation of a byte value in
 | 
			
		||||
    powers of 2 (eg "KiB" for "kibibytes", etc) to two decimal
 | 
			
		||||
    points. Values smaller than one KiB are returned without
 | 
			
		||||
    decimal points.
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    prefixes = [
 | 
			
		||||
        [2**80, "YiB"],   # yobibytes (yotta)
 | 
			
		||||
        [2**70, "ZiB"],   # zebibytes (zetta)
 | 
			
		||||
        [2**60, "EiB"],   # exbibytes (exa)
 | 
			
		||||
        [2**50, "PiB"],   # pebibytes (peta)
 | 
			
		||||
        [2**40, "TiB"],   # tebibytes (tera)
 | 
			
		||||
        [2**30, "GiB"],   # gibibytes (giga)
 | 
			
		||||
        [2**20, "MiB"],   # mebibytes (mega)
 | 
			
		||||
        [2**10, "KiB"]]   # kibibytes (kilo)
 | 
			
		||||
 | 
			
		||||
    if b >= 2**10:
 | 
			
		||||
 | 
			
		||||
        for limit, unit in prefixes:
 | 
			
		||||
 | 
			
		||||
            if b >= limit:
 | 
			
		||||
                value = b / limit
 | 
			
		||||
                break
 | 
			
		||||
 | 
			
		||||
        result = "%0.2f\t%s" % (value, unit)
 | 
			
		||||
 | 
			
		||||
    if Bytes >= ybytes:
 | 
			
		||||
        return str("%0." + str(Decimal) + "f") % (Bytes / ybytes) + "\tYiB"
 | 
			
		||||
    elif Bytes >= zbytes:
 | 
			
		||||
        return str("%0." + str(Decimal) + "f") % (Bytes / zbytes) + "\tZiB"
 | 
			
		||||
    elif Bytes >= ebytes:
 | 
			
		||||
        return str("%0." + str(Decimal) + "f") % (Bytes / ebytes) + "\tEiB"
 | 
			
		||||
    elif Bytes >= pbytes:
 | 
			
		||||
        return str("%0." + str(Decimal) + "f") % (Bytes / pbytes) + "\tPiB"
 | 
			
		||||
    elif Bytes >= tbytes:
 | 
			
		||||
        return str("%0." + str(Decimal) + "f") % (Bytes / tbytes) + "\tTiB"
 | 
			
		||||
    elif Bytes >= gbytes:
 | 
			
		||||
        return str("%0." + str(Decimal) + "f") % (Bytes / gbytes) + "\tGiB"
 | 
			
		||||
    elif Bytes >= mbytes:
 | 
			
		||||
        return str("%0." + str(Decimal) + "f") % (Bytes / mbytes) + "\tMiB"
 | 
			
		||||
    elif Bytes >= kbytes:
 | 
			
		||||
        return str("%0." + str(Decimal) + "f") % (Bytes / kbytes) + "\tKiB"
 | 
			
		||||
    elif Bytes == 0:
 | 
			
		||||
        return str("%d" % 0) + "\tBytes"
 | 
			
		||||
    else:
 | 
			
		||||
        return str("%d" % Bytes) + "\tBytes"
 | 
			
		||||
 | 
			
		||||
        result = "%d\tBytes" % b
 | 
			
		||||
 | 
			
		||||
    return result
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def fHits(Hits=0, Decimal=2):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user