#print args
#print options
-
import sys
reload(sys)
import locale
import wx.html
import wx.grid
import wx.lib.hyperlink as hl
-#from wx.lib.wordwrap import wordwrap
#------------------------------------
from functions import BugReport, PlaySound, ReadLexique, History, DoConf, ReadDicoAsDico, progressbar
from checkversion import NewVersion
from textdist import PamTxt
from textstat import Stat
from textaslexico import Lexico
-from textsimi import SimiTxt
+from textsimi import SimiTxt, SimiFromCluster
from textwordcloud import WordCloud
from profile_segment import ProfileSegment
from textcheckcorpus import checkcorpus
from openanalyse import OpenAnalyse
from corpusNG import BuildFromAlceste, Builder
from sheet import MySheet
-from checkinstall import CreateIraDirectory, CheckRPath, FindRPAthWin32, FindRPathNix, CheckRapp, CheckRPackages, IsNew, UpgradeConf, CopyConf, RLibsAreInstalled
+from checkinstall import CreateIraDirectory, CheckRPath, FindRPAthWin32, FindRPathNix, CheckRPackages, IsNew, UpgradeConf, CopyConf, RLibsAreInstalled
from chemins import ConstructRscriptsPath, ConstructConfigPath, ConstructDicoPath, ConstructGlobalPath, PathOut
from parse_factiva_xml import ImportFactiva
from tree import LeftTree
else :
sys.setdefaultencoding(locale.getpreferredencoding())
#chemin de l'application
-
AppliPath = os.path.abspath(os.path.dirname(os.path.realpath(sys.argv[0])))
#chemin des images
ImagePath = os.path.join(AppliPath, 'images')
#Si pas de fichiers de config utilisateur, on cree le repertoire
CreateIraDirectory(UserConfigPath, AppliPath)
#fichiers log pour windows (py2exe)
-print 'PLUS DE LOG !!!!!!!!!!'
-print 'LOGGING TEST'
log = logging.getLogger('iramuteq')
fh = logging.FileHandler(os.path.join(UserConfigPath,'stdout.log'))
ch = logging.StreamHandler()
-formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
+formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)
log.addHandler(ch)
log.addHandler(fh)
log.setLevel(logging.INFO)
-#debug = False
-#if not debug :
-# if sys.platform == 'win32' or sys.platform == 'darwin':
-# sys.stdout = open(os.path.join(UserConfigPath,'stdout.log'), 'w')
-# sys.stderr = open(os.path.join(UserConfigPath,'stderr.log'), 'w')
-#chemin des fichiers de configuration utilisateur
-#print sys.argv[0]
+
+
+class writer(object):
+ def write(self, data):
+ if data.strip() != '' :
+ log.info('BUG : %s' % data)
+sys.stderr = writer()
ConfigPath = ConstructConfigPath(UserConfigPath)
#####################################################################
self.images_path = os.path.join(AppliPath,'images')
self.UserConfigPath = UserConfigPath
self.RscriptsPath = ConstructRscriptsPath(AppliPath)
- self.DictPath = ConstructDicoPath(AppliPath)
+ #self.DictPath = ConstructDicoPath(AppliPath)
+ self.DictPath = ConstructDicoPath(UserConfigPath)
self.ConfigGlob = ConfigGlob
self.ConfigPath = ConstructConfigPath(UserConfigPath)
self.pref = RawConfigParser()
+ #workaround for import problem
+ self.SimiFromCluster = SimiFromCluster
#langues
mylocale = wx.Locale(wx.LANGUAGE_FRENCH)
mylocale.AddCatalogLookupPathPrefix(os.path.join(AppliPath,'locale'))
# CenterPane())
self._mgr.AddPane(IntroPanel(self), aui.AuiPaneInfo().Name("Intro_Text").
CenterPane())
- if not os.path.exists(os.path.join(UserConfigPath, 'history.db')) :
- with open(os.path.join(UserConfigPath, 'history.db'), 'w') as f :
- f.write('')
+ #if not os.path.exists(os.path.join(UserConfigPath, 'history.db')) :
+ # with open(os.path.join(UserConfigPath, 'history.db'), 'w') as f :
+ # f.write('')
self.history = History(os.path.join(UserConfigPath, 'history.db'))
self.tree = LeftTree(self)
self._mgr.AddPane(self.tree, aui.AuiPaneInfo().Name("lefttree").Caption("Navigateur").
self.Sheet = MySheet(self)
#self._mgr.AddPane(self.Sheet, wx.aui.AuiPaneInfo().Name("Data").CenterPane())
self._mgr.AddPane(self.Sheet, aui.AuiPaneInfo().Name("Data").CenterPane())
- #self.nb.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnCloseTab)
self.nb.Bind(aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnCloseTab)
self.nb.Bind(aui.EVT_AUINOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
# add the toolbars to the manager
Le chemin de l'executable de R n'a pas été trouvé.
Si R n'est pas installé, vous devez l'installer (http://www.r-project.org/).
Si R n'est pas installé dans le répertoire par défaut
-(C:\Program Files\R\R-2.x.x\R.exe sous windows ou /usr/bin/R sous linux ou Mac Os X)
+(souvent C:\Program Files\R\R-2.x.x\R.exe sous windows ou /usr/bin/R sous linux ou Mac Os X)
vous devez signaler le chemin de l'éxecutable de R dans les préférences."""
dlg = wx.MessageDialog(self, msg, u"Problème de configuration", wx.OK | wx.NO_DEFAULT | wx.ICON_WARNING)
dlg.CenterOnParent()
if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]:
evt.Veto()
- else :
- print 'ok'
- if sys.platform == 'darwin':
- self.Rapp = self.PathPath.get('PATHS', 'rapp')
- RappOk = CheckRapp(self.Rapp)
+ dlg.Destroy()
self.DataPop = False
self.DataTxt = False
self.Text = ''
self._mgr.UnInit()
del self._mgr
self.Destroy()
- ##FIXME
#if sys.platform == 'win32' :
# os.system("taskkill /im iramuteq.exe /f")
# print 'meurtre de process'
self.tree.GiveFocus(uuid=npage.parametres['uuid'])
def OnCloseTab(self, evt):
- log.info('Closing tab %s' % str(evt.GetEventObject()))
+ #log.info('Closing tab %s' % str(evt.GetEventObject()))
ctrl = evt.GetEventObject()
if isinstance(ctrl.GetParent(), aui.AuiNotebook) or isinstance(ctrl.GetParent(), wx.Panel):
notebook = True
else :
notebook = False
page = self.nb.GetPage(self.nb.GetSelection())
- if 'parametres' in dir(page) :
+ if 'parametres' in dir(page) and isinstance(ctrl.GetParent(), IraFrame) :
self.history.rmtab(page.parametres)
self.tree.CloseItem(uuid = page.parametres['uuid'])
TabTitle = self.nb.GetPageText(self.nb.GetSelection())
def OnAcceuil(self, event):
self.ShowAPane(u"Intro_Text")
event.Skip()
- #???
-# def OnCreateTab(self, event):
-# if not self._mgr.GetPane("Tab_content").name == "Tab_content":
-# self._mgr.AddPane(self.CreateTabCtrl(), aui.AuiPaneInfo().
-# Name("Tab_content").
-# CenterPane())
-# self._mgr.GetPane("Intro_Text").Hide()
-# self._mgr.GetPane("Tab_content").Show()
-# self.ctrl.Bind(aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnCloseTab)
-# else :
-# page = wx.TextCtrl(self, -1, str(text), style=wx.TE_MULTILINE)
-# self.ctrl.AddPage(page, "qsdqsd")
-# self.ctrl.SetSelection(self.ctrl.GetPageCount() - 1)
-# self._mgr.Update()
-
def CreateHTMLCtrl(self):
ctrl = wx.html.HtmlWindow(self, -1, wx.DefaultPosition, wx.Size(400, 300))
BugReport(self)
def OnSimiTxt(self, evt, corpus = None) :
- print 'PLUS DE BUG SUR SIMITXT'
- #try :
+ # print 'PLUS DE BUG SUR SIMITXT'
+ try :
#self.Text = SimiTxt(self)
+ if corpus is None :
+ corpus = self.tree.getcorpus()
self.Text = SimiTxt(self, corpus, parametres = {'type': 'simitxt'}, dlg = progressbar(self, 3))
if self.Text.val == wx.ID_OK :
PlaySound(self)
- #except :
- # BugReport(self)
+ except :
+ BugReport(self)
def OnWordCloud(self, evt, corpus = None) :
# print 'PLUS DE BUG SUR WORDCLOUD'
try :
+ if corpus is None :
+ corpus = self.tree.getcorpus()
self.Text = WordCloud(self, corpus, parametres = {'type' : 'wordcloud'}, dlg = progressbar(self, 3))
if self.Text.val == wx.ID_OK :
PlaySound(self)
def OnTextStat(self, event, corpus = None):
print 'PAS DE BUG SUR TEXT STAT'
#try:
+ if corpus is None :
+ corpus = self.tree.getcorpus()
self.Text = Stat(self, corpus, parametres = {'type': 'stat'}, dlg = progressbar(self, 7))
if self.Text.val == wx.ID_OK :
#try:
#self.Text = AsLexico(self)
print('ATTENTION : PLUS DE BUG SUR LEXICO')
+ if corpus is None :
+ corpus = self.tree.getcorpus()
self.Text = Lexico(self, corpus, parametres = {'type' : 'spec'}, dlg = progressbar(self, 3))
if self.Text.val == wx.ID_OK :
PlaySound(self)
BugReport(self)
def OnTextAlceste(self, event, corpus = None):
- #try:
- print('ATTENTION : PLUS DE BUG SUR ALCESTE')
+ try:
+ #print('ATTENTION : PLUS DE BUG SUR ALCESTE')
#RunAnalyse(self, corpus, Alceste, OptAlceste)
+ if corpus is None :
+ corpus = self.tree.getcorpus()
self.Text = Alceste(self, corpus, parametres = {'type': 'alceste'}, dlg = progressbar(self,6))
- #self.history.addtab(self.Text.parametres)
- #OpenAnalyse(self, self.Text.parametres['ira'])
if self.Text.val == wx.ID_OK:
PlaySound(self)
- #except:
- # BugReport(self)
+ except:
+ BugReport(self)
def OnPamSimple(self, event):
try:
bmp = wx.Image(os.path.join(ImagePath, 'splash.png')).ConvertToBitmap()
wx.SplashScreen.__init__(self, bmp,
wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,
- 3000, None, -1)
+ 2000, None, -1)
self.Bind(wx.EVT_CLOSE, self.OnClose)
- self.fc = wx.FutureCall(1500, self.ShowMain)
+ self.fc = wx.FutureCall(1, self.ShowMain)
def OnClose(self, evt):
evt.Skip()
self.ShowMain()
def ShowMain(self):
- frame = IraFrame(None, -1, "IRaMuTeQ " + ConfigGlob.get('DEFAULT', 'version'), size=(950, 650))
+ frame = IraFrame(None, -1, "IRaMuTeQ " + ConfigGlob.get('DEFAULT', 'version'), size=(1100, 800))
frame.Show()
frame.Upgrade()
frame.OnOpenFromCmdl()
Create and show the splash screen. It will then create and show
the main frame when it is time to do so.
"""
-
wx.SystemOptions.SetOptionInt("mac.window-plain-transition", 1)
self.SetAppName("Iramuteq")
splash = MySplashScreen()