Skip to content

Commit

Permalink
chore: Issue warning announcing entity's value_type as mandatory (#4833)
Browse files Browse the repository at this point in the history
* feat: Make entity value_type mandatory with deprecation warning

- Add deprecation warning when value_type is not specified for an entity
- Add test cases to verify deprecation warning behavior
- Prepare for making value_type mandatory in next release

Issue: #4670

Co-Authored-By: Francisco Javier Arceo <[email protected]>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* style: Fix import sorting in entity files

- Reorder imports according to PEP8
- Group standard library imports together
- Fix ruff linting issues

Co-Authored-By: Francisco Javier Arceo <[email protected]>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
  • Loading branch information
1 parent f565565 commit b8ede2a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
8 changes: 8 additions & 0 deletions sdk/python/feast/entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import warnings
from datetime import datetime
from typing import Dict, List, Optional

Expand Down Expand Up @@ -79,6 +80,13 @@ def __init__(
ValueError: Parameters are specified incorrectly.
"""
self.name = name
if value_type is None:
warnings.warn(
"Entity value_type will be mandatory in the next release. "
"Please specify a value_type for entity '%s'." % name,
DeprecationWarning,
stacklevel=2,
)
self.value_type = value_type or ValueType.UNKNOWN

if join_keys and len(join_keys) > 1:
Expand Down
15 changes: 15 additions & 0 deletions sdk/python/tests/unit/test_entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import warnings

import assertpy
import pytest

Expand Down Expand Up @@ -73,3 +75,16 @@ def test_hash():

s4 = {entity1, entity2, entity3, entity4}
assert len(s4) == 3


def test_entity_without_value_type_warns():
with pytest.warns(DeprecationWarning, match="Entity value_type will be mandatory"):
entity = Entity(name="my-entity")
assert entity.value_type == ValueType.UNKNOWN


def test_entity_with_value_type_no_warning():
with warnings.catch_warnings():
warnings.simplefilter("error")
entity = Entity(name="my-entity", value_type=ValueType.STRING)
assert entity.value_type == ValueType.STRING

0 comments on commit b8ede2a

Please sign in to comment.