Changeset 3447
- Timestamp:
- Jun 23, 2018 7:46:31 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIIO.py
r3438 r3447 1199 1199 outfile = os.path.join(zloc, efil) 1200 1200 fpin = z.open(zinfo[zindex]) 1201 fpout = file(outfile, "wb")1201 fpout = open(outfile, "wb") 1202 1202 shutil.copyfileobj(fpin, fpout) 1203 1203 fpin.close() -
trunk/GSASIIctrlGUI.py
r3445 r3447 110 110 import os 111 111 import sys 112 import platform 112 113 try: 113 114 import wx … … 3388 3389 # make lists of variables of different types along with lists of parameter names, histogram #s, phase #s,... 3389 3390 self.parmNames = sorted(list(parmDict.keys())) 3391 if '2' not in platform.python_version_tuple()[0]: basestring = str 3390 3392 splitNames = [item.split(':') for item in self.parmNames if len(item) > 3 and not isinstance(self.parmDict[item],basestring)] 3391 3393 globNames = [':'.join(item) for item in splitNames if not item[0] and not item[1]] … … 3427 3429 for name in self.choiceDict[self.parmChoice]: 3428 3430 # skip entries without numerical values 3431 if '2' not in platform.python_version_tuple()[0]: basestring = str 3429 3432 if isinstance(self.parmDict[name],basestring): continue 3430 3433 if 'Refined' in self.listSel and (name not in self.fullVaryList -
trunk/GSASIIdataGUI.py
r3446 r3447 2646 2646 win.Center() 2647 2647 2648 def __init__(self, parent): 2649 self.ExportLookup = {} 2650 self.exporterlist = [] 2651 self._init_ctrls(parent) 2652 self.Image = wx.Image( 2653 os.path.join(GSASIIpath.path2GSAS2,'gsas2.ico'), 2654 wx.BITMAP_TYPE_ICO) 2655 if "wxMSW" in wx.PlatformInfo: 2656 img = self.Image.Scale(16, 16).ConvertToBitmap() 2657 elif "wxGTK" in wx.PlatformInfo: 2658 img = self.Image.Scale(22, 22).ConvertToBitmap() 2659 else: 2660 img = self.Image.ConvertToBitmap() 2661 if 'phoenix' in wx.version(): 2662 self.SetIcon(wx.Icon(img)) 2663 else: 2664 self.SetIcon(wx.IconFromBitmap(img)) 2665 self.Bind(wx.EVT_CLOSE, self.ExitMain) 2648 def init_vars(self): 2666 2649 # initialize default values for GSAS-II "global" variables (saved in main Frame) 2667 2650 self.oldFocus = None 2668 self.GSASprojectfile = ''2669 2651 self.undofile = '' 2670 2652 self.TreeItemDelete = False … … 2719 2701 self.EnablePlot = True 2720 2702 self.hist = '' # selected histogram in Phase/Data tab 2703 self.dataDisplayPhaseText = '' 2704 self.lastTreeSetting = [] # used to track the selected Tree item before a refinement 2705 self.ExpandingAll = False 2706 self.SeqTblHideList = None 2707 self.lastSelectedPhaseTab = None # track the last tab pressed on a phase window 2708 2709 def __init__(self, parent): 2710 self.ExportLookup = {} 2711 self.exporterlist = [] 2712 self._init_ctrls(parent) 2713 self.Image = wx.Image( 2714 os.path.join(GSASIIpath.path2GSAS2,'gsas2.ico'), 2715 wx.BITMAP_TYPE_ICO) 2716 if "wxMSW" in wx.PlatformInfo: 2717 img = self.Image.Scale(16, 16).ConvertToBitmap() 2718 elif "wxGTK" in wx.PlatformInfo: 2719 img = self.Image.Scale(22, 22).ConvertToBitmap() 2720 else: 2721 img = self.Image.ConvertToBitmap() 2722 if 'phoenix' in wx.version(): 2723 self.SetIcon(wx.Icon(img)) 2724 else: 2725 self.SetIcon(wx.IconFromBitmap(img)) 2726 self.Bind(wx.EVT_CLOSE, self.ExitMain) 2727 self.GSASprojectfile = '' 2721 2728 self.dirname = os.path.abspath(os.path.expanduser('~')) #start in the users home directory by default; may be meaningless 2722 2729 self.TutorialImportDir = None # location to read tutorial files, set when a tutorial is viewed … … 2725 2732 self.LastExportDir = None # the last directory used for exports, if any. 2726 2733 self.dataDisplay = None 2727 self.dataDisplayPhaseText = '' 2728 self.lastTreeSetting = [] # used to track the selected Tree item before a refinement 2729 self.ExpandingAll = False 2730 self.SeqTblHideList = None 2731 self.lastSelectedPhaseTab = None # track the last tab pressed on a phase window 2732 2734 self.init_vars() 2735 2733 2736 arg = sys.argv 2734 2737 if len(arg) > 1 and arg[1]: … … 3642 3645 self.dirname = os.path.split(filename)[0] 3643 3646 3647 self.init_vars() 3644 3648 try: 3645 3649 self.StartProject() #open the file if possible … … 6388 6392 data['SeqParFitEqList'][selected],depVarDict=VarDict, 6389 6393 header="Edit the formula for this minimization function", 6390 ExtraButton=['Fit',SingleParEqFit] )6394 ExtraButton=['Fit',SingleParEqFit],wildCard=False) 6391 6395 newobj = dlg.Show(True) 6392 6396 if newobj: … … 6406 6410 dlg = G2exG.ExpressionDialog(G2frame.dataDisplay,VarDict,depVarDict=VarDict, 6407 6411 header='Define an equation to minimize in the parametric fit', 6408 ExtraButton=['Fit',SingleParEqFit],usedVars=usedvarlist )6412 ExtraButton=['Fit',SingleParEqFit],usedVars=usedvarlist,wildCard=False) 6409 6413 obj = dlg.Show(True) 6410 6414 dlg.Destroy() … … 6437 6441 G2frame.dataDisplay,VarDict,newEqn,depVarDict=VarDict, 6438 6442 header="Edit the formula for this minimization function", 6439 ExtraButton=['Fit',SingleParEqFit] )6443 ExtraButton=['Fit',SingleParEqFit],wildCard=False) 6440 6444 newobj = dlg.Show(True) 6441 6445 if newobj: -
trunk/GSASIIddataGUI.py
r3436 r3447 796 796 def RepaintHistogramInfo(Scroll=0): 797 797 if 'phoenix' in wx.version(): 798 # if DData.__class__ is not wx._core.ScrolledWindow:799 # # How to determine window is closed in Phoenix?800 # return801 798 G2frame.bottomSizer.Clear(True) 799 # deal with case where this is called after another tree item has been selected 800 try: 801 DData.Shown 802 except RuntimeError: 803 if GSASIIpath.GetConfigValue('debug'): 804 print('DBG: DData window deleted. Ignoring RepaintHistogramInfo, forcing redraw') 805 # Repaint called while DData window deleted, force redraw of entire window 806 import GSASIIdataGUI 807 G2frame.PickIdText = '' 808 wx.CallLater(100,GSASIIdataGUI.SelectDataTreeItem,G2frame,G2frame.GPXtree.Selection) 809 return 802 810 else: 811 # deal with case where this is called after another tree item has been selected 803 812 if DData.__class__ is not wx._windows.ScrolledWindow: 804 813 # fix bug where this is called after the Window is deleted -
trunk/GSASIIexprGUI.py
r3136 r3447 25 25 from __future__ import division, print_function 26 26 import re 27 import platform 27 28 import wx 28 29 import wx.lib.scrolledpanel as wxscroll … … 127 128 will not be reused as defaults for new free variables. 128 129 (The default is an empty list). 130 :param bool wildCard: If True (default), histogram names are converted to wildcard 131 values, as is appropriate for the sequential refinement table 129 132 ''' 130 133 def __init__(self, parent, parmDict, exprObj=None, … … 132 135 wintitle='Expression Editor', 133 136 fit=True,VarLabel=None,depVarDict=None, 134 ExtraButton=None,usedVars=[]): 137 ExtraButton=None,usedVars=[], 138 wildCard=True): 135 139 self.fit = fit 136 140 self.depVarDict = depVarDict … … 168 172 self.usedVars = usedVars 169 173 'variable names that have been used and should not be reused by default' 174 self.wildCard = wildCard 170 175 defSize = (620,340) # seems like a good size 171 176 'Starting size for dialog' … … 179 184 except (TypeError,IndexError): 180 185 val = parmDict[key] 186 if '2' not in platform.python_version_tuple()[0]: basestring = str 181 187 if isinstance(val, basestring): continue 182 188 try: … … 380 386 if msg: msg += "; " 381 387 msg += 'No variable for '+str(v) 382 elif self.varSelect.get(v) > 0: 383 if '*' in varname: 388 elif self.varSelect.get(v,0) > 0: 389 if varname in self.parmDict: 390 pass 391 elif '*' in varname: 384 392 l = G2obj.LookupWildCard(varname,list(self.parmDict.keys())) 385 393 if len(l) == 0: … … 387 395 if msg: msg += "; " 388 396 msg += 'No variables match '+str(varname) 389 elif varname not in self.parmDict.keys():397 elif varname not in self.parmDict: 390 398 invalid += 1 391 399 if msg: msg += "; " … … 458 466 :returns: a variable name or None (if Cancel is pressed) 459 467 ''' 468 def wildHist(var): 469 '''Replace a histogram number with a wild card 470 ''' 471 slst = var.split(':') 472 if len(slst) > 2 and slst[1]: 473 slst[1] = '*' 474 return ':'.join(slst) 475 return var 476 460 477 if not parmList: 461 478 return None 462 479 l2 = l1 = 1 463 for i in parmList: 480 if self.wildCard: 481 wildList = [wildHist(i) for i in parmList] 482 else: 483 wildList = parmList 484 for i in wildList: 464 485 l1 = max(l1,len(i)) 465 486 loc,desc = G2obj.VarDescr(i) 466 487 l2 = max(l2,len(loc)) 467 488 fmt = u"{:"+str(l1)+"s} {:"+str(l2)+"s} {:s}" 468 varListlbl = [fmt.format(i,*G2obj.VarDescr(i)) for i in parmList] 469 489 varListlbl = [fmt.format(i,*G2obj.VarDescr(i)) for i in wildList] 470 490 dlg = G2G.G2SingleChoiceDialog( 471 491 self,'Select GSAS-II variable for '+str(var)+':', … … 477 497 if dlg.ShowModal() == wx.ID_OK: 478 498 i = dlg.GetSelection() 479 var = parmList[i]499 var = wildList[i] 480 500 dlg.Destroy() 481 501 return var … … 608 628 else: 609 629 var = self.varName[v] 610 if '*' in var: 630 if var in self.parmDict: 631 val = self.parmDict[var] 632 s = G2py3.FormatSigFigs(val).rstrip('0') 633 elif '*' in var: 611 634 vs = G2obj.LookupWildCard(var,self.parmDict.keys()) 612 635 s = '('+str(len(vs))+' values)' 613 elif var in self.parmDict:614 val = self.parmDict[var]615 s = G2py3.FormatSigFigs(val).rstrip('0')616 636 else: 617 637 s = '?' … … 951 971 #app.MainLoop() 952 972 953 import platform954 973 if '2' in platform.python_version_tuple()[0]: 955 974 import cPickle -
trunk/GSASIIobj.py
r3345 r3447 1635 1635 v = [] 1636 1636 for i in var.split(':'): 1637 if i == '': 1638 v.append(-1) 1639 continue 1637 1640 try: 1638 1641 v.append(int(i)) … … 2559 2562 ''' 2560 2563 # Patch: for old-style expressions with a (now removed step size) 2564 if '2' not in platform.python_version_tuple()[0]: basestring = str 2561 2565 for v in self.eObj.assgnVars: 2562 2566 if not isinstance(self.eObj.assgnVars[v], basestring): … … 2578 2582 # look at first value in parmDict to determine its type 2579 2583 parmsInList = True 2584 if '2' not in platform.python_version_tuple()[0]: basestring = str 2580 2585 for key in parmDict: 2581 2586 val = parmDict[key] … … 2605 2610 for v in self.eObj.assgnVars: 2606 2611 varname = self.eObj.assgnVars[v] 2607 if '*' in varname: 2612 if varname in parmDict: 2613 self.lblLookup[varname] = v 2614 self.varLookup[v] = varname 2615 if parmsInList: 2616 self.exprDict[v] = parmDict[varname][0] 2617 else: 2618 self.exprDict[v] = parmDict[varname] 2619 elif '*' in varname: 2608 2620 varlist = LookupWildCard(varname,list(parmDict.keys())) 2609 2621 if len(varlist) == 0: … … 2616 2628 self.exprDict[v] = np.array([parmDict[var] for var in varlist]) 2617 2629 self.varLookup[v] = [var for var in varlist] 2618 elif varname in parmDict:2619 self.lblLookup[varname] = v2620 self.varLookup[v] = varname2621 if parmsInList:2622 self.exprDict[v] = parmDict[varname][0]2623 else:2624 self.exprDict[v] = parmDict[varname]2625 2630 else: 2626 2631 self.exprDict[v] = None -
trunk/GSASIIstrMain.py
r3413 r3447 368 368 continue 369 369 #TODO - implement "Fix FXU" for seq refinement here - done? 370 hId = Histograms[histogram]['hId'] 370 371 redphaseVary = phaseCheck(phaseVary,Phases,histogram) 371 372 Histo = {histogram:Histograms[histogram],} … … 405 406 try: 406 407 groups,parmlist = G2mv.GroupConstraints(constrDict) 407 G2mv.GenerateConstraints(groups,parmlist,varyList,constrDict,fixedList,parmDict,SeqHist=ihst) 408 #print (G2mv.VarRemapShow(varyList,True)) 408 G2mv.GenerateConstraints(groups,parmlist,varyList,constrDict,fixedList,parmDict,SeqHist=hId) 409 # if GSASIIpath.GetConfigValue('debug'): print("DBG_"+ 410 # G2mv.VarRemapShow(varyList,True)) 409 411 constraintInfo = (groups,parmlist,constrDict,fixedList,ihst) 410 412 except G2mv.ConstraintException:
Note: See TracChangeset
for help on using the changeset viewer.