# Remove long from afw schema aliases

XMLWordPrintable

#### Details

• Type: RFC
• Status: Implemented
• Resolution: Done
• Component/s:
• Labels:
None

#### Description

In python 3 all integers are 64 bit "long" integers, while in python 2, 32 and 64 bit integers are differentiated by the int and long types respectively. This causes confusion when adding a new field to a schema using addField in afw/table/Base.i in python 3, where the python type is converted into a C++ type using a dictionary

 aliases = {  long: "L",  int: "I",  float: "D",  str: "String",  futurestr: "String",  numpy.uint16: "U",  numpy.int32: "I",  numpy.int64: "L",  numpy.float32: "F",  numpy.float64: "D",  Angle: "Angle", } 

So in python 3 all integers are truncated to the 32 bits in C++. The user can specify a suffix, for example "L" or "I", which will allow the code to work as expected, so it would be useful to remove the long key from aliases to prevent unexpected behavior in python 3, in other words

 aliases = {  int: "I",  float: "D",  str: "String",  futurestr: "String",  numpy.uint16: "U",  numpy.int32: "I",  numpy.int64: "L",  numpy.float32: "F",  numpy.float64: "D",  Angle: "Angle", } 

All existing code using type=long will need to be updated as part of this ticket.

#### Activity

Hide
Fred Moolekamp added a comment -

Fair enough, I can do that.

Show
Fred Moolekamp added a comment - Fair enough, I can do that.
Hide
Fred Moolekamp added a comment -

Since we've agreed on this change, opened a ticket to track it (DM-8078) and made the changes in the pybind11 stack (DM-7056), is it ok to mark this RFC adopted, or do I have to wait until DM-8078 is closed?

Show
Fred Moolekamp added a comment - Since we've agreed on this change, opened a ticket to track it ( DM-8078 ) and made the changes in the pybind11 stack ( DM-7056 ), is it ok to mark this RFC adopted, or do I have to wait until DM-8078 is closed?
Hide
Tim Jenness added a comment -

You can definitely mark it as Adopted once consensus is reached (which does seem to have happened). You mark it Implemented when the code is on master and the documentation (if any) have been updated.

Show
Tim Jenness added a comment - You can definitely mark it as Adopted once consensus is reached (which does seem to have happened). You mark it Implemented when the code is on master and the documentation (if any) have been updated.
Hide
Tim Jenness added a comment -

All triggered tickets have been closed. Should this RFC be marked implemented now?

Show
Tim Jenness added a comment - All triggered tickets have been closed. Should this RFC be marked implemented now?
Hide
Fred Moolekamp added a comment -

Good point Tim Jenness.

Show
Fred Moolekamp added a comment - Good point Tim Jenness .

#### People

Assignee:
Fred Moolekamp
Reporter:
Fred Moolekamp
Watchers:
Fred Moolekamp, Jim Bosch, John Parejko, Pim Schellart [X] (Inactive), Tim Jenness
0 Vote for this issue
Watchers:
5 Start watching this issue

#### Dates

Created:
Updated:
Resolved:
Planned End:

#### Jenkins

No builds found.