Fix non_upper_case_globals warning in py_class!() macro.

This commit is contained in:
Daniel Grunwald 2016-12-10 12:41:08 +01:00
parent 2b012968ec
commit 2c89f62646
3 changed files with 42 additions and 42 deletions

View File

@ -137,16 +137,16 @@ base_case = '''
return Ok($class { _unsafe_inner: obj }); return Ok($class { _unsafe_inner: obj });
// hide statics in create_instance to avoid name conflicts // hide statics in create_instance to avoid name conflicts
static mut type_object : $crate::_detail::ffi::PyTypeObject static mut TYPE_OBJECT : $crate::_detail::ffi::PyTypeObject
= py_class_type_object_static_init!($class, $gc, $slots); = py_class_type_object_static_init!($class, $gc, $slots);
static mut init_active: bool = false; static mut INIT_ACTIVE: bool = false;
// trait implementations that need direct access to type_object // trait implementations that need direct access to TYPE_OBJECT
impl $crate::PythonObjectWithTypeObject for $class { impl $crate::PythonObjectWithTypeObject for $class {
fn type_object(py: $crate::Python) -> $crate::PyType { fn type_object(py: $crate::Python) -> $crate::PyType {
unsafe { unsafe {
if $crate::py_class::is_ready(py, &type_object) { if $crate::py_class::is_ready(py, &TYPE_OBJECT) {
$crate::PyType::from_type_ptr(py, &mut type_object) $crate::PyType::from_type_ptr(py, &mut TYPE_OBJECT)
} else { } else {
// automatically initialize the class on-demand // automatically initialize the class on-demand
<$class as $crate::py_class::PythonObjectFromPyClassMacro>::initialize(py) <$class as $crate::py_class::PythonObjectFromPyClassMacro>::initialize(py)
@ -159,26 +159,26 @@ base_case = '''
impl $crate::py_class::PythonObjectFromPyClassMacro for $class { impl $crate::py_class::PythonObjectFromPyClassMacro for $class {
fn initialize(py: $crate::Python) -> $crate::PyResult<$crate::PyType> { fn initialize(py: $crate::Python) -> $crate::PyResult<$crate::PyType> {
unsafe { unsafe {
if $crate::py_class::is_ready(py, &type_object) { if $crate::py_class::is_ready(py, &TYPE_OBJECT) {
return Ok($crate::PyType::from_type_ptr(py, &mut type_object)); return Ok($crate::PyType::from_type_ptr(py, &mut TYPE_OBJECT));
} }
assert!(!init_active, assert!(!INIT_ACTIVE,
concat!("Reentrancy detected: already initializing class ", concat!("Reentrancy detected: already initializing class ",
stringify!($class))); stringify!($class)));
init_active = true; INIT_ACTIVE = true;
let res = init(py); let res = init(py);
init_active = false; INIT_ACTIVE = false;
res res
} }
} }
} }
fn init($py: $crate::Python) -> $crate::PyResult<$crate::PyType> { fn init($py: $crate::Python) -> $crate::PyResult<$crate::PyType> {
py_class_type_object_dynamic_init!($class, $py, type_object, $slots); py_class_type_object_dynamic_init!($class, $py, TYPE_OBJECT, $slots);
py_class_init_members!($class, $py, type_object, $members); py_class_init_members!($class, $py, TYPE_OBJECT, $members);
unsafe { unsafe {
if $crate::_detail::ffi::PyType_Ready(&mut type_object) == 0 { if $crate::_detail::ffi::PyType_Ready(&mut TYPE_OBJECT) == 0 {
Ok($crate::PyType::from_type_ptr($py, &mut type_object)) Ok($crate::PyType::from_type_ptr($py, &mut TYPE_OBJECT))
} else { } else {
Err($crate::PyErr::fetch($py)) Err($crate::PyErr::fetch($py))
} }

View File

@ -129,16 +129,16 @@ macro_rules! py_class_impl {
return Ok($class { _unsafe_inner: obj }); return Ok($class { _unsafe_inner: obj });
// hide statics in create_instance to avoid name conflicts // hide statics in create_instance to avoid name conflicts
static mut type_object : $crate::_detail::ffi::PyTypeObject static mut TYPE_OBJECT : $crate::_detail::ffi::PyTypeObject
= py_class_type_object_static_init!($class, $gc, $slots); = py_class_type_object_static_init!($class, $gc, $slots);
static mut init_active: bool = false; static mut INIT_ACTIVE: bool = false;
// trait implementations that need direct access to type_object // trait implementations that need direct access to TYPE_OBJECT
impl $crate::PythonObjectWithTypeObject for $class { impl $crate::PythonObjectWithTypeObject for $class {
fn type_object(py: $crate::Python) -> $crate::PyType { fn type_object(py: $crate::Python) -> $crate::PyType {
unsafe { unsafe {
if $crate::py_class::is_ready(py, &type_object) { if $crate::py_class::is_ready(py, &TYPE_OBJECT) {
$crate::PyType::from_type_ptr(py, &mut type_object) $crate::PyType::from_type_ptr(py, &mut TYPE_OBJECT)
} else { } else {
// automatically initialize the class on-demand // automatically initialize the class on-demand
<$class as $crate::py_class::PythonObjectFromPyClassMacro>::initialize(py) <$class as $crate::py_class::PythonObjectFromPyClassMacro>::initialize(py)
@ -151,26 +151,26 @@ macro_rules! py_class_impl {
impl $crate::py_class::PythonObjectFromPyClassMacro for $class { impl $crate::py_class::PythonObjectFromPyClassMacro for $class {
fn initialize(py: $crate::Python) -> $crate::PyResult<$crate::PyType> { fn initialize(py: $crate::Python) -> $crate::PyResult<$crate::PyType> {
unsafe { unsafe {
if $crate::py_class::is_ready(py, &type_object) { if $crate::py_class::is_ready(py, &TYPE_OBJECT) {
return Ok($crate::PyType::from_type_ptr(py, &mut type_object)); return Ok($crate::PyType::from_type_ptr(py, &mut TYPE_OBJECT));
} }
assert!(!init_active, assert!(!INIT_ACTIVE,
concat!("Reentrancy detected: already initializing class ", concat!("Reentrancy detected: already initializing class ",
stringify!($class))); stringify!($class)));
init_active = true; INIT_ACTIVE = true;
let res = init(py); let res = init(py);
init_active = false; INIT_ACTIVE = false;
res res
} }
} }
} }
fn init($py: $crate::Python) -> $crate::PyResult<$crate::PyType> { fn init($py: $crate::Python) -> $crate::PyResult<$crate::PyType> {
py_class_type_object_dynamic_init!($class, $py, type_object, $slots); py_class_type_object_dynamic_init!($class, $py, TYPE_OBJECT, $slots);
py_class_init_members!($class, $py, type_object, $members); py_class_init_members!($class, $py, TYPE_OBJECT, $members);
unsafe { unsafe {
if $crate::_detail::ffi::PyType_Ready(&mut type_object) == 0 { if $crate::_detail::ffi::PyType_Ready(&mut TYPE_OBJECT) == 0 {
Ok($crate::PyType::from_type_ptr($py, &mut type_object)) Ok($crate::PyType::from_type_ptr($py, &mut TYPE_OBJECT))
} else { } else {
Err($crate::PyErr::fetch($py)) Err($crate::PyErr::fetch($py))
} }

View File

@ -129,16 +129,16 @@ macro_rules! py_class_impl {
return Ok($class { _unsafe_inner: obj }); return Ok($class { _unsafe_inner: obj });
// hide statics in create_instance to avoid name conflicts // hide statics in create_instance to avoid name conflicts
static mut type_object : $crate::_detail::ffi::PyTypeObject static mut TYPE_OBJECT : $crate::_detail::ffi::PyTypeObject
= py_class_type_object_static_init!($class, $gc, $slots); = py_class_type_object_static_init!($class, $gc, $slots);
static mut init_active: bool = false; static mut INIT_ACTIVE: bool = false;
// trait implementations that need direct access to type_object // trait implementations that need direct access to TYPE_OBJECT
impl $crate::PythonObjectWithTypeObject for $class { impl $crate::PythonObjectWithTypeObject for $class {
fn type_object(py: $crate::Python) -> $crate::PyType { fn type_object(py: $crate::Python) -> $crate::PyType {
unsafe { unsafe {
if $crate::py_class::is_ready(py, &type_object) { if $crate::py_class::is_ready(py, &TYPE_OBJECT) {
$crate::PyType::from_type_ptr(py, &mut type_object) $crate::PyType::from_type_ptr(py, &mut TYPE_OBJECT)
} else { } else {
// automatically initialize the class on-demand // automatically initialize the class on-demand
<$class as $crate::py_class::PythonObjectFromPyClassMacro>::initialize(py) <$class as $crate::py_class::PythonObjectFromPyClassMacro>::initialize(py)
@ -151,26 +151,26 @@ macro_rules! py_class_impl {
impl $crate::py_class::PythonObjectFromPyClassMacro for $class { impl $crate::py_class::PythonObjectFromPyClassMacro for $class {
fn initialize(py: $crate::Python) -> $crate::PyResult<$crate::PyType> { fn initialize(py: $crate::Python) -> $crate::PyResult<$crate::PyType> {
unsafe { unsafe {
if $crate::py_class::is_ready(py, &type_object) { if $crate::py_class::is_ready(py, &TYPE_OBJECT) {
return Ok($crate::PyType::from_type_ptr(py, &mut type_object)); return Ok($crate::PyType::from_type_ptr(py, &mut TYPE_OBJECT));
} }
assert!(!init_active, assert!(!INIT_ACTIVE,
concat!("Reentrancy detected: already initializing class ", concat!("Reentrancy detected: already initializing class ",
stringify!($class))); stringify!($class)));
init_active = true; INIT_ACTIVE = true;
let res = init(py); let res = init(py);
init_active = false; INIT_ACTIVE = false;
res res
} }
} }
} }
fn init($py: $crate::Python) -> $crate::PyResult<$crate::PyType> { fn init($py: $crate::Python) -> $crate::PyResult<$crate::PyType> {
py_class_type_object_dynamic_init!($class, $py, type_object, $slots); py_class_type_object_dynamic_init!($class, $py, TYPE_OBJECT, $slots);
py_class_init_members!($class, $py, type_object, $members); py_class_init_members!($class, $py, TYPE_OBJECT, $members);
unsafe { unsafe {
if $crate::_detail::ffi::PyType_Ready(&mut type_object) == 0 { if $crate::_detail::ffi::PyType_Ready(&mut TYPE_OBJECT) == 0 {
Ok($crate::PyType::from_type_ptr($py, &mut type_object)) Ok($crate::PyType::from_type_ptr($py, &mut TYPE_OBJECT))
} else { } else {
Err($crate::PyErr::fetch($py)) Err($crate::PyErr::fetch($py))
} }