private-attribute-cpp 2.1.21__tar.gz → 2.1.22__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. {private_attribute_cpp-2.1.21/private_attribute_cpp.egg-info → private_attribute_cpp-2.1.22}/PKG-INFO +1 -1
  2. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/private_attribute.cpp +24 -20
  3. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22/private_attribute_cpp.egg-info}/PKG-INFO +1 -1
  4. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/setup.py +1 -1
  5. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/LICENSE +0 -0
  6. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/MANIFEST.in +0 -0
  7. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/README.md +0 -0
  8. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/picosha2.h +0 -0
  9. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/private_attribute.pyi +0 -0
  10. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/private_attribute_cpp.egg-info/SOURCES.txt +0 -0
  11. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/private_attribute_cpp.egg-info/dependency_links.txt +0 -0
  12. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/private_attribute_cpp.egg-info/not-zip-safe +0 -0
  13. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/private_attribute_cpp.egg-info/top_level.txt +0 -0
  14. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/setup.cfg +0 -0
  15. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_attr_classify_owner.py +0 -0
  16. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_class_private_attrs.py +0 -0
  17. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_gc_collect.py +0 -0
  18. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_private_abc.py +0 -0
  19. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_private_attrs.py +0 -0
  20. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_private_func.py +0 -0
  21. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_private_inheritance.py +0 -0
  22. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_private_method.py +0 -0
  23. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_private_wrap.py +0 -0
  24. {private_attribute_cpp-2.1.21 → private_attribute_cpp-2.1.22}/tests/test_slots_cycle.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: private_attribute_cpp
3
- Version: 2.1.21
3
+ Version: 2.1.22
4
4
  Summary: A Python package that provides a way to define private attributes in C++ implementation.
5
5
  Home-page: https://github.com/Locked-chess-official/private_attribute_cpp
6
6
  Author: HuangHaoHua
@@ -4395,6 +4395,8 @@ PyList_AppendString(PyObject* list, const char* str) noexcept
4395
4395
  return 0;
4396
4396
  }
4397
4397
 
4398
+ #define DIR_CHECK(command) do {if (command < 0) goto finally;} while (0)
4399
+
4398
4400
  static PyObject*
4399
4401
  PrivateModule_dir(PyObject* self, PyObject* /*args*/) noexcept
4400
4402
  {
@@ -4405,15 +4407,17 @@ PrivateModule_dir(PyObject* self, PyObject* /*args*/) noexcept
4405
4407
  Py_DECREF(parent_dir);
4406
4408
  return NULL;
4407
4409
  }
4408
- PyList_AppendString(attr_list, "PrivateWrapProxy");
4409
- PyList_AppendString(attr_list, "PrivateAttrType");
4410
- PyList_AppendString(attr_list, "PrivateAttrBase");
4411
- PyList_AppendString(attr_list, "prepare");
4412
- PyList_AppendString(attr_list, "postprocess");
4413
- PyList_AppendString(attr_list, "register_metaclass");
4414
- PyList_AppendString(attr_list, "ensure_type");
4415
- PyList_AppendString(attr_list, "ensure_metaclass");
4416
- PyObject* result = PySequence_Concat(parent_dir, attr_list);
4410
+ PyObject* result = NULL;
4411
+ DIR_CHECK(PyList_AppendString(attr_list, "PrivateWrapProxy"));
4412
+ DIR_CHECK(PyList_AppendString(attr_list, "PrivateAttrType"));
4413
+ DIR_CHECK(PyList_AppendString(attr_list, "PrivateAttrBase"));
4414
+ DIR_CHECK(PyList_AppendString(attr_list, "prepare"));
4415
+ DIR_CHECK(PyList_AppendString(attr_list, "postprocess"));
4416
+ DIR_CHECK(PyList_AppendString(attr_list, "register_metaclass"));
4417
+ DIR_CHECK(PyList_AppendString(attr_list, "ensure_type"));
4418
+ DIR_CHECK(PyList_AppendString(attr_list, "ensure_metaclass"));
4419
+ result = PySequence_Concat(parent_dir, attr_list);
4420
+ finally:
4417
4421
  Py_DECREF(parent_dir);
