Source code for luna.common.EnsureByteContext

'''
Created on November 04, 2020

@author: aukermaa@mskcc.org
'''
[docs]class EnsureByteContext(object): def __enter__(self): # Re-import modules import builtins import io if not hasattr(builtins, "default_open"): # Backup open function as default_open print ("Reconfigurating [builtins] to have default_open() attribute") builtins.default_open = builtins.open def io_open(*args, **kwargs): # Define new IO function print ("__io_open__(): ", args, kwargs) if type(args[0])==io.BytesIO: return io.BufferedReader(args[0]) else: return builtins.default_open(*args, **kwargs) if not hasattr(builtins, "io_open"): # Set open as new print ("Reconfigurating [builtins] to use io_open() attribute") builtins.io_open = io_open builtins.open = builtins.io_open return self def __exit__(self, type, value, traceback): return self