def psds_from_job_length(timing_params, t):
    """
	Return the number of PSDs that can fit into a job of length t
	seconds.  In general, the return value is a non-integer.
	"""
    if t < 0:
        raise ValueError(t)
    t = t * timing_params.resample_rate - 2 * timing_params.filter_corruption
    if t < timing_params.psd_length:
        return 0
    return (t - timing_params.psd_length) / timing_params.psd_shift + 1