4418
4422
  Py_DECREF(attr_list);
4419
4423
  return result;
@@ -4712,6 +4716,8 @@ PrivateModule_create(PyObject* spec, PyModuleDef* /*def*/) noexcept
4712
4716
  return m;
4713
4717
  }
4714
4718
 
4719
+ #define MODULE_EXEC_CHECK(command) do {if (command < 0) {return -1;}} while(0)
4720
+
4715
4721
  static int
4716
4722
  PrivateModule_exec(PyObject* m) noexcept
4717
4723
  {
@@ -4723,14 +4729,13 @@ PrivateModule_exec(PyObject* m) noexcept
4723
4729
  if (!private_attr_base) {
4724
4730
  return -1;
4725
4731
  }
4732
+ Py_DECREF(private_attr_base);
4726
4733
  PyObject* all = PyList_New(0);
4727
4734
  if (!all) {
4728
- Py_DECREF(private_attr_base);
4729
4735
  return -1;
4730
4736
  }
4731
4737
  if (PyModule_AddObject(m, "__all__", all) < 0) {
4732
4738
  Py_DECREF(all);
4733
- Py_DECREF(private_attr_base);
4734
4739
  return -1;
4735
4740
  }
4736
4741
  /* all contains:
@@ -4743,16 +4748,15 @@ PrivateModule_exec(PyObject* m) noexcept
4743
4748
  * ensure_type
4744
4749
  * ensure_metaclass
4745
4750
  */
4746
- PyList_AppendString(all, "PrivateWrapProxy");
4747
- PyList_AppendString(all, "PrivateAttrType");
4748
- PyList_AppendString(all, "PrivateAttrBase");
4749
- PyList_AppendString(all, "prepare");
4750
- PyList_AppendString(all, "postprocess");
4751
- PyList_AppendString(all, "register_metaclass");
4752
- PyList_AppendString(all, "ensure_type");
4753
- PyList_AppendString(all, "ensure_metaclass");
4751
+ MODULE_EXEC_CHECK(PyList_AppendString(all, "PrivateWrapProxy"));
4752
+ MODULE_EXEC_CHECK(PyList_AppendString(all, "PrivateAttrType"));
4753
+ MODULE_EXEC_CHECK(PyList_AppendString(all, "PrivateAttrBase"));
4754
+ MODULE_EXEC_CHECK(PyList_AppendString(all, "prepare"));
4755
+ MODULE_EXEC_CHECK(PyList_AppendString(all, "postprocess"));
4756
+ MODULE_EXEC_CHECK(PyList_AppendString(all, "register_metaclass"));
4757
+ MODULE_EXEC_CHECK(PyList_AppendString(all, "ensure_type"));
4758
+ MODULE_EXEC_CHECK(PyList_AppendString(all, "ensure_metaclass"));
4754
4759
 
4755
- Py_DECREF(private_attr_base);
4756
4760
  AllData::store_module_self[AllData::kModuleSelfKey] = m; // store module self
4757
4761
 
4758
4762
  return 0;
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: private_attribute_cpp
3
- Version: 2.1.21
3
+ Version: 2.1.22
4
4
  Summary: A Python package that provides a way to define private attributes in C++ implementation.
5
5
  Home-page: https://github.com/Locked-chess-official/private_attribute_cpp
6
6
  Author: HuangHaoHua
@@ -24,7 +24,7 @@ readme = open('README.md').read()
24
24
 
25
25
  setup(
26
26
  name='private_attribute_cpp',
27
- version='2.1.21',
27
+ version='2.1.22',
28
28
  author="HuangHaoHua",
29
29
  author_email="13140752715@example.com",
30
30
  description='A Python package that provides a way to define private attributes in C++ implementation.',