Skip to content

Commit c260958

Browse files
committed
[nixio] Handle datetime annotations
Mark datetime annotations by setting property.definition to DATETIME. Restore type on load from NIX.
1 parent 3d085ce commit c260958

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

neo/io/nixio.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
string_types = str
5050

5151
EMPTYANNOTATION = "EMPTYLIST"
52+
DATETIMEANNOTATION = "DATETIME"
5253

5354

5455
def stringify(value):
@@ -1199,7 +1200,8 @@ def _write_property(self, section, name, v):
11991200
section.create_property(name, v.magnitude.item())
12001201
section.props[name].unit = str(v.dimensionality)
12011202
elif isinstance(v, datetime):
1202-
section.create_property(name, calculate_timestamp(v))
1203+
prop = section.create_property(name, calculate_timestamp(v))
1204+
prop.definition = DATETIMEANNOTATION
12031205
elif isinstance(v, string_types):
12041206
if len(v):
12051207
section.create_property(name, v)
@@ -1238,8 +1240,7 @@ def _write_property(self, section, name, v):
12381240
values.append(item)
12391241
section.create_property(name, values)
12401242
section.props[name].unit = unit
1241-
if definition:
1242-
section.props[name].definition = definition
1243+
section.props[name].definition = definition
12431244
elif type(v).__module__ == "numpy":
12441245
section.create_property(name, v.item())
12451246
else:
@@ -1274,6 +1275,8 @@ def _nix_attr_to_neo(nix_obj):
12741275
values = ""
12751276
elif len(values) == 1:
12761277
values = values[0]
1278+
if prop.definition == DATETIMEANNOTATION:
1279+
values = datetime.fromtimestamp(values)
12771280
neo_attrs[prop.name] = values
12781281
neo_attrs["name"] = stringify(neo_attrs.get("neo_name"))
12791282

0 commit comments

Comments
 (0)