Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
The column in which to write. Can be the name or number (0 offset)
column: ndarray
Numerical python array to write. This must be an object array.
firstrow: integer, optional
At which row you should begin writing. Be sure you know what you
are doing! For appending see the append() method. Default 0.
"""
if not keys:
import warnings
warnings.warn(
"The keyword arguments '%s' are being ignored! This warning "
"will be an error in a future version of `fitsio`!",
DeprecationWarning)
if not is_object(data):
raise ValueError("Only object fields can be written to "
"variable-length arrays")
colnum = self._extract_colnum(column)
self._FITS.write_var_column(self._ext+1, colnum+1, data,
firstrow=firstrow+1)
self._update_info()
elif names is not None:
columns_all = names
else:
raise ValueError(
"you must send `columns` or `names` "
"with a list of arrays")
else:
columns_all = list(data.keys())
data_list = [data[n] for n in columns_all]
colnums_all = [self._extract_colnum(c) for c in columns_all]
names = [self.get_colname(c) for c in colnums_all]
isobj = numpy.zeros(len(data_list), dtype=numpy.bool)
for i in xrange(len(data_list)):
isobj[i] = is_object(data_list[i])
else:
if data.dtype.fields is None:
raise ValueError("You are writing to a table, so I expected "
"an array with fields as input. If you want "
"to write a simple array, you should use "
"write_column to write to a single column, "
"or instead write to an image hdu")
if data.shape is ():
raise ValueError("cannot write data with shape ()")
isrec = True
names = data.dtype.names
# only write object types (variable-length columns) after
# writing the main table