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()
示例#3
0
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)
示例#4
0
    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)
示例#5
0
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)
示例#7
0
    # 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)
示例#8
0
"""
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")
示例#9
0
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"
示例#10
0
def get_python_nodes():
    nodes = get_ast(clr.LoadAssemblyByName("IronPython"), [
        "IronPython.Compiler.Ast.Expression",
        "IronPython.Compiler.Ast.Statement", "IronPython.Compiler.Ast.Node"
    ])
    return nodes
示例#11
0
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