[NumPy-Tickets] [NumPy] #2010: dtype() construction fails when metadata = None

NumPy Trac numpy-tickets@scipy....
Wed Jan 4 01:22:00 CST 2012


#2010: dtype() construction fails when metadata = None
--------------------+-------------------------------------------------------
 Reporter:  tilkau  |       Owner:  somebody   
     Type:  defect  |      Status:  new        
 Priority:  normal  |   Milestone:  Unscheduled
Component:  Other   |     Version:  devel      
 Keywords:  dtype   |  
--------------------+-------------------------------------------------------
 >>> np.dtype('H', metadata={'foo':1})
 dtype('uint16')

 >>> np.dtype('H', metadata=None)
 TypeError: argument 4 must be dict, not None

 IMO metadata=None makes sense -- it means "don't update the metadata".
 Note that this would produce a different result than passing {} -- that
 results in 'mydtype.metadata' returning 'dict_proxy({})' rather than None.

 I'm writing a higher-level dtype+support-system constructor, and
 currently, due to this bug, I'm using everywhere this wrapper function
 instead of np.dtype:

 def dtype(dt, metadata=None, **kwargs):
     """DType wrapper that avoids crashery when metadata=None"""
     if metadata:
         return np.dtype (dt,metadata = metadata, **kwargs)
     return np.dtype (dt,**kwargs)

 The offending line seems to be around line 237 of
 core/src/multiarray/descriptor.c

-- 
Ticket URL: <http://projects.scipy.org/numpy/ticket/2010>
NumPy <http://projects.scipy.org/numpy>
My example project


More information about the NumPy-Tickets mailing list