Skip to content

Commit 0441b8b

Browse files
authored
fix: CI unittest warnings (feast-dev#4006)
fix ci unittest warnings Signed-off-by: tokoko <togurg14@freeuni.edu.ge>
1 parent ee4c4f1 commit 0441b8b

File tree

11 files changed

+46
-30
lines changed

11 files changed

+46
-30
lines changed

sdk/python/feast/driver_test_data.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def create_driver_hourly_stats_df(drivers, start_date, end_date) -> pd.DataFrame
103103
"event_timestamp": [
104104
pd.Timestamp(dt, unit="ms", tz="UTC").round("ms")
105105
for dt in pd.date_range(
106-
start=start_date, end=end_date, freq="1H", inclusive="left"
106+
start=start_date, end=end_date, freq="1h", inclusive="left"
107107
)
108108
]
109109
# include a fixed timestamp for get_historical_features in the quickstart
@@ -209,7 +209,7 @@ def create_location_stats_df(locations, start_date, end_date) -> pd.DataFrame:
209209
"event_timestamp": [
210210
pd.Timestamp(dt, unit="ms", tz="UTC").round("ms")
211211
for dt in pd.date_range(
212-
start=start_date, end=end_date, freq="1H", inclusive="left"
212+
start=start_date, end=end_date, freq="1h", inclusive="left"
213213
)
214214
]
215215
}

sdk/python/feast/infra/offline_stores/file.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import uuid
33
from datetime import datetime
44
from pathlib import Path
5-
from typing import Any, Callable, List, Literal, Optional, Tuple, Union
5+
from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, Union
66

77
import dask
88
import dask.dataframe as dd
@@ -38,10 +38,7 @@
3838
from feast.repo_config import FeastConfigBaseModel, RepoConfig
3939
from feast.saved_dataset import SavedDatasetStorage
4040
from feast.usage import log_exceptions_and_usage
41-
from feast.utils import (
42-
_get_requested_feature_views_to_features_dict,
43-
_run_dask_field_mapping,
44-
)
41+
from feast.utils import _get_requested_feature_views_to_features_dict
4542

4643
# FileRetrievalJob will cast string objects to string[pyarrow] from dask version 2023.7.1
4744
# This is not the desired behavior for our use case, so we set the convert-string option to False
@@ -512,6 +509,18 @@ def _read_datasource(data_source) -> dd.DataFrame:
512509
)
513510

514511

