def LoadAssembly(assemName): try: return clr.LoadAssemblyByName(assemName) except IOError: return clr.LoadAssemblyByPartialName(assemName) return System.Reflection.Assembly.ReflectionOnlyLoadFrom(assemName)
def GenerateMethods(ag): global counter tg = ag.DefineType("Abomination") system_assembly = clr.LoadAssemblyByName('System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') mscorlib_assembly = clr.LoadAssemblyByName('mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') for ref in (system_assembly, mscorlib_assembly): for t in ref.GetExportedTypes(): if t.ContainsGenericParameters or t.FullName in skipTypes: continue if trace: print counter, t.FullName EmitTestMethod(tg, "Test_%d" % counter, t) EmitTestMethod(tg, "TestRef_%d" % counter, t.MakeByRefType()) counter += 1 return tg.CreateType()
def test_assembly_instance(): mscorlib = clr.LoadAssemblyByName("mscorlib") #GetMemberNames Assert(len(dir(mscorlib)), 65) for x in ["System", "Microsoft"]: Assert(x in dir(mscorlib), "dir(mscorlib) does not have %s" % x) #GetBoundMember AreEqual(mscorlib.System.Int32(42), 42) AssertError(AttributeError, lambda: mscorlib.NonExistentNamespace)
def test_assembly_instance(self): import clr mscorlib = clr.LoadAssemblyByName("mscorlib") #GetMemberNames self.assertGreaterEqual(len(dir(mscorlib)), 77) for x in ["System", "Microsoft"]: self.assertTrue( x in dir(mscorlib), "dir(mscorlib) does not have %s" % x) #GetBoundMember self.assertEqual(mscorlib.System.Int32(42), 42) self.assertRaises(AttributeError, lambda: mscorlib.NonExistentNamespace)
def _setup(): lazy_dependencies = [ [ 0, "MonoMod.Utils, Version=19.7.4.3, Culture=neutral, PublicKeyToken=null" ], [ 0, "Mono.Cecil, Version=0.10.4.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e" ], [ 1, "IronPython, Version=2.7.7.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1" ], [1, "0Harmony, Version=1.2.0.1, Culture=neutral, PublicKeyToken=null"], ] for state, qname in lazy_dependencies: if state <= 0: clr.LoadAssemblyByName(qname) if state <= 1: clr.AddReferenceByName(qname)
# only generate the one highest in the Python hierarchy for exception in curHierarchy.subclasses: found = False for e in l: if e.clrException == exception.clrException: found = True break if not found: l.append(exception) for exception in curHierarchy.subclasses: get_all_exceps(l, exception) return l ip = clr.LoadAssemblyByName('IronPython') ms = clr.LoadAssemblyByName('Microsoft.Scripting') md = clr.LoadAssemblyByName('Microsoft.Dynamic') sysdll = clr.LoadAssemblyByPartialName('System') def get_type(name): if name.startswith('IronPython'): return ip.GetType(name) if name.startswith('Microsoft.Scripting'): res = ms.GetType(name) return res if res is not None else md.GetType(name) if name.startswith('System.ComponentModel'): return sysdll.GetType(name) return System.Type.GetType(name)
# only generate the one highest in the Python hierarchy for exception in curHierarchy.subclasses: found = False for e in l: if e.clrException == exception.clrException: found = True break if not found: l.append(exception) for exception in curHierarchy.subclasses: get_all_exceps(l, exception) return l ip = clr.LoadAssemblyByName('IronPython') ms = clr.LoadAssemblyByName('Microsoft.Scripting') md = clr.LoadAssemblyByName('Microsoft.Dynamic') if is_netstandard: sysdll = clr.LoadAssemblyByName('System.Runtime') win32dll = clr.LoadAssemblyByName('Microsoft.Win32.Primitives') else: sysdll = clr.LoadAssemblyByPartialName('System') def get_type(name): if name.startswith('IronPython'): return ip.GetType(name) if name.startswith('Microsoft.Scripting'): res = ms.GetType(name) return res if res is not None else md.GetType(name)
""" This is a server-side script, to act as a counterpart for testing client side scripts. Now sends chat message periodically and the client side handler is expected to get them (that works), and respond (working on that now). """ import rxactor import rxavatar import sys import clr asm = clr.LoadAssemblyByName('OpenSim.Region.ScriptEngine.Common') import random import math class ChatBot(rxactor.Actor): TICKINTERVAL = 3 TICKTIMES = 10000 def GetScriptClassName(): return "chatbot.ChatBot" def EventCreated(self): super(self.__class__, self).EventCreated() self.llSetObjectName("ChatBotBob")
import RXCore.rxactor import RXCore.rxavatar import sys import clr import random import math asm = clr.LoadAssemblyByName('OpenSim.Region.ScriptEngine.Shared') Vector3 = asm.OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3 import rexprojectspacemodule import rexprojectspaceutils from System.Collections.Generic import List as GenericList class RexProjectSpace(RXCore.rxactor.Actor): @staticmethod def GetScriptClassName(): return "rexprojectspace.RexProjectSpace" def EventCreated(self): super(self.__class__, self).EventCreated() self.timer = self.CreateRexTimer(2, 1) self.timer.onTimer += self.SetSpawnerInstance self.SetSpawnerInstance() def EventDestroyed(self): #print "rexprojectspace.RexProjectSpace EventDestroyed"
def get_python_nodes(): nodes = get_ast(clr.LoadAssemblyByName("IronPython"), [ "IronPython.Compiler.Ast.Expression", "IronPython.Compiler.Ast.Statement", "IronPython.Compiler.Ast.Node" ]) return nodes
from System.Reflection import MethodBase import clr, os, sys, traceback logAsm = clr.LoadAssemblyByName('log4net') log = logAsm.log4net.LogManager.GetLogger( type(MethodBase.GetCurrentMethod().DeclaringType)) from ConfigParser import ConfigParser def load_or_reload(modulename): mod = None if sys.modules.has_key(modulename): mod = reload(sys.modules[modulename]) else: mod = __import__(modulename, globals(), locals(), [""]) return mod def read_ini(inifilename): cp = ConfigParser() thisdir = os.path.split(os.path.abspath(__file__))[0] cp.read([os.path.join(thisdir, inifilename)]) for s in cp.sections(): cfdict = dict(cp.items(s)) try: modname, classname = s.rsplit('.', 1) except ValueError: r.logInfo("bad config section in " + inifilename + ": " + s) continue