def LoadAssembly(assemName):
    try:
        return clr.LoadAssemblyByName(assemName)
    except IOError:
        return clr.LoadAssemblyByPartialName(assemName)

    return System.Reflection.Assembly.ReflectionOnlyLoadFrom(assemName)
示例#2
0
def gen_debug_proxies(cw):
    import clr
    msc = clr.LoadAssemblyByPartialName("Microsoft.Scripting.Core")
    expr = msc.GetType("Microsoft.Scripting.Ast.Expression")
    custom = ['SwitchCase', 'CatchBlock']
    ignore = ['Expression']

    def expression_filter(e):
        if not e.IsPublic: return False
        if not e.Namespace.StartsWith("Microsoft.Scripting.Ast"): return False
        if e.IsGenericType: return False
        if e.Name in ignore: return False
        if expr.IsAssignableFrom(e): return True
        if e.Name in custom: return True

        return False

    expressions = filter(expression_filter, msc.GetTypes())
    expressions.sort(None, lambda e: e.Name)

    first = True
    for e in expressions:
        if not first: cw.write("")
        else: first = False
        gen_debug_proxy(cw, e)
示例#3
0
def get_python_nodes():
    nodes = get_ast(
        clr.LoadAssemblyByPartialName("IronPython"),
        [
            "IronPython.Compiler.Ast.Expression",
            "IronPython.Compiler.Ast.Statement",
            "IronPython.Compiler.Ast.Node"
        ]
    )
    return nodes
    # if we have duplicate CLR exceptions (e.g. VMSError and Exception)
    # 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.LoadAssemblyByPartialName('ironpython')
ms = clr.LoadAssemblyByPartialName('Microsoft.Scripting')
md = clr.LoadAssemblyByPartialName('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)

        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)


def exception_distance(a):
    distance = 0