#NEWLINE# @ classmethod #NEWLINE# def Open( cls , fd , component , pathspec = None , progress_callback = None , full_pathspec = None ) : #NEWLINE# #INDENT# if ( ( fd is None ) and ( component . pathtype == rdf_paths . PathSpec . PathType . TSK ) ) : #NEWLINE# #INDENT# ( raw_pathspec , corrected_path ) = client_utils . GetRawDevice ( component . path ) #NEWLINE# component . path = corrected_path #NEWLINE# pathspec . Insert ( 0 , component ) #NEWLINE# pathspec . Insert ( 0 , raw_pathspec ) #NEWLINE# for component in pathspec : #NEWLINE# #INDENT# if component . path : #NEWLINE# #INDENT# component . path = client_utils . LocalPathToCanonicalPath ( component . path ) #NEWLINE# #UNINDENT# #UNINDENT# return fd #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if component . HasField ( 'inode' ) : #NEWLINE# #INDENT# return TSKFile ( fd , component , progress_callback = progress_callback , full_pathspec = full_pathspec ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return vfs . VFSHandler . Open ( fd , component , pathspec = pathspec , progress_callback = progress_callback , full_pathspec = full_pathspec )