1 | use crate::object::PyObject; |
2 | use std::os::raw::{c_char, c_int, c_long}; |
3 | |
4 | unsafeextern "C" { |
5 | pub unsafefn PyImport_GetMagicNumber() -> c_long; |
6 | pub unsafefn PyImport_GetMagicTag() -> *const c_char; |
7 | #[cfg_attr (PyPy, link_name = "PyPyImport_ExecCodeModule" )] |
8 | pub unsafefn PyImport_ExecCodeModule(name: *const c_char, co: *mut PyObject) -> *mut PyObject; |
9 | #[cfg_attr (PyPy, link_name = "PyPyImport_ExecCodeModuleEx" )] |
10 | pub unsafefn PyImport_ExecCodeModuleEx( |
11 | name: *const c_char, |
12 | co: *mut PyObject, |
13 | pathname: *const c_char, |
14 | ) -> *mut PyObject; |
15 | pub unsafefn PyImport_ExecCodeModuleWithPathnames( |
16 | name: *const c_char, |
17 | co: *mut PyObject, |
18 | pathname: *const c_char, |
19 | cpathname: *const c_char, |
20 | ) -> *mut PyObject; |
21 | pub unsafefn PyImport_ExecCodeModuleObject( |
22 | name: *mut PyObject, |
23 | co: *mut PyObject, |
24 | pathname: *mut PyObject, |
25 | cpathname: *mut PyObject, |
26 | ) -> *mut PyObject; |
27 | #[cfg_attr (PyPy, link_name = "PyPyImport_GetModuleDict" )] |
28 | pub unsafefn PyImport_GetModuleDict() -> *mut PyObject; |
29 | // skipped Python 3.7 / ex-non-limited PyImport_GetModule |
30 | pub unsafefn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; |
31 | #[cfg_attr (PyPy, link_name = "PyPyImport_AddModule" )] |
32 | pub unsafefn PyImport_AddModule(name: *const c_char) -> *mut PyObject; |
33 | #[cfg (Py_3_13)] |
34 | #[cfg_attr (PyPy, link_name = "PyPyImport_AddModuleRef" )] |
35 | pub fn PyImport_AddModuleRef(name: *const c_char) -> *mut PyObject; |
36 | #[cfg_attr (PyPy, link_name = "PyPyImport_ImportModule" )] |
37 | pub unsafefn PyImport_ImportModule(name: *const c_char) -> *mut PyObject; |
38 | #[cfg_attr (PyPy, link_name = "PyPyImport_ImportModuleNoBlock" )] |
39 | pub unsafefn PyImport_ImportModuleNoBlock(name: *const c_char) -> *mut PyObject; |
40 | #[cfg_attr (PyPy, link_name = "PyPyImport_ImportModuleLevel" )] |
41 | pub unsafefn PyImport_ImportModuleLevel( |
42 | name: *const c_char, |
43 | globals: *mut PyObject, |
44 | locals: *mut PyObject, |
45 | fromlist: *mut PyObject, |
46 | level: c_int, |
47 | ) -> *mut PyObject; |
48 | #[cfg_attr (PyPy, link_name = "PyPyImport_ImportModuleLevelObject" )] |
49 | pub unsafefn PyImport_ImportModuleLevelObject( |
50 | name: *mut PyObject, |
51 | globals: *mut PyObject, |
52 | locals: *mut PyObject, |
53 | fromlist: *mut PyObject, |
54 | level: c_int, |
55 | ) -> *mut PyObject; |
56 | } |
57 | |
58 | #[inline ] |
59 | pub unsafe fn PyImport_ImportModuleEx( |
60 | name: *const c_char, |
61 | globals: *mut PyObject, |
62 | locals: *mut PyObject, |
63 | fromlist: *mut PyObject, |
64 | ) -> *mut PyObject { |
65 | PyImport_ImportModuleLevel(name, globals, locals, fromlist, level:0) |
66 | } |
67 | |
68 | unsafeextern "C" { |
69 | pub unsafefn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; |
70 | #[cfg_attr (PyPy, link_name = "PyPyImport_Import" )] |
71 | pub unsafefn PyImport_Import(name: *mut PyObject) -> *mut PyObject; |
72 | #[cfg_attr (PyPy, link_name = "PyPyImport_ReloadModule" )] |
73 | pub unsafefn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; |
74 | #[cfg (not(Py_3_9))] |
75 | #[deprecated (note = "Removed in Python 3.9 as it was \"For internal use only \"." )] |
76 | pub fn PyImport_Cleanup(); |
77 | pub unsafefn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> c_int; |
78 | pub unsafefn PyImport_ImportFrozenModule(name: *const c_char) -> c_int; |
79 | |
80 | pub unsafefn PyImport_AppendInittab( |
81 | name: *const c_char, |
82 | initfunc: Option<unsafe extern "C" fn() -> *mut PyObject>, |
83 | ) -> c_int; |
84 | } |
85 | |