A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2012-November/122609.html below:

[Python-Dev] Detecting tp_compare / tp_richcompare from Python

[Python-Dev] Detecting tp_compare / tp_richcompare from Python [Python-Dev] Detecting tp_compare / tp_richcompare from PythonTres Seaver tseaver at palladion.com
Thu Nov 8 17:18:32 CET 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

While porting the BTrees package (split out from ZODB) to Python3., my
first step is to get the pure-Python reference implementation working:
in order to do that, I need a way to check that objects used as keys are
*not* using the comparison semantics inherited from the base 'object'
class, because those semantics rely on properties which are not stable
across the lifetime of the (persisted / restored) key.

The existing C code does something like::

 static int
 check_argument_cmp(PyObject *arg)
 {
    if (arg->ob_type->tp_richcompare == NULL
       && arg->ob_type->tp_compare ==
        ((PyTypeObject *)object_)->ob_type->tp_compare)
     {
       PyErr_SetString(PyExc_TypeError, "Object has default comparison");
       return 0;
     }
   return 1;
 }

Unless I'm mistaken, there is no way to do the equivalent from pure
Python.. I tried a couple of approximations which relied on non-API
attributes (I"m looking at out, methodwrapper.__objclass__), but without
much success (and I need the code to work on PyPy / Jython, too).

Am I missing something?



Tres.
- -- 
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iEYEARECAAYFAlCb21gACgkQ+gerLs4ltQ4jBACfV0lQaQ2eW2vhAtWunLUsPQWM
esEAoMYeeQvlJVnckaBg4HM19LoxPIWB
=+d+0
-----END PGP SIGNATURE-----

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4