|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
commit 40f788a7bf3741f9c613ff302d4e1b0ceec2658c
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
Author: Panu Matilainen <pmatilai@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
Date: Wed Mar 24 09:53:25 2010 +0200
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
Add __bool__() / __nonzero__() method to python rpmmi objects (ticket #153)
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
- Objects supporting __len__() use (len > 0) for boolean representation,
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
which normally makes sense but as the match iterator count is often
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
zero despite the iterator actually existing and returning something,
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
and breaks existing code (rpmlint at least)
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
- Adding a __bool__() (known as __nonzero__() in Python < 3) method
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
returning true for non-NULL iterator fixes this and gives more
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
meaningful answers than pre 4.8.0 which simply always returned True
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
diff --git a/python/rpmmi-py.c b/python/rpmmi-py.c
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
index f6dd802..b7bfb1b 100644
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
--- a/python/rpmmi-py.c
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+++ b/python/rpmmi-py.c
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
@@ -137,11 +137,30 @@ static Py_ssize_t rpmmi_length(rpmmiObject * s)
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
return s->mi ? rpmdbGetIteratorCount(s->mi) : 0;
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
}
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+static int rpmmi_bool(rpmmiObject *s)
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+{
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ return (s->mi != NULL);
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+}
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
PyMappingMethods rpmmi_as_mapping = {
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
(lenfunc) rpmmi_length, /* mp_length */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
0,
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
};
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+static PyNumberMethods rpmmi_as_number = {
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_add */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_subtract */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_multiply */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_divide */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_remainder */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_divmod */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_power */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_negative */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_positive */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ 0, /* nb_absolute */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ (inquiry)rpmmi_bool, /* nb_bool/nonzero */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+};
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
static char rpmmi_doc[] =
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
"";
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
@@ -156,7 +175,7 @@ PyTypeObject rpmmi_Type = {
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
0, /* tp_setattr */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
0, /* tp_compare */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
0, /* tp_repr */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
- 0, /* tp_as_number */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
+ &rpmmi_as_number, /* tp_as_number */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
0, /* tp_as_sequence */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
&rpmmi_as_mapping, /* tp_as_mapping */
|
|
![](https://seccdn.libravatar.org/avatar/21a392547b6cf4e91e0ea8421de06e52d0b6e04887aec1e16eeb5558dabb0299?s=16&d=retro) |
7d0e69f |
0, /* tp_hash */
|