X-Git-Url: http://www.iramuteq.org/git?a=blobdiff_plain;f=chemins.py;h=91efc9ad592b818348a305e3850ce0072132b255;hb=refs%2Fheads%2F3.0;hp=6b124ef151d999313ea6fb7beebbfffc44db5d46;hpb=2ffa9388c45dce689bb45c1cf6c7ad81d2636409;p=iramuteq diff --git a/chemins.py b/chemins.py index 6b124ef..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,17 +70,20 @@ 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('\\', '/') @@ -129,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'), @@ -137,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 @@ -144,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 @@ -166,6 +193,8 @@ def ConstructDicoPath(AppliPath): '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 @@ -212,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', @@ -236,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', @@ -290,6 +319,7 @@ def StatTxtPathOut(pathout): } return d +# ??? #def construct_simipath(pathout): # d = {'mat01' : 'mat01.csv', # 'matsimi' : 'matsimi.csv',