コード例 #1
0
ファイル: dicteditor.py プロジェクト: cheesinglee/spyder
 def import_from_string(self, text, title=None):
     """Import data from string"""
     data = self.model.get_data()
     editor = ImportWizard(self, text, title=title,
                           contents_title=translate("DictEditor",
                                                    "Clipboard contents"),
                           varname=fix_reference_name("data",
                                                      blacklist=data.keys()))
     if editor.exec_():
         var_name, clip_data = editor.get_data()
         self.new_value(var_name, clip_data)
コード例 #2
0
 def import_data(self):
     sock = self.shellwidget.monitor_socket
     
     title = self.tr("Import data")
     if self.filename is None:
         basedir = os.getcwdu()
     else:
         basedir = osp.dirname(self.filename)
     filename = iofunctions.get_open_filename(self, basedir, title)
     if filename:
         filename = unicode(filename)
     else:
         return
     self.filename = filename
     ext = osp.splitext(self.filename)[1].lower()
     
     if ext not in iofunctions.load_funcs:
         buttons = QMessageBox.Yes | QMessageBox.Cancel
         answer = QMessageBox.question(self, title,
                    self.tr("<b>Unsupported file type '%1'</b><br><br>"
                            "Would you like to import it as a text file?") \
                    .arg(ext), buttons)
         if answer == QMessageBox.Cancel:
             return
         else:
             load_func = 'import_wizard'
     else:
         load_func = iofunctions.load_funcs[ext]
         
     if isinstance(load_func, basestring): # 'import_wizard' (self.setup_io)
         # Import data with import wizard
         error_message = None
         try:
             text, _encoding = encoding.read(self.filename)
             base_name = osp.basename(self.filename)
             editor = ImportWizard(self, text, title=base_name,
                                   varname=fix_reference_name(base_name))
             if editor.exec_():
                 var_name, clip_data = editor.get_data()
                 monitor_set_global(sock, var_name, clip_data)
         except Exception, error:
             error_message = str(error)
コード例 #3
0
ファイル: dicteditor.py プロジェクト: Brainsciences/luminoso
    def import_from_string(self, text, title=None):
        """Import data from string"""
#        if isinstance(text, basestring):
#            text = QString(text)
        data = self.model.get_data()
        varname_base = translate("DictEditor", "new")
        try:
            varname_base = str(varname_base)
        except UnicodeEncodeError:
            varname_base = unicode(varname_base)
        get_varname = lambda index: varname_base + ("%03d" % index)
        index = 0
        while get_varname(index) in data:
            index += 1
        editor = ImportWizard(self, text, title=title,
                              contents_title=translate("DictEditor",
                                                       "Clipboard contents"),
                              varname=get_varname(index))
        if editor.exec_():
            var_name, clip_data = editor.get_data()
            data[var_name] = clip_data
            self.set_data(data)
コード例 #4
0
 def import_from_string(self, text, title=None):
     """Import data from string"""
     #        if isinstance(text, basestring):
     #            text = QString(text)
     data = self.model.get_data()
     varname_base = translate("DictEditor", "new")
     try:
         varname_base = str(varname_base)
     except UnicodeEncodeError:
         varname_base = unicode(varname_base)
     get_varname = lambda index: varname_base + ("%03d" % index)
     index = 0
     while get_varname(index) in data:
         index += 1
     editor = ImportWizard(self,
                           text,
                           title=title,
                           contents_title=translate("DictEditor",
                                                    "Clipboard contents"),
                           varname=get_varname(index))
     if editor.exec_():
         var_name, clip_data = editor.get_data()
         data[var_name] = clip_data
         self.set_data(data)
コード例 #5
0
    def import_data(self, filenames=None):
        """Import data from text file"""
        title = _("Import data")
        if filenames is None:
            if self.filename is None:
                basedir = getcwd()
            else:
                basedir = osp.dirname(self.filename)
            filenames, _selfilter = getopenfilenames(self, title, basedir,
                                                     iofunctions.load_filters)
            if not filenames:
                return
        elif is_text_string(filenames):
            filenames = [filenames]

        for filename in filenames:
            self.filename = to_text_string(filename)
            ext = osp.splitext(self.filename)[1].lower()

            if ext not in iofunctions.load_funcs:
                buttons = QMessageBox.Yes | QMessageBox.Cancel
                answer = QMessageBox.question(self, title,
                            _("<b>Unsupported file extension '%s'</b><br><br>"
                              "Would you like to import it anyway "
                              "(by selecting a known file format)?"
                              ) % ext, buttons)
                if answer == QMessageBox.Cancel:
                    return
                formats = list(iofunctions.load_extensions.keys())
                item, ok = QInputDialog.getItem(self, title,
                                                _('Open file as:'),
                                                formats, 0, False)
                if ok:
                    ext = iofunctions.load_extensions[to_text_string(item)]
                else:
                    return

            load_func = iofunctions.load_funcs[ext]
                
            # 'import_wizard' (self.setup_io)
            if is_text_string(load_func):
                # Import data with import wizard
                error_message = None
                try:
                    text, _encoding = encoding.read(self.filename)
                    if self.is_internal_shell:
                        self.editor.import_from_string(text)
                    else:
                        base_name = osp.basename(self.filename)
                        editor = ImportWizard(self, text, title=base_name,
                                      varname=fix_reference_name(base_name))
                        if editor.exec_():
                            var_name, clip_data = editor.get_data()
                            monitor_set_global(self._get_sock(),
                                               var_name, clip_data)
                except Exception as error:
                    error_message = str(error)
            else:
                QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
                QApplication.processEvents()
                if self.is_internal_shell:
                    namespace, error_message = load_func(self.filename)
                    interpreter = self.shellwidget.interpreter
                    for key in list(namespace.keys()):
                        new_key = fix_reference_name(key,
                                     blacklist=list(interpreter.namespace.keys()))
                        if new_key != key:
                            namespace[new_key] = namespace.pop(key)
                    if error_message is None:
                        interpreter.namespace.update(namespace)
                else:
                    error_message = monitor_load_globals(self._get_sock(),
                                                         self.filename, ext)
                QApplication.restoreOverrideCursor()
                QApplication.processEvents()
    
            if error_message is not None:
                QMessageBox.critical(self, title,
                                     _("<b>Unable to load '%s'</b>"
                                       "<br><br>Error message:<br>%s"
                                       ) % (self.filename, error_message))
            self.refresh_table()