def _set_clock_data(self, dim, data, start, end, step, nsteps):
if data is not None:
data_dims = getattr(data, 'dims', None)
if data_dims is not None and data_dims != (dim,):
raise ValueError("expected dimension %r for clock coordinate"
"but found %r" % (dim, data_dims))
return data
args = {'step': step, 'nsteps': nsteps, 'end': end}
provided_args = {k for k, v in args.items() if v is not None}
if provided_args == {'nsteps', 'end', 'step'}:
if end - start == nsteps * step:
provided_args = {'nsteps', 'end'}
if provided_args == {'nsteps', 'end'}:
data = np.linspace(start, end, nsteps + 1)
elif provided_args == {'step', 'nsteps'}:
data = np.arange(start, start + (nsteps + 1) * step, step)
elif provided_args == {'step', 'end'}:
data = np.arange(start, end + step, step)
else:
raise ValueError("Invalid combination of nsteps (%s), step (%s) "
"and end (%s)" % (nsteps, step, end))
return data
评论列表
文章目录