Skip to content

Commit edafb67

Browse files
authored
Add type hints and clean up documentation for encoders and decoders (#367)
* Add type hint for _Encoder * Add type hint for _Decoder * Rename type aliases to InnerEncoder and InnerDecoder * Fix docstrings and add some additional type hints. * Remove Context class * Fix get_type_default docs * Remove notes file * Add WriteFunction type alias * Rename InnerEncoder to Encoder and InnerDecoder to Decoder * Rename EncoderFactory to EncoderConstructor and DecoderFactory to DecoderConstructor * Rename EncoderConstructor to PartialEncoderConstructor and DecoderConstructor to PartialDecoderConstructor * Add EncoderConstructor and DecoderConstructor and cast where needed * Only use typing_extensions if less than Python 3.10 * Update some type hints * Update documentation to stop using factory * Add Key TypeVar * Clarify use of new_default * Type hints for is_packed etc * Change Key to FieldDescriptor * Use ValueError instead of Exception. * Match _vector_decoder return type for _new_default
1 parent 4b07aac commit edafb67

4 files changed

Lines changed: 179 additions & 216 deletions

File tree

ni_measurementlink_service/_internal/parameter/metadata.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55

66
from google.protobuf import type_pb2
77

8-
from ni_measurementlink_service._internal.parameter.serialization_strategy import (
9-
Context,
10-
)
8+
from ni_measurementlink_service._internal.parameter import serialization_strategy
119
from ni_measurementlink_service.measurement.info import TypeSpecialization
1210

1311

@@ -60,13 +58,17 @@ def validate_default_value_type(parameter_metadata: ParameterMetadata) -> None:
6058
return None
6159

6260
expected_type = type(
63-
Context.get_type_default(parameter_metadata.type, parameter_metadata.repeated)
61+
serialization_strategy.get_type_default(
62+
parameter_metadata.type, parameter_metadata.repeated
63+
)
6464
)
6565
display_name = parameter_metadata.display_name
6666
enum_values_annotation = get_enum_values_annotation(parameter_metadata)
6767

6868
if parameter_metadata.repeated:
69-
expected_element_type = type(Context.get_type_default(parameter_metadata.type, False))
69+
expected_element_type = type(
70+
serialization_strategy.get_type_default(parameter_metadata.type, False)
71+
)
7072
_validate_default_value_type_for_repeated_type(
7173
default_value,
7274
expected_type,

0 commit comments

Comments
 (0)