1#
2# Copyright (c) ZeroC, Inc. All rights reserved.
3#
4
5import Ice
6
7try:
8    import numpy
9    hasNumPy = True
10except ImportError:
11    hasNumPy = False
12
13def myBoolSeq(buffer, type, copy):
14    return Ice.createArray(buffer, type, copy)
15
16
17def myByteSeq(buffer, type, copy):
18    return Ice.createArray(buffer, type, copy)
19
20
21def myShortSeq(buffer, type, copy):
22    return Ice.createArray(buffer, type, copy)
23
24
25def myIntSeq(buffer, type, copy):
26    return Ice.createArray(buffer, type, copy)
27
28
29def myLongSeq(buffer, type, copy):
30    return Ice.createArray(buffer, type, copy)
31
32
33def myFloatSeq(buffer, type, copy):
34    return Ice.createArray(buffer, type, copy)
35
36
37def myDoubleSeq(buffer, type, copy):
38    return Ice.createArray(buffer, type, copy)
39
40if hasNumPy:
41
42    def myNumPyBoolSeq(buffer, type, copy):
43        return Ice.createNumPyArray(buffer, type, copy)
44
45
46    def myNumPyByteSeq(buffer, type, copy):
47        return Ice.createNumPyArray(buffer, type, copy)
48
49
50    def myNumPyShortSeq(buffer, type, copy):
51        return Ice.createNumPyArray(buffer, type, copy)
52
53
54    def myNumPyIntSeq(buffer, type, copy):
55        return Ice.createNumPyArray(buffer, type, copy)
56
57
58    def myNumPyLongSeq(buffer, type, copy):
59        return Ice.createNumPyArray(buffer, type, copy)
60
61
62    def myNumPyFloatSeq(buffer, type, copy):
63        return Ice.createNumPyArray(buffer, type, copy)
64
65
66    def myNumPyDoubleSeq(buffer, type, copy):
67        return Ice.createNumPyArray(buffer, type, copy)
68
69
70    def myNumPyComplex128Seq(buffer, type, copy):
71        import numpy
72        return numpy.frombuffer(buffer.tobytes() if copy else buffer, numpy.complex128)
73
74
75    def myNumPyMatrix3x3(buffer, type, copy):
76        a = Ice.createNumPyArray(buffer, type, copy)
77        a.shape = (3, 3)
78        return a
79
80    def myBogusNumpyArrayType(buffer, type, copy):
81        return Ice.createNumPyArray(buffer, 1024, copy)
82
83
84def myBogusArrayThrowFactory(buffer, type, copy):
85    raise ValueError()
86
87
88def myBogusArrayType(buffer, type, copy):
89    return Ice.createArray(buffer, 1024, copy)
90
91
92def myBogusArrayNoneFactory(buffer, type, copy):
93    return None
94
95
96def myBogusArraySignatureFactory():
97    return []
98
99
100myNoCallableFactory = 5
101