512+
def _run_dask_field_mapping(
513+
table: dd.DataFrame,
514+
field_mapping: Dict[str, str],
515+
):
516+
if field_mapping:
517+
# run field mapping in the forward direction
518+
table = table.rename(columns=field_mapping)
519+
table = table.persist()
520+
521+
return table
522+
523+
515524
def _field_mapping(
516525
df_to_join: dd.DataFrame,
517526
feature_view: FeatureView,

sdk/python/feast/infra/offline_stores/file_source.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from typing import Callable, Dict, Iterable, List, Optional, Tuple
22

3+
import pyarrow
4+
from packaging import version
35
from pyarrow._fs import FileSystem
46
from pyarrow._s3fs import S3FileSystem
57
from pyarrow.parquet import ParquetDataset
@@ -158,7 +160,13 @@ def get_table_column_names_and_types(
158160
# Adding support for different file format path
159161
# based on S3 filesystem
160162
if filesystem is None:
161-
schema = ParquetDataset(path, use_legacy_dataset=False).schema
163+
kwargs = (
164+
{"use_legacy_dataset": False}
165+
if version.parse(pyarrow.__version__) < version.parse("15.0.0")
166+
else {}
167+
)
168+
169+
schema = ParquetDataset(path, **kwargs).schema
162170
if hasattr(schema, "names") and hasattr(schema, "types"):
163171
# Newer versions of pyarrow doesn't have this method,
164172
# but this field is good enough.

sdk/python/feast/on_demand_pandas_transformation.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@ def __eq__(self, other):
3030
"Comparisons should only involve OnDemandPandasTransformation class objects."
3131
)
3232

33-
if not super().__eq__(other):
34-
return False
35-
3633
if (
3734
self.udf_string != other.udf_string
3835
or self.udf.__code__.co_code != other.udf.__code__.co_code

sdk/python/feast/utils.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import pandas as pd
99
import pyarrow
10-
from dask import dataframe as dd
1110
from dateutil.tz import tzlocal
1211
from pytz import utc
1312

@@ -174,18 +173,6 @@ def _run_pyarrow_field_mapping(
174173
return table
175174

176175

177-
def _run_dask_field_mapping(
178-
table: dd.DataFrame,
179-
field_mapping: Dict[str, str],
180-
):
181-
if field_mapping:
182-
# run field mapping in the forward direction
183-
table = table.rename(columns=field_mapping)
184-
table = table.persist()
185-
186-
return table
187-
188-
189176
def _coerce_datetime(ts):
190177
"""
191178
Depending on underlying time resolution, arrow to_pydict() sometimes returns pd

sdk/python/tests/unit/infra/offline_stores/test_redshift.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def test_offline_write_batch(
3333
s3_staging_location="s3://bucket/path",
3434
workgroup="",
3535
),
36+
entity_key_serialization_version=2,
3637
)
3738

3839
batch_source = RedshiftSource(

sdk/python/tests/unit/infra/offline_stores/test_snowflake.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def retrieval_job(request):
3838
provider="snowflake.offline",
3939
online_store=SqliteOnlineStoreConfig(type="sqlite"),
4040
offline_store=offline_store_config,
41+
entity_key_serialization_version=2,
4142
),
4243
full_feature_names=True,
4344
on_demand_feature_views=[],

sdk/python/tests/unit/local_feast_tests/test_local_feature_store.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ def test_apply_feature_view_with_inline_batch_source(
130130
driver_fv = FeatureView(
131131
name="driver_fv",
132132
entities=[entity],
133+
schema=[Field(name="test_key", dtype=Int64)],
133134
source=file_source,
134135
)
135136

@@ -178,6 +179,7 @@ def test_apply_feature_view_with_inline_stream_source(
178179
driver_fv = FeatureView(
179180
name="driver_fv",
180181
entities=[entity],
182+
schema=[Field(name="test_key", dtype=Int64)],
181183
source=stream_source,
182184
)
183185

@@ -332,6 +334,7 @@ def test_apply_conflicting_feature_view_names(feature_store_with_local_registry)
332334
driver_stats = FeatureView(
333335
name="driver_hourly_stats",
334336
entities=[driver],
337+
schema=[Field(name="driver_id", dtype=Int64)],
335338
ttl=timedelta(seconds=10),
336339
online=False,
337340
source=FileSource(path="driver_stats.parquet"),
@@ -341,6 +344,7 @@ def test_apply_conflicting_feature_view_names(feature_store_with_local_registry)
341344
customer_stats = FeatureView(
342345
name="DRIVER_HOURLY_STATS",
343346
entities=[customer],
347+
schema=[Field(name="customer_id", dtype=Int64)],
344348
ttl=timedelta(seconds=10),
345349
online=False,
346350
source=FileSource(path="customer_stats.parquet"),

sdk/python/tests/unit/test_on_demand_feature_view.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515
import pandas as pd
16+
import pytest
1617

1718
from feast.feature_view import FeatureView
1819
from feast.field import Field
@@ -38,6 +39,7 @@ def udf2(features_df: pd.DataFrame) -> pd.DataFrame:
3839
return df
3940

4041

42+
@pytest.mark.filterwarnings("ignore:udf and udf_string parameters are deprecated")
4143
def test_hash():
4244
file_source = FileSource(name="my-file-source", path="test.parquet")
4345
feature_view = FeatureView(

sdk/python/tests/unit/test_sql_registry.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def mysql_registry():
9393
container.start()
9494

9595
# The log string uses '8.0.*' since the version might be changed as new Docker images are pushed.
96-
log_string_to_wait_for = "/usr/sbin/mysqld: ready for connections. Version: '(\d+(\.\d+){1,2})' socket: '/var/run/mysqld/mysqld.sock' port: 3306" # noqa: W605
96+
log_string_to_wait_for = "/usr/sbin/mysqld: ready for connections. Version: '(\\d+(\\.\\d+){1,2})' socket: '/var/run/mysqld/mysqld.sock' port: 3306" # noqa: W605
9797
waited = wait_for_logs(
9898
container=container,
9999
predicate=log_string_to_wait_for,
@@ -218,6 +218,7 @@ def test_apply_feature_view_success(sql_registry):
218218
fv1 = FeatureView(
219219
name="my_feature_view_1",
220220
schema=[
221+
Field(name="test", dtype=Int64),
221222
Field(name="fs1_my_feature_1", dtype=Int64),
222223
Field(name="fs1_my_feature_2", dtype=String),
223224
Field(name="fs1_my_feature_3", dtype=Array(String)),
@@ -313,6 +314,7 @@ def test_apply_on_demand_feature_view_success(sql_registry):
313314
entities=[driver()],
314315
ttl=timedelta(seconds=8640000000),
315316
schema=[
317+
Field(name="driver_id", dtype=Int64),
316318
Field(name="daily_miles_driven", dtype=Float32),
317319
Field(name="lat", dtype=Float32),
318320
Field(name="lon", dtype=Float32),
@@ -403,7 +405,10 @@ def test_modify_feature_views_success(sql_registry):
403405

404406
fv1 = FeatureView(
405407
name="my_feature_view_1",
406-
schema=[Field(name="fs1_my_feature_1", dtype=Int64)],
408+
schema=[
409+
Field(name="test", dtype=Int64),
410+
Field(name="fs1_my_feature_1", dtype=Int64),
411+
],
407412
entities=[entity],
408413
tags={"team": "matchmaking"},
409414
source=batch_source,
@@ -527,6 +532,7 @@ def test_apply_data_source(sql_registry):
527532
fv1 = FeatureView(
528533
name="my_feature_view_1",
529534
schema=[
535+
Field(name="test", dtype=Int64),
530536
Field(name="fs1_my_feature_1", dtype=Int64),
531537
Field(name="fs1_my_feature_2", dtype=String),
532538
Field(name="fs1_my_feature_3", dtype=Array(String)),
@@ -596,6 +602,7 @@ def test_registry_cache(sql_registry):
596602
fv1 = FeatureView(
597603
name="my_feature_view_1",
598604
schema=[
605+
Field(name="test", dtype=Int64),
599606
Field(name="fs1_my_feature_1", dtype=Int64),
600607
Field(name="fs1_my_feature_2", dtype=String),
601608
Field(name="fs1_my_feature_3", dtype=Array(String)),

0 commit comments

Comments
 (0)