X-Git-Url: http://www.iramuteq.org/git?a=blobdiff_plain;f=chemins.py;h=91efc9ad592b818348a305e3850ce0072132b255;hb=refs%2Fheads%2F3.0;hp=b441a325f7f738d52ee7a142675fdf9e6a9e0d29;hpb=7fb5b2b86f6c9a0617208ee85211177c23d12f47;p=iramuteq diff --git a/chemins.py b/chemins.py index b441a32..91efc9a 100644 --- a/chemins.py +++ b/chemins.py @@ -1,16 +1,30 @@ -#!/bin/env python # -*- coding: utf-8 -*- #Author: Pierre Ratinaud -#Copyright (c) 2008 Pierre Ratinaud -#Lisense: GNU/GPL +#Copyright (c) 2008-2020 Pierre Ratinaud +#modification pour python 3 : Laurent Mérat, 6x7 - mai 2020 +#License: GNU/GPL +#------------------------------------ +# import des modules python +#------------------------------------ import os +import sys import tempfile import logging + log = logging.getLogger('iramuteq.chemins') +def normpath_win32(path) : + if not sys.platform == 'win32' : + return path + while '\\\\' in path : + path = path.replace('\\\\', '\\') + if sys.platform == 'win32' and path.startswith('\\') and not path.startswith('\\\\') : + path = '\\' + path + return path + class PathOut : def __init__(self, filename = None, analyse_type = '', dirout = None) : if filename is not None : @@ -20,22 +34,30 @@ class PathOut : self.filename, self.fileext = os.path.splitext(self.filebasename) self.analyse = analyse_type #self.dirout = self.mkdirout(dirout) - if dirout is not None: - self.dirout = dirout + if dirout is not None: + self.dirout = os.path.abspath(dirout) elif filename is not None and dirout is None: - self.dirout = self.directory - self.d = {} + self.dirout = os.path.abspath(self.directory) + self.d = {} def mkdirout(self) : dirout = os.path.join(self.dirout, self.filename + '_' + self.analyse + '_') nb = 1 - tdirout = dirout + `nb` + tdirout = dirout + repr(nb) while os.path.exists(tdirout) : nb += 1 - tdirout = dirout + `nb` + tdirout = dirout + repr(nb) self.name = os.path.splitext(tdirout)[1] return tdirout + def makenew(self, filename, ext): + nb = 1 + newfile = '_'.join([os.path.join(self.dirout, filename), '%i' % nb]) + '.' + ext + while os.path.exists(newfile) : + nb += 1 + newfile = '_'.join([os.path.join(self.dirout, filename), '%i' % nb]) + '.' + ext + return newfile + def createdir(self, tdirout) : if not os.path.exists(tdirout) : os.mkdir(tdirout) @@ -48,20 +70,40 @@ class PathOut : self.temp = tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\') return self.temp elif key not in self.d : - return os.path.join(self.dirout, key).replace('\\', '\\\\') + f = os.path.join(self.dirout, key).replace('\\', '\\\\') + return normpath_win32(f) + #return os.path.join(self.dirout, key).replace('\\', '\\\\') else : - return os.path.join(self.dirout, self.d[key]).replace('\\', '\\\\') - + f = os.path.join(self.dirout, self.d[key]).replace('\\', '\\\\') + return normpath_win32(f) + #return os.path.join(self.dirout, self.d[key]).replace('\\', '\\\\') + def getF(self, key) : return self.__getitem__(key).replace('\\', '/') - def ffr(filename): return filename.replace('\\', '\\\\') - + def FFF(filename): return filename.replace('\\', '/') +RscriptsPath = { + 'Rfunct': 'Rfunct.R', + 'chdfunct': 'chdfunct.R', + 'Rgraph': 'Rgraph.R', + 'plotafcm': 'plotafcm.R', + 'afc_graph' : 'afc_graph.R', + #'CHD': 'CHDPOND.R', + 'CHD': 'CHD.R', + #'CHD' : 'NCHD.R', + 'chdtxt': 'chdtxt.R', + 'chdquest': 'chdquest.R', + 'pamtxt' : 'pamtxt.R', + 'anacor' : 'anacor.R', + #'anacor' : 'Nanacor.R', + 'simi' : 'simi.R', + } + def ConstructRscriptsPath(AppliPath): RScriptsPath = os.path.join(AppliPath, 'Rscripts') #print('@@@@@@@@@@@PONDERATION CHDPOND.R@@@@@@@@@@@@@@@@') @@ -112,7 +154,7 @@ def ConstructConfigPath(AppliPath, user=True): else : ConfigPath = AppliPath DictConfigPath = { - 'alceste': os.path.join(ConfigPath, 'alceste.cfg'), + 'reinert': os.path.join(ConfigPath, 'reinert.cfg'), 'key': os.path.join(ConfigPath, 'key.cfg'), 'path': os.path.join(ConfigPath, 'path.cfg'), 'preferences' : os.path.join(ConfigPath, 'iramuteq.cfg'), @@ -120,6 +162,7 @@ def ConstructConfigPath(AppliPath, user=True): 'corpus' : os.path.join(ConfigPath, 'corpus.cfg'), 'stat' : os.path.join(ConfigPath, 'stat.cfg'), 'simitxt' : os.path.join(ConfigPath, 'simitxt.cfg'), + 'matrix' : os.path.join(ConfigPath, 'matrix.cfg'), } return DictConfigPath @@ -127,6 +170,7 @@ def ConstructGlobalPath(AppliPath): ConfigPath = os.path.join(AppliPath, 'configuration') DictConfigPath = { 'global': os.path.join(ConfigPath, 'global.cfg'), + 'preferences': os.path.join(ConfigPath, 'iramuteq.cfg'), } return DictConfigPath @@ -147,6 +191,10 @@ def ConstructDicoPath(AppliPath): 'portuguese_exp': os.path.join(BasePath, 'expression_pt.txt'), 'greek' : os.path.join(BasePath, 'lexique_gr.txt'), 'greek_exp' : os.path.join(BasePath, 'expression_gr.txt'), + 'spanish' : os.path.join(BasePath, 'lexique_sp.txt'), + 'spanish_exp' : os.path.join(BasePath, 'expression_sp.txt'), + 'galician' : os.path.join(BasePath, 'lexique_gl.txt'), + 'galician_exp' : os.path.join(BasePath, 'expression_gl.txt'), } return DictPath @@ -193,7 +241,7 @@ ChdTxtPathOut = {'TableUc1': 'TableUc1.csv', 'rapport': 'RAPPORT.txt', 'pre_rapport' : 'info.txt', 'uce': 'uce.csv', - 'Rchdtxt': ffr(tempfile.mkstemp(prefix='iramuteq')[1]), + 'Rchdtxt': tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), 'arbre1': 'arbre_1.png', 'arbre2': 'arbre_2.png', 'dendro1': 'dendro1.png', @@ -217,13 +265,13 @@ ChdTxtPathOut = {'TableUc1': 'TableUc1.csv', 'AFC2DCoulSup': 'AFC2DCoulSup.png', 'AFC2DCoulEt': 'AFC2DCoulEt.png', 'AFC2DCoulCl': 'AFC2DCoulCl.png', - 'Rafc3d': ffr(tempfile.mkstemp(prefix='iramuteq')[1]), - 'R3DCoul': ffr(tempfile.mkstemp(prefix='iramuteq')[1]), + 'Rafc3d': tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), + 'R3DCoul': tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), 'RESULT_CHD': 'resultats-chd.html', 'RESULT_AFC': 'resultats-afc.html', 'Et01': 'Et01.csv', - 'Rchdquest':ffr(tempfile.mkstemp(prefix='iramuteq')[1]), - 'RTxtProfGraph':ffr(tempfile.mkstemp(prefix='iramuteq')[1]), + 'Rchdquest':tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), + 'RTxtProfGraph':tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), 'typelist': 'typelist.csv', 'concord':'concordancier.csv', 'bduceforme':'bduceforme.csv', @@ -271,18 +319,17 @@ def StatTxtPathOut(pathout): } return d -def construct_simipath(pathout): - d = {'mat01' : ffr(os.path.join(pathout, 'mat01.csv')), - 'matsimi' : ffr(os.path.join(pathout, 'matsimi.csv')), - 'eff' : ffr(os.path.join(pathout, 'eff.csv')), - 'RData' : ffr(os.path.join(pathout, 'RData.RData')), - 'liste_graph' : os.path.join(pathout, 'liste_graph.txt'), - 'ira' : os.path.join(pathout, 'Analyse.ira'), - 'film' : ffr(pathout), - 'db' : os.path.join(pathout, 'analyse.db'), - 'corpus' : os.path.join(pathout, 'corpus.db'), - } - return d +# ??? +#def construct_simipath(pathout): +# d = {'mat01' : 'mat01.csv', +# 'matsimi' : 'matsimi.csv', +# 'eff' : 'eff.csv', +# 'RData' : 'RData.RData', +# 'liste_graph' : 'liste_graph.txt', +# 'ira' : 'Analyse.ira', +# 'film' : '', +# 'db' : 'analyse.db', +# } simipath = {'mat01' : 'mat01.csv', 'matsimi' : 'matsimi.csv',