Exemple #1
0
    def startODBCAdmin():
        path = get_exe_path('iodbcadm-gtk')
        if not path:
            path = get_exe_path('ODBCManageDataSourcesQ4')

        if path:
            subprocess.Popen(path, shell=True, close_fds=True)
            return 1
        else:
            return 0
    def startODBCAdmin():
        path = get_exe_path('iodbcadm-gtk')
        if not path:
            path = get_exe_path('ODBCManageDataSourcesQ4')

        if path:
            subprocess.Popen(path, shell=True, close_fds=True)
            return 1
        else:
            return 0
 def check_ogr_executables(self):
     if get_exe_path("ogrinfo.exe" if sys.platform.lower() == "win32" else "ogrinfo"):
         self.ogrinfo_missing = False
         self.ogrinfo_icon.set_image("task_checked%s.png" % os_icon_suffix)
     else:
         self.ogrinfo_icon.set_image("task_warning%s.png" % os_icon_suffix)
         self.ogrinfo_missing_lbl.show(True)
     if get_exe_path("ogr2ogr.exe" if sys.platform.lower() == "win32" else "ogr2ogr"):
         self.ogr2ogr_missing = False
         self.ogr2ogr_icon.set_image("task_checked%s.png" % os_icon_suffix)
     else:
         self.ogr2ogr_icon.set_image("task_warning%s.png" % os_icon_suffix)
         self.ogr2ogr_missing_lbl.show(True)
    def check_ogr_executables(self):
        if get_exe_path("ogrinfo"):
            self.ogrinfo_missing = False
            self.ogrinfo_icon.set_image("task_checked%s.png" % os_icon_suffix)
        else:
            self.ogrinfo_icon.set_image("task_warning%s.png" % os_icon_suffix)
            self.ogrinfo_missing_lbl.show(True)

        if get_exe_path("ogr2ogr"):
            self.ogr2ogr_missing = False
            self.ogr2ogr_icon.set_image("task_checked%s.png" % os_icon_suffix)
        else:
            self.ogr2ogr_icon.set_image("task_warning%s.png" % os_icon_suffix)
            self.ogr2ogr_missing_lbl.show(True)
    def check_ogr_executables(self):
        if get_exe_path("ogrinfo"):
            self.ogrinfo_missing = False
            self.ogrinfo_icon.set_image("task_checked%s.png" % os_icon_suffix)
        else:
            self.ogrinfo_icon.set_image("task_warning%s.png" % os_icon_suffix)
            self.ogrinfo_missing_lbl.show(True)

        if get_exe_path("ogr2ogr"):
            self.ogr2ogr_missing = False
            self.ogr2ogr_icon.set_image("task_checked%s.png" % os_icon_suffix)
        else:
            self.ogr2ogr_icon.set_image("task_warning%s.png" % os_icon_suffix)
            self.ogr2ogr_missing_lbl.show(True)
    def get_info(self):
        cmd = "%s -al -so %s" % (get_exe_path("ogrinfo"), self.get_path())
        p1 = cmd_executor(cmd)
        sout, serr = p1.communicate(input)
        if serr:
            log_error("There was an error getting file information: %s" % serr)
        import re
        p = re.compile("^(\w+):\s(\w+)\s\(([0-9\.]+)\)", re.IGNORECASE)
        for line in sout.splitlines():
            if line.startswith("Layer name: "):
                self.layer_name_lbl.set_text(line.split(':')[1].strip())
                self.layer_name = line.split(':')[1].strip()
                self.table_name.set_value(line.split(':')[1].strip())
            else:
                m = p.match(line)
                if m is not None:
                    row = self.column_list.add_node()
                    row.set_bool(0, True)
                    row.set_string(1, m.group(1))

        from grt.modules import Utilities
        res = Utilities.fetchAuthorityCodeFromFile(
            "%s.prj" % os.path.splitext(self.get_path())[0])
        if res:
            self.epsg_lbl.set_text(res)
        else:
            self.epsg_lbl.set_text(0)
            log_info("Can't find EPSG fallback to 0")
    def get_info(self):
        cmd = "%s -al -so %s" % (get_exe_path("ogrinfo"), self.get_path())
        p1 = cmd_executor(cmd)
        sout, serr = p1.communicate(input)
        if serr:
            log_error("There was an error getting file information: %s" % serr)
        import re
        p = re.compile("^(\w+):\s(\w+)\s\(([0-9\.]+)\)", re.IGNORECASE)
        for line in sout.splitlines():
            if line.startswith("Layer name: "):
                self.layer_name_lbl.set_text(line.split(':')[1].strip())
                self.layer_name = line.split(':')[1].strip()
                self.table_name.set_value(line.split(':')[1].strip())
            else:
               m = p.match(line)
               if m is not None:
                    row = self.column_list.add_node()
                    row.set_bool(0, True)
                    row.set_string(1, m.group(1))

        from grt.modules import Utilities
        res = Utilities.fetchAuthorityCodeFromFile("%s.prj" % os.path.splitext(self.get_path())[0])
        if res:
            self.epsg_lbl.set_text(res)
        else:
            self.epsg_lbl.set_text(0)
            log_info("Can't find EPSG fallback to 0")
    def run(self, progress_notify):
        cmd_args = {}
        cmd_args['ogr2ogr'] = get_exe_path("ogr2ogr")
        cmd_args['host'] = self.my_host
        cmd_args['schema'] = self.my_schema
        cmd_args['user'] = self.my_user
        cmd_args['pwd'] = self.my_pwd
        cmd_args['port'] = self.my_port

        cmd = []
        cmd.append("exec")
        cmd.append(get_exe_path("ogr2ogr"))
        cmd.append("-f")
        cmd.append('"MySQL"')
        cmd.append(
            'MySQL:"%(schema)s,host=%(host)s,user=%(user)s,password=%(pwd)s,port=%(port)d"'
            % cmd_args)
        cmd.append(self.filepath)

        if self.import_table:
            cmd.append('-nln')
            cmd.append('"%s"' % self.import_table)

        if self.destination_EPSG:
            cmd.append('-t_srs')
            cmd.append('EPSG:' % self.destination_EPSG)

        if self.skipfailures:
            cmd.append('-skipfailures')

        if self.import_append:
            cmd.append('-append')

        if self.import_overwrite:
            cmd.append('-overwrite')

        if self.selected_fields:
            cmd.append('-select')
            cmd.append(self.selected_fields)

        cmd.append('-progress')
        cmd.append('-gt')
        cmd.append(str(self.features_per_transcation))
        cmd.append('-lco')
        cmd.append('GEOMETRY_NAME="%s"' % self.my_geo_column)
        cmd.append('-lco')
        cmd.append('ENGINE=InnoDb')
        cmd.append('-lco')
        if self.spatial_index:
            cmd.append('SPATIAL_INDEX=YES')
        else:
            cmd.append('SPATIAL_INDEX=NO')

        self.is_running = True
        try:
            self.execute_cmd(" ".join(cmd), progress_notify)
        except grt.UserInterrupt:
            log_info("User cancelled")
            raise
        except Exception, exc:
            import traceback
            log_error(
                "An error occured during execution of ogr2ogr file import: %s, stack: %s\n The command was: %s\n"
                % (exc, traceback.format_exc(), cmd))
            raise
    def run(self, progress_notify):
        cmd_args = {}
        cmd_args['ogr2ogr'] = get_exe_path("ogr2ogr")
        cmd_args['host'] = self.my_host
        cmd_args['schema'] = self.my_schema
        cmd_args['user'] = self.my_user
        cmd_args['pwd'] = self.my_pwd
        cmd_args['port'] = self.my_port
        
        cmd = []
        cmd.append("exec")
        cmd.append(get_exe_path("ogr2ogr"))
        cmd.append("-f")
        cmd.append('"MySQL"')
        cmd.append('MySQL:"%(schema)s,host=%(host)s,user=%(user)s,password=%(pwd)s,port=%(port)d"' % cmd_args)
        cmd.append(self.filepath)

        if self.import_table:
            cmd.append('-nln')
            cmd.append('"%s"' % self.import_table)
            
        if self.destination_EPSG:
            cmd.append('-t_srs')
            cmd.append('EPSG:' % self.destination_EPSG)

        if self.skipfailures:
            cmd.append('-skipfailures')

        if self.import_append:
            cmd.append('-append')

        if self.import_overwrite:
            cmd.append('-overwrite')

        if self.selected_fields:
            cmd.append('-select')
            cmd.append(self.selected_fields)
        
        cmd.append('-progress')
        cmd.append('-gt')
        cmd.append(str(self.features_per_transcation))
        cmd.append('-lco')
        cmd.append('GEOMETRY_NAME="%s"' % self.my_geo_column)
        cmd.append('-lco')
        cmd.append('ENGINE=InnoDb')
        cmd.append('-lco')
        if self.spatial_index:
            cmd.append('SPATIAL_INDEX=YES')
        else:
            cmd.append('SPATIAL_INDEX=NO')

        self.is_running = True
        try:
            self.execute_cmd(" ".join(cmd), progress_notify)
        except grt.UserInterrupt:
            log_info("User cancelled")
            raise
        except Exception, exc:
            import traceback
            log_error("An error occured during execution of ogr2ogr file import: %s, stack: %s\n The command was: %s\n" % (exc, traceback.format_exc(), cmd))
            raise