FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python/Doc/includes/run-func.c at master · Darriall/python · GitHub
Darriall
/
python
Public
forked from
glix/python
Notifications
You must be signed in to change notification settings
Fork
1
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
python
/
Doc
/
includes
/
run-func.c
Copy path
More file actions
More file actions
Latest commit
History
History
History
68 lines (62 loc) · 1.88 KB
Breadcrumbs
python
/
Doc
/
includes
/
run-func.c
Copy path
File metadata and controls
68 lines (62 loc) · 1.88 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
#include
<Python.h>
int
main
(
int
argc
,
char
*
argv
[])
{
PyObject
*
pName
,
*
pModule
,
*
pDict
,
*
pFunc
;
PyObject
*
pArgs
,
*
pValue
;
int
i
;
if
(
argc
<
3
) {
fprintf
(
stderr
,
"Usage: call pythonfile funcname [args]\n"
);
return
1
;
}
Py_Initialize
();
pName
=
PyString_FromString
(
argv
[
1
]);
/* Error checking of pName left out */
pModule
=
PyImport_Import
(
pName
);
Py_DECREF
(
pName
);
if
(
pModule
!=
NULL
) {
pFunc
=
PyObject_GetAttrString
(
pModule
,
argv
[
2
]);
/* pFunc is a new reference */
if
(
pFunc
&&
PyCallable_Check
(
pFunc
)) {
pArgs
=
PyTuple_New
(
argc
-
3
);
for
(
i
=
0
;
i
<
argc
-
3
;
++
i
) {
pValue
=
PyInt_FromLong
(
atoi
(
argv
[
i
+
3
]));
if
(!
pValue
) {
Py_DECREF
(
pArgs
);
Py_DECREF
(
pModule
);
fprintf
(
stderr
,
"Cannot convert argument\n"
);
return
1
;
}
/* pValue reference stolen here: */
PyTuple_SetItem
(
pArgs
,
i
,
pValue
);
}
pValue
=
PyObject_CallObject
(
pFunc
,
pArgs
);
Py_DECREF
(
pArgs
);
if
(
pValue
!=
NULL
) {
printf
(
"Result of call: %ld\n"
,
PyInt_AsLong
(
pValue
));
Py_DECREF
(
pValue
);
}
else
{
Py_DECREF
(
pFunc
);
Py_DECREF
(
pModule
);
PyErr_Print
();
fprintf
(
stderr
,
"Call failed\n"
);
return
1
;
}
}
else
{
if
(
PyErr_Occurred
())
PyErr_Print
();
fprintf
(
stderr
,
"Cannot find function \"%s\"\n"
,
argv
[
2
]);
}
Py_XDECREF
(
pFunc
);
Py_DECREF
(
pModule
);
}
else
{
PyErr_Print
();
fprintf
(
stderr
,
"Failed to load \"%s\"\n"
,
argv
[
1
]);
return
1
;
}
Py_Finalize
();
return
0
;
}
Back
|
FazBrowse Home
|
New Git URL