@@ -2392,8 +2392,8 @@ def OnDysnomia(event):
23922392 # G2frame.Bind(wx.EVT_MENU, lambda event:G2phsG2.OnLoadDysnomia(event,G2frame,data), id=G2G.wxID_LOADDYSNOMIA)
23932393 # G2frame.Bind(wx.EVT_MENU, lambda event:G2phsG2.OnSaveDysnomia(event,G2frame,data), id=G2G.wxID_SAVEDYSNOMIA)
23942394 # G2frame.Bind(wx.EVT_MENU, lambda event:G2phsG2.OnRunDysnomia(event,G2frame,data), id=G2G.wxID_RUNDYSNOMIA)
2395- G2frame.Bind(wx.EVT_MENU, OnLoadDysnomia, id=G2G.wxID_LOADDYSNOMIA)
2396- G2frame.Bind(wx.EVT_MENU, OnSaveDysnomia, id=G2G.wxID_SAVEDYSNOMIA)
2395+ # G2frame.Bind(wx.EVT_MENU, OnLoadDysnomia, id=G2G.wxID_LOADDYSNOMIA)
2396+ # G2frame.Bind(wx.EVT_MENU, OnSaveDysnomia, id=G2G.wxID_SAVEDYSNOMIA)
23972397 G2frame.Bind(wx.EVT_MENU, OnRunDysnomia, id=G2G.wxID_RUNDYSNOMIA)
23982398 G2frame.phaseDisplay.InsertPage(7,G2frame.MEMData,'Dysnomia')
23992399 Id = wx.NewId()
@@ -5854,25 +5854,45 @@ def OnReImport(event):
58545854
58555855#### Dysnomia (MEM) Data page ##############################################################################
58565856
5857- def OnLoadDysnomia(event):
5858- print('Load MEM - might not be implemented')
5857+ # def OnLoadDysnomia(event):
5858+ # print('Load MEM - might not be implemented')
58595859
5860- def OnSaveDysnomia(event):
5861- print('Save MEM - might not be implemented')
5860+ # def OnSaveDysnomia(event):
5861+ # print('Save MEM - might not be implemented')
58625862
58635863 def OnRunDysnomia(event):
58645864
5865- path2GSAS2 = os.path.dirname(os.path.abspath(os.path.expanduser(__file__)))
5866- DYSNOMIA = os.path.join(path2GSAS2,'Dysnomia','Dysnomia64.exe')
5867- DysData = data['Dysnomia']
5865+ if sys.platform == "win32":
5866+ binimage = 'Dysnomia64.exe'
5867+ else:
5868+ binimage = 'Dysnomia'
5869+ is_exe = lambda fpath: os.path.isfile(fpath) and os.access(fpath, os.X_OK)
58685870
5869- if not os.path.exists(DYSNOMIA):
5870- wx.MessageBox(''' Dysnomia is not installed. Please download it from
5871- https://jp-minerals.org/dysnomia/en/
5872- and install it at.'''+DYSNOMIA,
5873- caption='Dysnomia not installed',style=wx.ICON_ERROR)
5871+ path2GSAS2 = os.path.dirname(os.path.abspath(os.path.expanduser(__file__)))
5872+ pathlist = (GSASIIpath.path2GSAS2,
5873+ os.path.expanduser('~'),
5874+ os.path.expanduser(os.path.join('~','.GSASII')))
5875+ locations = []
5876+ for path in pathlist:
5877+ DYSNOMIA = os.path.join(path,'Dysnomia',binimage)
5878+ locations.append(DYSNOMIA)
5879+ if not os.path.exists(DYSNOMIA): continue
5880+ if is_exe(DYSNOMIA):
5881+ break
5882+ else:
5883+ print(f"File {binimage!r} not found."
5884+ f"\nThe following locations were checked:\n\t{'\n\t'.join(locations)}")
5885+ msg = f'''Dysnomia is not installed. Please download it from
5886+ https://jp-minerals.org/dysnomia/en/ and install the
5887+ downloaded directory (which includes file {binimage!r})
5888+ at one of the following locations:
5889+ \t{'\n\t'.join(pathlist)}'''
5890+ G2G.ShowWebPage("https://jp-minerals.org/dysnomia/en/",G2frame)
5891+ G2G.ShowScrolledInfo(G2frame,msg,header='Install Dysnomia',
5892+ width=350,height=150)
58745893 return
58755894
5895+ DysData = data['Dysnomia']
58765896 generalData = data['General']
58775897 Map = generalData['Map']
58785898 UseList = Map['RefList']
@@ -13145,8 +13165,8 @@ def FillMenus():
1314513165 # Dysnomia (MEM)
1314613166 if data['General']['doDysnomia']:
1314713167 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.MEMMenu)
13148- G2frame.Bind(wx.EVT_MENU,OnLoadDysnomia,id=G2G.wxID_LOADDYSNOMIA)
13149- G2frame.Bind(wx.EVT_MENU,OnSaveDysnomia,id=G2G.wxID_SAVEDYSNOMIA)
13168+ # G2frame.Bind(wx.EVT_MENU,OnLoadDysnomia,id=G2G.wxID_LOADDYSNOMIA)
13169+ # G2frame.Bind(wx.EVT_MENU,OnSaveDysnomia,id=G2G.wxID_SAVEDYSNOMIA)
1315013170 G2frame.Bind(wx.EVT_MENU,OnRunDysnomia,id=G2G.wxID_RUNDYSNOMIA)
1315113171 # Stacking faults
1315213172 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.LayerData)
0 commit comments