Skip to content

Commit d133f43

Browse files
committed
owfeatureconstructor: Always use Values for TimeVariables
1 parent fc4807c commit d133f43

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

Orange/widgets/data/owfeatureconstructor.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1213,6 +1213,8 @@ def extract_column(self, table: Table, var: Variable):
12131213
idx = data.astype(int)
12141214
idx[~np.isfinite(data)] = len(values) - 1
12151215
return values[idx].tolist()
1216+
elif var.is_time: # time always needs Values due to str(val) formatting
1217+
return Value._as_values(var, data.tolist()) # pylint: disable=protected-access
12161218
elif not self.use_values:
12171219
return data.tolist()
12181220
else:

Orange/widgets/data/tests/test_owfeatureconstructor.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,12 @@ def test_missing_variable(self):
305305
self.assertTrue(np.all(np.isnan(r)))
306306
self.assertTrue(np.isnan(f(data2[0])))
307307

308+
def test_time_str(self):
309+
data = Table.from_numpy(Domain([TimeVariable("T", have_date=True)]), [[0], [0]])
310+
f = FeatureFunc("str(T)", [("T", data.domain[0])])
311+
c = f(data)
312+
self.assertEqual(c, ["1970-01-01", "1970-01-01"])
313+
308314
def test_invalid_expression_variable(self):
309315
iris = Table("iris")
310316
f = FeatureFunc("1 / petal_length",

0 commit comments

Comments
 (0)