Перечисления и ints просто не неявно castable согласно спецификации (за исключением литерального 0, который позволяется для сравнительных испытаний / присвоения / и т.д.). Явный бросок - все, что необходимо, все же.
gzip.open
is a shorthand for opening a file, what you want is gzip.GzipFile
which you can pass a fileobj
open(filename, mode='rb', compresslevel=9)
#Shorthand for GzipFile(filename, mode, compresslevel).
vs
class GzipFile
__init__(self, filename=None, mode=None, compresslevel=9, fileobj=None)
# At least one of fileobj and filename must be given a non-trivial value.
so this should work for you
gzip_file_handle = gzip.GzipFile(fileobj=url_file_handle)