|
4 | 4 | from enum import Enum |
5 | 5 | from typing import Any, Generic, Protocol, runtime_checkable |
6 | 6 |
|
7 | | -from .datatypes import ATTRIBUTE_TYPES, AttrCallback, DataType, T, validate_value |
| 7 | +from .datatypes import ATTRIBUTE_TYPES, AttrCallback, DataType, T |
8 | 8 |
|
9 | 9 |
|
10 | 10 | class AttrMode(Enum): |
@@ -126,15 +126,17 @@ def __init__( |
126 | 126 | allowed_values=allowed_values, # type: ignore |
127 | 127 | description=description, |
128 | 128 | ) |
129 | | - self._value: T = datatype.dtype() if initial_value is None else initial_value |
| 129 | + self._value: T = ( |
| 130 | + datatype.initial_value if initial_value is None else initial_value |
| 131 | + ) |
130 | 132 | self._update_callback: AttrCallback[T] | None = None |
131 | 133 | self._updater = handler |
132 | 134 |
|
133 | 135 | def get(self) -> T: |
134 | 136 | return self._value |
135 | 137 |
|
136 | 138 | async def set(self, value: T) -> None: |
137 | | - self._value = self._datatype.dtype(validate_value(self._datatype, value)) |
| 139 | + self._value = self._datatype.cast(value) |
138 | 140 |
|
139 | 141 | if self._update_callback is not None: |
140 | 142 | await self._update_callback(self._value) |
@@ -177,11 +179,11 @@ async def process(self, value: T) -> None: |
177 | 179 |
|
178 | 180 | async def process_without_display_update(self, value: T) -> None: |
179 | 181 | if self._process_callback is not None: |
180 | | - await self._process_callback(self._datatype.dtype(value)) |
| 182 | + await self._process_callback(self._datatype.cast(value)) |
181 | 183 |
|
182 | 184 | async def update_display_without_process(self, value: T) -> None: |
183 | 185 | if self._write_display_callback is not None: |
184 | | - await self._write_display_callback(self._datatype.dtype(value)) |
| 186 | + await self._write_display_callback(self._datatype.cast(value)) |
185 | 187 |
|
186 | 188 | def set_process_callback(self, callback: AttrCallback[T] | None) -> None: |
187 | 189 | self._process_callback = callback |
@@ -221,6 +223,6 @@ def __init__( |
221 | 223 | ) |
222 | 224 |
|
223 | 225 | async def process(self, value: T) -> None: |
224 | | - await self.set(validate_value(self._datatype, value)) |
| 226 | + await self.set(value) |
225 | 227 |
|
226 | 228 | await super().process(value) # type: ignore |
0 commit comments