-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathxlpython_v1back.bas
More file actions
96 lines (74 loc) · 2.69 KB
/
xlpython_v1back.bas
File metadata and controls
96 lines (74 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Attribute VB_Name = "xlpython_v1back"
Option Explicit
Function PyDict(ParamArray elements())
Dim els As Variant
els = elements
Set PyDict = Py.DictFromArray(els)
End Function
Function PyTuple(ParamArray elements())
Dim els As Variant
els = elements
Set PyTuple = Py.TupleFromArray(els)
End Function
Function PyList(ParamArray elements())
Dim els As Variant
els = elements
Set PyList = Py.ListFromArray(els)
End Function
Function PyBuiltin(method As String, Optional args = Empty, Optional kwargs = Empty)
Set PyBuiltin = Py.Call(Py.BuiltIn, method, args, kwargs)
End Function
Function PyStr(obj) As String
PyStr = Py.Str(obj)
End Function
Function PyRepr(obj) As String
PyRepr = PyStr(PyBuiltin("repr", PyTuple(obj)))
End Function
Function PyVar(obj)
PyVar = Py.Var(obj)
End Function
Function PyObj(value)
Set PyObj = Py.obj(value)
End Function
Function PyLen(obj) As Long
PyLen = PyVar(PyBuiltin("len", PyTuple(obj)))
End Function
Function PyType(obj As Variant)
Set PyType = PyBuiltin("type", PyTuple(obj))
End Function
Function PyCall(instance, Optional method As String = "", Optional args = Empty, Optional kwargs = Empty, Optional console As Boolean = False)
Set PyCall = Py.Call(instance, method, args, kwargs)
End Function
Function PyGetAttr(instance, attr As String)
PyGetAttr = Py.GetAttr(instance, attr)
End Function
Sub PySetAttr(instance, attr As String, value)
Py.SetAttr instance, attr, value
End Sub
Sub PyDelAttr(instance, attr As String)
Py.DelAttr instance, attr
End Sub
Function PyHasAttr(instance, attr As String) As Boolean
PyHasAttr = Py.HasAttr(instance, attr)
End Function
Function PyGetItem(instance, key)
PyGetItem = Py.GetItem(instance, key)
End Function
Sub PySetItem(instance, key, value)
Py.SetItem instance, key, value
End Sub
Sub PyDelItem(instance, key)
Py.DelItem instance, key
End Sub
Function PyContains(instance, key) As Boolean
PyContains = Py.Contains(instance, key)
End Function
Function PyEval(expression As String, Optional locals = Empty, Optional globals = Empty, Optional addpath As String = "", Optional path As String = "")
Set PyEval = Py.Eval(expression, locals, globals)
End Function
Function PyExec(statement As String, Optional locals = Empty, Optional globals = Empty, Optional addpath As String = "", Optional path As String = "")
Set PyExec = Py.Exec(statement, locals, globals)
End Function
Function PyModule(name As String, Optional reload As Boolean = True, Optional addpath As String = "", Optional path As String = "")
Set PyModule = Py.Module(name)
End Function