def open(filepath, edit_local=False):
    """Open any wt5 file, returning the top-level object (data or collection).

    Parameters
    ----------
    filepath : path-like
        Path to file.
        Can be either a local or remote file (http/ftp).
        Can be compressed with gz/bz2, decompression based on file name.
    edit_local : boolean (optional)
        If True, the file itself will be opened for editing. Otherwise, a
        copy will be created. Default is False.

    Returns
    -------
    WrightTools Collection or Data
        Root-level object in file.
    """
    filepath = os.fspath(filepath)
    ds = np.DataSource(None)
    if edit_local is False:
        tf = tempfile.mkstemp(prefix="", suffix=".wt5")
        with _open(tf[1], "w+b") as tff:
            with ds.open(str(filepath), "rb") as f:
                tff.write(f.read())
        filepath = tf[1]
    f = h5py.File(filepath)
    class_name = f["/"].attrs["class"]
    name = f["/"].attrs["name"]
    if class_name == "Data":
        obj = wt_data.Data(filepath=str(filepath), name=name, edit_local=True)
    elif class_name == "Collection":
        obj = wt_collection.Collection(filepath=str(filepath), name=name, edit_local=True)
    else:
        obj = wt_group.Group(filepath=str(filepath), name=name, edit_local=True)

    if edit_local is False:
        setattr(obj, "_tmpfile", tf)
        weakref.finalize(obj, obj.close)
    return obj
def open ( filepath , edit_local = False ) : filepath = os . fspath ( filepath ) ds = np . DataSource ( None ) if edit_local is False : tf = tempfile . mkstemp ( prefix = "" , suffix = ".wt5" ) with _open ( tf [ 1 ] , "w+b" ) as tff : with ds . open ( str ( filepath ) , "rb" ) as f : tff . write ( f . read ( ) ) filepath = tf [ 1 ] f = h5py . File ( filepath ) class_name = f [ "/" ] . attrs [ "class" ] name = f [ "/" ] . attrs [ "name" ] if class_name == "Data" : obj = wt_data . Data ( filepath = str ( filepath ) , name = name , edit_local = True ) elif class_name == "Collection" : obj = wt_collection . Collection ( filepath = str ( filepath ) , name = name , edit_local = True ) else : obj = wt_group . Group ( filepath = str ( filepath ) , name = name , edit_local = True ) if edit_local is False : setattr ( obj , "_tmpfile" , tf ) weakref . finalize ( obj , obj . close ) return obj
Open any wt5 file, returning the top-level object (data or collection).

    Parameters
    ----------
    filepath : path-like
        Path to file.
        Can be either a local or remote file (http/ftp).
        Can be compressed with gz/bz2, decompression based on file name.
    edit_local : boolean (optional)
        If True, the file itself will be opened for editing. Otherwise, a
        copy will be created. Default is False.

    Returns
    -------
    WrightTools Collection or Data
        Root-level object in file.