def uncompressed_size(filename):
quoted_filename = shlex.quote(filename)<EOL>if str(filename).lower().endswith("<STR_LIT>"):<EOL><INDENT>output = execute_command('<STR_LIT>'.format(quoted_filename))<EOL>compressed, uncompressed = regexp_sizes.findall(output)<EOL>value, unit = uncompressed.split()<EOL>value = float(value.replace("<STR_LIT:U+002C>", "<STR_LIT>"))<EOL>return int(value * MULTIPLIERS[unit])<EOL><DEDENT>elif str(filename).lower().endswith("<STR_LIT>"):<EOL><INDENT>output = execute_command('<STR_LIT>'.format(quoted_filename))<EOL>lines = [line.split() for line in output.splitlines()]<EOL>header, data = lines[<NUM_LIT:0>], lines[<NUM_LIT:1>]<EOL>gzip_data = dict(zip(header, data))<EOL>return int(gzip_data["<STR_LIT>"])<EOL><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>'.format(filename))<EOL><DEDENT>
Return the uncompressed size for a file by executing commands

    Note: due to a limitation in gzip format, uncompressed files greather than
    4GiB will have a wrong value.