X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=functions.py;h=6ad088dc9dcd063d8b0ed63910144e2c34a4fb66;hp=a26731b9405ee12015ab8bfd75d8c0e989c69818;hb=434a6105156cca276a69c294c8b99369cf41c66f;hpb=a0535abfee0078cf316bdd7cafcaa04805c086e9 diff --git a/functions.py b/functions.py index a26731b..6ad088d 100644 --- a/functions.py +++ b/functions.py @@ -30,6 +30,15 @@ log = logging.getLogger('iramuteq') indices_simi = [u'cooccurrence' ,'pourcentage de cooccurrence',u'Russel',u'Jaccard', 'Kulczynski1', 'Kulczynski2', 'Mountford', 'Fager', 'simple matching', 'Hamman', 'Faith', 'Tanimoto', 'Dice', 'Phi', 'Stiles', 'Michael', 'Mozley', 'Yule', 'Yule2', 'Ochiai', 'Simpson', 'Braun-Blanquet','Chi-squared', 'Phi-squared', 'Tschuprow', 'Cramer', 'Pearson', 'binomial'] +def normpath_win32(path) : + if not sys.platform == 'win32' : + return path + while '\\\\' in path : + path = path.replace('\\\\', '\\') + if path.startswith('\\') and not path.startswith('\\\\') : + path = '\\' + path + return path + class TGen : def __init__(self, path = None, encoding = 'utf8'): self.path = path @@ -39,7 +48,9 @@ class TGen : def __getitem__(self, key): return self.tgen[key] - def read(self, path): + def read(self, path = None): + if path is None : + path = self.path with codecs.open(path, 'r', self.encoding) as f : tgen = f.read() tgen = [line.split('\t') for line in tgen.splitlines()] @@ -197,7 +208,9 @@ class DoConf : def __init__(self, configfile=None, diff = None, parametres = None) : self.configfile = configfile self.conf = ConfigParser() + if configfile is not None : + configfile = normpath_win32(configfile) self.conf.readfp(codecs.open(configfile, 'r', 'utf8')) self.parametres = {} if parametres is not None : @@ -253,8 +266,9 @@ class DoConf : txt += '%s = %s\n' % (option, `parametres[i][option]`) if outfile is None : outfile = self.configfile - with codecs.open(outfile, 'w', 'utf8') as f : - f.write(txt) + outfile = normpath_win32(outfile) + with open(outfile, 'w') as f : + f.write(txt.encode('utf8')) #self.conf.write(f) def totext(self, parametres) : @@ -364,15 +378,8 @@ def treat_line_alceste(i, line) : return [i, int(line[0]), int(line[1]), float(line[2]), float(line[3]), line[6], line[4], line[5]] def ReadProfileAsDico(File, Alceste=False, encoding = sys.getdefaultencoding()): - #print 'lecture des profils : ReadProfileAsDico' - #if Alceste : - # print 'lecture du dictionnaire de type' - # dictlem = {} - # for line in parent.corpus.lem_type_list : - # dictlem[line[0]] = line[1] dictlem = {} print 'lecture des profiles' - #encoding = sys.getdefaultencoding() FileReader = codecs.open(File, 'r', encoding) Filecontent = FileReader.readlines() FileReader.close() @@ -406,17 +413,17 @@ def GetTxtProfile(dictprofile, cluster_size) : return '\n\n'.join(proflist) def formatExceptionInfo(maxTBlevel=5): - cla, exc, trbk = sys.exc_info() - try : - excName = cla.__name__ - except : - excName = 'None' - try: - excArgs = exc.args[0] - except : - excArgs = "" - excTb = traceback.format_tb(trbk, maxTBlevel) - return (excName, excArgs, excTb) + cla, exc, trbk = sys.exc_info() + try : + excName = cla.__name__ + except : + excName = 'None' + try: + excArgs = exc.args[0] + except : + excArgs = "" + excTb = traceback.format_tb(trbk, maxTBlevel) + return (excName, excArgs, excTb) #fonction des etudiants de l'iut @@ -481,6 +488,7 @@ exceptions = {'paragrapheOT' : u"Un problème de formatage (présence d'un marqu 'EmptyText' : u"Texte vide (probablement un problème de formatage du corpus). Le problème est apparu à la ligne ", 'CorpusEncoding' : u"Problème d'encodage.", 'TextBeforeTextMark' : u"Problème de formatage : du texte avant le premier marqueur de texte (****). Le problème est survenu à la ligne ", + 'MissingAnalyse' : u'Aucun fichier à cet emplacement :\n', } def BugReport(parent, error = None): @@ -507,7 +515,7 @@ def BugReport(parent, error = None): txt += u'*************************************\n' txt += '\n'.join(excTb).replace(' ', ' ') txt += excName + '\n' - txt += exc + txt += `exc` title = "Bug" dial = BugDialog(parent, **{'title' : title}) @@ -544,7 +552,10 @@ def ReadLexique(parent, lang = 'french', filein = None): else : parent.lexique = ReadDicoAsDico(filein) else : - parent.lexique = {} + if filein is None : + parent.lexique = {} + else : + parent.lexique = ReadDicoAsDico(filein) def ReadList(filein, encoding = sys.getdefaultencoding(), sep = ';'): #file = open(filein) @@ -676,7 +687,6 @@ def progressbar(self, maxi) : else : parent = self try : - print '###horrible hack progressbar' maxi = int(maxi) except : maxi = 1