def string_SizeInBytes(size_in_bytes):
    """Make ``size in bytes`` human readable.
    Doesn"t support size greater than 1000PB.

    Usage::

        >>> from __future__ import print_function
        >>> from weatherlab.lib.filesystem.windowsexplorer import string_SizeInBytes
        >>> print(string_SizeInBytes(100))
        100 B
        >>> print(string_SizeInBytes(100*1000))
        97.66 KB
        >>> print(string_SizeInBytes(100*1000**2))
        95.37 MB
        >>> print(string_SizeInBytes(100*1000**3))
        93.13 GB
        >>> print(string_SizeInBytes(100*1000**4))
        90.95 TB
        >>> print(string_SizeInBytes(100*1000**5))
        88.82 PB
    """
    res, by = divmod(size_in_bytes, 1024)
    res, kb = divmod(res, 1024)
    res, mb = divmod(res, 1024)
    res, gb = divmod(res, 1024)
    pb, tb = divmod(res, 1024)
    if pb != 0:
        human_readable_size = "%.2f PB" % (pb + tb / float(1024))
    elif tb != 0:
        human_readable_size = "%.2f TB" % (tb + gb / float(1024))
    elif gb != 0:
        human_readable_size = "%.2f GB" % (gb + mb / float(1024))
    elif mb != 0:
        human_readable_size = "%.2f MB" % (mb + kb / float(1024))
    elif kb != 0:
        human_readable_size = "%.2f KB" % (kb + by / float(1024))
    else:
        human_readable_size = "%s B" % by
    return human_readable_size