def init_larch(self): t0 = time.time() if self.larch is None: self.larch = larch.Interpreter() self.larch.symtable.set_symbol('_sys.wx.wxapp', wx.GetApp()) self.larch.symtable.set_symbol('_sys.wx.parent', self) self.SetStatusText('ready')
def __init__(self): self.__version__ = '0.2.1' # Larch self.mylarch = larch.Interpreter() self.root = Tk(className='EXAFS Neo GUI') self.root.wm_title("Graphical User Interface for EXAFS Analysis (Beta)") # Standard default geometry self.root.geometry("750x500") self.padx = 5 self.pady = 3 self.os = get_platform() base_folder = os.path.dirname(os.path.join(os.getcwd(),__file__)) icon_loc = os.path.join(base_folder,'media/icon.png') img = PhotoImage(file=icon_loc) self.root.tk.call('wm','iconphoto',self.root._w,img) # Set default font self.entryFont = Font(family="TkFixedFont", size=10) self.menuFont = Font(family="TkMenuFont",size=10) self.labelFont = Font(family="TkTextFont", size=11) # Generate the mainframe self.mainframe = ttk.Notebook(self.root,height=40,padding="5") self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) # Initalize variable self.initialize_var() self.initialize_tab() self.Build_tabs()
def test2_create_interp(self): import larch self.larch = larch.Interpreter() self.symtable = self.larch.symtable assert (self.larch is not None) assert (self.symtable is not None)
def __init__(self, wxparent=None, writer=None, _larch=None, prompt=None, output=None, input=None): self.larch = _larch if _larch is None: self.larch = larch.Interpreter() self.inptext = larch.InputText(prompt=self.ps1, interactive=False) self.symtable = self.larch.symtable self.prompt = prompt self.output = output self.input = input self.larch.writer = self self.larch.add_plugin('wx', wxparent=wxparent) self.symtable.set_symbol('_builtin.force_wxupdate', False) self.symtable.set_symbol('_sys.wx.inputhook', inputhook) self.symtable.set_symbol('_sys.wx.ping', inputhook.ping) self.symtable.set_symbol('_sys.wx.force_wxupdate', False) self.symtable.set_symbol('_sys.wx.wxapp', output) self.symtable.set_symbol('_sys.display.colors.text', None) self.symtable.set_symbol('_sys.display.colors.text2', 'blue') self.symtable.set_symbol('_sys.display.colors.text2_attrs', []) self.symtable.set_symbol('_sys.display.colors.text_attrs', []) # self.symtable.set_symbol('_sys.wx.parent', wx.GetApp().GetTopWindow()) self.SetPrompt() self.larch.run_init_scripts() self.flush_timer = wx.Timer(wxparent) self.needs_flush = True wxparent.Bind(wx.EVT_TIMER, self.onFlushTimer, self.flush_timer) self.flush_timer.Start(500)
def __init__(self, wxparent=None, _larch=None): self.wxparent = wxparent self.larch = _larch if self.larch is None: self.larch = larch.Interpreter() self.filelist = None self.file_groups = OrderedDict() self.fit_opts = {} self.group = None self.groupname = None self.report_frame = None self.symtable = self.larch.symtable
def __init__(self, wxparent=None, writer=None, _larch=None, prompt=None, historyfile=None, output=None, input=None): self._larch = _larch self.textstyle = None self.prompt = prompt self.input = input self.output = output if _larch is None: self._larch = larch.Interpreter(historyfile=historyfile, writer=self) self._larch.run_init_scripts() self.writer = self._larch.writer self.symtable = self._larch.symtable # if self.output is not None: # self.encoding = sys.stdout.encoding # sys.stdout = self self.objtree = wxparent.objtree self.set_textstyle(mode='text') self._larch("_sys.display.colors['text2'] = {'color': 'blue'}", add_history=False) self._larch.add_plugin('wx', wxparent=wxparent) self.symtable.set_symbol('_builtin.force_wxupdate', False) self.symtable.set_symbol('_sys.wx.inputhook', inputhook) self.symtable.set_symbol('_sys.wx.ping', inputhook.ping) self.symtable.set_symbol('_sys.wx.force_wxupdate', False) self.symtable.set_symbol('_sys.wx.wxapp', output) self.symtable.set_symbol('_sys.wx.parent', wx.GetApp().GetTopWindow()) if self.output is not None: style = self.output.GetDefaultStyle() bgcol = style.GetBackgroundColour() sfont = style.GetFont() self.textstyle = wx.TextAttr('black', bgcol, sfont) self.SetPrompt(True) self.flush_timer = wx.Timer(wxparent) self.needs_flush = True wxparent.Bind(wx.EVT_TIMER, self.onFlushTimer, self.flush_timer) self.flush_timer.Start(500)
def __init__(self, wxparent=None, writer=None, prompt=None, output=None, input=None): self.larch = larch.Interpreter() self.inptext = larch.InputText(prompt=self.ps1, interactive=False) self.symtable = self.larch.symtable self.prompt = prompt self.output = output self.larch.writer = self self.larch.add_plugin('wx', wxparent=wxparent) self.SetPrompt() for fname in larch.site_config.init_files: self.execute("run('%s')" % fname)
def __init__(self, scandb): self.scandb = scandb self.fileroot = self.scandb.get_info('server_fileroot') self.writer = LarchScanDBWriter(scandb=scandb) self.macro_dir = self.scandb.get_info('macro_folder') self.loaded_modules = {} self.larch = self.symtab = None print("Larch Scan DB Server ", scandb, HAS_LARCH) if HAS_LARCH: from larch.epics.larchscan import connect_scandb self.larch = larch.Interpreter(writer=self.writer) connect_scandb(scandb, _larch=self.larch) self.symtab = self.larch.symtable # self.symtab.set_symbol(LARCH_SCANDB, self.scandb) # self.symtab.set_symbol(LARCH_INSTDB, InstrumentDB(self.scandb)) # self.symtab._sys.color_exceptions = False self.enable_abort()
def __init__(self, host='localhost', port=4966, logRequests=False, allow_none=True, keepalive_time=3 * 24 * 3600): self.out_buffer = [] self.larch = larch.Interpreter(writer=self) self.larch.input.prompt = '' self.larch.input.prompt2 = '' self.larch.run_init_scripts() self.larch('_sys.client = group(keepalive_time=%f)' % keepalive_time) self.larch('_sys.wx = group(wxapp=None)') _sys = self.larch.symtable._sys _sys.color_exceptions = False _sys.client.last_event = int(time()) _sys.client.pid_server = int(os.getpid()) _sys.client.app = 'unknown' _sys.client.pid = 0 _sys.client.user = '******' _sys.client.machine = 'unknown' self.client = self.larch.symtable._sys.client self.port = port SimpleXMLRPCServer.__init__(self, (host, port), logRequests=logRequests, allow_none=allow_none) self.register_introspection_functions() self.register_function(self.larch_exec, 'larch') for method in ('ls', 'chdir', 'cd', 'cwd', 'shutdown', 'set_keepalive_time', 'set_client_info', 'get_client_info', 'get_data', 'get_rawdata', 'get_messages', 'len_messages'): self.register_function(getattr(self, method), method) # sys.stdout = self self.finished = False signal.signal(signal.SIGINT, self.signal_handler) self.activity_thread = Thread(target=self.check_activity)
#!/usr/bin/env python2.6 import larch import sys import time t0 = time.time() print('---') session = larch.Interpreter() print('session ready; %0.3f s' % time.time()-t0) input = larch.InputText() for arg in sys.argv[1:]: try: input.readfile(arg) except IOError: print("could not read %s" % arg) while input: block,fname,lineno = input.get() ret = session.eval(block,fname=fname,lineno=lineno) if callable(ret) and not isinstance(ret,type): try: if 1 == len(block.split()): ret = ret() except: pass if session.error: print('== Error ==') err = session.error.pop(0) print("%s: %s" % err.get_error()) break if ret is not None:
import re import yaml import math import numpy as np import numpy.linalg as linalg import scipy.optimize as optim import scipy.interpolate as interp import scipy.integrate as INT import shutil import pandas as pd import larch from larch_plugins.xafs import autobk, xftf, xftr from larch_plugins.io import read_ascii import larch.builtins as larch_builtins mylarch = larch.Interpreter(with_plugins=False) def read_file(file): m = re.search(r'\.[a-zA-Z0-9]+$',os.path.basename(file)) df = pd.DataFrame() if m == None: print ('Nothing to match') return elif m.group(0) == '.ex3': t_df = pd.read_csv(file,names=['Energy','ut'],delim_whitespace=True,skiprows=27) df = t_df.ix[1:t_df.shape[0]-2] Energy = df['Energy'].values ut = df['ut'].values t_array = np.array([]) for term in Energy: print (term)
out = Group() value.pop('__class__') for key, val in value.items(): print('Key ', key, val) setattr(out, key, json_decode(val)) elif classname == 'Parameter': args = {'_larch': _larch} for attr in ('value', 'name', 'vary', 'min', 'max', 'expr'): val = value.get(attr, None) if val is not None: args[attr] = val out = Parameter(**args) else: out = value return out _larch = larch.Interpreter() _larch.eval("x = 'a string'") _larch.eval("y = 77") _larch.eval("g = group(a=1.1, s='hello')") # , b='a string')") print(json.loads(json_encode('x', _larch=_larch))) print(json.loads(json_encode('y', _larch=_larch))) print(json.loads(json_encode('g', _larch=_larch))) out = json_decode(json_encode('g', _larch=_larch)) print(out) for a in dir(out): print(a, getattr(out, a))
import larch interp = larch.Interpreter() stable = interp.symtable stable.set_symbol('_main.a', value=1) stable.new_group('g1', s='a string', en=722) stable.set_symbol('_sys.var', value=1) stable.set_symbol('_main.b', value='value of b') stable.set_symbol('_main.g1.t', value='another string') stable.set_symbol('_main.g1.d', value={'yes': 1, 'no': 0}) stable.new_group('g2') stable.set_symbol('g2.data', value=[1, 2, 3]) stable.set_symbol('g2.a', value='hello') stable.set_symbol('g2.subgroup', value=larch.Group(__name__='subgroup x', q=2, w=99)) print '<<< Groups: ' for g in stable._subgroups(): if g not in ('_sys', '_math', '_builtin', 'moduleGroup', 'localGroup'): print stable.show_group(g) print '>>>'