Skip to content

Commit c6751f0

Browse files
committed
Use ignore macro for Python excluded APIs
Commented out signatures don't play so nicely with rustfmt. Make it clearer which bits of the Python API we are ignoring by using an `ignore!` macro.
1 parent 0f430e4 commit c6751f0

34 files changed

+288
-184
lines changed

python27-sys/build.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,7 @@ fn find_interpreter_and_get_config(
295295
}
296296

297297
for name in possible_names.iter() {
298-
if let Ok((executable, interpreter_version, lines)) =
299-
get_config_from_interpreter(name)
300-
{
298+
if let Ok((executable, interpreter_version, lines)) = get_config_from_interpreter(name) {
301299
if matching_version(expected_version, &interpreter_version) {
302300
return Ok((interpreter_version, executable, lines));
303301
}
@@ -421,7 +419,7 @@ fn version_from_env() -> Result<PythonVersion, String> {
421419
Some(s) => Some(s.as_str().parse().unwrap()),
422420
None => None,
423421
},
424-
})
422+
});
425423
}
426424
}
427425
Err(

python27-sys/src/code.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,15 @@ extern "C" {
7878
firstlineno: c_int,
7979
) -> *mut PyCodeObject;
8080
pub fn PyCode_Addr2Line(arg1: *mut PyCodeObject, arg2: c_int) -> c_int;
81-
//fn _PyCode_CheckLineNumber(co: *mut PyCodeObject,
82-
// lasti: c_int,
83-
// bounds: *mut PyAddrPair) -> c_int;
81+
82+
ignore! {
83+
fn _PyCode_CheckLineNumber(
84+
co: *mut PyCodeObject,
85+
lasti: c_int,
86+
bounds: *mut PyAddrPair,
87+
) -> c_int;
88+
}
89+
8490
pub fn PyCode_Optimize(
8591
code: *mut PyObject,
8692
consts: *mut PyObject,

python27-sys/src/complexobject.rs

+7-4
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,11 @@ extern "C" {
5757
pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> c_double;
5858
pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex;
5959

60-
//fn _PyComplex_FormatAdvanced(obj: *mut PyObject,
61-
// format_spec: *mut c_char,
62-
// format_spec_len: Py_ssize_t)
63-
// -> *mut PyObject;
60+
ignore! {
61+
fn _PyComplex_FormatAdvanced(
62+
obj: *mut PyObject,
63+
format_spec: *mut c_char,
64+
format_spec_len: Py_ssize_t,
65+
) -> *mut PyObject;
66+
}
6467
}

python27-sys/src/descrobject.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ pub unsafe fn PyDescr_IsData(d: *mut PyObject) -> c_int {
8787

8888
#[cfg_attr(windows, link(name = "pythonXY"))]
8989
extern "C" {
90-
//pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject;
91-
// PyDictProxy_New is also defined in dictobject.h
90+
ignore! {
91+
// PyDictProxy_New is also defined in dictobject.h
92+
pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject;
93+
}
9294
pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject;
9395
}

python27-sys/src/dictobject.rs

+16-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ use libc::{c_char, c_int};
33
use crate::object::*;
44
use crate::pyport::Py_ssize_t;
55

6-
//#[repr(C)] pub struct PyDictObject { /* representation hidden */ }
6+
ignore! {
7+
#[repr(C)]
8+
pub struct PyDictObject { /* representation hidden */ }
9+
}
710

811
#[cfg_attr(windows, link(name = "pythonXY"))]
912
extern "C" {
@@ -56,13 +59,18 @@ extern "C" {
5659
key: *mut *mut PyObject,
5760
value: *mut *mut PyObject,
5861
) -> c_int;
59-
/*pub fn _PyDict_Next(mp: *mut PyObject, pos: *mut Py_ssize_t,
60-
key: *mut *mut PyObject, value: *mut *mut PyObject,
61-
hash: *mut c_long) -> c_int;
62-
pub fn _PyDict_Contains(mp: *mut PyObject, key: *mut PyObject,
63-
hash: c_long) -> c_int;
64-
pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject;
65-
pub fn _PyDict_MaybeUntrack(mp: *mut PyObject);*/
62+
ignore! {
63+
pub fn _PyDict_Next(
64+
mp: *mut PyObject,
65+
pos: *mut Py_ssize_t,
66+
key: *mut *mut PyObject,
67+
value: *mut *mut PyObject,
68+
hash: *mut c_long,
69+
) -> c_int;
70+
pub fn _PyDict_Contains(mp: *mut PyObject, key: *mut PyObject, hash: c_long) -> c_int;
71+
pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject;
72+
pub fn _PyDict_MaybeUntrack(mp: *mut PyObject);
73+
}
6674
pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> c_int;
6775
pub fn PyDict_Merge(mp: *mut PyObject, other: *mut PyObject, _override: c_int) -> c_int;
6876
pub fn PyDict_MergeFromSeq2(d: *mut PyObject, seq2: *mut PyObject, _override: c_int) -> c_int;

python27-sys/src/fileobject.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ extern "C" {
3636
arg4: Option<unsafe extern "C" fn(arg1: *mut FILE) -> c_int>,
3737
) -> *mut PyObject;
3838
pub fn PyFile_AsFile(arg1: *mut PyObject) -> *mut FILE;
39-
//pub fn PyFile_IncUseCount(arg1: *mut PyFileObject);
40-
//pub fn PyFile_DecUseCount(arg1: *mut PyFileObject);
39+
ignore! {
40+
pub fn PyFile_IncUseCount(arg1: *mut PyFileObject);
41+
pub fn PyFile_DecUseCount(arg1: *mut PyFileObject);
42+
}
4143
pub fn PyFile_Name(arg1: *mut PyObject) -> *mut PyObject;
4244
pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: c_int) -> *mut PyObject;
4345
pub fn PyFile_WriteObject(arg1: *mut PyObject, arg2: *mut PyObject, arg3: c_int) -> c_int;

python27-sys/src/frameobject.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,12 @@ pub unsafe fn PyFrame_Check(op: *mut PyObject) -> c_int {
6363
((*op).ob_type == &mut PyFrame_Type) as c_int
6464
}
6565

66-
//#[inline]
67-
//pub unsafe fn PyFrame_IsRestricted(f: *mut PyFrameObject) -> c_int {
68-
// ((*f).f_builtins != (*(*(*f).f_tstate).interp).builtins) as c_int
69-
//}
66+
ignore! {
67+
#[inline]
68+
pub unsafe fn PyFrame_IsRestricted(f: *mut PyFrameObject) -> c_int {
69+
((*f).f_builtins != (*(*(*f).f_tstate).interp).builtins) as c_int
70+
}
71+
}
7072

7173
#[cfg_attr(windows, link(name = "pythonXY"))]
7274
extern "C" {

python27-sys/src/import.rs

+18-18
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,22 @@ extern "C" {
6969
pub static mut PyImport_Inittab: *mut PyImport_Struct_inittab;
7070
pub static mut PyImport_FrozenModules: *mut PyImport_Struct_frozen;
7171

72-
/*for internal use only:
73-
pub fn PyImport_Cleanup();
74-
pub fn _PyImport_AcquireLock();
75-
pub fn _PyImport_ReleaseLock() -> c_int;
76-
pub fn _PyImport_FindModule(arg1: *const c_char,
77-
arg2: *mut PyObject,
78-
arg3: *mut c_char, arg4: size_t,
79-
arg5: *mut *mut FILE,
80-
arg6: *mut *mut PyObject)
81-
-> *mut Struct_filedescr;
82-
pub fn _PyImport_IsScript(arg1: *mut Struct_filedescr) -> c_int;
83-
pub fn _PyImport_ReInitLock();
84-
pub fn _PyImport_FindExtension(arg1: *mut c_char,
85-
arg2: *mut c_char)
86-
-> *mut PyObject;
87-
pub fn _PyImport_FixupExtension(arg1: *mut c_char,
88-
arg2: *mut c_char)
89-
-> *mut PyObject;*/
72+
ignore! {
73+
// For internal use only
74+
pub fn PyImport_Cleanup();
75+
pub fn _PyImport_AcquireLock();
76+
pub fn _PyImport_ReleaseLock() -> c_int;
77+
pub fn _PyImport_FindModule(
78+
arg1: *const c_char,
79+
arg2: *mut PyObject,
80+
arg3: *mut c_char,
81+
arg4: size_t,
82+
arg5: *mut *mut FILE,
83+
arg6: *mut *mut PyObject,
84+
) -> *mut Struct_filedescr;
85+
pub fn _PyImport_IsScript(arg1: *mut Struct_filedescr) -> c_int;
86+
pub fn _PyImport_ReInitLock();
87+
pub fn _PyImport_FindExtension(arg1: *mut c_char, arg2: *mut c_char) -> *mut PyObject;
88+
pub fn _PyImport_FixupExtension(arg1: *mut c_char, arg2: *mut c_char) -> *mut PyObject;
89+
}
9090
}

python27-sys/src/intobject.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,19 @@ extern "C" {
5050
pub fn PyInt_AsUnsignedLongMask(io: *mut PyObject) -> c_ulong;
5151
pub fn PyInt_AsUnsignedLongLongMask(io: *mut PyObject) -> c_ulonglong;
5252
pub fn PyInt_GetMax() -> c_long;
53-
//fn PyOS_strtoul(arg1: *mut c_char,
54-
// arg2: *mut *mut c_char, arg3: c_int)
55-
// -> c_ulong;
56-
//fn PyOS_strtol(arg1: *mut c_char,
57-
// arg2: *mut *mut c_char, arg3: c_int)
58-
// -> c_long;
53+
ignore! {
54+
fn PyOS_strtoul(arg1: *mut c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulong;
55+
fn PyOS_strtol(arg1: *mut c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_long;
56+
}
5957
pub fn PyInt_ClearFreeList() -> c_int;
60-
//fn _PyInt_Format(v: *mut PyIntObject, base: c_int,
61-
// newstyle: c_int) -> *mut PyObject;
62-
//fn _PyInt_FormatAdvanced(obj: *mut PyObject,
63-
// format_spec: *mut c_char,
64-
// format_spec_len: Py_ssize_t)
65-
// -> *mut PyObject;
58+
ignore! {
59+
fn _PyInt_Format(v: *mut PyIntObject, base: c_int, newstyle: c_int) -> *mut PyObject;
60+
fn _PyInt_FormatAdvanced(
61+
obj: *mut PyObject,
62+
format_spec: *mut c_char,
63+
format_spec_len: Py_ssize_t,
64+
) -> *mut PyObject;
65+
}
6666
}
6767

6868
pub unsafe fn PyInt_AS_LONG(io: *mut PyObject) -> c_long {

python27-sys/src/lib.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@
77
clippy::missing_safety_doc,
88
clippy::transmute_ptr_to_ptr,
99
clippy::unused_unit,
10-
clippy::identity_op,
10+
clippy::identity_op
1111
)]
1212

13+
// Macro for marking parts of the Python headers as ignored.
14+
macro_rules! ignore {
15+
( $( $_tokens:tt )* ) => {};
16+
}
17+
1318
pub use crate::boolobject::*;
1419
pub use crate::bufferobject::*;
1520
pub use crate::bytearrayobject::*;

python27-sys/src/listobject.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ extern "C" {
6969
pub fn PyList_Sort(list: *mut PyObject) -> c_int;
7070
pub fn PyList_Reverse(list: *mut PyObject) -> c_int;
7171
pub fn PyList_AsTuple(list: *mut PyObject) -> *mut PyObject;
72-
//fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject)
73-
//-> *mut PyObject;
72+
ignore! {
73+
fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject;
74+
}
7475
}

python27-sys/src/longobject.rs

+34-22
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ use libc::{c_char, c_double, c_int, c_long, c_longlong, c_ulong, c_ulonglong, c_
33
use crate::object::*;
44
use crate::pyport::Py_ssize_t;
55

6-
//#[repr(C)] struct PyLongObject { /* representation hidden */ }
6+
ignore! {
7+
#[repr(C)]
8+
struct PyLongObject { /* representation hidden */ }
9+
}
710

811
#[cfg_attr(windows, link(name = "pythonXY"))]
912
extern "C" {
@@ -57,25 +60,34 @@ extern "C" {
5760

5861
pub fn PyLong_GetInfo() -> *mut PyObject;
5962

60-
/*
61-
pub fn _PyLong_AsInt(arg1: *mut PyObject) -> c_int;
62-
pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t)
63-
-> c_double;
64-
65-
pub fn _PyLong_Sign(v: *mut PyObject) -> c_int;
66-
pub fn _PyLong_NumBits(v: *mut PyObject) -> size_t;
67-
pub fn _PyLong_FromByteArray(bytes: *const c_uchar, n: size_t,
68-
little_endian: c_int,
69-
is_signed: c_int) -> *mut PyObject;
70-
pub fn _PyLong_AsByteArray(v: *mut PyLongObject,
71-
bytes: *mut c_uchar, n: size_t,
72-
little_endian: c_int,
73-
is_signed: c_int) -> c_int;
74-
pub fn _PyLong_Format(aa: *mut PyObject, base: c_int,
75-
addL: c_int, newstyle: c_int)
76-
-> *mut PyObject;
77-
pub fn _PyLong_FormatAdvanced(obj: *mut PyObject,
78-
format_spec: *mut c_char,
79-
format_spec_len: Py_ssize_t)
80-
-> *mut PyObject;*/
63+
ignore! {
64+
pub fn _PyLong_AsInt(arg1: *mut PyObject) -> c_int;
65+
pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> c_double;
66+
pub fn _PyLong_Sign(v: *mut PyObject) -> c_int;
67+
pub fn _PyLong_NumBits(v: *mut PyObject) -> size_t;
68+
pub fn _PyLong_FromByteArray(
69+
bytes: *const c_uchar,
70+
n: size_t,
71+
little_endian: c_int,
72+
is_signed: c_int,
73+
) -> *mut PyObject;
74+
pub fn _PyLong_AsByteArray(
75+
v: *mut PyLongObject,
76+
bytes: *mut c_uchar,
77+
n: size_t,
78+
little_endian: c_int,
79+
is_signed: c_int,
80+
) -> c_int;
81+
pub fn _PyLong_Format(
82+
aa: *mut PyObject,
83+
base: c_int,
84+
addL: c_int,
85+
newstyle: c_int,
86+
) -> *mut PyObject;
87+
pub fn _PyLong_FormatAdvanced(
88+
obj: *mut PyObject,
89+
format_spec: *mut c_char,
90+
format_spec_len: Py_ssize_t,
91+
) -> *mut PyObject;
92+
}
8193
}

python27-sys/src/modsupport.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ extern "C" {
2424
...
2525
) -> c_int;
2626
pub fn Py_BuildValue(format: *const c_char, ...) -> *mut PyObject;
27-
//fn _Py_BuildValue_SizeT(arg1: *const c_char, ...)
28-
// -> *mut PyObject;
29-
//fn _PyArg_NoKeywords(funcname: *const c_char,
30-
// kw: *mut PyObject) -> c_int;
27+
28+
ignore! {
29+
fn _Py_BuildValue_SizeT(arg1: *const c_char, ...) -> *mut PyObject;
30+
fn _PyArg_NoKeywords(funcname: *const c_char, kw: *mut PyObject) -> c_int;
31+
}
32+
3133
pub fn PyModule_AddObject(
3234
module: *mut PyObject,
3335
name: *const c_char,

python27-sys/src/moduleobject.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ extern "C" {
1010
pub fn PyModule_GetDict(module: *mut PyObject) -> *mut PyObject;
1111
pub fn PyModule_GetName(module: *mut PyObject) -> *mut c_char;
1212
pub fn PyModule_GetFilename(module: *mut PyObject) -> *mut c_char;
13-
//fn _PyModule_Clear(arg1: *mut PyObject);
13+
ignore! {
14+
fn _PyModule_Clear(arg1: *mut PyObject);
15+
}
1416
}
1517

1618
#[inline(always)]

python27-sys/src/pyarena.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ use libc::{c_int, c_void, size_t};
33
use crate::object::PyObject;
44

55
#[allow(missing_copy_implementations)]
6-
#[repr(C)] pub struct PyArena { _private: [u8; 0] }
6+
#[repr(C)]
7+
pub struct PyArena {
8+
_private: [u8; 0],
9+
}
710

811
#[cfg_attr(windows, link(name = "pythonXY"))]
912
extern "C" {

python27-sys/src/pystate.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ use libc::{c_int, c_long};
33
use crate::frameobject::PyFrameObject;
44
use crate::object::PyObject;
55

6-
#[repr(C)] pub struct PyInterpreterState { _private: [u8; 0] }
6+
#[repr(C)]
7+
pub struct PyInterpreterState {
8+
_private: [u8; 0],
9+
}
710

811
pub type Py_tracefunc = unsafe extern "C" fn(
912
arg1: *mut PyObject,

python27-sys/src/pythonrun.rs

+12-3
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,22 @@ pub struct PyCompilerFlags {
2222
}
2323

2424
#[allow(missing_copy_implementations)]
25-
#[repr(C)] pub struct Struct__mod { _private: [u8; 0] }
25+
#[repr(C)]
26+
pub struct Struct__mod {
27+
_private: [u8; 0],
28+
}
2629

2730
#[allow(missing_copy_implementations)]
28-
#[repr(C)] pub struct Struct__node { _private: [u8; 0] }
31+
#[repr(C)]
32+
pub struct Struct__node {
33+
_private: [u8; 0],
34+
}
2935

3036
#[allow(missing_copy_implementations)]
31-
#[repr(C)] pub struct Struct_symtable { _private: [u8; 0] }
37+
#[repr(C)]
38+
pub struct Struct_symtable {
39+
_private: [u8; 0],
40+
}
3241

3342
#[cfg_attr(windows, link(name = "pythonXY"))]
3443
extern "C" {

0 commit comments

Comments
 (0)