Bug#813781: healpy: FTBFS: ValueError: Header update sequence item #0 is invalid; the item must either be a 2-tuple containing a keyword and value, or a 3-tuple containing a keyword, value, and comment string.
Chris Lamb
lamby at debian.org
Fri Feb 5 08:37:03 UTC 2016
Source: healpy
Version: 1.8.1-1.1
Severity: serious
Justification: fails to build from source
User: reproducible-builds at lists.alioth.debian.org
Usertags: ftbfs
X-Debbugs-Cc: reproducible-builds at lists.alioth.debian.org
Dear Maintainer,
healpy fails to build from source in unstable/amd64:
[..]
def update(self, *args, **kwargs):
"""
Update the Header with new keyword values, updating the values of
existing keywords and appending new keywords otherwise; similar to
`dict.update`.
`update` accepts either a dict-like object or an iterable. In the
former case the keys must be header keywords and the values may be
either scalar values or (value, comment) tuples. In the case of an
iterable the items must be (keyword, value) tuples or (keyword, value,
comment) tuples.
Arbitrary arguments are also accepted, in which case the update() is
called again with the kwargs dict as its only argument. That is,
::
>>> header.update(NAXIS1=100, NAXIS2=100)
is equivalent to::
>>> header.update({'NAXIS1': 100, 'NAXIS2': 100})
"""
if args:
other = args[0]
else:
other = None
def update_from_dict(k, v):
if not isinstance(v, tuple):
card = Card(k, v)
elif 0 < len(v) <= 2:
card = Card(*((k,) + v))
else:
raise ValueError(
'Header update value for key %r is invalid; the value '
'must be either a scalar, a 1-tuple containing the '
'scalar value, or a 2-tuple containing the value and a '
'comment string.' % k)
self._update(card)
if other is None:
pass
elif hasattr(other, 'iteritems'):
for k, v in other.iteritems():
update_from_dict(k, v)
elif hasattr(other, 'keys'):
for k in other.keys():
update_from_dict(k, other[k])
else:
for idx, card in enumerate(other):
if isinstance(card, Card):
self._update(card)
elif isinstance(card, tuple) and (1 < len(card) <= 3):
self._update(Card(*card))
else:
raise ValueError(
'Header update sequence item #%d is invalid; the '
'item must either be a 2-tuple containing a keyword '
'and value, or a 3-tuple containing a keyword, '
> 'value, and comment string.' % idx)
E ValueError: Header update sequence item #0 is invalid; the item must either be a 2-tuple containing a keyword and value, or a 3-tuple containing a keyword, value, and comment string.
/usr/lib/python2.7/dist-packages/pyfits/header.py:1017: ValueError
____________________ TestReadWriteCl.test_write_read_cl_II _____________________
self = <healpy.test.test_fitsfunc.TestReadWriteCl testMethod=test_write_read_cl_II>
def test_write_read_cl_II(self):
cl = np.arange(1025, dtype=np.double)
> write_cl("test_cl.fits", cl)
healpy/test/test_fitsfunc.py:84:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
healpy/fitsfunc.py:86: in write_cl
tbhdu.header.update('CREATOR','healpy')
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = XTENSION= 'BINTABLE' / binary table extension ...FORM1 = 'D '
args = ('CREATOR', 'healpy'), kwargs = {}, other = 'CREATOR'
update_from_dict = <function update_from_dict at 0x7f056f4b20c8>, idx = 0
card = 'C'
def update(self, *args, **kwargs):
"""
Update the Header with new keyword values, updating the values of
existing keywords and appending new keywords otherwise; similar to
`dict.update`.
`update` accepts either a dict-like object or an iterable. In the
former case the keys must be header keywords and the values may be
either scalar values or (value, comment) tuples. In the case of an
iterable the items must be (keyword, value) tuples or (keyword, value,
comment) tuples.
Arbitrary arguments are also accepted, in which case the update() is
called again with the kwargs dict as its only argument. That is,
::
>>> header.update(NAXIS1=100, NAXIS2=100)
is equivalent to::
>>> header.update({'NAXIS1': 100, 'NAXIS2': 100})
"""
if args:
other = args[0]
else:
other = None
def update_from_dict(k, v):
if not isinstance(v, tuple):
card = Card(k, v)
elif 0 < len(v) <= 2:
card = Card(*((k,) + v))
else:
raise ValueError(
'Header update value for key %r is invalid; the value '
'must be either a scalar, a 1-tuple containing the '
'scalar value, or a 2-tuple containing the value and a '
'comment string.' % k)
self._update(card)
if other is None:
pass
elif hasattr(other, 'iteritems'):
for k, v in other.iteritems():
update_from_dict(k, v)
elif hasattr(other, 'keys'):
for k in other.keys():
update_from_dict(k, other[k])
else:
for idx, card in enumerate(other):
if isinstance(card, Card):
self._update(card)
elif isinstance(card, tuple) and (1 < len(card) <= 3):
self._update(Card(*card))
else:
raise ValueError(
'Header update sequence item #%d is invalid; the '
'item must either be a 2-tuple containing a keyword '
'and value, or a 3-tuple containing a keyword, '
> 'value, and comment string.' % idx)
E ValueError: Header update sequence item #0 is invalid; the item must either be a 2-tuple containing a keyword and value, or a 3-tuple containing a keyword, value, and comment string.
/usr/lib/python2.7/dist-packages/pyfits/header.py:1017: ValueError
_____________________ TestNoCrash.test_orthview_ma_nocrash _____________________
self = <healpy.test.test_visufunc.TestNoCrash testMethod=test_orthview_ma_nocrash>
def test_orthview_ma_nocrash(self):
> orthview(self.ma)
healpy/test/test_visufunc.py:42:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
healpy/visufunc.py:708: in orthview
cmap=cmap,norm=norm)
healpy/projaxes.py:700: in projmap
return super(HpxOrthographicAxes,self).projmap(map,f,**kwds)
healpy/projaxes.py:689: in projmap
img = super(OrthographicAxes,self).projmap(map,vec2pix_func,**kwds)
healpy/projaxes.py:154: in projmap
img = self.proj.projmap(map,vec2pix_func,rot=rot,coord=coord)
healpy/projector.py:168: in projmap
x,y = self.ij2xy()
healpy/projector.py:862: in ij2xy
idx = np.outer(np.ones(ysize),np.arange(xsize))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
shape = 400.0, dtype = None, order = 'C'
def ones(shape, dtype=None, order='C'):
"""
Return a new array of given shape and type, filled with ones.
Parameters
----------
shape : int or sequence of ints
Shape of the new array, e.g., ``(2, 3)`` or ``2``.
dtype : data-type, optional
The desired data-type for the array, e.g., `numpy.int8`. Default is
`numpy.float64`.
order : {'C', 'F'}, optional
Whether to store multidimensional data in C- or Fortran-contiguous
(row- or column-wise) order in memory.
Returns
-------
out : ndarray
Array of ones with the given shape, dtype, and order.
See Also
--------
zeros, ones_like
Examples
--------
>>> np.ones(5)
array([ 1., 1., 1., 1., 1.])
>>> np.ones((5,), dtype=np.int)
array([1, 1, 1, 1, 1])
>>> np.ones((2, 1))
array([[ 1.],
[ 1.]])
>>> s = (2,2)
>>> np.ones(s)
array([[ 1., 1.],
[ 1., 1.]])
"""
> a = empty(shape, dtype, order)
E TypeError: 'float' object cannot be interpreted as an index
/usr/lib/python2.7/dist-packages/numpy/core/numeric.py:190: TypeError
______________________ TestNoCrash.test_orthview_nocrash _______________________
self = <healpy.test.test_visufunc.TestNoCrash testMethod=test_orthview_nocrash>
def test_orthview_nocrash(self):
> orthview(self.m)
healpy/test/test_visufunc.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
healpy/visufunc.py:708: in orthview
cmap=cmap,norm=norm)
healpy/projaxes.py:700: in projmap
return super(HpxOrthographicAxes,self).projmap(map,f,**kwds)
healpy/projaxes.py:689: in projmap
img = super(OrthographicAxes,self).projmap(map,vec2pix_func,**kwds)
healpy/projaxes.py:154: in projmap
img = self.proj.projmap(map,vec2pix_func,rot=rot,coord=coord)
healpy/projector.py:168: in projmap
x,y = self.ij2xy()
healpy/projector.py:862: in ij2xy
idx = np.outer(np.ones(ysize),np.arange(xsize))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
shape = 400.0, dtype = None, order = 'C'
def ones(shape, dtype=None, order='C'):
"""
Return a new array of given shape and type, filled with ones.
Parameters
----------
shape : int or sequence of ints
Shape of the new array, e.g., ``(2, 3)`` or ``2``.
dtype : data-type, optional
The desired data-type for the array, e.g., `numpy.int8`. Default is
`numpy.float64`.
order : {'C', 'F'}, optional
Whether to store multidimensional data in C- or Fortran-contiguous
(row- or column-wise) order in memory.
Returns
-------
out : ndarray
Array of ones with the given shape, dtype, and order.
See Also
--------
zeros, ones_like
Examples
--------
>>> np.ones(5)
array([ 1., 1., 1., 1., 1.])
>>> np.ones((5,), dtype=np.int)
array([1, 1, 1, 1, 1])
>>> np.ones((2, 1))
array([[ 1.],
[ 1.]])
>>> s = (2,2)
>>> np.ones(s)
array([[ 1., 1.],
[ 1., 1.]])
"""
> a = empty(shape, dtype, order)
E TypeError: 'float' object cannot be interpreted as an index
/usr/lib/python2.7/dist-packages/numpy/core/numeric.py:190: TypeError
================= 8 failed, 44 passed, 6 error in 6.95 seconds =================
E: pybuild pybuild:274: test: plugin distutils failed with: exit code=1: cd /home/lamby/temp/cdt.20160205085031.zTViol37pi/healpy-1.8.1/.pybuild/pythonX.Y_2.7/build; python2.7 -m pytest
dh_auto_test: pybuild --test --test-pytest -i python{version} -p 2.7 --dir . returned exit code 13
debian/rules:17: recipe for target 'override_dh_auto_test' failed
make[1]: *** [override_dh_auto_test] Error 25
make[1]: Leaving directory '/home/lamby/temp/cdt.20160205085031.zTViol37pi/healpy-1.8.1'
debian/rules:6: recipe for target 'build' failed
make: *** [build] Error 2
[..]
The full build log is attached.
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` lamby at debian.org / chris-lamb.co.uk
`-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: healpy.1.8.1-1.1.unstable.amd64.log.txt.gz
Type: application/octet-stream
Size: 6815 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20160205/da6ec97c/attachment-0001.obj>
More information about the debian-science-maintainers
mailing list