1382 for multiplier, divisor, format in units: |
1382 for multiplier, divisor, format in units: |
1383 if nbytes >= divisor * multiplier: |
1383 if nbytes >= divisor * multiplier: |
1384 return format % (nbytes / float(divisor)) |
1384 return format % (nbytes / float(divisor)) |
1385 return units[-1][2] % nbytes |
1385 return units[-1][2] % nbytes |
1386 |
1386 |
1387 def drop_scheme(scheme, path): |
|
1388 sc = scheme + ':' |
|
1389 if path.startswith(sc): |
|
1390 path = path[len(sc):] |
|
1391 if path.startswith('//'): |
|
1392 if scheme == 'file': |
|
1393 i = path.find('/', 2) |
|
1394 if i == -1: |
|
1395 return '' |
|
1396 # On Windows, absolute paths are rooted at the current drive |
|
1397 # root. On POSIX they are rooted at the file system root. |
|
1398 if os.name == 'nt': |
|
1399 droot = os.path.splitdrive(os.getcwd())[0] + '/' |
|
1400 path = os.path.join(droot, path[i + 1:]) |
|
1401 else: |
|
1402 path = path[i:] |
|
1403 else: |
|
1404 path = path[2:] |
|
1405 return path |
|
1406 |
|
1407 def uirepr(s): |
1387 def uirepr(s): |
1408 # Avoid double backslash in Windows path repr() |
1388 # Avoid double backslash in Windows path repr() |
1409 return repr(s).replace('\\\\', '\\') |
1389 return repr(s).replace('\\\\', '\\') |
1410 |
1390 |
1411 # delay import of textwrap |
1391 # delay import of textwrap |