Skip to content

Commit

Permalink
Merge pull request biolab#6324 from PrimozGodec/edit-domain-time
Browse files Browse the repository at this point in the history
[FIX] Edit Domain - set have_time and have_date to time variables
  • Loading branch information
janezd authored Feb 10, 2023
2 parents a7d215e + 856a5b7 commit 08b97ad
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
8 changes: 5 additions & 3 deletions Orange/widgets/data/oweditdomain.py
Original file line number Diff line number Diff line change
Expand Up @@ -1547,7 +1547,7 @@ def __init__(self, parent=None, **kwargs):

def set_data(self, var, transform=()):
super().set_data(var, transform)
if self.parent() is not None and isinstance(self.parent().var, Time):
if self.parent() is not None and isinstance(self.parent().var, (Time, Real)):
# when transforming from time to time disable format selection combo
self.format_cb.setEnabled(False)
else:
Expand Down Expand Up @@ -2730,11 +2730,13 @@ def apply_reinterpret_c(var, tr, data: MArray):
elif isinstance(tr, AsContinuous):
return var
elif isinstance(tr, AsString):
# TimeVar will be interpreted by StrpTime later
tstr = ToStringTransform(var)
rvar = Orange.data.StringVariable(name=var.name, compute_value=tstr)
elif isinstance(tr, AsTime):
rvar = Orange.data.TimeVariable(name=var.name, compute_value=Identity(var))
# continuous variable is always transformed to time as UNIX epoch
rvar = Orange.data.TimeVariable(
name=var.name, compute_value=Identity(var), have_time=1, have_date=1
)
else:
assert False
return copy_attributes(rvar, var)
Expand Down
14 changes: 14 additions & 0 deletions Orange/widgets/data/tests/test_oweditdomain.py
Original file line number Diff line number Diff line change
Expand Up @@ -1015,6 +1015,20 @@ def test_null_transform(self):
v = apply_transform(domain.metas[0],table, [])
self.assertIs(v, domain.metas[0])

def test_to_time_variable(self):
table = self.data
tr = AsTime()
dtr = []
for v in table.domain:
strp = StrpTime("Detect automatically", None, 1, 1)
vtr = apply_transform_var(
apply_reinterpret(v, tr, table_column_data(table, v)), [strp]
)
dtr.append(vtr)
ttable = table.transform(Domain([], metas=dtr))
for var in ttable.domain:
self.assertTrue(var.have_date or var.have_time)


class TestUtils(TestCase):
def test_mapper(self):
Expand Down

0 comments on commit 08b97ad

Please sign in to comment.