@sometimesPruneCache(<NUM_LIT>)<EOL>def unpackTarballStream(stream, into_directory, hash={}, cache_key=None, origin_info=dict()):
cache_key = _encodeCacheKey(cache_key)<EOL>if getMaxCachedModules() == <NUM_LIT:0>:<EOL><INDENT>cache_key = None<EOL><DEDENT>new_cache_key = _downloadToCache(stream, hash, origin_info)<EOL>unpackFromCache(new_cache_key, into_directory)<EOL>if cache_key is None:<EOL><INDENT>removeFromCache(new_cache_key)<EOL><DEDENT>else:<EOL><INDENT>_moveCachedFile(new_cache_key, cache_key)<EOL><DEDENT>
Unpack a responses stream that contains a tarball into a directory. If
        a hash is provided, then it will be used as a cache key (for future
        requests you can try to retrieve the key value from the cache first,
        before making the request)