예제 #1
0
파일: interp_clr.py 프로젝트: sota/pypy
def cli2py(space, b_obj):
    # TODO: support other types and find the most efficient way to
    # select the correct case
    if b_obj is None:
        return space.w_None

    w_obj = unbox(b_obj, W_Root)
    if w_obj is not None:
        return w_obj # it's already a wrapped object!
    
    b_type = b_obj.GetType()
    if b_type == typeof(System.Int32):
        intval = unbox(b_obj, ootype.Signed)
        return space.wrap(intval)
    elif b_type == typeof(System.Double):
        floatval = unbox(b_obj, ootype.Float)
        return space.wrap(floatval)
    elif b_type == typeof(System.Boolean):
        boolval = unbox(b_obj, ootype.Bool)
        return space.wrap(boolval)
    elif b_type == typeof(System.String):
        strval = unbox(b_obj, ootype.String)
        return space.wrap(strval)
    else:
        namespace, classname = split_fullname(b_type.ToString())
        assemblyname = b_type.get_Assembly().get_FullName()
        w_cls = load_cli_class(space, assemblyname, namespace, classname)
        cliobj = W_CliObject(space, b_obj)
        return wrapper_from_cliobj(space, w_cls, cliobj)
예제 #2
0
파일: interp_clr.py 프로젝트: sota/pypy-old
def cli2py(space, b_obj):
    # TODO: support other types and find the most efficient way to
    # select the correct case
    if b_obj is None:
        return space.w_None

    w_obj = unbox(b_obj, W_Root)
    if w_obj is not None:
        return w_obj  # it's already a wrapped object!

    b_type = b_obj.GetType()
    if b_type == typeof(System.Int32):
        intval = unbox(b_obj, ootype.Signed)
        return space.wrap(intval)
    elif b_type == typeof(System.Double):
        floatval = unbox(b_obj, ootype.Float)
        return space.wrap(floatval)
    elif b_type == typeof(System.Boolean):
        boolval = unbox(b_obj, ootype.Bool)
        return space.wrap(boolval)
    elif b_type == typeof(System.String):
        strval = unbox(b_obj, ootype.String)
        return space.wrap(strval)
    else:
        namespace, classname = split_fullname(b_type.ToString())
        assemblyname = b_type.get_Assembly().get_FullName()
        w_cls = load_cli_class(space, assemblyname, namespace, classname)
        cliobj = W_CliObject(space, b_obj)
        return wrapper_from_cliobj(space, w_cls, cliobj)
예제 #3
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     boxed = box(Foo())
     return unbox(boxed, Foo)
예제 #4
0
 def fn(flag):
     a = ootype.new(A)
     a.xx = 42
     b_obj = box(a)
     a2 = unbox(b_obj, A)
     return a2.xx
예제 #5
0
 def fn(x, y):
     myfunc = unbox(build_fn(), FUNCTYPE)
     a = myfunc(x, y)
     mytuple = (x, y)
     b = myfunc(*mytuple)
     return a + b
예제 #6
0
 def fn():
     x = init_array(System.Object, box(42), box(43))
     return unbox(x[0], ootype.Signed) + unbox(x[1], ootype.Signed)
예제 #7
0
 def fn():
     b_obj = box(42)
     return unbox(b_obj, Foo)
예제 #8
0
 def fn():
     x = ArrayList()
     x.Add(box(42))
     return unbox(x.get_Item(0), ootype.Signed)
예제 #9
0
 def fn():
     x = ArrayList()
     x.Add(box(42))
     array = x.ToArray()
     return unbox(array[0], ootype.Signed)
예제 #10
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     obj = Foo()
     b_obj = box(obj)
     obj2 = unbox(b_obj, Foo)
     return obj is obj2
예제 #11
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     b_obj = box(42)
     return unbox(b_obj, Foo)
예제 #12
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     x = new_array(System.Object, 2)
     x[0] = box(42)
     x[1] = box(43)
     return unbox(x[0], ootype.Signed) + unbox(x[1], ootype.Signed)
예제 #13
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     x = init_array(System.Object, box(42), box(43))
     return unbox(x[0], ootype.Signed) + unbox(x[1], ootype.Signed)
예제 #14
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     x = ArrayList()
     x.Add(box(42))
     array = x.ToArray()
     return unbox(array[0], ootype.Signed)
예제 #15
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     x = ArrayList()
     x.Add(box('foo'))
     return unbox(x.get_Item(0), ootype.String)
예제 #16
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     x = ArrayList()
     x.Add(box(42))
     return unbox(x.get_Item(0), ootype.Signed)
예제 #17
0
 def fn():
     x = box(42)
     return unbox(x, Foo)
예제 #18
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn(flag):
     b_obj = System.Object()
     a2 = unbox(b_obj, A)
     return a2
예제 #19
0
 def fn():
     boxed = box(Foo())
     return unbox(boxed, Foo)
예제 #20
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn(flag):
     a = ootype.new(A)
     a.xx = 42
     b_obj = box(a)
     a2 = unbox(b_obj, A)
     return a2.xx
예제 #21
0
 def fn():
     x = ArrayList()
     x.Add(box('foo'))
     return unbox(x.get_Item(0), ootype.String)
예제 #22
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     obj = Foo()
     x = ArrayList()
     x.Add(box(obj))
     obj2 = unbox(x.get_Item(0), Foo)
     return obj is obj2
예제 #23
0
 def fn():
     x = new_array(System.Object, 2)
     x[0] = box(42)
     x[1] = box(43)
     return unbox(x[0], ootype.Signed) + unbox(x[1], ootype.Signed)
예제 #24
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn(x, y):
     myfunc = unbox(build_fn(), FUNCTYPE)
     a = myfunc(x, y)
     mytuple = (x, y)
     b = myfunc(*mytuple)
     return a+b
예제 #25
0
 def fn():
     obj = Foo()
     b_obj = box(obj)
     obj2 = unbox(b_obj, Foo)
     return obj is obj2
예제 #26
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     myfunc = unbox(build_fn(), FUNCTYPE)
     return myfunc(30, 12)
예제 #27
0
 def fn(flag):
     b_obj = System.Object()
     a2 = unbox(b_obj, A)
     return a2
예제 #28
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     x = box(42)
     return unbox(x, ootype.Signed)
예제 #29
0
 def fn():
     obj = Foo()
     x = ArrayList()
     x.Add(box(obj))
     obj2 = unbox(x.get_Item(0), Foo)
     return obj is obj2
예제 #30
0
 def fn():
     x = box(42)
     return unbox(x, ootype.Signed)
예제 #31
0
 def fn():
     myfunc = unbox(build_fn(), FUNCTYPE)
     return myfunc(30, 12)
예제 #32
0
파일: test_dotnet.py 프로젝트: sota/pypy
 def fn():
     x = box(42)
     return unbox(x, Foo)