[Python-Dev] PEP: Adding data-type objects to Python
Travis Oliphant
oliphant.travis at ieee.org
Thu Nov 2 16:59:14 CET 2006
Martin v. Löwis wrote:
> Travis E. Oliphant schrieb:
>
>>>2. Should primitive type codes be characters or integers (from an enum) at
>>>C level?
>>> - I prefer integers
>>
>>>3. Should size be expressed in bits or bytes?
>>> - I prefer bits
>>>
>>
>>So, you want an integer enum for the "kind" and an integer for the
>>bitsize? That's fine with me.
>>
>>One thing I just remembered. We have T_UBYTE and T_BYTE, etc. defined
>>in structmember.h already. Should we just re-use those #defines while
>>adding to them to make an easy to use interface for primitive types?
>
>
> Notice that those type codes imply sizes, namely the platform sizes
> (where "platform" always means "what the C compiler does"). So if
> you want to have platform-independent codes as well, you shouldn't
> use the T_ codes.
>
In NumPy we've found it convenient to use both. Basically, we've set
up a header file that "does the translation" using #defines and typedefs
to create things like (on a 32-bit platform)
typedef npy_int32 int
#define NPY_INT32 NPY_INT
So, that either the T_code-like enum or the bit-width can be used
interchangable.
Typically people want to specify bit-widths (and see their data-types in
bit-widths) but in C-code that implements something you need to use one
of the platform integers.
I don't know if we really need to bring all of that over.
-Travis
More information about the Python-Dev
mailing list