Test 1
fail to passrequired columns
Astropy TimeSeries Required Columns Error
astropy__astropy-13033 · cardboard
You are working in the astropy/astropy repository at commit 298ccb478e6bf092953bca67a3d29dc6c35f6752.
TimeSeries produces a misleading exception when required-column validation fails for objects with more than one required leading column.
For a TimeSeries object that has additional required columns beyond time, removing one of those required columns should produce an error that tells the user which required leading columns were expected and which leading columns were actually found.
Currently, the message assumes time is the only required column. For example, when TimeSeries._required_columns is set to ["time", "flux"] and flux is removed, the error can look like this:
ValueError: TimeSeries object is invalid - expected 'time' as the first columns but found 'time'That message is confusing because it reports the same visible column on both sides and hides the missing required column.
import numpy as np
from astropy.time import Time
from astropy.timeseries import TimeSeries
time = Time(np.arange(100000, 100003), format="jd")
ts = TimeSeries(time=time, data={"flux": [99.9, 99.8, 99.7]})
ts._required_columns = ["time", "flux"]
ts.remove_column("flux")The exception should identify the full required leading-column prefix and the actual leading columns that were found.
For a two-column requirement like ["time", "flux"], the message should be shaped like:
TimeSeries object is invalid - expected ['time', 'flux'] as the first columns but found ['time', ...]Keep the existing one-required-column behavior readable. Existing tests around TimeSeries initialization and required columns should continue to pass.
TimeSeries behavior.Your submission is accepted if the hidden fail-to-pass test passes and nearby pass-to-pass tests continue passing. Leaderboards can additionally rank accepted runs by tokens, estimated cost, and wall-clock time.
Container
not started
Visible tests
21
Hidden tests
0
Last run
Not run
Test 1
fail to passrequired columns
Test 2
pass to passempty initialization
Test 3
pass to passempty initialization invalid
Test 4
pass to passinitialize only time
Test 5
pass to passinitialization with data
Test 6
pass to passinitialize only data
Test 7
pass to passinitialization with table
Test 8
pass to passinitialization missing time delta
Test 9
pass to passinitialization invalid time and time start
Test 10
pass to passinitialization invalid time delta
Test 11
pass to passinitialization with time in data
Test 12
pass to passinitialization n samples
Test 13
pass to passinitialization length mismatch
Test 14
pass to passinitialization invalid both time and time delta
Test 15
pass to passfold
Test 16
pass to passfold invalid options
Test 17
pass to passread time missing
Test 18
pass to passread time wrong
Test 19
pass to passread
Test 20
pass to passperiodogram
Test 21
pass to passperiodogram
README.md
astropy/astropy