def getsourcefile(object):
    filename = getfile(object)
    if string.lower(filename[-4:]) in ('.pyc', '.pyo'):
        filename = filename[:-4] + '.py'
    elif filename.endswith('$py.class'):
        filename = filename[:-9] + '.py'
    for suffix, mode, kind in imp.get_suffixes():
        if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
            # Looks like a binary file.  We want to only return a text file.
            return None
    if os.path.exists(filename):
        return filename
    # only return a non-existent filename if the module has a PEP 302 loader
    if hasattr(getmodule(object, filename), '__loader__'):
        return filename
Update an existing zone with the options provided.
dataset/ETHPy150Open azoft-dev-team/imagrium/env/Lib/inspect.py/getsourcefile--crossover with--dataset/ETHPy150Open softlayer/softlayer-python/SoftLayer/managers/dns.py/DNSManager.edit_zone