QGIS/python/plugins/processing/algs/saga/SagaDescriptionCreator.py
Matthias Kuhn bb79d13e82 Remove deprecated Qgis::WKBType and API cleanup (#3325)
* Remove deprecated Qgis::WKBType and API cleanup

Renames QgsWKBTypes to QgsWkbTypes

Replaces usage of the enums:

* Qgis::WKBType with QgsWkbTypes::Type
* Qgis::GeometryType with QgsWkbTypes::GeometryType

Their values should be forward compatible (a fact that was already
explited up to now by casting between the types)

Renames some SSLxxx to SslXxx and URIxxx to UriXxx

* Fix build warnings and simplify type handling

* Add a fixer to rewrite imports

* The forgotten rebase conflictThe forgotten rebase conflicts

* QgsDataSourcURI > QgsDataSourceUri

* QgsWKBTypes > QgsWkbTypes

* Qgis.WKBGeom > QgsWkbTypes.Geom

* Further python fixes

* Guess what... Qgis::wkbDimensions != QgsWkbTypes::wkbDimensions

* Fix tests

* Python 3 updates

* [travis] pull request caching cannot be disabled

so at least use it in r/w mode

* Fix python3 print in plugins
2016-08-04 09:10:08 +02:00

103 lines
3.3 KiB
Python

# -*- coding: utf-8 -*-
"""
***************************************************************************
SagaDescriptionCreator.py
---------------------
Date : August 2012
Copyright : (C) 2012 by Victor Olaya
Email : volayaf at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************
"""
from __future__ import print_function
__author__ = 'Victor Olaya'
__date__ = 'August 2012'
__copyright__ = '(C) 2012, Victor Olaya'
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = '$Format:%H$'
import subprocess
import os
class SagaDescriptionCreator:
def createLibraryFiles(self):
f = open('c:\\saga\\sagalibs.txt')
for lib in f:
lib = lib.strip('\n')
command = ['c:\\saga\\saga_cmd.exe', lib]
f2 = open('c:\\saga\\desc\\' + lib + '.sagalib', 'w')
subprocess.Popen(
command,
shell=True,
stdout=f2,
stdin=open(os.devnull),
stderr=subprocess.STDOUT,
universal_newlines=True,
)
f2.close()
f.close()
def createLibraryMap(self):
self.map = {}
for libFile in os.listdir('c:\\saga\\desc'):
if libFile.endswith('sagalib'):
# fix_print_with_import
print(libFile)
algs = []
f = open(os.path.join('c:\\saga\\desc', libFile))
for line in f:
line = line.strip('\n').strip(' ')
digit = line.split('\t')[0]
# fix_print_with_import
print(digit)
if digit.isdigit():
algs.append(digit)
self.map[libFile[:-8]] = algs
f.close()
# fix_print_with_import
print(unicode(self.map))
def createDescriptionFiles(self):
for lib in self.map.keys():
algs = self.map[lib]
for alg in algs:
command = ['c:\\saga\\saga_cmd.exe', lib, alg]
f = open('c:\\saga\\desc\\' + lib + '_' + alg + '.txt', 'w')
# fix_print_with_import
print(unicode(command))
subprocess.Popen(
command,
shell=True,
stdout=f,
stdin=open(os.devnull),
stderr=f,
universal_newlines=True,
)
f.close()
def create(self):
self.createLibraryMap()
self.createDescriptionFiles()
def main():
SagaDescriptionCreator().create()
if __name__ == '__main__':
main()