Skip to content

Commit 2e5fb12

Browse files
authored
more consistent value_type handling in Entity (feast-dev#1310)
Signed-off-by: Oleg Avdeev <oleg.v.avdeev@gmail.com>
1 parent 5a65537 commit 2e5fb12

6 files changed

Lines changed: 9 additions & 20 deletions

File tree

infra/scripts/test-telemetry.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ LOGS_ARTIFACT_PATH=/logs/artifacts
77

88
pip install -r sdk/python/requirements-ci.txt
99
make compile-protos-python
10-
make lint-python
1110

1211
cd sdk/python/
1312
pip install -e .

sdk/python/feast/entity.py

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,6 @@ def __eq__(self, other):
5353
if not isinstance(other, Entity):
5454
raise TypeError("Comparisons should only involve Entity class objects.")
5555

56-
if isinstance(self.value_type, int):
57-
self.value_type = ValueType(self.value_type).name
58-
if isinstance(other.value_type, int):
59-
other.value_type = ValueType(other.value_type).name
60-
6156
if (
6257
self.labels != other.labels
6358
or self.name != other.name
@@ -100,7 +95,7 @@ def description(self, description):
10095
self._description = description
10196

10297
@property
103-
def value_type(self):
98+
def value_type(self) -> ValueType:
10499
"""
105100
Returns the type of this entity
106101
"""
@@ -200,7 +195,7 @@ def from_proto(cls, entity_proto: EntityV2Proto):
200195
entity = cls(
201196
name=entity_proto.spec.name,
202197
description=entity_proto.spec.description,
203-
value_type=ValueType(entity_proto.spec.value_type).name, # type: ignore
198+
value_type=ValueType(entity_proto.spec.value_type),
204199
labels=entity_proto.spec.labels,
205200
)
206201

@@ -221,13 +216,11 @@ def to_proto(self) -> EntityV2Proto:
221216
created_timestamp=self.created_timestamp,
222217
last_updated_timestamp=self.last_updated_timestamp,
223218
)
224-
if isinstance(self.value_type, ValueType):
225-
self.value_type = self.value_type.value
226219

227220
spec = EntitySpecProto(
228221
name=self.name,
229222
description=self.description,
230-
value_type=self.value_type,
223+
value_type=self.value_type.value,
231224
labels=self.labels,
232225
)
233226

@@ -268,13 +261,10 @@ def to_spec_proto(self) -> EntitySpecProto:
268261
EntitySpecV2 protobuf
269262
"""
270263

271-
if isinstance(self.value_type, ValueType):
272-
self.value_type = self.value_type.value
273-
274264
spec = EntitySpecProto(
275265
name=self.name,
276266
description=self.description,
277-
value_type=self.value_type,
267+
value_type=self.value_type.value,
278268
labels=self.labels,
279269
)
280270

sdk/python/feast/pyspark/launcher.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def _feature_table_to_argument(
151151
"project": project,
152152
"name": feature_table.name,
153153
"entities": [
154-
{"name": n, "type": client.get_entity(n, project=project).value_type}
154+
{"name": n, "type": client.get_entity(n, project=project).value_type.name}
155155
for n in feature_table.entities
156156
],
157157
"max_age": feature_table.max_age.ToSeconds() if feature_table.max_age else None,

sdk/python/requirements-ci.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ mock==2.0.0
1010
pandavro==1.5.*
1111
moto
1212
mypy==0.790
13-
mypy-protobuf
13+
mypy-protobuf==1.24
1414
avro==1.10.0
1515
gcsfs
1616
urllib3>=1.25.4

sdk/python/requirements-dev.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ pandavro==1.5.*
3131
kafka-python==2.0.2
3232
tabulate==0.8.*
3333
isort>=5
34-
mypy
35-
mypy-protobuf
34+
mypy==0.790
35+
mypy-protobuf==1.24
3636
pre-commit
3737
flake8
3838
black==19.10b0

sdk/python/tests/test_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ def test_apply_entity_success(self, test_client):
385385
assert (
386386
len(entities) == 1
387387
and entity.name == "driver_car_id"
388-
and entity.value_type == ValueType(ValueProto.ValueType.STRING).name
388+
and entity.value_type == ValueType(ValueProto.ValueType.STRING)
389389
and entity.description == "Car driver id"
390390
and "team" in entity.labels
391391
and entity.labels["team"] == "matchmaking"

0 commit comments

Comments
 (0)