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