Skip to content

Commit 8f49a68

Browse files
author
Michael Johansen
committed
Update nitypes dependency and take care of TODOs.
Signed-off-by: Michael Johansen <[email protected]>
1 parent 0045510 commit 8f49a68

File tree

3 files changed

+11
-17
lines changed

3 files changed

+11
-17
lines changed

poetry.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ protobuf = {version=">=4.21"}
1313
ni-measurement-plugin-sdk = {version=">=2.3"}
1414
typing-extensions = ">=4.13.2"
1515
streamlit = ">=1.24"
16-
nitypes = {version=">=0.1.0dev1", allow-prereleases=true}
16+
nitypes = {version=">=0.1.0dev2", allow-prereleases=true}
1717
debugpy = "^1.8.1"
1818

1919
[tool.poetry.group.dev.dependencies]

src/nipanel/converters/protobuf_types.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
DoubleAnalogWaveform,
1414
WaveformAttributeValue,
1515
)
16-
from nitypes.bintime import DateTime, TimeDelta
16+
from nitypes.bintime import DateTime, TimeValueTuple
1717
from nitypes.scalar import Scalar
1818
from nitypes.waveform import AnalogWaveform, ExtendedPropertyDictionary, NoneScaleMode, Timing
1919
from typing_extensions import TypeAlias
@@ -53,8 +53,7 @@ def to_protobuf_message(
5353
else:
5454
precision_timestamp = PrecisionTimestamp(seconds=0, fractional_seconds=0)
5555

56-
# TODO: Replace with .has_sample_interval once available.
57-
if python_value.timing._sample_interval is not None:
56+
if python_value.timing.has_sample_interval:
5857
time_interval = python_value.timing.sample_interval.total_seconds()
5958
else:
6059
time_interval = 0
@@ -137,18 +136,13 @@ def protobuf_message(self) -> Type[PrecisionTimestamp]:
137136

138137
def to_protobuf_message(self, python_value: DateTime) -> PrecisionTimestamp:
139138
"""Convert the Python DateTime to a protobuf PrecisionTimestamp."""
140-
time_delta: TimeDelta = DateTime._to_offset(python_value._to_datetime_datetime())
141-
# TODO: Replace with Datetime.to_tuple once available
142-
ticks = TimeDelta._to_ticks(time_delta.total_seconds())
143-
seconds = ticks >> 64
144-
frac_seconds = ticks & ((1 << 64) - 1)
145-
return self.protobuf_message(seconds=seconds, fractional_seconds=frac_seconds)
139+
seconds, fractional_seconds = python_value.to_tuple()
140+
return self.protobuf_message(seconds=seconds, fractional_seconds=fractional_seconds)
146141

147142
def to_python_value(self, protobuf_value: PrecisionTimestamp) -> DateTime:
148143
"""Convert the protobuf PrecisionTimestamp to a Python DateTime."""
149-
ticks = (protobuf_value.seconds << 64) | protobuf_value.fractional_seconds
150-
# TODO: Replace with Datetime.from_tuple() once available
151-
return DateTime.from_ticks(ticks)
144+
time_value_tuple = TimeValueTuple(protobuf_value.seconds, protobuf_value.fractional_seconds)
145+
return DateTime.from_tuple(time_value_tuple)
152146

153147

154148
class ScalarConverter(Converter[Scalar[_AnyScalarType], scalar_pb2.ScalarData]):

0 commit comments

Comments
 (0)