def _chooseDirectory(self): # Find the directory of the most recently opened image file mostRecentStackDirectory = PreferencesManager().get("DataSelection", "recent stack directory") if mostRecentStackDirectory is not None: defaultDirectory = os.path.split(mostRecentStackDirectory)[0] else: defaultDirectory = os.path.expanduser("~") options = QFileDialog.Options(QFileDialog.ShowDirsOnly) if ilastik.config.cfg.getboolean("ilastik", "debug"): options |= QFileDialog.DontUseNativeDialog # Launch the "Open File" dialog directory = QFileDialog.getExistingDirectory(self, "Image Stack Directory", defaultDirectory, options=options) if directory.isNull(): # User cancelled return directory = encode_from_qstring(directory) PreferencesManager().set("DataSelection", "recent stack directory", directory) self.directoryEdit.setText(decode_to_qstring(directory)) globstring = self._getGlobString(directory) if globstring: filenames = OpStackLoader.expandGlobStrings(globstring) self._updateFileList(sorted(filenames)) # As a convenience, also show the glob string in the pattern field self.patternEdit.setText(decode_to_qstring(globstring))
def _chooseDirectory(self): # Find the directory of the most recently opened image file mostRecentStackDirectory = PreferencesManager().get( 'DataSelection', 'recent stack directory') if mostRecentStackDirectory is not None: defaultDirectory = os.path.split(mostRecentStackDirectory)[0] else: defaultDirectory = os.path.expanduser('~') options = QFileDialog.Options(QFileDialog.ShowDirsOnly) if ilastik.config.cfg.getboolean("ilastik", "debug"): options |= QFileDialog.DontUseNativeDialog # Launch the "Open File" dialog directory = QFileDialog.getExistingDirectory(self, "Image Stack Directory", defaultDirectory, options=options) if directory.isNull(): # User cancelled return directory = encode_from_qstring(directory) PreferencesManager().set('DataSelection', 'recent stack directory', directory) self.directoryEdit.setText(decode_to_qstring(directory)) globstring = self._getGlobString(directory) if globstring: filenames = OpStackLoader.expandGlobStrings(globstring) self._updateFileList(sorted(filenames)) # As a convenience, also show the glob string in the pattern field self.patternEdit.setText(decode_to_qstring(globstring))
def _applyPattern(self): globStrings = self.patternEdit.text() H5EXTS = OpStreamingH5N5SequenceReaderM.H5EXTS N5EXTS = OpStreamingH5N5SequenceReaderM.N5EXTS filenames = [] # see if some glob strings include HDF5 and/or N5 files globStrings = globStrings.split(os.path.pathsep) pcs = [PathComponents(x) for x in globStrings] is_h5_n5 = [x.extension in (H5EXTS + N5EXTS) for x in pcs] h5GlobStrings = os.path.pathsep.join( [x for x, y in zip(globStrings, is_h5_n5) if y is True]) globStrings = os.path.pathsep.join( [x for x, y in zip(globStrings, is_h5_n5) if y is False]) filenames.extend(OpStackLoader.expandGlobStrings(globStrings)) try: OpStreamingH5N5SequenceReaderS.checkGlobString(h5GlobStrings) # OK, if nothing raised there is a single h5 file in h5GlobStrings: pathComponents = PathComponents( h5GlobStrings.split(os.path.pathsep)[0]) h5file = OpStreamingH5N5Reader.get_h5_n5_file( pathComponents.externalPath, mode="r") filenames.extend( "{}/{}".format(pathComponents.externalPath, internal) for internal in OpStreamingH5N5SequenceReaderS. expandGlobStrings(h5file, h5GlobStrings)) except ( OpStreamingH5N5SequenceReaderS.WrongFileTypeError, OpStreamingH5N5SequenceReaderS.NotTheSameFileError, OpStreamingH5N5SequenceReaderS.NoInternalPlaceholderError, OpStreamingH5N5SequenceReaderS.ExternalPlaceholderError, ): pass try: OpStreamingH5N5SequenceReaderM.checkGlobString(h5GlobStrings) filenames.extend( "{}/{}".format(external, internal) for external, internal in zip( *OpStreamingH5N5SequenceReaderM.expandGlobStrings( h5GlobStrings))) except ( OpStreamingH5N5SequenceReaderM.WrongFileTypeError, OpStreamingH5N5SequenceReaderM.SameFileError, OpStreamingH5N5SequenceReaderM.NoExternalPlaceholderError, OpStreamingH5N5SequenceReaderM.InternalPlaceholderError, ): pass self._updateFileList(filenames)
def _applyPattern(self): globStrings = self.patternEdit.text() H5EXTS = OpStreamingH5N5SequenceReaderM.H5EXTS N5EXTS = OpStreamingH5N5SequenceReaderM.N5EXTS filenames = [] # see if some glob strings include HDF5 and/or N5 files globStrings = globStrings.split(os.path.pathsep) pcs = [PathComponents(x) for x in globStrings] is_h5_n5 = [x.extension in (H5EXTS + N5EXTS) for x in pcs] h5GlobStrings = os.path.pathsep.join([x for x, y in zip(globStrings, is_h5_n5) if y is True]) globStrings = os.path.pathsep.join([x for x, y in zip(globStrings, is_h5_n5) if y is False]) filenames.extend(OpStackLoader.expandGlobStrings(globStrings)) try: OpStreamingH5N5SequenceReaderS.checkGlobString(h5GlobStrings) # OK, if nothing raised there is a single h5 file in h5GlobStrings: pathComponents = PathComponents(h5GlobStrings.split(os.path.pathsep)[0]) h5file = OpStreamingH5N5Reader.get_h5_n5_file(pathComponents.externalPath, mode='r') filenames.extend( "{}/{}".format(pathComponents.externalPath, internal) for internal in OpStreamingH5N5SequenceReaderS.expandGlobStrings(h5file, h5GlobStrings)) except ( OpStreamingH5N5SequenceReaderS.WrongFileTypeError, OpStreamingH5N5SequenceReaderS.NotTheSameFileError, OpStreamingH5N5SequenceReaderS.NoInternalPlaceholderError, OpStreamingH5N5SequenceReaderS.ExternalPlaceholderError): pass try: OpStreamingH5N5SequenceReaderM.checkGlobString(h5GlobStrings) filenames.extend( "{}/{}".format(external, internal) for external, internal in zip(*OpStreamingH5N5SequenceReaderM.expandGlobStrings(h5GlobStrings)) ) except ( OpStreamingH5N5SequenceReaderM.WrongFileTypeError, OpStreamingH5N5SequenceReaderM.SameFileError, OpStreamingH5N5SequenceReaderM.NoExternalPlaceholderError, OpStreamingH5N5SequenceReaderM.InternalPlaceholderError): pass self._updateFileList(filenames)
def _applyPattern(self): globStrings = encode_from_qstring(self.patternEdit.text()) filenames = OpStackLoader.expandGlobStrings(globStrings) self._updateFileList(filenames)
def _applyPattern(self): globStrings = encode_from_qstring(self.patternEdit.text()) filenames = OpStackLoader.expandGlobStrings(globStrings) self._updateFileList(filenames)