Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
 def fn():
     boxed = box(Foo())
     return unbox(boxed, Foo)
Beispiel #4
0
 def fn(flag):
     a = ootype.new(A)
     a.xx = 42
     b_obj = box(a)
     a2 = unbox(b_obj, A)
     return a2.xx
Beispiel #5
0
 def fn(x, y):
     myfunc = unbox(build_fn(), FUNCTYPE)
     a = myfunc(x, y)
     mytuple = (x, y)
     b = myfunc(*mytuple)
     return a + b
Beispiel #6
0
 def fn():
     x = init_array(System.Object, box(42), box(43))
     return unbox(x[0], ootype.Signed) + unbox(x[1], ootype.Signed)
Beispiel #7
0
 def fn():
     b_obj = box(42)
     return unbox(b_obj, Foo)
Beispiel #8
0
 def fn():
     x = ArrayList()
     x.Add(box(42))
     return unbox(x.get_Item(0), ootype.Signed)
Beispiel #9
0
 def fn():
     x = ArrayList()
     x.Add(box(42))
     array = x.ToArray()
     return unbox(array[0], ootype.Signed)
Beispiel #10
0
 def fn():
     obj = Foo()
     b_obj = box(obj)
     obj2 = unbox(b_obj, Foo)
     return obj is obj2
Beispiel #11
0
 def fn():
     b_obj = box(42)
     return unbox(b_obj, Foo)
Beispiel #12
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)
Beispiel #13
0
 def fn():
     x = init_array(System.Object, box(42), box(43))
     return unbox(x[0], ootype.Signed) + unbox(x[1], ootype.Signed)
Beispiel #14
0
 def fn():
     x = ArrayList()
     x.Add(box(42))
     array = x.ToArray()
     return unbox(array[0], ootype.Signed)
Beispiel #15
0
 def fn():
     x = ArrayList()
     x.Add(box('foo'))
     return unbox(x.get_Item(0), ootype.String)
Beispiel #16
0
 def fn():
     x = ArrayList()
     x.Add(box(42))
     return unbox(x.get_Item(0), ootype.Signed)
Beispiel #17
0
 def fn():
     x = box(42)
     return unbox(x, Foo)
Beispiel #18
0
 def fn(flag):
     b_obj = System.Object()
     a2 = unbox(b_obj, A)
     return a2
Beispiel #19
0
 def fn():
     boxed = box(Foo())
     return unbox(boxed, Foo)
Beispiel #20
0
 def fn(flag):
     a = ootype.new(A)
     a.xx = 42
     b_obj = box(a)
     a2 = unbox(b_obj, A)
     return a2.xx
Beispiel #21
0
 def fn():
     x = ArrayList()
     x.Add(box('foo'))
     return unbox(x.get_Item(0), ootype.String)
Beispiel #22
0
 def fn():
     obj = Foo()
     x = ArrayList()
     x.Add(box(obj))
     obj2 = unbox(x.get_Item(0), Foo)
     return obj is obj2
Beispiel #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)
Beispiel #24
0
 def fn(x, y):
     myfunc = unbox(build_fn(), FUNCTYPE)
     a = myfunc(x, y)
     mytuple = (x, y)
     b = myfunc(*mytuple)
     return a+b
Beispiel #25
0
 def fn():
     obj = Foo()
     b_obj = box(obj)
     obj2 = unbox(b_obj, Foo)
     return obj is obj2
Beispiel #26
0
 def fn():
     myfunc = unbox(build_fn(), FUNCTYPE)
     return myfunc(30, 12)
Beispiel #27
0
 def fn(flag):
     b_obj = System.Object()
     a2 = unbox(b_obj, A)
     return a2
Beispiel #28
0
 def fn():
     x = box(42)
     return unbox(x, ootype.Signed)
Beispiel #29
0
 def fn():
     obj = Foo()
     x = ArrayList()
     x.Add(box(obj))
     obj2 = unbox(x.get_Item(0), Foo)
     return obj is obj2
Beispiel #30
0
 def fn():
     x = box(42)
     return unbox(x, ootype.Signed)
Beispiel #31
0
 def fn():
     myfunc = unbox(build_fn(), FUNCTYPE)
     return myfunc(30, 12)
Beispiel #32
0
 def fn():
     x = box(42)
     return unbox(x, Foo)