From d80e45117279be9c35adad968226f340b46b326b Mon Sep 17 00:00:00 2001 From: mejrs Date: Tue, 12 Apr 2022 17:26:32 +0200 Subject: [PATCH] make clippy more happy and format the world --- examples/pyo3-pytests/src/buf_and_str.rs | 12 ++++++---- pyo3-macros-backend/src/lib.rs | 2 +- pyo3-macros-backend/src/method.rs | 11 ++++------ pyo3-macros-backend/src/params.rs | 4 ++-- pyo3-macros-backend/src/pymethod.rs | 4 +--- src/conversion.rs | 2 -- src/ffi/codecs.rs | 4 ++-- src/ffi/complexobject.rs | 4 ++-- src/ffi/context.rs | 4 ++-- src/ffi/cpython/compile.rs | 4 ++-- src/ffi/cpython/object.rs | 6 ++--- src/ffi/cpython/pylifecycle.rs | 28 ++++++++++++------------ src/ffi/cpython/pymem.rs | 8 +++---- src/ffi/cpython/unicodeobject.rs | 4 ++-- src/ffi/descrobject.rs | 2 +- src/ffi/dictobject.rs | 2 +- src/ffi/eval.rs | 4 ++-- src/ffi/fileobject.rs | 2 +- src/ffi/genobject.rs | 6 ++--- src/ffi/intrcheck.rs | 4 ++-- src/ffi/object.rs | 6 ++--- src/ffi/pyhash.rs | 2 +- src/ffi/setobject.rs | 2 +- src/instance.rs | 4 ---- src/lib.rs | 2 +- src/panic.rs | 2 +- 26 files changed, 64 insertions(+), 71 deletions(-) diff --git a/examples/pyo3-pytests/src/buf_and_str.rs b/examples/pyo3-pytests/src/buf_and_str.rs index 76e530935a7..b5ce584dec1 100644 --- a/examples/pyo3-pytests/src/buf_and_str.rs +++ b/examples/pyo3-pytests/src/buf_and_str.rs @@ -14,22 +14,26 @@ impl BytesExtractor { BytesExtractor {} } - pub fn from_bytes(&mut self, bytes: &PyBytes) -> PyResult { + #[staticmethod] + pub fn from_bytes(bytes: &PyBytes) -> PyResult { let byte_vec: Vec = bytes.extract()?; Ok(byte_vec.len()) } - pub fn from_str(&mut self, string: &PyString) -> PyResult { + #[staticmethod] + pub fn from_str(string: &PyString) -> PyResult { let rust_string: String = string.extract()?; Ok(rust_string.len()) } - pub fn from_str_lossy(&mut self, string: &PyString) -> PyResult { + #[staticmethod] + pub fn from_str_lossy(string: &PyString) -> PyResult { let rust_string_lossy: String = string.to_string_lossy().to_string(); Ok(rust_string_lossy.len()) } - pub fn from_buffer(&mut self, buf: &PyAny) -> PyResult { + #[staticmethod] + pub fn from_buffer(buf: &PyAny) -> PyResult { let buf = PyBuffer::::get(buf)?; Ok(buf.item_count()) } diff --git a/pyo3-macros-backend/src/lib.rs b/pyo3-macros-backend/src/lib.rs index f42bd3b9a6f..4ac99db703f 100644 --- a/pyo3-macros-backend/src/lib.rs +++ b/pyo3-macros-backend/src/lib.rs @@ -3,7 +3,7 @@ #![cfg_attr(docsrs, feature(doc_cfg))] #![recursion_limit = "1024"] - +#![allow(clippy::unknown_clippy_lints)] // Listed first so that macros in this module are available in the rest of the crate. #[macro_use] mod utils; diff --git a/pyo3-macros-backend/src/method.rs b/pyo3-macros-backend/src/method.rs index e57ef33780b..2858338fd00 100644 --- a/pyo3-macros-backend/src/method.rs +++ b/pyo3-macros-backend/src/method.rs @@ -29,9 +29,7 @@ impl<'a> FnArg<'a> { /// Transforms a rust fn arg parsed with syn into a method::FnArg pub fn parse(arg: &'a mut syn::FnArg) -> Result { match arg { - syn::FnArg::Receiver(recv) => { - bail_spanned!(recv.span() => "unexpected receiver") - } // checked in parse_fn_type + syn::FnArg::Receiver(recv) => bail_spanned!(recv.span() => "unexpected receiver"), // checked in parse_fn_type syn::FnArg::Typed(cap) => { if let syn::Type::ImplTrait(_) = &*cap.ty { bail_spanned!(cap.ty.span() => IMPL_TRAIT_ERR); @@ -101,9 +99,7 @@ impl FnType { cls.expect("no class given for Fn with a \"self\" receiver"), error_mode, ), - FnType::FnNew | FnType::FnStatic | FnType::ClassAttribute => { - quote!() - } + FnType::FnNew | FnType::FnStatic | FnType::ClassAttribute => quote!(), FnType::FnClass => { quote! { let _slf = ::pyo3::types::PyType::from_type_ptr(_py, _slf as *mut ::pyo3::ffi::PyTypeObject); @@ -352,7 +348,8 @@ impl<'a> FnSpec<'a> { parse_method_receiver(first_arg) }; - #[allow(clippy::manual_strip)] // for strip_prefix replacement supporting rust < 1.45 + #[allow(clippy::manual_strip)] + // for strip_prefix replacement supporting rust < 1.45 // strip get_ or set_ let strip_fn_name = |prefix: &'static str| { let ident = name.unraw().to_string(); diff --git a/pyo3-macros-backend/src/params.rs b/pyo3-macros-backend/src/params.rs index 1bbbb4727d8..c06c64e6de2 100644 --- a/pyo3-macros-backend/src/params.rs +++ b/pyo3-macros-backend/src/params.rs @@ -266,7 +266,7 @@ fn impl_arg_param( } }; - return if let syn::Type::Reference(tref) = unwrap_ty_group(arg.optional.unwrap_or(ty)) { + if let syn::Type::Reference(tref) = unwrap_ty_group(arg.optional.unwrap_or(ty)) { let mut tref = remove_lifetime(tref); if let Some(cls) = self_ { replace_self(&mut tref.elem, cls); @@ -298,5 +298,5 @@ fn impl_arg_param( Ok(quote_arg_span! { let #arg_name = #arg_value_or_default; }) - }; + } } diff --git a/pyo3-macros-backend/src/pymethod.rs b/pyo3-macros-backend/src/pymethod.rs index 13a49f92734..8cdb2e06dc2 100644 --- a/pyo3-macros-backend/src/pymethod.rs +++ b/pyo3-macros-backend/src/pymethod.rs @@ -138,9 +138,7 @@ pub fn gen_py_method( cls, PropertyType::Function { self_type, spec }, )?), - (_, FnType::FnModule) => { - unreachable!("methods cannot be FnModule") - } + (_, FnType::FnModule) => unreachable!("methods cannot be FnModule"), }) } diff --git a/src/conversion.rs b/src/conversion.rs index ccd690bee15..e7cee002337 100644 --- a/src/conversion.rs +++ b/src/conversion.rs @@ -195,7 +195,6 @@ where /// } /// } /// } -/// # fn main() { /// # Python::with_gil(|py| { /// # let v = Value::Integer(73).into_py(py); /// # let v = v.extract::(py).unwrap(); @@ -206,7 +205,6 @@ where /// # let v = Value::None.into_py(py); /// # let v = v.extract::>>(py).unwrap(); /// # }); -/// # } /// ``` /// Python code will see this as any of the `int`, `string` or `None` objects. #[cfg_attr(docsrs, doc(alias = "IntoPyCallbackOutput"))] diff --git a/src/ffi/codecs.rs b/src/ffi/codecs.rs index 6c23e29602f..4aa8dfc786a 100644 --- a/src/ffi/codecs.rs +++ b/src/ffi/codecs.rs @@ -53,6 +53,6 @@ extern "C" { pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; - // skipped non-limited PyCodec_NameReplaceErrors from Include/codecs.h - // skipped non-limited Py_hexdigits from Include/codecs.h +// skipped non-limited PyCodec_NameReplaceErrors from Include/codecs.h +// skipped non-limited Py_hexdigits from Include/codecs.h } diff --git a/src/ffi/complexobject.rs b/src/ffi/complexobject.rs index beecb42141e..4ec2adab622 100644 --- a/src/ffi/complexobject.rs +++ b/src/ffi/complexobject.rs @@ -56,6 +56,6 @@ extern "C" { pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> c_double; #[cfg_attr(PyPy, link_name = "PyPyComplex_ImagAsDouble")] pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> c_double; - // skipped non-limited PyComplex_AsCComplex - // skipped non-limited _PyComplex_FormatAdvancedWriter +// skipped non-limited PyComplex_AsCComplex +// skipped non-limited _PyComplex_FormatAdvancedWriter } diff --git a/src/ffi/context.rs b/src/ffi/context.rs index f3872a6972a..cbb58f39216 100644 --- a/src/ffi/context.rs +++ b/src/ffi/context.rs @@ -7,7 +7,7 @@ extern "C" { pub static mut PyContextVar_Type: PyTypeObject; // skipped non-limited opaque PyContextVar pub static mut PyContextToken_Type: PyTypeObject; - // skipped non-limited opaque PyContextToken +// skipped non-limited opaque PyContextToken } #[inline] @@ -41,5 +41,5 @@ extern "C" { ) -> c_int; pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> c_int; - // skipped non-limited _PyContext_NewHamtForTests +// skipped non-limited _PyContext_NewHamtForTests } diff --git a/src/ffi/cpython/compile.rs b/src/ffi/cpython/compile.rs index 4308730ea76..7f361e3e716 100644 --- a/src/ffi/cpython/compile.rs +++ b/src/ffi/cpython/compile.rs @@ -80,6 +80,6 @@ extern "C" { #[cfg(Py_3_8)] pub fn PyCompile_OpcodeStackEffectWithJump(opcode: c_int, oparg: c_int, jump: c_int) -> c_int; - // skipped non-limited _PyASTOptimizeState - // skipped non-limited _PyAST_Optimize +// skipped non-limited _PyASTOptimizeState +// skipped non-limited _PyAST_Optimize } diff --git a/src/ffi/cpython/object.rs b/src/ffi/cpython/object.rs index 31a7c3d5031..9a333fd1404 100644 --- a/src/ffi/cpython/object.rs +++ b/src/ffi/cpython/object.rs @@ -351,9 +351,9 @@ extern "C" { #[cfg_attr(PyPy, link_name = "PyPyObject_CallFinalizerFromDealloc")] pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> c_int; - // skipped _PyObject_GenericGetAttrWithDict - // skipped _PyObject_GenericSetAttrWithDict - // skipped _PyObject_FunctionStr +// skipped _PyObject_GenericGetAttrWithDict +// skipped _PyObject_GenericSetAttrWithDict +// skipped _PyObject_FunctionStr } // skipped Py_SETREF diff --git a/src/ffi/cpython/pylifecycle.rs b/src/ffi/cpython/pylifecycle.rs index b05cbe8cd98..156abfe3afd 100644 --- a/src/ffi/cpython/pylifecycle.rs +++ b/src/ffi/cpython/pylifecycle.rs @@ -23,26 +23,26 @@ extern "C" { pub fn Py_RunMain() -> c_int; - // skipped Py_ExitStatusException +// skipped Py_ExitStatusException - // skipped _Py_RestoreSignals +// skipped _Py_RestoreSignals - // skipped Py_FdIsInteractive - // skipped _Py_FdIsInteractive +// skipped Py_FdIsInteractive +// skipped _Py_FdIsInteractive - // skipped _Py_SetProgramFullPath +// skipped _Py_SetProgramFullPath - // skipped _Py_gitidentifier - // skipped _Py_getversion +// skipped _Py_gitidentifier +// skipped _Py_getversion - // skipped _Py_IsFinalizing +// skipped _Py_IsFinalizing - // skipped _PyOS_URandom - // skipped _PyOS_URandomNonblock +// skipped _PyOS_URandom +// skipped _PyOS_URandomNonblock - // skipped _Py_CoerceLegacyLocale - // skipped _Py_LegacyLocaleDetected - // skipped _Py_SetLocaleFromEnv +// skipped _Py_CoerceLegacyLocale +// skipped _Py_LegacyLocaleDetected +// skipped _Py_SetLocaleFromEnv - // skipped _Py_NewInterpreter +// skipped _Py_NewInterpreter } diff --git a/src/ffi/cpython/pymem.rs b/src/ffi/cpython/pymem.rs index 7c07d5c9f1d..a9413dc0b26 100644 --- a/src/ffi/cpython/pymem.rs +++ b/src/ffi/cpython/pymem.rs @@ -11,10 +11,10 @@ extern "C" { #[cfg_attr(PyPy, link_name = "PyPyMem_RawFree")] pub fn PyMem_RawFree(ptr: *mut c_void); - // skipped _PyMem_GetCurrentAllocatorName - // skipped _PyMem_RawStrdup - // skipped _PyMem_Strdup - // skipped _PyMem_RawWcsdup +// skipped _PyMem_GetCurrentAllocatorName +// skipped _PyMem_RawStrdup +// skipped _PyMem_Strdup +// skipped _PyMem_RawWcsdup } #[repr(C)] diff --git a/src/ffi/cpython/unicodeobject.rs b/src/ffi/cpython/unicodeobject.rs index f357d91d9f5..0ba097f60a7 100644 --- a/src/ffi/cpython/unicodeobject.rs +++ b/src/ffi/cpython/unicodeobject.rs @@ -302,7 +302,7 @@ extern "C" { size: *mut Py_ssize_t, ) -> *mut Py_UNICODE; - // skipped PyUnicode_GetMax +// skipped PyUnicode_GetMax } // skipped _PyUnicodeWriter @@ -437,7 +437,7 @@ extern "C" { length: Py_ssize_t, ) -> *mut PyObject; - // skipped _PyUnicode_TransformDecimalAndSpaceToASCII +// skipped _PyUnicode_TransformDecimalAndSpaceToASCII } // skipped _PyUnicode_JoinArray diff --git a/src/ffi/descrobject.rs b/src/ffi/descrobject.rs index 6b6b0b2daa3..9f19a1ad79f 100644 --- a/src/ffi/descrobject.rs +++ b/src/ffi/descrobject.rs @@ -45,7 +45,7 @@ extern "C" { pub static mut PyWrapperDescr_Type: PyTypeObject; #[cfg_attr(PyPy, link_name = "PyPyDictProxy_Type")] pub static mut PyDictProxy_Type: PyTypeObject; - // skipped non-limited _PyMethodWrapper_Type +// skipped non-limited _PyMethodWrapper_Type } extern "C" { diff --git a/src/ffi/dictobject.rs b/src/ffi/dictobject.rs index a0d2b2b3c9b..cfb579952f5 100644 --- a/src/ffi/dictobject.rs +++ b/src/ffi/dictobject.rs @@ -64,7 +64,7 @@ extern "C" { ) -> c_int; #[cfg_attr(PyPy, link_name = "PyPyDict_DelItemString")] pub fn PyDict_DelItemString(dp: *mut PyObject, key: *const c_char) -> c_int; - // skipped 3.10 / ex-non-limited PyObject_GenericGetDict +// skipped 3.10 / ex-non-limited PyObject_GenericGetDict } #[cfg_attr(windows, link(name = "pythonXY"))] diff --git a/src/ffi/eval.rs b/src/ffi/eval.rs index 1ce62c07cc0..b554cda3c32 100644 --- a/src/ffi/eval.rs +++ b/src/ffi/eval.rs @@ -22,6 +22,6 @@ extern "C" { closure: *mut PyObject, ) -> *mut PyObject; - // skipped non-limited _PyEval_EvalCodeWithName - // skipped non-limited _PyEval_CallTracing +// skipped non-limited _PyEval_EvalCodeWithName +// skipped non-limited _PyEval_CallTracing } diff --git a/src/ffi/fileobject.rs b/src/ffi/fileobject.rs index a72db98581b..029304eb6f2 100644 --- a/src/ffi/fileobject.rs +++ b/src/ffi/fileobject.rs @@ -29,7 +29,7 @@ extern "C" { pub static mut Py_FileSystemDefaultEncoding: *const c_char; pub static mut Py_FileSystemDefaultEncodeErrors: *const c_char; pub static mut Py_HasFileSystemDefaultEncoding: c_int; - // skipped Python 3.7 / ex-non-limited Py_UTF8Mode +// skipped Python 3.7 / ex-non-limited Py_UTF8Mode } // skipped _PyIsSelectable_fd diff --git a/src/ffi/genobject.rs b/src/ffi/genobject.rs index c486e202165..2ac295953f2 100644 --- a/src/ffi/genobject.rs +++ b/src/ffi/genobject.rs @@ -66,9 +66,9 @@ pub unsafe fn PyCoro_CheckExact(op: *mut PyObject) -> c_int { #[cfg_attr(windows, link(name = "pythonXY"))] extern "C" { pub static mut PyAsyncGen_Type: PyTypeObject; - // skipped _PyAsyncGenASend_Type - // skipped _PyAsyncGenWrappedValue_Type - // skipped _PyAsyncGenAThrow_Type +// skipped _PyAsyncGenASend_Type +// skipped _PyAsyncGenWrappedValue_Type +// skipped _PyAsyncGenAThrow_Type } // skipped PyAsyncGen_New diff --git a/src/ffi/intrcheck.rs b/src/ffi/intrcheck.rs index ffd6c79c9d3..74d3dc1f7f5 100644 --- a/src/ffi/intrcheck.rs +++ b/src/ffi/intrcheck.rs @@ -20,6 +20,6 @@ extern "C" { #[cfg_attr(PyPy, link_name = "PyPyOS_AfterFork")] pub fn PyOS_AfterFork(); - // skipped non-limited _PyOS_IsMainThread - // skipped non-limited Windows _PyOS_SigintEvent +// skipped non-limited _PyOS_IsMainThread +// skipped non-limited Windows _PyOS_SigintEvent } diff --git a/src/ffi/object.rs b/src/ffi/object.rs index 05898a06d77..f55c9b1f04a 100644 --- a/src/ffi/object.rs +++ b/src/ffi/object.rs @@ -202,9 +202,9 @@ extern "C" { #[cfg_attr(PyPy, link_name = "PyPyType_GetSlot")] pub fn PyType_GetSlot(arg1: *mut PyTypeObject, arg2: c_int) -> *mut c_void; - // skipped non-limited / 3.9 PyType_FromModuleAndSpec - // skipped non-limited / 3.9 PyType_GetModule - // skipped non-limited / 3.9 PyType_GetModuleState +// skipped non-limited / 3.9 PyType_FromModuleAndSpec +// skipped non-limited / 3.9 PyType_GetModule +// skipped non-limited / 3.9 PyType_GetModuleState } extern "C" { diff --git a/src/ffi/pyhash.rs b/src/ffi/pyhash.rs index 703f6245467..736f115ea54 100644 --- a/src/ffi/pyhash.rs +++ b/src/ffi/pyhash.rs @@ -14,7 +14,7 @@ extern "C" { pub fn _Py_HashBytes(src: *const c_void, len: Py_ssize_t) -> Py_hash_t; } -pub const _PyHASH_MULTIPLIER: c_ulong = 1000003; +pub const _PyHASH_MULTIPLIER: c_ulong = 1_000_003; // skipped _PyHASH_BITS diff --git a/src/ffi/setobject.rs b/src/ffi/setobject.rs index 7471c5fe8ad..175f0e8f2f7 100644 --- a/src/ffi/setobject.rs +++ b/src/ffi/setobject.rs @@ -43,7 +43,7 @@ extern "C" { hash: *mut super::Py_hash_t, ) -> c_int; - // skipped non-limited _PySet_Update +// skipped non-limited _PySet_Update } #[cfg_attr(windows, link(name = "pythonXY"))] diff --git a/src/instance.rs b/src/instance.rs index 330e409967e..472f6bef7f8 100644 --- a/src/instance.rs +++ b/src/instance.rs @@ -172,7 +172,6 @@ pub unsafe trait PyNativeType: Sized { /// use pyo3::prelude::*; /// use pyo3::types::PyDict; /// -/// # fn main() { /// Python::with_gil(|py| { /// let first: Py = PyDict::new(py).into(); /// @@ -190,7 +189,6 @@ pub unsafe trait PyNativeType: Sized { /// assert_eq!(fourth.as_ptr(), fifth.as_ptr()); /// assert_eq!(second.as_ptr(), fourth.as_ptr()); /// }); -/// # } /// ``` /// /// # Preventing reference cycles @@ -479,7 +477,6 @@ impl Py { /// use pyo3::prelude::*; /// use pyo3::types::PyDict; /// - /// # fn main() { /// Python::with_gil(|py| { /// let first: Py = PyDict::new(py).into(); /// let second = Py::clone_ref(&first, py); @@ -487,7 +484,6 @@ impl Py { /// // Both point to the same object /// assert_eq!(first.as_ptr(), second.as_ptr()); /// }); - /// # } /// ``` #[inline] pub fn clone_ref(&self, py: Python) -> Py { diff --git a/src/lib.rs b/src/lib.rs index 14bc7466d3e..50454223bb8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11,7 +11,7 @@ // Deny some lints in doctests. // Use `#[allow(...)]` locally to override. #![doc(test(attr(deny(warnings), allow(unused_variables, unused_assignments))))] - +#![allow(clippy::unknown_clippy_lints)] // So many new lints... //! Rust bindings to the Python interpreter. //! //! PyO3 can be used to write native Python modules or run Python code and modules from Rust. diff --git a/src/panic.rs b/src/panic.rs index cf1dd3701e3..da612e8ae9e 100644 --- a/src/panic.rs +++ b/src/panic.rs @@ -21,7 +21,7 @@ impl PanicException { if let Some(string) = payload.downcast_ref::() { Self::new_err((string.clone(),)) } else if let Some(s) = payload.downcast_ref::<&str>() { - Self::new_err((s.to_string(),)) + Self::new_err(((*s).to_string(),)) } else { Self::new_err(("panic from Rust code",)) }