From 01ab462d49442d8c7f4de418132665e48552c22d Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Thu, 5 Jan 2023 09:44:34 -0700 Subject: [PATCH 01/21] fix: Updating the batch field so that you can query create and event date. (#3411) * fix: Assertion condition when value is 0 (#3401) * fix: Add assertion condition when value is 0 Signed-off-by: zlatan.el * chore: Add comment about zero value validation Signed-off-by: zlatan.el * chore: Modifiy the comment Signed-off-by: zlatan.el * chore: Add the comment Signed-off-by: zlatan.el Signed-off-by: zlatan.el Co-authored-by: zlatan.el Signed-off-by: franciscojavierarceo * updating the batch field so that if you want return the created date of a model you can just add it in the get_online_features feature argument Signed-off-by: franciscojavierarceo * linted Signed-off-by: franciscojavierarceo * adding change to also support querying the event_timestamp Signed-off-by: franciscojavierarceo Signed-off-by: zlatan.el Signed-off-by: franciscojavierarceo Co-authored-by: kysersozelee Co-authored-by: zlatan.el --- sdk/python/feast/infra/offline_stores/file.py | 46 ++++++++++++++++--- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/sdk/python/feast/infra/offline_stores/file.py b/sdk/python/feast/infra/offline_stores/file.py index 29897aef430..15e614a5a39 100644 --- a/sdk/python/feast/infra/offline_stores/file.py +++ b/sdk/python/feast/infra/offline_stores/file.py @@ -267,7 +267,7 @@ def evaluate_historical_retrieval(): ) entity_df_with_features = _drop_columns( - df_to_join, timestamp_field, created_timestamp_column + df_to_join, features, timestamp_field, created_timestamp_column ) # Ensure that we delete dataframes to free up memory @@ -599,6 +599,11 @@ def _normalize_timestamp( created_timestamp_column_type = df_to_join_types[created_timestamp_column] if not hasattr(timestamp_field_type, "tz") or timestamp_field_type.tz != pytz.UTC: + # if you are querying for the event timestamp field, we have to deduplicate + if len(df_to_join[timestamp_field].shape) > 1: + df_to_join, dups = _df_column_uniquify(df_to_join) + df_to_join = df_to_join.drop(columns=dups) + # Make sure all timestamp fields are tz-aware. We default tz-naive fields to UTC df_to_join[timestamp_field] = df_to_join[timestamp_field].apply( lambda x: x if x.tzinfo is not None else x.replace(tzinfo=pytz.utc), @@ -609,6 +614,11 @@ def _normalize_timestamp( not hasattr(created_timestamp_column_type, "tz") or created_timestamp_column_type.tz != pytz.UTC ): + if len(df_to_join[created_timestamp_column].shape) > 1: + # if you are querying for the created timestamp field, we have to deduplicate + df_to_join, dups = _df_column_uniquify(df_to_join) + df_to_join = df_to_join.drop(columns=dups) + df_to_join[created_timestamp_column] = df_to_join[ created_timestamp_column ].apply( @@ -701,14 +711,36 @@ def _drop_duplicates( def _drop_columns( df_to_join: dd.DataFrame, + features: List[str], timestamp_field: str, created_timestamp_column: str, ) -> dd.DataFrame: - entity_df_with_features = df_to_join.drop([timestamp_field], axis=1).persist() - - if created_timestamp_column: - entity_df_with_features = entity_df_with_features.drop( - [created_timestamp_column], axis=1 - ).persist() + entity_df_with_features = df_to_join + timestamp_columns = [ + timestamp_field, + created_timestamp_column, + ] + for column in timestamp_columns: + if column and column not in features: + entity_df_with_features = entity_df_with_features.drop( + [column], axis=1 + ).persist() return entity_df_with_features + + +def _df_column_uniquify(df: dd.DataFrame) -> Tuple[dd.DataFrame, List[str]]: + df_columns = df.columns + new_columns = [] + duplicate_cols = [] + for item in df_columns: + counter = 0 + newitem = item + while newitem in new_columns: + counter += 1 + newitem = "{}_{}".format(item, counter) + if counter > 0: + duplicate_cols.append(newitem) + new_columns.append(newitem) + df.columns = new_columns + return df, duplicate_cols From 753d8dbb5e34c24cf065f599a2cd370b3723de9c Mon Sep 17 00:00:00 2001 From: Hai Nguyen Date: Fri, 6 Jan 2023 23:17:43 +0700 Subject: [PATCH 02/21] feat: Make UI accessible behind proxy (#3428) * feat: Make UI runnable behind proxy Signed-off-by: Hai Nguyen * chore: root_path is optional for type hint Signed-off-by: Hai Nguyen Signed-off-by: Hai Nguyen --- sdk/python/feast/cli.py | 17 +++++++++++++++-- sdk/python/feast/feature_store.py | 8 +++++++- sdk/python/feast/ui_server.py | 12 ++++++++++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/sdk/python/feast/cli.py b/sdk/python/feast/cli.py index f677584fe5f..b0284654924 100644 --- a/sdk/python/feast/cli.py +++ b/sdk/python/feast/cli.py @@ -151,12 +151,24 @@ def version(): "--registry_ttl_sec", "-r", help="Number of seconds after which the registry is refreshed", - type=int, + type=click.INT, default=5, show_default=True, ) +@click.option( + "--root_path", + help="Provide root path to make the UI working behind proxy", + type=click.STRING, + default="", +) @click.pass_context -def ui(ctx: click.Context, host: str, port: int, registry_ttl_sec: int): +def ui( + ctx: click.Context, + host: str, + port: int, + registry_ttl_sec: int, + root_path: Optional[str] = "", +): """ Shows the Feast UI over the current directory """ @@ -170,6 +182,7 @@ def ui(ctx: click.Context, host: str, port: int, registry_ttl_sec: int): port=port, get_registry_dump=registry_dump, registry_ttl_sec=registry_ttl_sec, + root_path=root_path, ) diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index c47b06c0471..d3656e13554 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -2319,7 +2319,12 @@ def get_feature_server_endpoint(self) -> Optional[str]: @log_exceptions_and_usage def serve_ui( - self, host: str, port: int, get_registry_dump: Callable, registry_ttl_sec: int + self, + host: str, + port: int, + get_registry_dump: Callable, + registry_ttl_sec: int, + root_path: Optional[str] = "", ) -> None: """Start the UI server locally""" if flags_helper.is_test(): @@ -2335,6 +2340,7 @@ def serve_ui( get_registry_dump=get_registry_dump, project_id=self.config.project, registry_ttl_sec=registry_ttl_sec, + root_path=root_path, ) @log_exceptions_and_usage diff --git a/sdk/python/feast/ui_server.py b/sdk/python/feast/ui_server.py index f79030e8d35..d69c1332896 100644 --- a/sdk/python/feast/ui_server.py +++ b/sdk/python/feast/ui_server.py @@ -101,6 +101,14 @@ def start_server( get_registry_dump: Callable, project_id: str, registry_ttl_sec: int, + root_path: Optional[str] = "", ): - app = get_app(store, get_registry_dump, project_id, registry_ttl_sec, host, port) - uvicorn.run(app, host=host, port=port) + app = get_app( + store, + get_registry_dump, + project_id, + registry_ttl_sec, + host, + port, + ) + uvicorn.run(app, host=host, port=port, root_path=root_path) From 21dd253adda26c18366cf4338512bdc2c00882cf Mon Sep 17 00:00:00 2001 From: Amom Mendes Date: Sun, 8 Jan 2023 11:51:46 -0300 Subject: [PATCH 03/21] feat: Adding list_validation_references for default and sql registry (#3436) * Adding description as a first-class attribute for features/fields Signed-off-by: Amom Mendes * Formatting Signed-off-by: Amom Mendes * Add list validation references Signed-off-by: Amom Mendes * Format Signed-off-by: Amom Mendes Signed-off-by: Amom Mendes --- .../feast/infra/registry/proto_registry_utils.py | 4 ++++ sdk/python/feast/infra/registry/registry.py | 8 ++++++++ sdk/python/feast/infra/registry/sql.py | 16 ++++++++++++++++ .../unit/local_feast_tests/test_e2e_local.py | 2 +- 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/infra/registry/proto_registry_utils.py b/sdk/python/feast/infra/registry/proto_registry_utils.py index e26b1e10e79..4dbc95d2a5a 100644 --- a/sdk/python/feast/infra/registry/proto_registry_utils.py +++ b/sdk/python/feast/infra/registry/proto_registry_utils.py @@ -116,6 +116,10 @@ def get_validation_reference( raise ValidationReferenceNotFound(name, project=project) +def list_validation_references(registry_proto: RegistryProto): + return registry_proto.validation_references + + def list_feature_services( registry_proto: RegistryProto, project: str, allow_cache: bool = False ) -> List[FeatureService]: diff --git a/sdk/python/feast/infra/registry/registry.py b/sdk/python/feast/infra/registry/registry.py index 4870c1d45d4..e2e98460595 100644 --- a/sdk/python/feast/infra/registry/registry.py +++ b/sdk/python/feast/infra/registry/registry.py @@ -740,6 +740,14 @@ def get_validation_reference( registry_proto, name, project ) + def list_validation_references( + self, project: str, allow_cache: bool = False + ) -> List[ValidationReference]: + registry_proto = self._get_registry_proto( + project=project, allow_cache=allow_cache + ) + return proto_registry_utils.list_validation_references(registry_proto) + def delete_validation_reference(self, name: str, project: str, commit: bool = True): registry_proto = self._prepare_registry_for_changes(project) for idx, existing_validation_reference in enumerate( diff --git a/sdk/python/feast/infra/registry/sql.py b/sdk/python/feast/infra/registry/sql.py index f0782515443..fd8b47cd81a 100644 --- a/sdk/python/feast/infra/registry/sql.py +++ b/sdk/python/feast/infra/registry/sql.py @@ -408,6 +408,22 @@ def get_validation_reference( not_found_exception=ValidationReferenceNotFound, ) + def list_validation_references( + self, project: str, allow_cache: bool = False + ) -> List[ValidationReference]: + if allow_cache: + self._refresh_cached_registry_if_necessary() + return proto_registry_utils.list_validation_references( + self.cached_registry_proto + ) + return self._list_objects( + table=validation_references, + project=project, + proto_class=ValidationReferenceProto, + python_class=ValidationReference, + proto_field_name="validation_reference_proto", + ) + def list_entities(self, project: str, allow_cache: bool = False) -> List[Entity]: if allow_cache: self._refresh_cached_registry_if_necessary() diff --git a/sdk/python/tests/unit/local_feast_tests/test_e2e_local.py b/sdk/python/tests/unit/local_feast_tests/test_e2e_local.py index 1ead69f52a0..fa272c4847f 100644 --- a/sdk/python/tests/unit/local_feast_tests/test_e2e_local.py +++ b/sdk/python/tests/unit/local_feast_tests/test_e2e_local.py @@ -21,7 +21,7 @@ def test_e2e_local() -> None: """ Tests the end-to-end workflow of apply, materialize, and online retrieval. - This test runs against several different types of repos: + This test runs against several types of repos: 1. A repo with a normal FV and an entity-less FV. 2. A repo using the SDK from version 0.19.0. 3. A repo with a FV with a ttl of 0. From 30f3d34b90a9b8fe39a87cef804cfff5e36209ad Mon Sep 17 00:00:00 2001 From: Kevin Loftis Date: Mon, 9 Jan 2023 08:10:55 -0800 Subject: [PATCH 04/21] docs: Fix docstring typo (#3431) fix docstring typo --- sdk/python/feast/data_source.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/python/feast/data_source.py b/sdk/python/feast/data_source.py index 05df7a90976..b7ce19aad9b 100644 --- a/sdk/python/feast/data_source.py +++ b/sdk/python/feast/data_source.py @@ -57,7 +57,7 @@ def from_proto(cls, kafka_options_proto: DataSourceProto.KafkaOptions): kafka_options_proto: A protobuf representation of a DataSource Returns: - Returns a BigQueryOptions object based on the kafka_options protobuf + Returns a KafkaOptions object based on the kafka_options protobuf """ watermark_delay_threshold = None if kafka_options_proto.HasField("watermark_delay_threshold"): From 38d5534e9214dcbaacfc9580ee5d3c0971343fe1 Mon Sep 17 00:00:00 2001 From: Felix Wang Date: Sat, 14 Jan 2023 20:20:03 -0800 Subject: [PATCH 05/21] ci: Bump sphinx dependency (#3441) * Remove Sphinx dependencies Signed-off-by: Felix Wang * Update requirements.txt Signed-off-by: Felix Wang * Update requirements.txt Signed-off-by: Felix Wang * Update requirements.txt Signed-off-by: Felix Wang * Add py dependency Signed-off-by: Felix Wang * Update 3.8 requirements.txt Signed-off-by: Felix Wang * Update 3.9 requirements.txt Signed-off-by: Felix Wang * Update 3.10 requirements.txt Signed-off-by: Felix Wang * Add back Sphinx Signed-off-by: Felix Wang * Fix 3.8 requirements.txt Signed-off-by: Felix Wang * Fix 3.9 requirements.txt Signed-off-by: Felix Wang * Fix 3.10 requirements.txt Signed-off-by: Felix Wang Signed-off-by: Felix Wang --- .../requirements/py3.10-ci-requirements.txt | 236 +++++++++-------- .../requirements/py3.10-requirements.txt | 6 +- .../requirements/py3.8-ci-requirements.txt | 32 +-- .../requirements/py3.8-requirements.txt | 6 +- .../requirements/py3.9-ci-requirements.txt | 238 +++++++++--------- .../requirements/py3.9-requirements.txt | 17 +- setup.py | 5 +- 7 files changed, 271 insertions(+), 269 deletions(-) diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index bb6965721e3..bc8201026dd 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.10 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: # # pip-compile --extra=ci --output-file=sdk/python/requirements/py3.10-ci-requirements.txt # @@ -20,9 +20,9 @@ aiohttp==3.8.3 # s3fs aioitertools==0.11.0 # via aiobotocore -aiosignal==1.2.0 +aiosignal==1.3.1 # via aiohttp -alabaster==0.7.12 +alabaster==0.7.13 # via sphinx altair==4.2.0 # via great-expectations @@ -40,7 +40,7 @@ asn1crypto==1.5.1 # snowflake-connector-python assertpy==1.1 # via feast (setup.py) -asttokens==2.0.8 +asttokens==2.2.1 # via stack-data async-timeout==4.0.2 # via @@ -54,7 +54,7 @@ attrs==22.1.0 # pytest avro==1.10.0 # via feast (setup.py) -azure-core==1.25.1 +azure-core==1.26.2 # via # adlfs # azure-identity @@ -62,19 +62,19 @@ azure-core==1.25.1 # msrest azure-datalake-store==0.0.52 # via adlfs -azure-identity==1.11.0 +azure-identity==1.12.0 # via # adlfs # feast (setup.py) -azure-storage-blob==12.13.1 +azure-storage-blob==12.14.1 # via # adlfs # feast (setup.py) -babel==2.10.3 +babel==2.11.0 # via sphinx backcall==0.2.0 # via ipython -black==22.8.0 +black==22.12.0 # via feast (setup.py) boto3==1.20.23 # via @@ -88,11 +88,11 @@ botocore==1.23.24 # s3transfer bowler==0.9.0 # via feast (setup.py) -build==0.8.0 +build==0.10.0 # via # feast (setup.py) # pip-tools -bytewax==0.10.0 +bytewax==0.13.1 # via feast (setup.py) cachecontrol==0.12.11 # via firebase-admin @@ -135,7 +135,7 @@ colorama==0.4.5 # via # feast (setup.py) # great-expectations -coverage[toml]==6.5.0 +coverage[toml]==7.0.5 # via pytest-cov cryptography==35.0.0 # via @@ -153,7 +153,7 @@ dask==2022.1.1 # via feast (setup.py) dataclasses==0.6 # via great-expectations -db-dtypes==1.0.4 +db-dtypes==1.0.5 # via google-cloud-bigquery decorator==5.1.1 # via @@ -163,25 +163,26 @@ deprecated==1.2.13 # via redis deprecation==2.1.0 # via testcontainers -dill==0.3.5.1 +dill==0.3.6 # via + # bytewax # feast (setup.py) # multiprocess distlib==0.3.6 # via virtualenv -docker==6.0.0 +docker==6.0.1 # via # feast (setup.py) # testcontainers -docutils==0.17.1 - # via - # sphinx - # sphinx-rtd-theme +docutils==0.19 + # via sphinx entrypoints==0.4 # via altair +exceptiongroup==1.1.0 + # via pytest execnet==1.9.0 # via pytest-xdist -executing==1.1.0 +executing==1.2.0 # via stack-data fastapi==0.85.0 # via feast (setup.py) @@ -191,7 +192,7 @@ fastavro==1.6.1 # pandavro fastjsonschema==2.16.2 # via nbformat -filelock==3.8.0 +filelock==3.9.0 # via # snowflake-connector-python # virtualenv @@ -199,9 +200,9 @@ firebase-admin==5.4.0 # via feast (setup.py) fissix==21.11.13 # via bowler -flake8==5.0.4 +flake8==6.0.0 # via feast (setup.py) -frozenlist==1.3.1 +frozenlist==1.3.3 # via # aiohttp # aiosignal @@ -215,7 +216,7 @@ gcsfs==2022.1.0 # via feast (setup.py) geomet==0.2.1.post1 # via cassandra-driver -google-api-core[grpc]==2.10.1 +google-api-core[grpc]==2.11.0 # via # feast (setup.py) # firebase-admin @@ -227,9 +228,9 @@ google-api-core[grpc]==2.10.1 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-api-python-client==2.63.0 +google-api-python-client==2.72.0 # via firebase-admin -google-auth==2.12.0 +google-auth==2.16.0 # via # gcsfs # google-api-core @@ -241,15 +242,13 @@ google-auth==2.12.0 # kubernetes google-auth-httplib2==0.1.0 # via google-api-python-client -google-auth-oauthlib==0.5.3 +google-auth-oauthlib==0.8.0 # via gcsfs -google-cloud-bigquery[pandas]==3.3.3 +google-cloud-bigquery[pandas]==3.4.1 # via feast (setup.py) -google-cloud-bigquery-storage==2.16.1 - # via - # feast (setup.py) - # google-cloud-bigquery -google-cloud-bigtable==2.12.0 +google-cloud-bigquery-storage==2.18.0 + # via feast (setup.py) +google-cloud-bigtable==2.15.0 # via feast (setup.py) google-cloud-core==2.3.2 # via @@ -258,11 +257,11 @@ google-cloud-core==2.3.2 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-cloud-datastore==2.8.1 +google-cloud-datastore==2.12.0 # via feast (setup.py) -google-cloud-firestore==2.7.0 +google-cloud-firestore==2.9.0 # via firebase-admin -google-cloud-storage==2.5.0 +google-cloud-storage==2.7.0 # via # feast (setup.py) # firebase-admin @@ -281,9 +280,11 @@ googleapis-common-protos[grpc]==1.56.4 # grpcio-status great-expectations==0.14.13 # via feast (setup.py) -grpc-google-iam-v1==0.12.4 +greenlet==2.0.1 + # via sqlalchemy +grpc-google-iam-v1==0.12.6 # via google-cloud-bigtable -grpcio==1.49.1 +grpcio==1.51.1 # via # feast (setup.py) # google-api-core @@ -296,25 +297,25 @@ grpcio==1.49.1 # grpcio-tools grpcio-reflection==1.49.1 # via feast (setup.py) -grpcio-status==1.49.1 +grpcio-status==1.51.1 # via google-api-core -grpcio-testing==1.49.1 +grpcio-testing==1.51.1 # via feast (setup.py) -grpcio-tools==1.49.1 +grpcio-tools==1.51.1 # via feast (setup.py) h11==0.14.0 # via uvicorn happybase==1.2.0 # via feast (setup.py) -hiredis==2.0.0 +hiredis==2.1.1 # via feast (setup.py) -httplib2==0.20.4 +httplib2==0.21.0 # via # google-api-python-client # google-auth-httplib2 httptools==0.5.0 # via uvicorn -identify==2.5.5 +identify==2.5.13 # via pre-commit idna==3.4 # via @@ -324,17 +325,17 @@ idna==3.4 # yarl imagesize==1.4.1 # via sphinx -importlib-metadata==4.12.0 +importlib-metadata==6.0.0 # via great-expectations -iniconfig==1.1.1 +iniconfig==2.0.0 # via pytest -ipython==8.5.0 +ipython==8.8.0 # via great-expectations isodate==0.6.1 # via msrest -isort==5.10.1 +isort==5.11.4 # via feast (setup.py) -jedi==0.18.1 +jedi==0.18.2 # via ipython jinja2==3.0.3 # via @@ -357,7 +358,7 @@ jsonschema==4.16.0 # feast (setup.py) # great-expectations # nbformat -jupyter-core==4.11.1 +jupyter-core==5.1.3 # via nbformat kubernetes==20.13.0 # via feast (setup.py) @@ -383,7 +384,7 @@ moreorless==0.4.0 # via bowler moto==3.1.18 # via feast (setup.py) -msal==1.19.0 +msal==1.20.0 # via # azure-identity # msal-extensions @@ -397,11 +398,11 @@ msrest==0.7.1 # msrestazure msrestazure==0.6.4 # via adlfs -multidict==6.0.2 +multidict==6.0.4 # via # aiohttp # yarl -multiprocess==0.70.13 +multiprocess==0.70.14 # via bytewax mypy==0.981 # via @@ -415,7 +416,7 @@ mypy-protobuf==3.1 # via feast (setup.py) mysqlclient==2.1.1 # via feast (setup.py) -nbformat==5.6.1 +nbformat==5.7.3 # via great-expectations nodeenv==1.7.0 # via pre-commit @@ -429,7 +430,7 @@ numpy==1.23.3 # pandavro # pyarrow # scipy -oauthlib==3.2.1 +oauthlib==3.2.2 # via requests-oauthlib oscrypto==1.3.0 # via snowflake-connector-python @@ -460,31 +461,30 @@ parso==0.8.3 # via jedi partd==1.3.0 # via dask -pathspec==0.10.1 +pathspec==0.10.3 # via black -pbr==5.10.0 +pbr==5.11.1 # via mock -pep517==0.13.0 - # via build pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython -pip-tools==6.8.0 +pip-tools==6.12.1 # via feast (setup.py) -platformdirs==2.5.2 +platformdirs==2.6.2 # via # black + # jupyter-core # virtualenv pluggy==1.0.0 # via pytest ply==3.11 # via thriftpy2 -portalocker==2.5.1 +portalocker==2.6.0 # via msal-extensions -pre-commit==2.20.0 +pre-commit==2.21.0 # via feast (setup.py) -prompt-toolkit==3.0.31 +prompt-toolkit==3.0.36 # via ipython proto-plus==1.22.1 # via @@ -504,6 +504,7 @@ protobuf==4.21.7 # google-cloud-datastore # google-cloud-firestore # googleapis-common-protos + # grpc-google-iam-v1 # grpcio-reflection # grpcio-status # grpcio-testing @@ -512,17 +513,15 @@ protobuf==4.21.7 # proto-plus psutil==5.9.0 # via feast (setup.py) -psycopg2-binary==2.9.3 +psycopg2-binary==2.9.5 # via feast (setup.py) ptyprocess==0.7.0 # via pexpect pure-eval==0.2.2 # via stack-data py==1.11.0 - # via - # pytest - # pytest-forked -py-cpuinfo==8.0.0 + # via feast (setup.py) +py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.5 # via pyspark @@ -540,33 +539,33 @@ pyasn1-modules==0.2.8 # via google-auth pybindgen==0.22.1 # via feast (setup.py) -pycodestyle==2.9.1 +pycodestyle==2.10.0 # via flake8 pycparser==2.21 # via cffi -pycryptodomex==3.15.0 +pycryptodomex==3.16.0 # via snowflake-connector-python pydantic==1.10.2 # via # fastapi # feast (setup.py) -pyflakes==2.5.0 +pyflakes==3.0.1 # via flake8 pygments==2.13.0 # via # feast (setup.py) # ipython # sphinx -pyjwt[crypto]==2.5.0 +pyjwt[crypto]==2.6.0 # via # adal # msal # snowflake-connector-python -pymssql==2.2.5 +pymssql==2.2.7 # via feast (setup.py) pymysql==1.0.2 # via feast (setup.py) -pyodbc==4.0.34 +pyodbc==4.0.35 # via feast (setup.py) pyopenssl==22.0.0 # via @@ -577,16 +576,17 @@ pyparsing==2.4.7 # great-expectations # httplib2 # packaging +pyproject-hooks==1.0.0 + # via build pyrsistent==0.18.1 # via jsonschema -pyspark==3.3.0 +pyspark==3.3.1 # via feast (setup.py) -pytest==7.1.3 +pytest==7.2.1 # via # feast (setup.py) # pytest-benchmark # pytest-cov - # pytest-forked # pytest-lazy-fixture # pytest-mock # pytest-ordering @@ -596,8 +596,6 @@ pytest-benchmark==3.4.1 # via feast (setup.py) pytest-cov==4.0.0 # via feast (setup.py) -pytest-forked==1.4.0 - # via pytest-xdist pytest-lazy-fixture==0.6.3 # via feast (setup.py) pytest-mock==1.10.4 @@ -606,7 +604,7 @@ pytest-ordering==0.6 # via feast (setup.py) pytest-timeout==1.4.2 # via feast (setup.py) -pytest-xdist==2.5.0 +pytest-xdist==3.1.0 # via feast (setup.py) python-dateutil==2.8.2 # via @@ -665,7 +663,7 @@ requests-oauthlib==1.3.1 # google-auth-oauthlib # kubernetes # msrest -responses==0.21.0 +responses==0.22.0 # via moto rsa==4.9 # via google-auth @@ -675,7 +673,7 @@ s3fs==2022.1.0 # via feast (setup.py) s3transfer==0.5.2 # via boto3 -scipy==1.9.1 +scipy==1.10.0 # via great-expectations six==1.16.0 # via @@ -685,7 +683,6 @@ six==1.16.0 # geomet # google-auth # google-auth-httplib2 - # grpcio # happybase # isodate # kubernetes @@ -693,19 +690,16 @@ six==1.16.0 # msrestazure # pandavro # python-dateutil + # thriftpy2 sniffio==1.3.0 # via anyio snowballstemmer==2.2.0 # via sphinx -snowflake-connector-python[pandas]==2.8.0 +snowflake-connector-python[pandas]==2.9.0 # via feast (setup.py) -sphinx==4.3.2 - # via - # feast (setup.py) - # sphinx-rtd-theme -sphinx-rtd-theme==1.0.0 +sphinx==6.1.3 # via feast (setup.py) -sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-applehelp==1.0.3 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx @@ -721,7 +715,7 @@ sqlalchemy[mypy]==1.4.41 # via feast (setup.py) sqlalchemy2-stubs==0.0.2a27 # via sqlalchemy -stack-data==0.5.1 +stack-data==0.6.2 # via ipython starlette==0.20.4 # via fastapi @@ -729,23 +723,23 @@ tabulate==0.8.10 # via feast (setup.py) tenacity==8.1.0 # via feast (setup.py) -termcolor==2.0.1 +termcolor==2.2.0 # via great-expectations -testcontainers==3.7.0 +testcontainers==3.7.1 # via feast (setup.py) -thriftpy2==0.4.14 +thriftpy2==0.4.16 # via happybase toml==0.10.2 # via # feast (setup.py) - # pre-commit + # responses tomli==2.0.1 # via # black # build # coverage # mypy - # pep517 + # pyproject-hooks # pytest toolz==0.12.0 # via @@ -756,39 +750,41 @@ tqdm==4.64.1 # via # feast (setup.py) # great-expectations -traitlets==5.4.0 +traitlets==5.8.1 # via # ipython # jupyter-core # matplotlib-inline # nbformat -trino==0.316.0 +trino==0.321.0 # via feast (setup.py) typeguard==2.13.3 # via feast (setup.py) -types-cryptography==3.3.23 - # via pyjwt -types-protobuf==3.20.4 +types-docutils==0.19.1.1 + # via types-setuptools +types-protobuf==4.21.0.2 # via # feast (setup.py) # mypy-protobuf -types-pymysql==1.0.19 +types-pymysql==1.0.19.1 # via feast (setup.py) -types-python-dateutil==2.8.19 +types-python-dateutil==2.8.19.5 # via feast (setup.py) -types-pytz==2022.2.1.0 +types-pytz==2022.7.0.0 # via feast (setup.py) -types-pyyaml==6.0.12 +types-pyyaml==6.0.12.2 # via feast (setup.py) -types-redis==4.3.21 +types-redis==4.4.0.0 # via feast (setup.py) -types-requests==2.28.11 +types-requests==2.28.11.7 # via feast (setup.py) -types-setuptools==65.4.0.0 +types-setuptools==65.7.0.1 # via feast (setup.py) -types-tabulate==0.8.11 +types-tabulate==0.9.0.0 # via feast (setup.py) -types-urllib3==1.26.25 +types-toml==0.10.8.1 + # via responses +types-urllib3==1.26.25.4 # via types-requests typing-extensions==4.3.0 # via @@ -798,10 +794,12 @@ typing-extensions==4.3.0 # pydantic # snowflake-connector-python # sqlalchemy2-stubs -tzdata==2022.4 +tzdata==2022.7 # via pytz-deprecation-shim tzlocal==4.2 - # via great-expectations + # via + # great-expectations + # trino uritemplate==4.1.1 # via google-api-python-client urllib3==1.26.12 @@ -819,7 +817,7 @@ uvicorn[standard]==0.18.3 # via feast (setup.py) uvloop==0.17.0 # via uvicorn -virtualenv==20.16.5 +virtualenv==20.17.1 # via pre-commit volatile==2.1.0 # via bowler @@ -827,7 +825,7 @@ watchfiles==0.17.0 # via uvicorn wcwidth==0.2.5 # via prompt-toolkit -websocket-client==1.4.1 +websocket-client==1.4.2 # via # docker # kubernetes @@ -835,7 +833,7 @@ websockets==10.3 # via uvicorn werkzeug==2.1.2 # via moto -wheel==0.37.1 +wheel==0.38.4 # via pip-tools wrapt==1.14.1 # via @@ -844,9 +842,9 @@ wrapt==1.14.1 # testcontainers xmltodict==0.13.0 # via moto -yarl==1.8.1 +yarl==1.8.2 # via aiohttp -zipp==3.8.1 +zipp==3.11.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index 4da9012726b..c15541fc52f 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.10 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: # # pip-compile --output-file=sdk/python/requirements/py3.10-requirements.txt # @@ -54,6 +54,8 @@ googleapis-common-protos==1.56.4 # via # feast (setup.py) # google-api-core +greenlet==2.0.1 + # via sqlalchemy grpcio==1.49.1 # via # feast (setup.py) diff --git a/sdk/python/requirements/py3.8-ci-requirements.txt b/sdk/python/requirements/py3.8-ci-requirements.txt index f4ad8817c3e..0be4790c8c7 100644 --- a/sdk/python/requirements/py3.8-ci-requirements.txt +++ b/sdk/python/requirements/py3.8-ci-requirements.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # pip-compile --extra=ci --output-file=sdk/python/requirements/py3.8-ci-requirements.txt # @@ -22,7 +22,7 @@ aioitertools==0.11.0 # via aiobotocore aiosignal==1.2.0 # via aiohttp -alabaster==0.7.12 +alabaster==0.7.13 # via sphinx altair==4.2.0 # via great-expectations @@ -70,7 +70,7 @@ azure-storage-blob==12.13.1 # via # adlfs # feast (setup.py) -babel==2.10.3 +babel==2.11.0 # via sphinx backcall==0.2.0 # via ipython @@ -96,7 +96,7 @@ build==0.8.0 # via # feast (setup.py) # pip-tools -bytewax==0.10.0 +bytewax==0.13.1 # via feast (setup.py) cachecontrol==0.12.11 # via firebase-admin @@ -169,6 +169,7 @@ deprecation==2.1.0 # via testcontainers dill==0.3.5.1 # via + # bytewax # feast (setup.py) # multiprocess distlib==0.3.6 @@ -177,10 +178,8 @@ docker==6.0.0 # via # feast (setup.py) # testcontainers -docutils==0.17.1 - # via - # sphinx - # sphinx-rtd-theme +docutils==0.19 + # via sphinx entrypoints==0.4 # via altair execnet==1.9.0 @@ -285,6 +284,8 @@ googleapis-common-protos[grpc]==1.56.4 # grpcio-status great-expectations==0.14.13 # via feast (setup.py) +greenlet==2.0.1 + # via sqlalchemy grpc-google-iam-v1==0.12.4 # via google-cloud-bigtable grpcio==1.49.1 @@ -329,7 +330,9 @@ idna==3.4 imagesize==1.4.1 # via sphinx importlib-metadata==4.12.0 - # via great-expectations + # via + # great-expectations + # sphinx importlib-resources==5.9.0 # via jsonschema iniconfig==1.1.1 @@ -528,6 +531,7 @@ pure-eval==0.2.2 # via stack-data py==1.11.0 # via + # feast (setup.py) # pytest # pytest-forked py-cpuinfo==8.0.0 @@ -709,13 +713,9 @@ snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==2.8.0 # via feast (setup.py) -sphinx==4.3.2 - # via - # feast (setup.py) - # sphinx-rtd-theme -sphinx-rtd-theme==1.0.0 +sphinx==6.1.3 # via feast (setup.py) -sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-applehelp==1.0.3 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx diff --git a/sdk/python/requirements/py3.8-requirements.txt b/sdk/python/requirements/py3.8-requirements.txt index aefab58702e..0820644131f 100644 --- a/sdk/python/requirements/py3.8-requirements.txt +++ b/sdk/python/requirements/py3.8-requirements.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # pip-compile --output-file=sdk/python/requirements/py3.8-requirements.txt # @@ -54,6 +54,8 @@ googleapis-common-protos==1.56.4 # via # feast (setup.py) # google-api-core +greenlet==2.0.1 + # via sqlalchemy grpcio==1.49.1 # via # feast (setup.py) diff --git a/sdk/python/requirements/py3.9-ci-requirements.txt b/sdk/python/requirements/py3.9-ci-requirements.txt index 96e82f2812b..220ddb6ef3a 100644 --- a/sdk/python/requirements/py3.9-ci-requirements.txt +++ b/sdk/python/requirements/py3.9-ci-requirements.txt @@ -20,9 +20,9 @@ aiohttp==3.8.3 # s3fs aioitertools==0.11.0 # via aiobotocore -aiosignal==1.2.0 +aiosignal==1.3.1 # via aiohttp -alabaster==0.7.12 +alabaster==0.7.13 # via sphinx altair==4.2.0 # via great-expectations @@ -40,7 +40,7 @@ asn1crypto==1.5.1 # snowflake-connector-python assertpy==1.1 # via feast (setup.py) -asttokens==2.0.8 +asttokens==2.2.1 # via stack-data async-timeout==4.0.2 # via @@ -54,7 +54,7 @@ attrs==22.1.0 # pytest avro==1.10.0 # via feast (setup.py) -azure-core==1.25.1 +azure-core==1.26.2 # via # adlfs # azure-identity @@ -62,19 +62,19 @@ azure-core==1.25.1 # msrest azure-datalake-store==0.0.52 # via adlfs -azure-identity==1.11.0 +azure-identity==1.12.0 # via # adlfs # feast (setup.py) -azure-storage-blob==12.13.1 +azure-storage-blob==12.14.1 # via # adlfs # feast (setup.py) -babel==2.10.3 +babel==2.11.0 # via sphinx backcall==0.2.0 # via ipython -black==22.8.0 +black==22.12.0 # via feast (setup.py) boto3==1.20.23 # via @@ -88,11 +88,11 @@ botocore==1.23.24 # s3transfer bowler==0.9.0 # via feast (setup.py) -build==0.8.0 +build==0.10.0 # via # feast (setup.py) # pip-tools -bytewax==0.10.0 +bytewax==0.13.1 # via feast (setup.py) cachecontrol==0.12.11 # via firebase-admin @@ -135,7 +135,7 @@ colorama==0.4.5 # via # feast (setup.py) # great-expectations -coverage[toml]==6.5.0 +coverage[toml]==7.0.5 # via pytest-cov cryptography==35.0.0 # via @@ -153,7 +153,7 @@ dask==2022.1.1 # via feast (setup.py) dataclasses==0.6 # via great-expectations -db-dtypes==1.0.4 +db-dtypes==1.0.5 # via google-cloud-bigquery decorator==5.1.1 # via @@ -163,25 +163,26 @@ deprecated==1.2.13 # via redis deprecation==2.1.0 # via testcontainers -dill==0.3.5.1 +dill==0.3.6 # via + # bytewax # feast (setup.py) # multiprocess distlib==0.3.6 # via virtualenv -docker==6.0.0 +docker==6.0.1 # via # feast (setup.py) # testcontainers -docutils==0.17.1 - # via - # sphinx - # sphinx-rtd-theme +docutils==0.19 + # via sphinx entrypoints==0.4 # via altair +exceptiongroup==1.1.0 + # via pytest execnet==1.9.0 # via pytest-xdist -executing==1.1.0 +executing==1.2.0 # via stack-data fastapi==0.85.0 # via feast (setup.py) @@ -191,7 +192,7 @@ fastavro==1.6.1 # pandavro fastjsonschema==2.16.2 # via nbformat -filelock==3.8.0 +filelock==3.9.0 # via # snowflake-connector-python # virtualenv @@ -199,9 +200,9 @@ firebase-admin==5.4.0 # via feast (setup.py) fissix==21.11.13 # via bowler -flake8==5.0.4 +flake8==6.0.0 # via feast (setup.py) -frozenlist==1.3.1 +frozenlist==1.3.3 # via # aiohttp # aiosignal @@ -215,7 +216,7 @@ gcsfs==2022.1.0 # via feast (setup.py) geomet==0.2.1.post1 # via cassandra-driver -google-api-core[grpc]==2.10.1 +google-api-core[grpc]==2.11.0 # via # feast (setup.py) # firebase-admin @@ -227,9 +228,9 @@ google-api-core[grpc]==2.10.1 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-api-python-client==2.63.0 +google-api-python-client==2.72.0 # via firebase-admin -google-auth==2.12.0 +google-auth==2.16.0 # via # gcsfs # google-api-core @@ -241,15 +242,13 @@ google-auth==2.12.0 # kubernetes google-auth-httplib2==0.1.0 # via google-api-python-client -google-auth-oauthlib==0.5.3 +google-auth-oauthlib==0.8.0 # via gcsfs -google-cloud-bigquery[pandas]==3.3.3 +google-cloud-bigquery[pandas]==3.4.1 # via feast (setup.py) -google-cloud-bigquery-storage==2.16.1 - # via - # feast (setup.py) - # google-cloud-bigquery -google-cloud-bigtable==2.12.0 +google-cloud-bigquery-storage==2.18.0 + # via feast (setup.py) +google-cloud-bigtable==2.15.0 # via feast (setup.py) google-cloud-core==2.3.2 # via @@ -258,11 +257,11 @@ google-cloud-core==2.3.2 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-cloud-datastore==2.8.1 +google-cloud-datastore==2.12.0 # via feast (setup.py) -google-cloud-firestore==2.7.0 +google-cloud-firestore==2.9.0 # via firebase-admin -google-cloud-storage==2.5.0 +google-cloud-storage==2.7.0 # via # feast (setup.py) # firebase-admin @@ -281,9 +280,11 @@ googleapis-common-protos[grpc]==1.56.4 # grpcio-status great-expectations==0.14.13 # via feast (setup.py) -grpc-google-iam-v1==0.12.4 +greenlet==2.0.1 + # via sqlalchemy +grpc-google-iam-v1==0.12.6 # via google-cloud-bigtable -grpcio==1.49.1 +grpcio==1.51.1 # via # feast (setup.py) # google-api-core @@ -296,25 +297,25 @@ grpcio==1.49.1 # grpcio-tools grpcio-reflection==1.49.1 # via feast (setup.py) -grpcio-status==1.49.1 +grpcio-status==1.51.1 # via google-api-core -grpcio-testing==1.49.1 +grpcio-testing==1.51.1 # via feast (setup.py) -grpcio-tools==1.49.1 +grpcio-tools==1.51.1 # via feast (setup.py) h11==0.14.0 # via uvicorn happybase==1.2.0 # via feast (setup.py) -hiredis==2.0.0 +hiredis==2.1.1 # via feast (setup.py) -httplib2==0.20.4 +httplib2==0.21.0 # via # google-api-python-client # google-auth-httplib2 httptools==0.5.0 # via uvicorn -identify==2.5.5 +identify==2.5.13 # via pre-commit idna==3.4 # via @@ -324,17 +325,19 @@ idna==3.4 # yarl imagesize==1.4.1 # via sphinx -importlib-metadata==4.12.0 - # via great-expectations -iniconfig==1.1.1 +importlib-metadata==6.0.0 + # via + # great-expectations + # sphinx +iniconfig==2.0.0 # via pytest -ipython==8.5.0 +ipython==8.8.0 # via great-expectations isodate==0.6.1 # via msrest -isort==5.10.1 +isort==5.11.4 # via feast (setup.py) -jedi==0.18.1 +jedi==0.18.2 # via ipython jinja2==3.0.3 # via @@ -357,7 +360,7 @@ jsonschema==4.16.0 # feast (setup.py) # great-expectations # nbformat -jupyter-core==4.11.1 +jupyter-core==5.1.3 # via nbformat kubernetes==20.13.0 # via feast (setup.py) @@ -383,7 +386,7 @@ moreorless==0.4.0 # via bowler moto==3.1.18 # via feast (setup.py) -msal==1.19.0 +msal==1.20.0 # via # azure-identity # msal-extensions @@ -397,11 +400,11 @@ msrest==0.7.1 # msrestazure msrestazure==0.6.4 # via adlfs -multidict==6.0.2 +multidict==6.0.4 # via # aiohttp # yarl -multiprocess==0.70.13 +multiprocess==0.70.14 # via bytewax mypy==0.981 # via @@ -415,7 +418,7 @@ mypy-protobuf==3.1 # via feast (setup.py) mysqlclient==2.1.1 # via feast (setup.py) -nbformat==5.6.1 +nbformat==5.7.3 # via great-expectations nodeenv==1.7.0 # via pre-commit @@ -429,7 +432,7 @@ numpy==1.23.3 # pandavro # pyarrow # scipy -oauthlib==3.2.1 +oauthlib==3.2.2 # via requests-oauthlib oscrypto==1.3.0 # via snowflake-connector-python @@ -460,31 +463,30 @@ parso==0.8.3 # via jedi partd==1.3.0 # via dask -pathspec==0.10.1 +pathspec==0.10.3 # via black -pbr==5.10.0 +pbr==5.11.1 # via mock -pep517==0.13.0 - # via build pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython -pip-tools==6.8.0 +pip-tools==6.12.1 # via feast (setup.py) -platformdirs==2.5.2 +platformdirs==2.6.2 # via # black + # jupyter-core # virtualenv pluggy==1.0.0 # via pytest ply==3.11 # via thriftpy2 -portalocker==2.5.1 +portalocker==2.6.0 # via msal-extensions -pre-commit==2.20.0 +pre-commit==2.21.0 # via feast (setup.py) -prompt-toolkit==3.0.31 +prompt-toolkit==3.0.36 # via ipython proto-plus==1.22.1 # via @@ -504,6 +506,7 @@ protobuf==4.21.7 # google-cloud-datastore # google-cloud-firestore # googleapis-common-protos + # grpc-google-iam-v1 # grpcio-reflection # grpcio-status # grpcio-testing @@ -512,17 +515,15 @@ protobuf==4.21.7 # proto-plus psutil==5.9.0 # via feast (setup.py) -psycopg2-binary==2.9.3 +psycopg2-binary==2.9.5 # via feast (setup.py) ptyprocess==0.7.0 # via pexpect pure-eval==0.2.2 # via stack-data py==1.11.0 - # via - # pytest - # pytest-forked -py-cpuinfo==8.0.0 + # via feast (setup.py) +py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.5 # via pyspark @@ -540,33 +541,33 @@ pyasn1-modules==0.2.8 # via google-auth pybindgen==0.22.1 # via feast (setup.py) -pycodestyle==2.9.1 +pycodestyle==2.10.0 # via flake8 pycparser==2.21 # via cffi -pycryptodomex==3.15.0 +pycryptodomex==3.16.0 # via snowflake-connector-python pydantic==1.10.2 # via # fastapi # feast (setup.py) -pyflakes==2.5.0 +pyflakes==3.0.1 # via flake8 pygments==2.13.0 # via # feast (setup.py) # ipython # sphinx -pyjwt[crypto]==2.5.0 +pyjwt[crypto]==2.6.0 # via # adal # msal # snowflake-connector-python -pymssql==2.2.5 +pymssql==2.2.7 # via feast (setup.py) pymysql==1.0.2 # via feast (setup.py) -pyodbc==4.0.34 +pyodbc==4.0.35 # via feast (setup.py) pyopenssl==22.0.0 # via @@ -577,16 +578,17 @@ pyparsing==2.4.7 # great-expectations # httplib2 # packaging +pyproject-hooks==1.0.0 + # via build pyrsistent==0.18.1 # via jsonschema -pyspark==3.3.0 +pyspark==3.3.1 # via feast (setup.py) -pytest==7.1.3 +pytest==7.2.1 # via # feast (setup.py) # pytest-benchmark # pytest-cov - # pytest-forked # pytest-lazy-fixture # pytest-mock # pytest-ordering @@ -596,8 +598,6 @@ pytest-benchmark==3.4.1 # via feast (setup.py) pytest-cov==4.0.0 # via feast (setup.py) -pytest-forked==1.4.0 - # via pytest-xdist pytest-lazy-fixture==0.6.3 # via feast (setup.py) pytest-mock==1.10.4 @@ -606,7 +606,7 @@ pytest-ordering==0.6 # via feast (setup.py) pytest-timeout==1.4.2 # via feast (setup.py) -pytest-xdist==2.5.0 +pytest-xdist==3.1.0 # via feast (setup.py) python-dateutil==2.8.2 # via @@ -665,19 +665,19 @@ requests-oauthlib==1.3.1 # google-auth-oauthlib # kubernetes # msrest -responses==0.21.0 +responses==0.22.0 # via moto rsa==4.9 # via google-auth ruamel-yaml==0.17.17 # via great-expectations -ruamel-yaml-clib==0.2.6 +ruamel-yaml-clib==0.2.7 # via ruamel-yaml s3fs==2022.1.0 # via feast (setup.py) s3transfer==0.5.2 # via boto3 -scipy==1.9.1 +scipy==1.10.0 # via great-expectations six==1.16.0 # via @@ -687,7 +687,6 @@ six==1.16.0 # geomet # google-auth # google-auth-httplib2 - # grpcio # happybase # isodate # kubernetes @@ -695,19 +694,16 @@ six==1.16.0 # msrestazure # pandavro # python-dateutil + # thriftpy2 sniffio==1.3.0 # via anyio snowballstemmer==2.2.0 # via sphinx -snowflake-connector-python[pandas]==2.8.0 +snowflake-connector-python[pandas]==2.9.0 # via feast (setup.py) -sphinx==4.3.2 - # via - # feast (setup.py) - # sphinx-rtd-theme -sphinx-rtd-theme==1.0.0 +sphinx==6.1.3 # via feast (setup.py) -sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-applehelp==1.0.3 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx @@ -723,7 +719,7 @@ sqlalchemy[mypy]==1.4.41 # via feast (setup.py) sqlalchemy2-stubs==0.0.2a27 # via sqlalchemy -stack-data==0.5.1 +stack-data==0.6.2 # via ipython starlette==0.20.4 # via fastapi @@ -731,23 +727,23 @@ tabulate==0.8.10 # via feast (setup.py) tenacity==8.1.0 # via feast (setup.py) -termcolor==2.0.1 +termcolor==2.2.0 # via great-expectations -testcontainers==3.7.0 +testcontainers==3.7.1 # via feast (setup.py) -thriftpy2==0.4.14 +thriftpy2==0.4.16 # via happybase toml==0.10.2 # via # feast (setup.py) - # pre-commit + # responses tomli==2.0.1 # via # black # build # coverage # mypy - # pep517 + # pyproject-hooks # pytest toolz==0.12.0 # via @@ -758,39 +754,41 @@ tqdm==4.64.1 # via # feast (setup.py) # great-expectations -traitlets==5.4.0 +traitlets==5.8.1 # via # ipython # jupyter-core # matplotlib-inline # nbformat -trino==0.316.0 +trino==0.321.0 # via feast (setup.py) typeguard==2.13.3 # via feast (setup.py) -types-cryptography==3.3.23 - # via pyjwt -types-protobuf==3.20.4 +types-docutils==0.19.1.1 + # via types-setuptools +types-protobuf==4.21.0.2 # via # feast (setup.py) # mypy-protobuf -types-pymysql==1.0.19 +types-pymysql==1.0.19.1 # via feast (setup.py) -types-python-dateutil==2.8.19 +types-python-dateutil==2.8.19.5 # via feast (setup.py) -types-pytz==2022.2.1.0 +types-pytz==2022.7.0.0 # via feast (setup.py) -types-pyyaml==6.0.12 +types-pyyaml==6.0.12.2 # via feast (setup.py) -types-redis==4.3.21 +types-redis==4.4.0.0 # via feast (setup.py) -types-requests==2.28.11 +types-requests==2.28.11.7 # via feast (setup.py) -types-setuptools==65.4.0.0 +types-setuptools==65.7.0.1 # via feast (setup.py) -types-tabulate==0.8.11 +types-tabulate==0.9.0.0 # via feast (setup.py) -types-urllib3==1.26.25 +types-toml==0.10.8.1 + # via responses +types-urllib3==1.26.25.4 # via types-requests typing-extensions==4.3.0 # via @@ -803,10 +801,12 @@ typing-extensions==4.3.0 # snowflake-connector-python # sqlalchemy2-stubs # starlette -tzdata==2022.4 +tzdata==2022.7 # via pytz-deprecation-shim tzlocal==4.2 - # via great-expectations + # via + # great-expectations + # trino uritemplate==4.1.1 # via google-api-python-client urllib3==1.26.12 @@ -824,7 +824,7 @@ uvicorn[standard]==0.18.3 # via feast (setup.py) uvloop==0.17.0 # via uvicorn -virtualenv==20.16.5 +virtualenv==20.17.1 # via pre-commit volatile==2.1.0 # via bowler @@ -832,7 +832,7 @@ watchfiles==0.17.0 # via uvicorn wcwidth==0.2.5 # via prompt-toolkit -websocket-client==1.4.1 +websocket-client==1.4.2 # via # docker # kubernetes @@ -840,7 +840,7 @@ websockets==10.3 # via uvicorn werkzeug==2.1.2 # via moto -wheel==0.37.1 +wheel==0.38.4 # via pip-tools wrapt==1.14.1 # via @@ -849,9 +849,9 @@ wrapt==1.14.1 # testcontainers xmltodict==0.13.0 # via moto -yarl==1.8.1 +yarl==1.8.2 # via aiohttp -zipp==3.8.1 +zipp==3.11.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/sdk/python/requirements/py3.9-requirements.txt b/sdk/python/requirements/py3.9-requirements.txt index 7937b2811dc..c69c5a9635f 100644 --- a/sdk/python/requirements/py3.9-requirements.txt +++ b/sdk/python/requirements/py3.9-requirements.txt @@ -34,7 +34,7 @@ colorama==0.4.5 # via feast (setup.py) dask==2022.1.1 # via feast (setup.py) -dill==0.3.5.1 +dill==0.3.6 # via feast (setup.py) fastapi==0.85.0 # via feast (setup.py) @@ -44,17 +44,19 @@ fastavro==1.6.1 # pandavro fissix==21.11.13 # via bowler -fsspec==2022.8.2 +fsspec==2022.1.0 # via dask -google-api-core==2.10.1 +google-api-core==2.11.0 # via feast (setup.py) -google-auth==2.12.0 +google-auth==2.16.0 # via google-api-core googleapis-common-protos==1.56.4 # via # feast (setup.py) # google-api-core -grpcio==1.49.1 +greenlet==2.0.1 + # via sqlalchemy +grpcio==1.51.1 # via # feast (setup.py) # grpcio-reflection @@ -68,7 +70,7 @@ idna==3.4 # via # anyio # requests -jinja2==3.1.2 +jinja2==3.0.3 # via feast (setup.py) jsonschema==4.16.0 # via feast (setup.py) @@ -123,7 +125,7 @@ pydantic==1.10.2 # feast (setup.py) pygments==2.13.0 # via feast (setup.py) -pyparsing==3.0.9 +pyparsing==2.4.7 # via packaging pyrsistent==0.18.1 # via jsonschema @@ -145,7 +147,6 @@ rsa==4.9 six==1.16.0 # via # google-auth - # grpcio # pandavro # python-dateutil sniffio==1.3.0 diff --git a/setup.py b/setup.py index 27f4ff7ed3c..417ac3dce83 100644 --- a/setup.py +++ b/setup.py @@ -157,6 +157,7 @@ "gcsfs>=0.4.0,<=2022.01.0", "urllib3>=1.25.4,<2", "psutil==5.9.0", + "py>=1.11.0", # https://github.com/pytest-dev/pytest/issues/10420 "pytest>=6.0.0,<8", "pytest-cov", "pytest-xdist", @@ -165,8 +166,7 @@ "pytest-timeout==1.4.2", "pytest-ordering==0.6.*", "pytest-mock==1.10.4", - "Sphinx!=4.0.0,<4.4.0", - "sphinx-rtd-theme", + "Sphinx>4.0.0,<7", "testcontainers>=3.5,<4", "adlfs==0.5.9", "firebase-admin>=5.2.0,<6", @@ -552,7 +552,6 @@ def copy_extensions_to_source(self): "grpcio-tools>=1.47.0", "mypy-protobuf==3.1", "pybindgen==0.22.0", - "sphinx!=4.0.0", ], cmdclass={ "build_python_protos": BuildPythonProtosCommand, From e52bca26efc799da50aa22ef67fb5b65efd3ebfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Jan 2023 22:00:54 -0800 Subject: [PATCH 06/21] chore: Bump json5 from 1.0.1 to 1.0.2 in /sdk/python/feast/ui (#3439) Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- sdk/python/feast/ui/yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sdk/python/feast/ui/yarn.lock b/sdk/python/feast/ui/yarn.lock index 9e7c3ae3a33..382b3c55033 100644 --- a/sdk/python/feast/ui/yarn.lock +++ b/sdk/python/feast/ui/yarn.lock @@ -6791,9 +6791,9 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" @@ -7173,9 +7173,9 @@ minimatch@^5.0.1: brace-expansion "^2.0.1" minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== mkdirp@~0.5.1: version "0.5.6" From 5006a8a3e634a0eb2aae146cc5fb75bfd1ab1e80 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Jan 2023 23:19:57 -0800 Subject: [PATCH 07/21] chore: Bump json5 from 1.0.1 to 1.0.2 in /ui (#3438) Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- ui/yarn.lock | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/ui/yarn.lock b/ui/yarn.lock index a43a6cadfdd..1fd7c9c888d 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -7126,9 +7126,9 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" @@ -7585,12 +7585,7 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.1.1, minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minimist@^1.2.0: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== From ecb7950b2701bc364038ff9f9d2166413e1739fd Mon Sep 17 00:00:00 2001 From: Shuchu Han Date: Sun, 15 Jan 2023 02:58:11 -0500 Subject: [PATCH 08/21] docs: Update the expired link of the black coding style. (#3427) docs: update the expired link of the black coding style. Signed-off-by: Felix Wang Signed-off-by: Felix Wang Co-authored-by: Felix Wang --- docs/project/development-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/project/development-guide.md b/docs/project/development-guide.md index 39c2088e854..5a0a414d1d9 100644 --- a/docs/project/development-guide.md +++ b/docs/project/development-guide.md @@ -162,7 +162,7 @@ This will allow the installed feast version to automatically reflect changes to ### Code Style & Linting Feast Python SDK / CLI codebase: -- Conforms to [Black code style](https://black.readthedocs.io/en/stable/the_black_code_style.html) +- Conforms to [Black code style](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html) - Has type annotations as enforced by `mypy` - Has imports sorted by `isort` - Is lintable by `flake8` From 1ea100ef472a7cc5b750d4b84992a254b4582de6 Mon Sep 17 00:00:00 2001 From: xaniasd Date: Sun, 15 Jan 2023 08:58:28 +0100 Subject: [PATCH 09/21] fix: Buggy SQL for postgres source (#3424) * Fix get_table_column_names_and_types for postgres source Signed-off-by: Dimitris Stafylarakis * make linter happy Signed-off-by: Dimitris Stafylarakis Signed-off-by: Dimitris Stafylarakis --- .../contrib/postgres_offline_store/postgres_source.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sdk/python/feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py b/sdk/python/feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py index 8a2e13e5c1c..bc535ed1940 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py +++ b/sdk/python/feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py @@ -111,9 +111,7 @@ def get_table_column_names_and_types( self, config: RepoConfig ) -> Iterable[Tuple[str, str]]: with _get_conn(config.offline_store) as conn, conn.cursor() as cur: - cur.execute( - f"SELECT * FROM ({self.get_table_query_string()}) AS sub LIMIT 0" - ) + cur.execute(f"SELECT * FROM {self.get_table_query_string()} AS sub LIMIT 0") return ( (c.name, pg_type_code_to_pg_type(c.type_code)) for c in cur.description ) From 73930f6b57f923366bf0534941bee1a835ecd7ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Jan 2023 23:58:56 -0800 Subject: [PATCH 10/21] chore: Bump wheel from 0.37.1 to 0.38.1 in /sdk/python/requirements (#3415) Bumps [wheel](https://github.com/pypa/wheel) from 0.37.1 to 0.38.1. - [Release notes](https://github.com/pypa/wheel/releases) - [Changelog](https://github.com/pypa/wheel/blob/main/docs/news.rst) - [Commits](https://github.com/pypa/wheel/compare/0.37.1...0.38.1) --- updated-dependencies: - dependency-name: wheel dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- sdk/python/requirements/py3.10-ci-requirements.txt | 2 +- sdk/python/requirements/py3.8-ci-requirements.txt | 2 +- sdk/python/requirements/py3.9-ci-requirements.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index bc8201026dd..049a9e19bff 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -833,7 +833,7 @@ websockets==10.3 # via uvicorn werkzeug==2.1.2 # via moto -wheel==0.38.4 +wheel==0.38.1 # via pip-tools wrapt==1.14.1 # via diff --git a/sdk/python/requirements/py3.8-ci-requirements.txt b/sdk/python/requirements/py3.8-ci-requirements.txt index 0be4790c8c7..3f10e9b4232 100644 --- a/sdk/python/requirements/py3.8-ci-requirements.txt +++ b/sdk/python/requirements/py3.8-ci-requirements.txt @@ -848,7 +848,7 @@ websockets==10.3 # via uvicorn werkzeug==2.1.2 # via moto -wheel==0.37.1 +wheel==0.38.1 # via pip-tools wrapt==1.14.1 # via diff --git a/sdk/python/requirements/py3.9-ci-requirements.txt b/sdk/python/requirements/py3.9-ci-requirements.txt index 220ddb6ef3a..9d6aa61cc6a 100644 --- a/sdk/python/requirements/py3.9-ci-requirements.txt +++ b/sdk/python/requirements/py3.9-ci-requirements.txt @@ -840,7 +840,7 @@ websockets==10.3 # via uvicorn werkzeug==2.1.2 # via moto -wheel==0.38.4 +wheel==0.38.1 # via pip-tools wrapt==1.14.1 # via From 5a83c6e47b4b42f294e0d89a74de750c895fafca Mon Sep 17 00:00:00 2001 From: Felix Wang Date: Sun, 15 Jan 2023 12:36:59 -0800 Subject: [PATCH 11/21] chore: Force entity inference without modifying `fv.schema` (#3448) * Remove unnecessary wrapper `create_feature_view` Signed-off-by: Felix Wang * Add `infer_entities` option to `driver_feature_view` Signed-off-by: Felix Wang * Force entity inference Signed-off-by: Felix Wang Signed-off-by: Felix Wang --- .../feature_repos/universal/feature_views.py | 3 +- .../registration/test_universal_types.py | 62 +++++++------------ 2 files changed, 24 insertions(+), 41 deletions(-) diff --git a/sdk/python/tests/integration/feature_repos/universal/feature_views.py b/sdk/python/tests/integration/feature_repos/universal/feature_views.py index 4eece134121..5938a0c936e 100644 --- a/sdk/python/tests/integration/feature_repos/universal/feature_views.py +++ b/sdk/python/tests/integration/feature_repos/universal/feature_views.py @@ -26,6 +26,7 @@ def driver_feature_view( data_source: DataSource, name="test_correctness", + infer_entities: bool = False, infer_features: bool = False, dtype: FeastType = Float32, entity_type: FeastType = Int64, @@ -34,7 +35,7 @@ def driver_feature_view( return FeatureView( name=name, entities=[d], - schema=[Field(name=d.join_key, dtype=entity_type)] + schema=([] if infer_entities else [Field(name=d.join_key, dtype=entity_type)]) + ([] if infer_features else [Field(name="value", dtype=dtype)]), ttl=timedelta(days=5), source=data_source, diff --git a/sdk/python/tests/integration/registration/test_universal_types.py b/sdk/python/tests/integration/registration/test_universal_types.py index 1d90eee13eb..7c24589c6f3 100644 --- a/sdk/python/tests/integration/registration/test_universal_types.py +++ b/sdk/python/tests/integration/registration/test_universal_types.py @@ -1,7 +1,7 @@ import logging from dataclasses import dataclass from datetime import datetime, timedelta -from typing import Any, Dict, List, Tuple, Union +from typing import Any, Dict, List, Optional, Tuple, Union import numpy as np import pandas as pd @@ -12,6 +12,7 @@ from feast.types import ( Array, Bool, + FeastType, Float32, Float64, Int32, @@ -42,20 +43,15 @@ def test_entity_inference_types_match(environment, entity_type): destination_name=f"entity_type_{entity_type.name.lower()}", field_mapping={"ts_1": "ts"}, ) - fv = create_feature_view( - f"fv_entity_type_{entity_type.name.lower()}", - feature_dtype="int32", - feature_is_list=False, - has_empty_list=False, + fv = driver_feature_view( data_source=data_source, + name=f"fv_entity_type_{entity_type.name.lower()}", + infer_entities=True, # Forces entity inference by not including a field for the entity. + dtype=_get_feast_type("int32", False), entity_type=entity_type, ) - # TODO(felixwang9817): Refactor this by finding a better way to force type inference. - # Override the schema and entity_columns to force entity inference. entity = driver() - fv.schema = list(filter(lambda x: x.name != entity.join_key, fv.schema)) - fv.entity_columns = [] fs.apply([fv, entity]) entity_type_to_expected_inferred_entity_type = { @@ -88,12 +84,10 @@ def test_feature_get_historical_features_types_match( config, data_source, fv = offline_types_test_fixtures fs = environment.feature_store entity = driver() - fv = create_feature_view( - "get_historical_features_types_match", - config.feature_dtype, - config.feature_is_list, - config.has_empty_list, - data_source, + fv = driver_feature_view( + data_source=data_source, + name="get_historical_features_types_match", + dtype=_get_feast_type(config.feature_dtype, config.feature_is_list), ) fs.apply([fv, entity]) @@ -139,12 +133,10 @@ def test_feature_get_online_features_types_match( ): config, data_source, fv = online_types_test_fixtures entity = driver() - fv = create_feature_view( - "get_online_features_types_match", - config.feature_dtype, - config.feature_is_list, - config.has_empty_list, - data_source, + fv = driver_feature_view( + data_source=data_source, + name="get_online_features_types_match", + dtype=_get_feast_type(config.feature_dtype, config.feature_is_list), ) fs = environment.feature_store features = [fv.name + ":value"] @@ -188,14 +180,8 @@ def test_feature_get_online_features_types_match( assert isinstance(feature, expected_dtype) -def create_feature_view( - name, - feature_dtype, - feature_is_list, - has_empty_list, - data_source, - entity_type=Int64, -): +def _get_feast_type(feature_dtype: str, feature_is_list: bool) -> FeastType: + dtype: Optional[FeastType] = None if feature_is_list is True: if feature_dtype == "int32": dtype = Array(Int32) @@ -218,10 +204,8 @@ def create_feature_view( dtype = Bool elif feature_dtype == "datetime": dtype = UnixTimestamp - - return driver_feature_view( - data_source, name=name, dtype=dtype, entity_type=entity_type - ) + assert dtype + return dtype def assert_expected_historical_feature_types( @@ -388,12 +372,10 @@ def get_fixtures(request, environment): destination_name=destination_name, field_mapping={"ts_1": "ts"}, ) - fv = create_feature_view( - destination_name, - config.feature_dtype, - config.feature_is_list, - config.has_empty_list, - data_source, + fv = driver_feature_view( + data_source=data_source, + name=destination_name, + dtype=_get_feast_type(config.feature_dtype, config.feature_is_list), ) return config, data_source, fv From 1475373b677c8b6b6364c65cc1ee82e21e7343cf Mon Sep 17 00:00:00 2001 From: Marc-Antoine Date: Sun, 15 Jan 2023 20:15:56 -0500 Subject: [PATCH 12/21] chore: Feature view as property instead to remove duplicate source of truth (#3403) * Feature view as property instead or duplicate source or truth Signed-off-by: gbmarc1 * fix: test with new schema as property Signed-off-by: gbmarc1 * lint: fix lint error Signed-off-by: gbmarc1 Signed-off-by: gbmarc1 --- sdk/python/feast/feature_view.py | 11 +++++++---- .../unit/infra/test_inference_unit_tests.py | 18 +++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/sdk/python/feast/feature_view.py b/sdk/python/feast/feature_view.py index 344171745be..53b2099432f 100644 --- a/sdk/python/feast/feature_view.py +++ b/sdk/python/feast/feature_view.py @@ -85,7 +85,6 @@ class FeatureView(BaseFeatureView): ttl: Optional[timedelta] batch_source: DataSource stream_source: Optional[DataSource] - schema: List[Field] entity_columns: List[Field] features: List[Field] online: bool @@ -135,7 +134,7 @@ def __init__( self.name = name self.entities = [e.name for e in entities] if entities else [DUMMY_ENTITY_NAME] self.ttl = ttl - self.schema = schema or [] + schema = schema or [] # Initialize data sources. if ( @@ -169,7 +168,7 @@ def __init__( "A feature view should not have entities that share a join key." ) - for field in self.schema: + for field in schema: if field.name in join_keys: self.entity_columns.append(field) @@ -190,7 +189,7 @@ def __init__( features.append(field) # TODO(felixwang9817): Add more robust validation of features. - cols = [field.name for field in self.schema] + cols = [field.name for field in schema] for col in cols: if ( self.batch_source.field_mapping is not None @@ -258,6 +257,10 @@ def join_keys(self) -> List[str]: """Returns a list of all the join keys.""" return [entity.name for entity in self.entity_columns] + @property + def schema(self) -> List[Field]: + return self.entity_columns + self.features + def ensure_valid(self): """ Validates the state of this feature view locally. diff --git a/sdk/python/tests/unit/infra/test_inference_unit_tests.py b/sdk/python/tests/unit/infra/test_inference_unit_tests.py index b4a0da7e47a..46a131e1b57 100644 --- a/sdk/python/tests/unit/infra/test_inference_unit_tests.py +++ b/sdk/python/tests/unit/infra/test_inference_unit_tests.py @@ -244,8 +244,8 @@ def test_feature_view_inference_on_entity_value_types(): ), ) - # The schema is only used as a parameter, as is therefore not updated during inference. - assert len(feature_view_1.schema) == 1 + # The schema must be entity and features + assert len(feature_view_1.schema) == 2 # Since there is already a feature specified, additional features are not inferred. assert len(feature_view_1.features) == 1 @@ -314,15 +314,15 @@ def test_feature_view_inference_on_entity_columns(simple_dataset_1): ), ) - # The schema is only used as a parameter, as is therefore not updated during inference. - assert len(feature_view_1.schema) == 1 - # Since there is already a feature specified, additional features are not inferred. assert len(feature_view_1.features) == 1 # The single entity column is inferred correctly. assert len(feature_view_1.entity_columns) == 1 + # The schema is a property concatenating features and entity_columns + assert len(feature_view_1.schema) == 2 + def test_feature_view_inference_on_feature_columns(simple_dataset_1): """ @@ -349,8 +349,8 @@ def test_feature_view_inference_on_feature_columns(simple_dataset_1): ), ) - # The schema is only used as a parameter, as is therefore not updated during inference. - assert len(feature_view_1.schema) == 1 + # The schema is a property concatenating features and entity_columns + assert len(feature_view_1.schema) == 4 # All three feature columns are inferred correctly. assert len(feature_view_1.features) == 3 @@ -407,9 +407,9 @@ def test_update_feature_services_with_inferred_features(simple_dataset_1): } ) - assert len(feature_view_1.schema) == 0 + assert len(feature_view_1.schema) == 4 assert len(feature_view_1.features) == 3 - assert len(feature_view_2.schema) == 0 + assert len(feature_view_2.schema) == 4 assert len(feature_view_2.features) == 3 assert len(feature_service.feature_view_projections[0].features) == 1 assert len(feature_service.feature_view_projections[1].features) == 3 From fbbb2935fd7c722dbe85f19a8ddf788765116360 Mon Sep 17 00:00:00 2001 From: hao-affirm <104030690+hao-affirm@users.noreply.github.com> Date: Wed, 18 Jan 2023 09:25:40 -0800 Subject: [PATCH 13/21] feat: Add data source search (#3449) add data source search Signed-off-by: hao-affirm <104030690+hao-affirm@users.noreply.github.com> Signed-off-by: hao-affirm <104030690+hao-affirm@users.noreply.github.com> --- ui/src/pages/data-sources/Index.tsx | 52 ++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/ui/src/pages/data-sources/Index.tsx b/ui/src/pages/data-sources/Index.tsx index 81e3a967022..bbccea04ace 100644 --- a/ui/src/pages/data-sources/Index.tsx +++ b/ui/src/pages/data-sources/Index.tsx @@ -1,10 +1,10 @@ import React, { useContext } from "react"; import { - EuiPageHeader, - EuiPageContent, - EuiPageContentBody, - EuiLoadingSpinner, + EuiPageHeader, + EuiPageContent, + EuiPageContentBody, + EuiLoadingSpinner, EuiFlexGroup, EuiFlexItem, EuiTitle, EuiFieldSearch, EuiSpacer, } from "@elastic/eui"; import useLoadRegistry from "../../queries/useLoadRegistry"; @@ -13,6 +13,8 @@ import { useDocumentTitle } from "../../hooks/useDocumentTitle"; import RegistryPathContext from "../../contexts/RegistryPathContext"; import DataSourceIndexEmptyState from "./DataSourceIndexEmptyState"; import { DataSourceIcon32 } from "../../graphics/DataSourceIcon"; +import { useSearchQuery} from "../../hooks/useSearchInputWithTags"; +import { feast } from "../../protos"; const useLoadDatasources = () => { const registryUrl = useContext(RegistryPathContext); @@ -29,11 +31,32 @@ const useLoadDatasources = () => { }; }; +const filterFn = (data: feast.core.IDataSource[], searchTokens: string[]) => { + let filteredByTags = data; + + if (searchTokens.length) { + return filteredByTags.filter((entry) => { + return searchTokens.find((token) => { + return token.length >= 3 && entry.name && entry.name.indexOf(token) >= 0; + }); + }); + } + + return filteredByTags; +}; + const Index = () => { const { isLoading, isSuccess, isError, data } = useLoadDatasources(); useDocumentTitle(`Data Sources | Feast`); + const { searchString, searchTokens, setSearchString } = useSearchQuery(); + + const filterResult = data + ? filterFn(data, searchTokens) + : data; + + return ( { )} {isError &&

We encountered an error while loading.

} {isSuccess && !data && } - {isSuccess && data && } + {isSuccess && data && data.length > 0 && filterResult && ( + + + + +

Search

+
+ { + setSearchString(e.target.value); + }} + /> +
+
+ + +
+ )}
From 2f7c4ede8f9e66703714261f1152f78526d4bf43 Mon Sep 17 00:00:00 2001 From: Achal Shah Date: Wed, 18 Jan 2023 23:04:35 +0530 Subject: [PATCH 14/21] fix: Update registry.refresh to have a default arg (#3450) Signed-off-by: Achal Shah Signed-off-by: Achal Shah --- sdk/python/feast/feature_store.py | 2 +- sdk/python/feast/infra/registry/base_registry.py | 2 +- sdk/python/feast/infra/registry/registry.py | 2 +- sdk/python/feast/infra/registry/sql.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index d3656e13554..afac34b6657 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -738,7 +738,7 @@ def plan( # Compute the desired difference between the current infra, as stored in the registry, # and the desired infra. - self._registry.refresh(self.project) + self._registry.refresh(project=self.project) current_infra_proto = self._registry.proto().infra.__deepcopy__() desired_registry_proto = desired_repo_contents.to_registry_proto() new_infra = self._provider.plan_infra(self.config, desired_registry_proto) diff --git a/sdk/python/feast/infra/registry/base_registry.py b/sdk/python/feast/infra/registry/base_registry.py index fc65932ea16..14b098bb123 100644 --- a/sdk/python/feast/infra/registry/base_registry.py +++ b/sdk/python/feast/infra/registry/base_registry.py @@ -569,7 +569,7 @@ def commit(self): """Commits the state of the registry cache to the remote registry store.""" @abstractmethod - def refresh(self, project: Optional[str]): + def refresh(self, project: Optional[str] = None): """Refreshes the state of the registry cache by fetching the registry state from the remote registry store.""" @staticmethod diff --git a/sdk/python/feast/infra/registry/registry.py b/sdk/python/feast/infra/registry/registry.py index e2e98460595..3aee7e12f6d 100644 --- a/sdk/python/feast/infra/registry/registry.py +++ b/sdk/python/feast/infra/registry/registry.py @@ -776,7 +776,7 @@ def commit(self): if self.cached_registry_proto: self._registry_store.update_registry_proto(self.cached_registry_proto) - def refresh(self, project: Optional[str]): + def refresh(self, project: Optional[str] = None): """Refreshes the state of the registry cache by fetching the registry state from the remote registry store.""" self._get_registry_proto(project=project, allow_cache=False) diff --git a/sdk/python/feast/infra/registry/sql.py b/sdk/python/feast/infra/registry/sql.py index fd8b47cd81a..2326651b1c0 100644 --- a/sdk/python/feast/infra/registry/sql.py +++ b/sdk/python/feast/infra/registry/sql.py @@ -209,7 +209,7 @@ def teardown(self): stmt = delete(t) conn.execute(stmt) - def refresh(self, project: Optional[str]): + def refresh(self, project: Optional[str] = None): self.cached_registry_proto = self.proto() self.cached_registry_proto_created = datetime.utcnow() From 1c7c491378c9a5dc892ec58f2d81d4e95b800580 Mon Sep 17 00:00:00 2001 From: Ryan Beauchamp Date: Fri, 20 Jan 2023 13:58:10 -0500 Subject: [PATCH 15/21] fix: Add check for bool type in addition to sample (#3452) fix: add check for bool type in addition to sample Signed-off-by: Ryan Beauchamp Signed-off-by: Ryan Beauchamp --- sdk/python/feast/type_map.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/python/feast/type_map.py b/sdk/python/feast/type_map.py index a91a6c141d4..78b625aa89c 100644 --- a/sdk/python/feast/type_map.py +++ b/sdk/python/feast/type_map.py @@ -402,7 +402,7 @@ def _python_value_to_proto_value( valid_scalar_types, ) = PYTHON_SCALAR_VALUE_TYPE_TO_PROTO_VALUE[feast_value_type] if valid_scalar_types: - if sample == 0 or sample == 0.0: + if (sample == 0 or sample == 0.0) and feast_value_type != ValueType.BOOL: # Numpy convert 0 to int. However, in the feature view definition, the type of column may be a float. # So, if value is 0, type validation must pass if scalar_types are either int or float. assert type(sample) in [np.int64, int, np.float64, float] From 08ffa8dff61acd7047d205083b78efa98e2dccb8 Mon Sep 17 00:00:00 2001 From: Felix Wang Date: Fri, 20 Jan 2023 13:08:08 -0800 Subject: [PATCH 16/21] fix: Ensure no duplicates in `fv.schema` (#3460) * Ensure no duplicates in `fv.schema` Signed-off-by: Felix Wang * Fix `Field.__eq__` to check all attributes Signed-off-by: Felix Wang Signed-off-by: Felix Wang --- sdk/python/feast/feature_view.py | 2 +- sdk/python/feast/field.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sdk/python/feast/feature_view.py b/sdk/python/feast/feature_view.py index 53b2099432f..d91ee9080d5 100644 --- a/sdk/python/feast/feature_view.py +++ b/sdk/python/feast/feature_view.py @@ -259,7 +259,7 @@ def join_keys(self) -> List[str]: @property def schema(self) -> List[Field]: - return self.entity_columns + self.features + return list(set(self.entity_columns + self.features)) def ensure_valid(self): """ diff --git a/sdk/python/feast/field.py b/sdk/python/feast/field.py index d3bdf563923..245bb24f52b 100644 --- a/sdk/python/feast/field.py +++ b/sdk/python/feast/field.py @@ -30,11 +30,13 @@ class Field: Attributes: name: The name of the field. dtype: The type of the field, such as string or float. - tags (optional): User-defined metadata in dictionary form. + description: A human-readable description. + tags: User-defined metadata in dictionary form. """ name: str dtype: FeastType + description: str tags: Dict[str, str] def __init__( @@ -51,6 +53,7 @@ def __init__( Args: name: The name of the field. dtype: The type of the field, such as string or float. + description (optional): A human-readable description. tags (optional): User-defined metadata in dictionary form. """ self.name = name @@ -65,6 +68,7 @@ def __eq__(self, other): if ( self.name != other.name or self.dtype != other.dtype + or self.description != other.description or self.tags != other.tags ): return False From f873240ae6decf9aa638f4502baa3a835c383f8b Mon Sep 17 00:00:00 2001 From: Danny Chiao Date: Mon, 23 Jan 2023 13:20:40 -0500 Subject: [PATCH 17/21] chore: Fix release process by upgrading to node==18 because of Semantic Release requirements Signed-off-by: Danny Chiao --- .github/workflows/release.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index db62766a1c7..46d10adb0f2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,7 +31,8 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v2 with: - node-version: '16' + node-version: '18.x' + registry-url: 'https://registry.npmjs.org' - name: Release (Dry Run) id: get_versions run: | @@ -56,7 +57,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: '17.x' + node-version: '18.x' registry-url: 'https://registry.npmjs.org' - name: Bump file versions run: python ./infra/scripts/release/bump_file_versions.py ${CURRENT_VERSION} ${NEXT_VERSION} @@ -98,7 +99,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: '17.x' + node-version: '18.x' registry-url: 'https://registry.npmjs.org' - name: Bump file versions (temporarily for Web UI publish) run: python ./infra/scripts/release/bump_file_versions.py ${CURRENT_VERSION} ${NEXT_VERSION} @@ -134,7 +135,8 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v2 with: - node-version: '16' + node-version: '18.x' + registry-url: 'https://registry.npmjs.org' - name: Set up Homebrew id: set-up-homebrew uses: Homebrew/actions/setup-homebrew@master From 1ef51376a67347c31ee2e7a037be844526ecc48d Mon Sep 17 00:00:00 2001 From: hao-affirm <104030690+hao-affirm@users.noreply.github.com> Date: Wed, 25 Jan 2023 23:55:04 -0800 Subject: [PATCH 18/21] fix: Stream feature view UI shows transformation issue (#3464) fix stream feature view UI shows transformation issue Signed-off-by: hao-affirm <104030690+hao-affirm@users.noreply.github.com> Signed-off-by: hao-affirm <104030690+hao-affirm@users.noreply.github.com> --- ui/src/pages/feature-views/StreamFeatureViewOverviewTab.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/pages/feature-views/StreamFeatureViewOverviewTab.tsx b/ui/src/pages/feature-views/StreamFeatureViewOverviewTab.tsx index b6cf12d3725..3584cccdd82 100644 --- a/ui/src/pages/feature-views/StreamFeatureViewOverviewTab.tsx +++ b/ui/src/pages/feature-views/StreamFeatureViewOverviewTab.tsx @@ -56,7 +56,7 @@ const StreamFeatureViewOverviewTab = ({ - {data.spec?.userDefinedFunction?.body} + {data.spec?.userDefinedFunction?.bodyText} From dfd5eaec6bab4961a7981e4f6a70b45e4d72bce4 Mon Sep 17 00:00:00 2001 From: hao-affirm <104030690+hao-affirm@users.noreply.github.com> Date: Sat, 28 Jan 2023 17:18:44 -0800 Subject: [PATCH 19/21] fix: Fix delete sfv twice issue (#3466) fix delete sfv twice issue Signed-off-by: hao-affirm <104030690+hao-affirm@users.noreply.github.com> --- sdk/python/feast/feature_store.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index afac34b6657..fdf102f31d5 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -930,7 +930,10 @@ def apply( views_to_delete = [ ob for ob in objects_to_delete - if isinstance(ob, FeatureView) or isinstance(ob, BatchFeatureView) + if ( + (isinstance(ob, FeatureView) or isinstance(ob, BatchFeatureView)) + and not isinstance(ob, StreamFeatureView) + ) ] request_views_to_delete = [ ob for ob in objects_to_delete if isinstance(ob, RequestFeatureView) From 75829f0fe814bb689ddc69cdd6dc7e6b698af0d9 Mon Sep 17 00:00:00 2001 From: Danny Chiao Date: Mon, 30 Jan 2023 17:44:59 -0500 Subject: [PATCH 20/21] ci: Fix setuptools issue with wildcard (#3471) * ci: Fix setuptools issue with wildcard Signed-off-by: Danny Chiao * fix lint Signed-off-by: Danny Chiao * pin mypy Signed-off-by: Danny Chiao * fix httpx test Signed-off-by: Danny Chiao * pin mypy Signed-off-by: Danny Chiao * fix lint issue Signed-off-by: Danny Chiao * final fix Signed-off-by: Danny Chiao --------- Signed-off-by: Danny Chiao --- Makefile | 2 +- sdk/python/feast/feature_store.py | 2 +- .../spark/spark_materialization_engine.py | 7 +- sdk/python/feast/ui_server.py | 2 +- .../requirements/py3.10-ci-requirements.txt | 155 +++++---- .../requirements/py3.10-requirements.txt | 106 +++--- .../requirements/py3.8-ci-requirements.txt | 315 ++++++++++-------- .../requirements/py3.8-requirements.txt | 110 +++--- .../requirements/py3.9-ci-requirements.txt | 159 +++++---- .../requirements/py3.9-requirements.txt | 103 +++--- setup.py | 29 +- 11 files changed, 546 insertions(+), 444 deletions(-) diff --git a/Makefile b/Makefile index 8d9a1a8d3b3..8b7eb39c604 100644 --- a/Makefile +++ b/Makefile @@ -289,7 +289,7 @@ format-python: cd ${ROOT_DIR}/sdk/python; python -m isort feast/ tests/ # Format - cd ${ROOT_DIR}/sdk/python; python -m black --target-version py37 feast tests + cd ${ROOT_DIR}/sdk/python; python -m black --target-version py38 feast tests lint-python: cd ${ROOT_DIR}/sdk/python; python -m mypy diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index fdf102f31d5..43787701bf6 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -2327,7 +2327,7 @@ def serve_ui( port: int, get_registry_dump: Callable, registry_ttl_sec: int, - root_path: Optional[str] = "", + root_path: str = "", ) -> None: """Start the UI server locally""" if flags_helper.is_test(): diff --git a/sdk/python/feast/infra/materialization/contrib/spark/spark_materialization_engine.py b/sdk/python/feast/infra/materialization/contrib/spark/spark_materialization_engine.py index 00f2c950a28..ed4388aeb31 100644 --- a/sdk/python/feast/infra/materialization/contrib/spark/spark_materialization_engine.py +++ b/sdk/python/feast/infra/materialization/contrib/spark/spark_materialization_engine.py @@ -1,6 +1,6 @@ from dataclasses import dataclass from datetime import datetime -from typing import Callable, List, Literal, Optional, Sequence, Union +from typing import Callable, List, Literal, Optional, Sequence, Union, cast import dill import pandas as pd @@ -154,7 +154,8 @@ def _materialize_one( job_id = f"{feature_view.name}-{start_date}-{end_date}" try: - offline_job: SparkRetrievalJob = ( + offline_job = cast( + SparkRetrievalJob, self.offline_store.pull_latest_from_table_or_query( config=self.repo_config, data_source=feature_view.batch_source, @@ -164,7 +165,7 @@ def _materialize_one( created_timestamp_column=created_timestamp_column, start_date=start_date, end_date=end_date, - ) + ), ) spark_serialized_artifacts = _SparkSerializedArtifacts.serialize( diff --git a/sdk/python/feast/ui_server.py b/sdk/python/feast/ui_server.py index d69c1332896..94860bdf739 100644 --- a/sdk/python/feast/ui_server.py +++ b/sdk/python/feast/ui_server.py @@ -101,7 +101,7 @@ def start_server( get_registry_dump: Callable, project_id: str, registry_ttl_sec: int, - root_path: Optional[str] = "", + root_path: str = "", ): app = get_app( store, diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 049a9e19bff..c001cbae61b 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -24,10 +24,11 @@ aiosignal==1.3.1 # via aiohttp alabaster==0.7.13 # via sphinx -altair==4.2.0 +altair==4.2.2 # via great-expectations -anyio==3.6.1 +anyio==3.6.2 # via + # httpcore # starlette # watchfiles appdirs==1.4.4 @@ -46,7 +47,7 @@ async-timeout==4.0.2 # via # aiohttp # redis -attrs==22.1.0 +attrs==22.2.0 # via # aiohttp # bowler @@ -96,12 +97,14 @@ bytewax==0.13.1 # via feast (setup.py) cachecontrol==0.12.11 # via firebase-admin -cachetools==5.2.0 +cachetools==5.3.0 # via google-auth cassandra-driver==3.25.0 # via feast (setup.py) certifi==2022.12.7 # via + # httpcore + # httpx # kubernetes # minio # msrest @@ -123,19 +126,20 @@ click==8.1.3 # via # black # bowler + # dask # feast (setup.py) # geomet # great-expectations # moreorless # pip-tools # uvicorn -cloudpickle==2.2.0 +cloudpickle==2.2.1 # via dask -colorama==0.4.5 +colorama==0.4.6 # via # feast (setup.py) # great-expectations -coverage[toml]==7.0.5 +coverage[toml]==7.1.0 # via pytest-cov cryptography==35.0.0 # via @@ -149,7 +153,9 @@ cryptography==35.0.0 # pyjwt # pyopenssl # snowflake-connector-python -dask==2022.1.1 + # types-pyopenssl + # types-redis +dask==2023.1.1 # via feast (setup.py) dataclasses==0.6 # via great-expectations @@ -184,9 +190,9 @@ execnet==1.9.0 # via pytest-xdist executing==1.2.0 # via stack-data -fastapi==0.85.0 +fastapi==0.89.1 # via feast (setup.py) -fastavro==1.6.1 +fastavro==1.7.1 # via # feast (setup.py) # pandavro @@ -228,7 +234,7 @@ google-api-core[grpc]==2.11.0 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-api-python-client==2.72.0 +google-api-python-client==2.74.0 # via firebase-admin google-auth==2.16.0 # via @@ -244,9 +250,9 @@ google-auth-httplib2==0.1.0 # via google-api-python-client google-auth-oauthlib==0.8.0 # via gcsfs -google-cloud-bigquery[pandas]==3.4.1 +google-cloud-bigquery[pandas]==3.4.2 # via feast (setup.py) -google-cloud-bigquery-storage==2.18.0 +google-cloud-bigquery-storage==2.18.1 # via feast (setup.py) google-cloud-bigtable==2.15.0 # via feast (setup.py) @@ -257,9 +263,9 @@ google-cloud-core==2.3.2 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-cloud-datastore==2.12.0 +google-cloud-datastore==2.13.2 # via feast (setup.py) -google-cloud-firestore==2.9.0 +google-cloud-firestore==2.9.1 # via firebase-admin google-cloud-storage==2.7.0 # via @@ -268,11 +274,11 @@ google-cloud-storage==2.7.0 # gcsfs google-crc32c==1.5.0 # via google-resumable-media -google-resumable-media==2.4.0 +google-resumable-media==2.4.1 # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.56.4 +googleapis-common-protos[grpc]==1.58.0 # via # feast (setup.py) # google-api-core @@ -280,7 +286,7 @@ googleapis-common-protos[grpc]==1.56.4 # grpcio-status great-expectations==0.14.13 # via feast (setup.py) -greenlet==2.0.1 +greenlet==2.0.2 # via sqlalchemy grpc-google-iam-v1==0.12.6 # via google-cloud-bigtable @@ -295,7 +301,7 @@ grpcio==1.51.1 # grpcio-status # grpcio-testing # grpcio-tools -grpcio-reflection==1.49.1 +grpcio-reflection==1.51.1 # via feast (setup.py) grpcio-status==1.51.1 # via google-api-core @@ -304,23 +310,30 @@ grpcio-testing==1.51.1 grpcio-tools==1.51.1 # via feast (setup.py) h11==0.14.0 - # via uvicorn + # via + # httpcore + # uvicorn happybase==1.2.0 # via feast (setup.py) hiredis==2.1.1 # via feast (setup.py) +httpcore==0.16.3 + # via httpx httplib2==0.21.0 # via # google-api-python-client # google-auth-httplib2 httptools==0.5.0 # via uvicorn -identify==2.5.13 +httpx==0.23.3 + # via feast (setup.py) +identify==2.5.17 # via pre-commit idna==3.4 # via # anyio # requests + # rfc3986 # snowflake-connector-python # yarl imagesize==1.4.1 @@ -329,11 +342,11 @@ importlib-metadata==6.0.0 # via great-expectations iniconfig==2.0.0 # via pytest -ipython==8.8.0 +ipython==8.9.0 # via great-expectations isodate==0.6.1 # via msrest -isort==5.11.4 +isort==5.12.0 # via feast (setup.py) jedi==0.18.2 # via ipython @@ -352,19 +365,19 @@ jsonpatch==1.32 # via great-expectations jsonpointer==2.3 # via jsonpatch -jsonschema==4.16.0 +jsonschema==4.17.3 # via # altair # feast (setup.py) # great-expectations # nbformat -jupyter-core==5.1.3 +jupyter-core==5.2.0 # via nbformat kubernetes==20.13.0 # via feast (setup.py) locket==1.0.0 # via partd -markupsafe==2.1.1 +markupsafe==2.1.2 # via # jinja2 # moto @@ -404,7 +417,7 @@ multidict==6.0.4 # yarl multiprocess==0.70.14 # via bytewax -mypy==0.981 +mypy==0.982 # via # feast (setup.py) # sqlalchemy @@ -420,7 +433,7 @@ nbformat==5.7.3 # via great-expectations nodeenv==1.7.0 # via pre-commit -numpy==1.23.3 +numpy==1.24.1 # via # altair # db-dtypes @@ -434,7 +447,7 @@ oauthlib==3.2.2 # via requests-oauthlib oscrypto==1.3.0 # via snowflake-connector-python -packaging==21.3 +packaging==23.0 # via # build # dask @@ -446,7 +459,7 @@ packaging==21.3 # pytest # redis # sphinx -pandas==1.4.4 +pandas==1.5.3 # via # altair # db-dtypes @@ -461,7 +474,7 @@ parso==0.8.3 # via jedi partd==1.3.0 # via dask -pathspec==0.10.3 +pathspec==0.11.0 # via black pbr==5.11.1 # via mock @@ -480,13 +493,13 @@ pluggy==1.0.0 # via pytest ply==3.11 # via thriftpy2 -portalocker==2.6.0 +portalocker==2.7.0 # via msal-extensions -pre-commit==2.21.0 +pre-commit==3.0.2 # via feast (setup.py) prompt-toolkit==3.0.36 # via ipython -proto-plus==1.22.1 +proto-plus==1.22.2 # via # feast (setup.py) # google-cloud-bigquery @@ -494,7 +507,7 @@ proto-plus==1.22.1 # google-cloud-bigtable # google-cloud-datastore # google-cloud-firestore -protobuf==4.21.7 +protobuf==4.21.12 # via # feast (setup.py) # google-api-core @@ -543,15 +556,15 @@ pycodestyle==2.10.0 # via flake8 pycparser==2.21 # via cffi -pycryptodomex==3.16.0 +pycryptodomex==3.17 # via snowflake-connector-python -pydantic==1.10.2 +pydantic==1.10.4 # via # fastapi # feast (setup.py) pyflakes==3.0.1 # via flake8 -pygments==2.13.0 +pygments==2.14.0 # via # feast (setup.py) # ipython @@ -575,10 +588,9 @@ pyparsing==2.4.7 # via # great-expectations # httplib2 - # packaging pyproject-hooks==1.0.0 # via build -pyrsistent==0.18.1 +pyrsistent==0.19.3 # via jsonschema pyspark==3.3.1 # via feast (setup.py) @@ -615,9 +627,9 @@ python-dateutil==2.8.2 # kubernetes # moto # pandas -python-dotenv==0.21.0 +python-dotenv==0.21.1 # via uvicorn -pytz==2022.2.1 +pytz==2022.7.1 # via # babel # great-expectations @@ -636,7 +648,7 @@ pyyaml==6.0 # uvicorn redis==4.2.2 # via feast (setup.py) -requests==2.28.1 +requests==2.28.2 # via # adal # adlfs @@ -665,6 +677,8 @@ requests-oauthlib==1.3.1 # msrest responses==0.22.0 # via moto +rfc3986[idna2008]==1.5.0 + # via httpx rsa==4.9 # via google-auth ruamel-yaml==0.17.17 @@ -692,14 +706,17 @@ six==1.16.0 # python-dateutil # thriftpy2 sniffio==1.3.0 - # via anyio + # via + # anyio + # httpcore + # httpx snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==2.9.0 # via feast (setup.py) sphinx==6.1.3 # via feast (setup.py) -sphinxcontrib-applehelp==1.0.3 +sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx @@ -711,15 +728,15 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy[mypy]==1.4.41 +sqlalchemy[mypy]==1.4.46 # via feast (setup.py) -sqlalchemy2-stubs==0.0.2a27 +sqlalchemy2-stubs==0.0.2a32 # via sqlalchemy stack-data==0.6.2 # via ipython -starlette==0.20.4 +starlette==0.22.0 # via fastapi -tabulate==0.8.10 +tabulate==0.9.0 # via feast (setup.py) tenacity==8.1.0 # via feast (setup.py) @@ -750,7 +767,7 @@ tqdm==4.64.1 # via # feast (setup.py) # great-expectations -traitlets==5.8.1 +traitlets==5.9.0 # via # ipython # jupyter-core @@ -760,25 +777,27 @@ trino==0.321.0 # via feast (setup.py) typeguard==2.13.3 # via feast (setup.py) -types-docutils==0.19.1.1 +types-docutils==0.19.1.2 # via types-setuptools -types-protobuf==4.21.0.2 +types-protobuf==3.19.22 # via # feast (setup.py) # mypy-protobuf -types-pymysql==1.0.19.1 +types-pymysql==1.0.19.2 # via feast (setup.py) -types-python-dateutil==2.8.19.5 +types-pyopenssl==23.0.0.2 + # via types-redis +types-python-dateutil==2.8.19.6 # via feast (setup.py) -types-pytz==2022.7.0.0 +types-pytz==2022.7.1.0 # via feast (setup.py) -types-pyyaml==6.0.12.2 +types-pyyaml==6.0.12.3 # via feast (setup.py) -types-redis==4.4.0.0 +types-redis==4.4.0.4 # via feast (setup.py) -types-requests==2.28.11.7 +types-requests==2.28.11.8 # via feast (setup.py) -types-setuptools==65.7.0.1 +types-setuptools==65.7.0.3 # via feast (setup.py) types-tabulate==0.9.0.0 # via feast (setup.py) @@ -786,7 +805,7 @@ types-toml==0.10.8.1 # via responses types-urllib3==1.26.25.4 # via types-requests -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # azure-core # great-expectations @@ -802,7 +821,7 @@ tzlocal==4.2 # trino uritemplate==4.1.1 # via google-api-python-client -urllib3==1.26.12 +urllib3==1.26.14 # via # botocore # docker @@ -813,7 +832,7 @@ urllib3==1.26.12 # requests # responses # snowflake-connector-python -uvicorn[standard]==0.18.3 +uvicorn[standard]==0.20.0 # via feast (setup.py) uvloop==0.17.0 # via uvicorn @@ -821,19 +840,19 @@ virtualenv==20.17.1 # via pre-commit volatile==2.1.0 # via bowler -watchfiles==0.17.0 +watchfiles==0.18.1 # via uvicorn -wcwidth==0.2.5 +wcwidth==0.2.6 # via prompt-toolkit -websocket-client==1.4.2 +websocket-client==1.5.0 # via # docker # kubernetes -websockets==10.3 +websockets==10.4 # via uvicorn werkzeug==2.1.2 # via moto -wheel==0.38.1 +wheel==0.38.4 # via pip-tools wrapt==1.14.1 # via @@ -844,7 +863,7 @@ xmltodict==0.13.0 # via moto yarl==1.8.2 # via aiohttp -zipp==3.11.0 +zipp==3.12.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index c15541fc52f..df32d0ff479 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -4,97 +4,109 @@ # # pip-compile --output-file=sdk/python/requirements/py3.10-requirements.txt # -anyio==3.6.1 +anyio==3.6.2 # via + # httpcore # starlette # watchfiles appdirs==1.4.4 # via fissix -attrs==22.1.0 +attrs==22.2.0 # via # bowler # jsonschema bowler==0.9.0 # via feast (setup.py) -cachetools==5.2.0 +cachetools==5.3.0 # via google-auth certifi==2022.12.7 - # via requests -charset-normalizer==2.1.1 + # via + # httpcore + # httpx + # requests +charset-normalizer==3.0.1 # via requests click==8.1.3 # via # bowler + # dask # feast (setup.py) # moreorless # uvicorn -cloudpickle==2.2.0 +cloudpickle==2.2.1 # via dask -colorama==0.4.5 +colorama==0.4.6 # via feast (setup.py) -dask==2022.1.1 +dask==2023.1.1 # via feast (setup.py) -dill==0.3.5.1 +dill==0.3.6 # via feast (setup.py) -fastapi==0.85.0 +fastapi==0.89.1 # via feast (setup.py) -fastavro==1.6.1 +fastavro==1.7.1 # via # feast (setup.py) # pandavro fissix==21.11.13 # via bowler -fsspec==2022.8.2 +fsspec==2023.1.0 # via dask -google-api-core==2.10.1 +google-api-core==2.11.0 # via feast (setup.py) -google-auth==2.12.0 +google-auth==2.16.0 # via google-api-core -googleapis-common-protos==1.56.4 +googleapis-common-protos==1.58.0 # via # feast (setup.py) # google-api-core -greenlet==2.0.1 +greenlet==2.0.2 # via sqlalchemy -grpcio==1.49.1 +grpcio==1.51.1 # via # feast (setup.py) # grpcio-reflection -grpcio-reflection==1.49.1 +grpcio-reflection==1.51.1 # via feast (setup.py) h11==0.14.0 - # via uvicorn + # via + # httpcore + # uvicorn +httpcore==0.16.3 + # via httpx httptools==0.5.0 # via uvicorn +httpx==0.23.3 + # via feast (setup.py) idna==3.4 # via # anyio # requests + # rfc3986 jinja2==3.1.2 # via feast (setup.py) -jsonschema==4.16.0 +jsonschema==4.17.3 # via feast (setup.py) locket==1.0.0 # via partd -markupsafe==2.1.1 +markupsafe==2.1.2 # via jinja2 mmh3==3.0.0 # via feast (setup.py) moreorless==0.4.0 # via bowler -mypy==0.981 +mypy==0.991 # via sqlalchemy mypy-extensions==0.4.3 # via mypy -numpy==1.23.3 +numpy==1.24.1 # via # feast (setup.py) # pandas # pandavro # pyarrow -packaging==21.3 +packaging==23.0 # via dask -pandas==1.5.0 +pandas==1.5.3 # via # feast (setup.py) # pandavro @@ -102,9 +114,9 @@ pandavro==1.5.2 # via feast (setup.py) partd==1.3.0 # via dask -proto-plus==1.22.1 +proto-plus==1.22.2 # via feast (setup.py) -protobuf==4.21.7 +protobuf==4.21.12 # via # feast (setup.py) # google-api-core @@ -119,46 +131,48 @@ pyasn1==0.4.8 # rsa pyasn1-modules==0.2.8 # via google-auth -pydantic==1.10.2 +pydantic==1.10.4 # via # fastapi # feast (setup.py) -pygments==2.13.0 +pygments==2.14.0 # via feast (setup.py) -pyparsing==3.0.9 - # via packaging -pyrsistent==0.18.1 +pyrsistent==0.19.3 # via jsonschema python-dateutil==2.8.2 # via pandas -python-dotenv==0.21.0 +python-dotenv==0.21.1 # via uvicorn -pytz==2022.2.1 +pytz==2022.7.1 # via pandas pyyaml==6.0 # via # dask # feast (setup.py) # uvicorn -requests==2.28.1 +requests==2.28.2 # via google-api-core +rfc3986[idna2008]==1.5.0 + # via httpx rsa==4.9 # via google-auth six==1.16.0 # via # google-auth - # grpcio # pandavro # python-dateutil sniffio==1.3.0 - # via anyio -sqlalchemy[mypy]==1.4.41 + # via + # anyio + # httpcore + # httpx +sqlalchemy[mypy]==1.4.46 # via feast (setup.py) -sqlalchemy2-stubs==0.0.2a27 +sqlalchemy2-stubs==0.0.2a32 # via sqlalchemy -starlette==0.20.4 +starlette==0.22.0 # via fastapi -tabulate==0.8.10 +tabulate==0.9.0 # via feast (setup.py) tenacity==8.1.0 # via feast (setup.py) @@ -174,20 +188,20 @@ tqdm==4.64.1 # via feast (setup.py) typeguard==2.13.3 # via feast (setup.py) -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # mypy # pydantic # sqlalchemy2-stubs -urllib3==1.26.12 +urllib3==1.26.14 # via requests -uvicorn[standard]==0.18.3 +uvicorn[standard]==0.20.0 # via feast (setup.py) uvloop==0.17.0 # via uvicorn volatile==2.1.0 # via bowler -watchfiles==0.17.0 +watchfiles==0.18.1 # via uvicorn -websockets==10.3 +websockets==10.4 # via uvicorn diff --git a/sdk/python/requirements/py3.8-ci-requirements.txt b/sdk/python/requirements/py3.8-ci-requirements.txt index 3f10e9b4232..ba05d8fe4c2 100644 --- a/sdk/python/requirements/py3.8-ci-requirements.txt +++ b/sdk/python/requirements/py3.8-ci-requirements.txt @@ -20,14 +20,15 @@ aiohttp==3.8.3 # s3fs aioitertools==0.11.0 # via aiobotocore -aiosignal==1.2.0 +aiosignal==1.3.1 # via aiohttp alabaster==0.7.13 # via sphinx -altair==4.2.0 +altair==4.2.2 # via great-expectations -anyio==3.6.1 +anyio==3.6.2 # via + # httpcore # starlette # watchfiles appdirs==1.4.4 @@ -40,13 +41,13 @@ asn1crypto==1.5.1 # snowflake-connector-python assertpy==1.1 # via feast (setup.py) -asttokens==2.0.8 +asttokens==2.2.1 # via stack-data async-timeout==4.0.2 # via # aiohttp # redis -attrs==22.1.0 +attrs==22.2.0 # via # aiohttp # bowler @@ -54,7 +55,7 @@ attrs==22.1.0 # pytest avro==1.10.0 # via feast (setup.py) -azure-core==1.25.1 +azure-core==1.26.2 # via # adlfs # azure-identity @@ -62,11 +63,11 @@ azure-core==1.25.1 # msrest azure-datalake-store==0.0.52 # via adlfs -azure-identity==1.11.0 +azure-identity==1.12.0 # via # adlfs # feast (setup.py) -azure-storage-blob==12.13.1 +azure-storage-blob==12.14.1 # via # adlfs # feast (setup.py) @@ -78,7 +79,7 @@ backports-zoneinfo==0.2.1 # via # pytz-deprecation-shim # tzlocal -black==22.8.0 +black==22.12.0 # via feast (setup.py) boto3==1.20.23 # via @@ -92,7 +93,7 @@ botocore==1.23.24 # s3transfer bowler==0.9.0 # via feast (setup.py) -build==0.8.0 +build==0.10.0 # via # feast (setup.py) # pip-tools @@ -100,12 +101,14 @@ bytewax==0.13.1 # via feast (setup.py) cachecontrol==0.12.11 # via firebase-admin -cachetools==5.2.0 +cachetools==5.3.0 # via google-auth cassandra-driver==3.25.0 # via feast (setup.py) certifi==2022.12.7 # via + # httpcore + # httpx # kubernetes # minio # msrest @@ -127,19 +130,20 @@ click==8.1.3 # via # black # bowler + # dask # feast (setup.py) # geomet # great-expectations # moreorless # pip-tools # uvicorn -cloudpickle==2.2.0 +cloudpickle==2.2.1 # via dask -colorama==0.4.5 +colorama==0.4.6 # via # feast (setup.py) # great-expectations -coverage[toml]==6.5.0 +coverage[toml]==7.1.0 # via pytest-cov cryptography==35.0.0 # via @@ -153,11 +157,13 @@ cryptography==35.0.0 # pyjwt # pyopenssl # snowflake-connector-python -dask==2022.1.1 + # types-pyopenssl + # types-redis +dask==2023.1.1 # via feast (setup.py) dataclasses==0.6 # via great-expectations -db-dtypes==1.0.4 +db-dtypes==1.0.5 # via google-cloud-bigquery decorator==5.1.1 # via @@ -167,14 +173,14 @@ deprecated==1.2.13 # via redis deprecation==2.1.0 # via testcontainers -dill==0.3.5.1 +dill==0.3.6 # via # bytewax # feast (setup.py) # multiprocess distlib==0.3.6 # via virtualenv -docker==6.0.0 +docker==6.0.1 # via # feast (setup.py) # testcontainers @@ -182,19 +188,21 @@ docutils==0.19 # via sphinx entrypoints==0.4 # via altair +exceptiongroup==1.1.0 + # via pytest execnet==1.9.0 # via pytest-xdist -executing==1.1.0 +executing==1.2.0 # via stack-data -fastapi==0.85.0 +fastapi==0.89.1 # via feast (setup.py) -fastavro==1.6.1 +fastavro==1.7.1 # via # feast (setup.py) # pandavro fastjsonschema==2.16.2 # via nbformat -filelock==3.8.0 +filelock==3.9.0 # via # snowflake-connector-python # virtualenv @@ -202,9 +210,9 @@ firebase-admin==5.4.0 # via feast (setup.py) fissix==21.11.13 # via bowler -flake8==5.0.4 +flake8==6.0.0 # via feast (setup.py) -frozenlist==1.3.1 +frozenlist==1.3.3 # via # aiohttp # aiosignal @@ -218,7 +226,7 @@ gcsfs==2022.1.0 # via feast (setup.py) geomet==0.2.1.post1 # via cassandra-driver -google-api-core[grpc]==2.10.1 +google-api-core[grpc]==2.11.0 # via # feast (setup.py) # firebase-admin @@ -230,9 +238,9 @@ google-api-core[grpc]==2.10.1 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-api-python-client==2.63.0 +google-api-python-client==2.74.0 # via firebase-admin -google-auth==2.12.0 +google-auth==2.16.0 # via # gcsfs # google-api-core @@ -244,15 +252,13 @@ google-auth==2.12.0 # kubernetes google-auth-httplib2==0.1.0 # via google-api-python-client -google-auth-oauthlib==0.5.3 +google-auth-oauthlib==0.8.0 # via gcsfs -google-cloud-bigquery[pandas]==3.3.3 +google-cloud-bigquery[pandas]==3.4.2 # via feast (setup.py) -google-cloud-bigquery-storage==2.16.1 - # via - # feast (setup.py) - # google-cloud-bigquery -google-cloud-bigtable==2.12.0 +google-cloud-bigquery-storage==2.18.1 + # via feast (setup.py) +google-cloud-bigtable==2.15.0 # via feast (setup.py) google-cloud-core==2.3.2 # via @@ -261,22 +267,22 @@ google-cloud-core==2.3.2 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-cloud-datastore==2.8.1 +google-cloud-datastore==2.13.2 # via feast (setup.py) -google-cloud-firestore==2.7.0 +google-cloud-firestore==2.9.1 # via firebase-admin -google-cloud-storage==2.5.0 +google-cloud-storage==2.7.0 # via # feast (setup.py) # firebase-admin # gcsfs google-crc32c==1.5.0 # via google-resumable-media -google-resumable-media==2.4.0 +google-resumable-media==2.4.1 # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.56.4 +googleapis-common-protos[grpc]==1.58.0 # via # feast (setup.py) # google-api-core @@ -284,11 +290,11 @@ googleapis-common-protos[grpc]==1.56.4 # grpcio-status great-expectations==0.14.13 # via feast (setup.py) -greenlet==2.0.1 +greenlet==2.0.2 # via sqlalchemy -grpc-google-iam-v1==0.12.4 +grpc-google-iam-v1==0.12.6 # via google-cloud-bigtable -grpcio==1.49.1 +grpcio==1.51.1 # via # feast (setup.py) # google-api-core @@ -299,51 +305,58 @@ grpcio==1.49.1 # grpcio-status # grpcio-testing # grpcio-tools -grpcio-reflection==1.49.1 +grpcio-reflection==1.51.1 # via feast (setup.py) -grpcio-status==1.49.1 +grpcio-status==1.51.1 # via google-api-core -grpcio-testing==1.49.1 +grpcio-testing==1.51.1 # via feast (setup.py) -grpcio-tools==1.49.1 +grpcio-tools==1.51.1 # via feast (setup.py) h11==0.14.0 - # via uvicorn + # via + # httpcore + # uvicorn happybase==1.2.0 # via feast (setup.py) -hiredis==2.0.0 +hiredis==2.1.1 # via feast (setup.py) -httplib2==0.20.4 +httpcore==0.16.3 + # via httpx +httplib2==0.21.0 # via # google-api-python-client # google-auth-httplib2 httptools==0.5.0 # via uvicorn -identify==2.5.5 +httpx==0.23.3 + # via feast (setup.py) +identify==2.5.17 # via pre-commit idna==3.4 # via # anyio # requests + # rfc3986 # snowflake-connector-python # yarl imagesize==1.4.1 # via sphinx -importlib-metadata==4.12.0 +importlib-metadata==6.0.0 # via # great-expectations # sphinx -importlib-resources==5.9.0 +importlib-resources==5.10.2 # via jsonschema -iniconfig==1.1.1 +iniconfig==2.0.0 # via pytest -ipython==8.5.0 +ipython==8.9.0 # via great-expectations isodate==0.6.1 # via msrest -isort==5.10.1 +isort==5.12.0 # via feast (setup.py) -jedi==0.18.1 +jedi==0.18.2 # via ipython jinja2==3.0.3 # via @@ -360,19 +373,19 @@ jsonpatch==1.32 # via great-expectations jsonpointer==2.3 # via jsonpatch -jsonschema==4.16.0 +jsonschema==4.17.3 # via # altair # feast (setup.py) # great-expectations # nbformat -jupyter-core==4.11.1 +jupyter-core==5.2.0 # via nbformat kubernetes==20.13.0 # via feast (setup.py) locket==1.0.0 # via partd -markupsafe==2.1.1 +markupsafe==2.1.2 # via # jinja2 # moto @@ -392,7 +405,7 @@ moreorless==0.4.0 # via bowler moto==3.1.18 # via feast (setup.py) -msal==1.19.0 +msal==1.20.0 # via # azure-identity # msal-extensions @@ -406,13 +419,13 @@ msrest==0.7.1 # msrestazure msrestazure==0.6.4 # via adlfs -multidict==6.0.2 +multidict==6.0.4 # via # aiohttp # yarl -multiprocess==0.70.13 +multiprocess==0.70.14 # via bytewax -mypy==0.981 +mypy==0.982 # via # feast (setup.py) # sqlalchemy @@ -424,11 +437,11 @@ mypy-protobuf==3.1 # via feast (setup.py) mysqlclient==2.1.1 # via feast (setup.py) -nbformat==5.6.1 +nbformat==5.7.3 # via great-expectations nodeenv==1.7.0 # via pre-commit -numpy==1.23.3 +numpy==1.24.1 # via # altair # db-dtypes @@ -438,11 +451,11 @@ numpy==1.23.3 # pandavro # pyarrow # scipy -oauthlib==3.2.1 +oauthlib==3.2.2 # via requests-oauthlib oscrypto==1.3.0 # via snowflake-connector-python -packaging==21.3 +packaging==23.0 # via # build # dask @@ -454,7 +467,7 @@ packaging==21.3 # pytest # redis # sphinx -pandas==1.4.4 +pandas==1.5.3 # via # altair # db-dtypes @@ -469,35 +482,34 @@ parso==0.8.3 # via jedi partd==1.3.0 # via dask -pathspec==0.10.1 +pathspec==0.11.0 # via black -pbr==5.10.0 +pbr==5.11.1 # via mock -pep517==0.13.0 - # via build pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython -pip-tools==6.8.0 +pip-tools==6.12.1 # via feast (setup.py) pkgutil-resolve-name==1.3.10 # via jsonschema -platformdirs==2.5.2 +platformdirs==2.6.2 # via # black + # jupyter-core # virtualenv pluggy==1.0.0 # via pytest ply==3.11 # via thriftpy2 -portalocker==2.5.1 +portalocker==2.7.0 # via msal-extensions -pre-commit==2.20.0 +pre-commit==3.0.2 # via feast (setup.py) -prompt-toolkit==3.0.31 +prompt-toolkit==3.0.36 # via ipython -proto-plus==1.22.1 +proto-plus==1.22.2 # via # feast (setup.py) # google-cloud-bigquery @@ -505,7 +517,7 @@ proto-plus==1.22.1 # google-cloud-bigtable # google-cloud-datastore # google-cloud-firestore -protobuf==4.21.7 +protobuf==4.21.12 # via # feast (setup.py) # google-api-core @@ -515,6 +527,7 @@ protobuf==4.21.7 # google-cloud-datastore # google-cloud-firestore # googleapis-common-protos + # grpc-google-iam-v1 # grpcio-reflection # grpcio-status # grpcio-testing @@ -523,18 +536,15 @@ protobuf==4.21.7 # proto-plus psutil==5.9.0 # via feast (setup.py) -psycopg2-binary==2.9.3 +psycopg2-binary==2.9.5 # via feast (setup.py) ptyprocess==0.7.0 # via pexpect pure-eval==0.2.2 # via stack-data py==1.11.0 - # via - # feast (setup.py) - # pytest - # pytest-forked -py-cpuinfo==8.0.0 + # via feast (setup.py) +py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.5 # via pyspark @@ -552,33 +562,33 @@ pyasn1-modules==0.2.8 # via google-auth pybindgen==0.22.1 # via feast (setup.py) -pycodestyle==2.9.1 +pycodestyle==2.10.0 # via flake8 pycparser==2.21 # via cffi -pycryptodomex==3.15.0 +pycryptodomex==3.17 # via snowflake-connector-python -pydantic==1.10.2 +pydantic==1.10.4 # via # fastapi # feast (setup.py) -pyflakes==2.5.0 +pyflakes==3.0.1 # via flake8 -pygments==2.13.0 +pygments==2.14.0 # via # feast (setup.py) # ipython # sphinx -pyjwt[crypto]==2.5.0 +pyjwt[crypto]==2.6.0 # via # adal # msal # snowflake-connector-python -pymssql==2.2.5 +pymssql==2.2.7 # via feast (setup.py) pymysql==1.0.2 # via feast (setup.py) -pyodbc==4.0.34 +pyodbc==4.0.35 # via feast (setup.py) pyopenssl==22.0.0 # via @@ -588,17 +598,17 @@ pyparsing==2.4.7 # via # great-expectations # httplib2 - # packaging -pyrsistent==0.18.1 +pyproject-hooks==1.0.0 + # via build +pyrsistent==0.19.3 # via jsonschema -pyspark==3.3.0 +pyspark==3.3.1 # via feast (setup.py) -pytest==7.1.3 +pytest==7.2.1 # via # feast (setup.py) # pytest-benchmark # pytest-cov - # pytest-forked # pytest-lazy-fixture # pytest-mock # pytest-ordering @@ -608,8 +618,6 @@ pytest-benchmark==3.4.1 # via feast (setup.py) pytest-cov==4.0.0 # via feast (setup.py) -pytest-forked==1.4.0 - # via pytest-xdist pytest-lazy-fixture==0.6.3 # via feast (setup.py) pytest-mock==1.10.4 @@ -618,7 +626,7 @@ pytest-ordering==0.6 # via feast (setup.py) pytest-timeout==1.4.2 # via feast (setup.py) -pytest-xdist==2.5.0 +pytest-xdist==3.1.0 # via feast (setup.py) python-dateutil==2.8.2 # via @@ -629,9 +637,9 @@ python-dateutil==2.8.2 # kubernetes # moto # pandas -python-dotenv==0.21.0 +python-dotenv==0.21.1 # via uvicorn -pytz==2022.2.1 +pytz==2022.7.1 # via # babel # great-expectations @@ -650,7 +658,7 @@ pyyaml==6.0 # uvicorn redis==4.2.2 # via feast (setup.py) -requests==2.28.1 +requests==2.28.2 # via # adal # adlfs @@ -677,19 +685,21 @@ requests-oauthlib==1.3.1 # google-auth-oauthlib # kubernetes # msrest -responses==0.21.0 +responses==0.22.0 # via moto +rfc3986[idna2008]==1.5.0 + # via httpx rsa==4.9 # via google-auth ruamel-yaml==0.17.17 # via great-expectations -ruamel-yaml-clib==0.2.6 +ruamel-yaml-clib==0.2.7 # via ruamel-yaml s3fs==2022.1.0 # via feast (setup.py) s3transfer==0.5.2 # via boto3 -scipy==1.9.1 +scipy==1.10.0 # via great-expectations six==1.16.0 # via @@ -699,7 +709,6 @@ six==1.16.0 # geomet # google-auth # google-auth-httplib2 - # grpcio # happybase # isodate # kubernetes @@ -707,15 +716,19 @@ six==1.16.0 # msrestazure # pandavro # python-dateutil + # thriftpy2 sniffio==1.3.0 - # via anyio + # via + # anyio + # httpcore + # httpx snowballstemmer==2.2.0 # via sphinx -snowflake-connector-python[pandas]==2.8.0 +snowflake-connector-python[pandas]==2.9.0 # via feast (setup.py) sphinx==6.1.3 # via feast (setup.py) -sphinxcontrib-applehelp==1.0.3 +sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx @@ -727,35 +740,35 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy[mypy]==1.4.41 +sqlalchemy[mypy]==1.4.46 # via feast (setup.py) -sqlalchemy2-stubs==0.0.2a27 +sqlalchemy2-stubs==0.0.2a32 # via sqlalchemy -stack-data==0.5.1 +stack-data==0.6.2 # via ipython -starlette==0.20.4 +starlette==0.22.0 # via fastapi -tabulate==0.8.10 +tabulate==0.9.0 # via feast (setup.py) tenacity==8.1.0 # via feast (setup.py) -termcolor==2.0.1 +termcolor==2.2.0 # via great-expectations -testcontainers==3.7.0 +testcontainers==3.7.1 # via feast (setup.py) -thriftpy2==0.4.14 +thriftpy2==0.4.16 # via happybase toml==0.10.2 # via # feast (setup.py) - # pre-commit + # responses tomli==2.0.1 # via # black # build # coverage # mypy - # pep517 + # pyproject-hooks # pytest toolz==0.12.0 # via @@ -766,41 +779,45 @@ tqdm==4.64.1 # via # feast (setup.py) # great-expectations -traitlets==5.4.0 +traitlets==5.9.0 # via # ipython # jupyter-core # matplotlib-inline # nbformat -trino==0.316.0 +trino==0.321.0 # via feast (setup.py) typeguard==2.13.3 # via feast (setup.py) -types-cryptography==3.3.23 - # via pyjwt -types-protobuf==3.20.4 +types-docutils==0.19.1.2 + # via types-setuptools +types-protobuf==3.19.22 # via # feast (setup.py) # mypy-protobuf -types-pymysql==1.0.19 +types-pymysql==1.0.19.2 # via feast (setup.py) -types-python-dateutil==2.8.19 +types-pyopenssl==23.0.0.2 + # via types-redis +types-python-dateutil==2.8.19.6 # via feast (setup.py) -types-pytz==2022.2.1.0 +types-pytz==2022.7.1.0 # via feast (setup.py) -types-pyyaml==6.0.12 +types-pyyaml==6.0.12.3 # via feast (setup.py) -types-redis==4.3.21 +types-redis==4.4.0.4 # via feast (setup.py) -types-requests==2.28.11 +types-requests==2.28.11.8 # via feast (setup.py) -types-setuptools==65.4.0.0 +types-setuptools==65.7.0.3 # via feast (setup.py) -types-tabulate==0.8.11 +types-tabulate==0.9.0.0 # via feast (setup.py) -types-urllib3==1.26.25 +types-toml==0.10.8.1 + # via responses +types-urllib3==1.26.25.4 # via types-requests -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # aioitertools # azure-core @@ -811,13 +828,15 @@ typing-extensions==4.3.0 # snowflake-connector-python # sqlalchemy2-stubs # starlette -tzdata==2022.4 +tzdata==2022.7 # via pytz-deprecation-shim tzlocal==4.2 - # via great-expectations + # via + # great-expectations + # trino uritemplate==4.1.1 # via google-api-python-client -urllib3==1.26.12 +urllib3==1.26.14 # via # botocore # docker @@ -828,27 +847,27 @@ urllib3==1.26.12 # requests # responses # snowflake-connector-python -uvicorn[standard]==0.18.3 +uvicorn[standard]==0.20.0 # via feast (setup.py) uvloop==0.17.0 # via uvicorn -virtualenv==20.16.5 +virtualenv==20.17.1 # via pre-commit volatile==2.1.0 # via bowler -watchfiles==0.17.0 +watchfiles==0.18.1 # via uvicorn -wcwidth==0.2.5 +wcwidth==0.2.6 # via prompt-toolkit -websocket-client==1.4.1 +websocket-client==1.5.0 # via # docker # kubernetes -websockets==10.3 +websockets==10.4 # via uvicorn werkzeug==2.1.2 # via moto -wheel==0.38.1 +wheel==0.38.4 # via pip-tools wrapt==1.14.1 # via @@ -857,9 +876,9 @@ wrapt==1.14.1 # testcontainers xmltodict==0.13.0 # via moto -yarl==1.8.1 +yarl==1.8.2 # via aiohttp -zipp==3.8.1 +zipp==3.12.0 # via # importlib-metadata # importlib-resources diff --git a/sdk/python/requirements/py3.8-requirements.txt b/sdk/python/requirements/py3.8-requirements.txt index 0820644131f..0f040f9a6fc 100644 --- a/sdk/python/requirements/py3.8-requirements.txt +++ b/sdk/python/requirements/py3.8-requirements.txt @@ -4,99 +4,111 @@ # # pip-compile --output-file=sdk/python/requirements/py3.8-requirements.txt # -anyio==3.6.1 +anyio==3.6.2 # via + # httpcore # starlette # watchfiles appdirs==1.4.4 # via fissix -attrs==22.1.0 +attrs==22.2.0 # via # bowler # jsonschema bowler==0.9.0 # via feast (setup.py) -cachetools==5.2.0 +cachetools==5.3.0 # via google-auth certifi==2022.12.7 - # via requests -charset-normalizer==2.1.1 + # via + # httpcore + # httpx + # requests +charset-normalizer==3.0.1 # via requests click==8.1.3 # via # bowler + # dask # feast (setup.py) # moreorless # uvicorn -cloudpickle==2.2.0 +cloudpickle==2.2.1 # via dask -colorama==0.4.5 +colorama==0.4.6 # via feast (setup.py) -dask==2022.1.1 +dask==2023.1.1 # via feast (setup.py) -dill==0.3.5.1 +dill==0.3.6 # via feast (setup.py) -fastapi==0.85.0 +fastapi==0.89.1 # via feast (setup.py) -fastavro==1.6.1 +fastavro==1.7.1 # via # feast (setup.py) # pandavro fissix==21.11.13 # via bowler -fsspec==2022.8.2 +fsspec==2023.1.0 # via dask -google-api-core==2.10.1 +google-api-core==2.11.0 # via feast (setup.py) -google-auth==2.12.0 +google-auth==2.16.0 # via google-api-core -googleapis-common-protos==1.56.4 +googleapis-common-protos==1.58.0 # via # feast (setup.py) # google-api-core -greenlet==2.0.1 +greenlet==2.0.2 # via sqlalchemy -grpcio==1.49.1 +grpcio==1.51.1 # via # feast (setup.py) # grpcio-reflection -grpcio-reflection==1.49.1 +grpcio-reflection==1.51.1 # via feast (setup.py) h11==0.14.0 - # via uvicorn + # via + # httpcore + # uvicorn +httpcore==0.16.3 + # via httpx httptools==0.5.0 # via uvicorn +httpx==0.23.3 + # via feast (setup.py) idna==3.4 # via # anyio # requests -importlib-resources==5.9.0 + # rfc3986 +importlib-resources==5.10.2 # via jsonschema jinja2==3.1.2 # via feast (setup.py) -jsonschema==4.16.0 +jsonschema==4.17.3 # via feast (setup.py) locket==1.0.0 # via partd -markupsafe==2.1.1 +markupsafe==2.1.2 # via jinja2 mmh3==3.0.0 # via feast (setup.py) moreorless==0.4.0 # via bowler -mypy==0.981 +mypy==0.991 # via sqlalchemy mypy-extensions==0.4.3 # via mypy -numpy==1.23.3 +numpy==1.24.1 # via # feast (setup.py) # pandas # pandavro # pyarrow -packaging==21.3 +packaging==23.0 # via dask -pandas==1.5.0 +pandas==1.5.3 # via # feast (setup.py) # pandavro @@ -106,9 +118,9 @@ partd==1.3.0 # via dask pkgutil-resolve-name==1.3.10 # via jsonschema -proto-plus==1.22.1 +proto-plus==1.22.2 # via feast (setup.py) -protobuf==4.21.7 +protobuf==4.21.12 # via # feast (setup.py) # google-api-core @@ -123,46 +135,48 @@ pyasn1==0.4.8 # rsa pyasn1-modules==0.2.8 # via google-auth -pydantic==1.10.2 +pydantic==1.10.4 # via # fastapi # feast (setup.py) -pygments==2.13.0 +pygments==2.14.0 # via feast (setup.py) -pyparsing==3.0.9 - # via packaging -pyrsistent==0.18.1 +pyrsistent==0.19.3 # via jsonschema python-dateutil==2.8.2 # via pandas -python-dotenv==0.21.0 +python-dotenv==0.21.1 # via uvicorn -pytz==2022.2.1 +pytz==2022.7.1 # via pandas pyyaml==6.0 # via # dask # feast (setup.py) # uvicorn -requests==2.28.1 +requests==2.28.2 # via google-api-core +rfc3986[idna2008]==1.5.0 + # via httpx rsa==4.9 # via google-auth six==1.16.0 # via # google-auth - # grpcio # pandavro # python-dateutil sniffio==1.3.0 - # via anyio -sqlalchemy[mypy]==1.4.41 + # via + # anyio + # httpcore + # httpx +sqlalchemy[mypy]==1.4.46 # via feast (setup.py) -sqlalchemy2-stubs==0.0.2a27 +sqlalchemy2-stubs==0.0.2a32 # via sqlalchemy -starlette==0.20.4 +starlette==0.22.0 # via fastapi -tabulate==0.8.10 +tabulate==0.9.0 # via feast (setup.py) tenacity==8.1.0 # via feast (setup.py) @@ -178,23 +192,23 @@ tqdm==4.64.1 # via feast (setup.py) typeguard==2.13.3 # via feast (setup.py) -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # mypy # pydantic # sqlalchemy2-stubs # starlette -urllib3==1.26.12 +urllib3==1.26.14 # via requests -uvicorn[standard]==0.18.3 +uvicorn[standard]==0.20.0 # via feast (setup.py) uvloop==0.17.0 # via uvicorn volatile==2.1.0 # via bowler -watchfiles==0.17.0 +watchfiles==0.18.1 # via uvicorn -websockets==10.3 +websockets==10.4 # via uvicorn -zipp==3.8.1 +zipp==3.12.0 # via importlib-resources diff --git a/sdk/python/requirements/py3.9-ci-requirements.txt b/sdk/python/requirements/py3.9-ci-requirements.txt index 9d6aa61cc6a..1ec1c03fd13 100644 --- a/sdk/python/requirements/py3.9-ci-requirements.txt +++ b/sdk/python/requirements/py3.9-ci-requirements.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.9 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: # # pip-compile --extra=ci --output-file=sdk/python/requirements/py3.9-ci-requirements.txt # @@ -24,10 +24,11 @@ aiosignal==1.3.1 # via aiohttp alabaster==0.7.13 # via sphinx -altair==4.2.0 +altair==4.2.2 # via great-expectations -anyio==3.6.1 +anyio==3.6.2 # via + # httpcore # starlette # watchfiles appdirs==1.4.4 @@ -46,7 +47,7 @@ async-timeout==4.0.2 # via # aiohttp # redis -attrs==22.1.0 +attrs==22.2.0 # via # aiohttp # bowler @@ -96,12 +97,14 @@ bytewax==0.13.1 # via feast (setup.py) cachecontrol==0.12.11 # via firebase-admin -cachetools==5.2.0 +cachetools==5.3.0 # via google-auth cassandra-driver==3.25.0 # via feast (setup.py) certifi==2022.12.7 # via + # httpcore + # httpx # kubernetes # minio # msrest @@ -123,19 +126,20 @@ click==8.1.3 # via # black # bowler + # dask # feast (setup.py) # geomet # great-expectations # moreorless # pip-tools # uvicorn -cloudpickle==2.2.0 +cloudpickle==2.2.1 # via dask -colorama==0.4.5 +colorama==0.4.6 # via # feast (setup.py) # great-expectations -coverage[toml]==7.0.5 +coverage[toml]==7.1.0 # via pytest-cov cryptography==35.0.0 # via @@ -149,7 +153,9 @@ cryptography==35.0.0 # pyjwt # pyopenssl # snowflake-connector-python -dask==2022.1.1 + # types-pyopenssl + # types-redis +dask==2023.1.1 # via feast (setup.py) dataclasses==0.6 # via great-expectations @@ -184,9 +190,9 @@ execnet==1.9.0 # via pytest-xdist executing==1.2.0 # via stack-data -fastapi==0.85.0 +fastapi==0.89.1 # via feast (setup.py) -fastavro==1.6.1 +fastavro==1.7.1 # via # feast (setup.py) # pandavro @@ -228,7 +234,7 @@ google-api-core[grpc]==2.11.0 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-api-python-client==2.72.0 +google-api-python-client==2.74.0 # via firebase-admin google-auth==2.16.0 # via @@ -244,9 +250,9 @@ google-auth-httplib2==0.1.0 # via google-api-python-client google-auth-oauthlib==0.8.0 # via gcsfs -google-cloud-bigquery[pandas]==3.4.1 +google-cloud-bigquery[pandas]==3.4.2 # via feast (setup.py) -google-cloud-bigquery-storage==2.18.0 +google-cloud-bigquery-storage==2.18.1 # via feast (setup.py) google-cloud-bigtable==2.15.0 # via feast (setup.py) @@ -257,9 +263,9 @@ google-cloud-core==2.3.2 # google-cloud-datastore # google-cloud-firestore # google-cloud-storage -google-cloud-datastore==2.12.0 +google-cloud-datastore==2.13.2 # via feast (setup.py) -google-cloud-firestore==2.9.0 +google-cloud-firestore==2.9.1 # via firebase-admin google-cloud-storage==2.7.0 # via @@ -268,11 +274,11 @@ google-cloud-storage==2.7.0 # gcsfs google-crc32c==1.5.0 # via google-resumable-media -google-resumable-media==2.4.0 +google-resumable-media==2.4.1 # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.56.4 +googleapis-common-protos[grpc]==1.58.0 # via # feast (setup.py) # google-api-core @@ -280,7 +286,7 @@ googleapis-common-protos[grpc]==1.56.4 # grpcio-status great-expectations==0.14.13 # via feast (setup.py) -greenlet==2.0.1 +greenlet==2.0.2 # via sqlalchemy grpc-google-iam-v1==0.12.6 # via google-cloud-bigtable @@ -295,7 +301,7 @@ grpcio==1.51.1 # grpcio-status # grpcio-testing # grpcio-tools -grpcio-reflection==1.49.1 +grpcio-reflection==1.51.1 # via feast (setup.py) grpcio-status==1.51.1 # via google-api-core @@ -304,23 +310,30 @@ grpcio-testing==1.51.1 grpcio-tools==1.51.1 # via feast (setup.py) h11==0.14.0 - # via uvicorn + # via + # httpcore + # uvicorn happybase==1.2.0 # via feast (setup.py) hiredis==2.1.1 # via feast (setup.py) +httpcore==0.16.3 + # via httpx httplib2==0.21.0 # via # google-api-python-client # google-auth-httplib2 httptools==0.5.0 # via uvicorn -identify==2.5.13 +httpx==0.23.3 + # via feast (setup.py) +identify==2.5.17 # via pre-commit idna==3.4 # via # anyio # requests + # rfc3986 # snowflake-connector-python # yarl imagesize==1.4.1 @@ -331,11 +344,11 @@ importlib-metadata==6.0.0 # sphinx iniconfig==2.0.0 # via pytest -ipython==8.8.0 +ipython==8.9.0 # via great-expectations isodate==0.6.1 # via msrest -isort==5.11.4 +isort==5.12.0 # via feast (setup.py) jedi==0.18.2 # via ipython @@ -354,19 +367,19 @@ jsonpatch==1.32 # via great-expectations jsonpointer==2.3 # via jsonpatch -jsonschema==4.16.0 +jsonschema==4.17.3 # via # altair # feast (setup.py) # great-expectations # nbformat -jupyter-core==5.1.3 +jupyter-core==5.2.0 # via nbformat kubernetes==20.13.0 # via feast (setup.py) locket==1.0.0 # via partd -markupsafe==2.1.1 +markupsafe==2.1.2 # via # jinja2 # moto @@ -406,7 +419,7 @@ multidict==6.0.4 # yarl multiprocess==0.70.14 # via bytewax -mypy==0.981 +mypy==0.982 # via # feast (setup.py) # sqlalchemy @@ -422,7 +435,7 @@ nbformat==5.7.3 # via great-expectations nodeenv==1.7.0 # via pre-commit -numpy==1.23.3 +numpy==1.24.1 # via # altair # db-dtypes @@ -436,7 +449,7 @@ oauthlib==3.2.2 # via requests-oauthlib oscrypto==1.3.0 # via snowflake-connector-python -packaging==21.3 +packaging==23.0 # via # build # dask @@ -448,7 +461,7 @@ packaging==21.3 # pytest # redis # sphinx -pandas==1.4.4 +pandas==1.5.3 # via # altair # db-dtypes @@ -463,7 +476,7 @@ parso==0.8.3 # via jedi partd==1.3.0 # via dask -pathspec==0.10.3 +pathspec==0.11.0 # via black pbr==5.11.1 # via mock @@ -482,13 +495,13 @@ pluggy==1.0.0 # via pytest ply==3.11 # via thriftpy2 -portalocker==2.6.0 +portalocker==2.7.0 # via msal-extensions -pre-commit==2.21.0 +pre-commit==3.0.2 # via feast (setup.py) prompt-toolkit==3.0.36 # via ipython -proto-plus==1.22.1 +proto-plus==1.22.2 # via # feast (setup.py) # google-cloud-bigquery @@ -496,7 +509,7 @@ proto-plus==1.22.1 # google-cloud-bigtable # google-cloud-datastore # google-cloud-firestore -protobuf==4.21.7 +protobuf==4.21.12 # via # feast (setup.py) # google-api-core @@ -545,15 +558,15 @@ pycodestyle==2.10.0 # via flake8 pycparser==2.21 # via cffi -pycryptodomex==3.16.0 +pycryptodomex==3.17 # via snowflake-connector-python -pydantic==1.10.2 +pydantic==1.10.4 # via # fastapi # feast (setup.py) pyflakes==3.0.1 # via flake8 -pygments==2.13.0 +pygments==2.14.0 # via # feast (setup.py) # ipython @@ -577,10 +590,9 @@ pyparsing==2.4.7 # via # great-expectations # httplib2 - # packaging pyproject-hooks==1.0.0 # via build -pyrsistent==0.18.1 +pyrsistent==0.19.3 # via jsonschema pyspark==3.3.1 # via feast (setup.py) @@ -617,9 +629,9 @@ python-dateutil==2.8.2 # kubernetes # moto # pandas -python-dotenv==0.21.0 +python-dotenv==0.21.1 # via uvicorn -pytz==2022.2.1 +pytz==2022.7.1 # via # babel # great-expectations @@ -638,7 +650,7 @@ pyyaml==6.0 # uvicorn redis==4.2.2 # via feast (setup.py) -requests==2.28.1 +requests==2.28.2 # via # adal # adlfs @@ -667,6 +679,8 @@ requests-oauthlib==1.3.1 # msrest responses==0.22.0 # via moto +rfc3986[idna2008]==1.5.0 + # via httpx rsa==4.9 # via google-auth ruamel-yaml==0.17.17 @@ -696,14 +710,17 @@ six==1.16.0 # python-dateutil # thriftpy2 sniffio==1.3.0 - # via anyio + # via + # anyio + # httpcore + # httpx snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==2.9.0 # via feast (setup.py) sphinx==6.1.3 # via feast (setup.py) -sphinxcontrib-applehelp==1.0.3 +sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx @@ -715,15 +732,15 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy[mypy]==1.4.41 +sqlalchemy[mypy]==1.4.46 # via feast (setup.py) -sqlalchemy2-stubs==0.0.2a27 +sqlalchemy2-stubs==0.0.2a32 # via sqlalchemy stack-data==0.6.2 # via ipython -starlette==0.20.4 +starlette==0.22.0 # via fastapi -tabulate==0.8.10 +tabulate==0.9.0 # via feast (setup.py) tenacity==8.1.0 # via feast (setup.py) @@ -754,7 +771,7 @@ tqdm==4.64.1 # via # feast (setup.py) # great-expectations -traitlets==5.8.1 +traitlets==5.9.0 # via # ipython # jupyter-core @@ -764,25 +781,27 @@ trino==0.321.0 # via feast (setup.py) typeguard==2.13.3 # via feast (setup.py) -types-docutils==0.19.1.1 +types-docutils==0.19.1.2 # via types-setuptools -types-protobuf==4.21.0.2 +types-protobuf==3.19.22 # via # feast (setup.py) # mypy-protobuf -types-pymysql==1.0.19.1 +types-pymysql==1.0.19.2 # via feast (setup.py) -types-python-dateutil==2.8.19.5 +types-pyopenssl==23.0.0.2 + # via types-redis +types-python-dateutil==2.8.19.6 # via feast (setup.py) -types-pytz==2022.7.0.0 +types-pytz==2022.7.1.0 # via feast (setup.py) -types-pyyaml==6.0.12.2 +types-pyyaml==6.0.12.3 # via feast (setup.py) -types-redis==4.4.0.0 +types-redis==4.4.0.4 # via feast (setup.py) -types-requests==2.28.11.7 +types-requests==2.28.11.8 # via feast (setup.py) -types-setuptools==65.7.0.1 +types-setuptools==65.7.0.3 # via feast (setup.py) types-tabulate==0.9.0.0 # via feast (setup.py) @@ -790,7 +809,7 @@ types-toml==0.10.8.1 # via responses types-urllib3==1.26.25.4 # via types-requests -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # aioitertools # azure-core @@ -809,7 +828,7 @@ tzlocal==4.2 # trino uritemplate==4.1.1 # via google-api-python-client -urllib3==1.26.12 +urllib3==1.26.14 # via # botocore # docker @@ -820,7 +839,7 @@ urllib3==1.26.12 # requests # responses # snowflake-connector-python -uvicorn[standard]==0.18.3 +uvicorn[standard]==0.20.0 # via feast (setup.py) uvloop==0.17.0 # via uvicorn @@ -828,19 +847,19 @@ virtualenv==20.17.1 # via pre-commit volatile==2.1.0 # via bowler -watchfiles==0.17.0 +watchfiles==0.18.1 # via uvicorn -wcwidth==0.2.5 +wcwidth==0.2.6 # via prompt-toolkit -websocket-client==1.4.2 +websocket-client==1.5.0 # via # docker # kubernetes -websockets==10.3 +websockets==10.4 # via uvicorn werkzeug==2.1.2 # via moto -wheel==0.38.1 +wheel==0.38.4 # via pip-tools wrapt==1.14.1 # via @@ -851,7 +870,7 @@ xmltodict==0.13.0 # via moto yarl==1.8.2 # via aiohttp -zipp==3.11.0 +zipp==3.12.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/sdk/python/requirements/py3.9-requirements.txt b/sdk/python/requirements/py3.9-requirements.txt index c69c5a9635f..76d297a3618 100644 --- a/sdk/python/requirements/py3.9-requirements.txt +++ b/sdk/python/requirements/py3.9-requirements.txt @@ -1,100 +1,112 @@ # -# This file is autogenerated by pip-compile with python 3.9 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: # # pip-compile --output-file=sdk/python/requirements/py3.9-requirements.txt # -anyio==3.6.1 +anyio==3.6.2 # via + # httpcore # starlette # watchfiles appdirs==1.4.4 # via fissix -attrs==22.1.0 +attrs==22.2.0 # via # bowler # jsonschema bowler==0.9.0 # via feast (setup.py) -cachetools==5.2.0 +cachetools==5.3.0 # via google-auth certifi==2022.12.7 - # via requests -charset-normalizer==2.1.1 + # via + # httpcore + # httpx + # requests +charset-normalizer==3.0.1 # via requests click==8.1.3 # via # bowler + # dask # feast (setup.py) # moreorless # uvicorn -cloudpickle==2.2.0 +cloudpickle==2.2.1 # via dask -colorama==0.4.5 +colorama==0.4.6 # via feast (setup.py) -dask==2022.1.1 +dask==2023.1.1 # via feast (setup.py) dill==0.3.6 # via feast (setup.py) -fastapi==0.85.0 +fastapi==0.89.1 # via feast (setup.py) -fastavro==1.6.1 +fastavro==1.7.1 # via # feast (setup.py) # pandavro fissix==21.11.13 # via bowler -fsspec==2022.1.0 +fsspec==2023.1.0 # via dask google-api-core==2.11.0 # via feast (setup.py) google-auth==2.16.0 # via google-api-core -googleapis-common-protos==1.56.4 +googleapis-common-protos==1.58.0 # via # feast (setup.py) # google-api-core -greenlet==2.0.1 +greenlet==2.0.2 # via sqlalchemy grpcio==1.51.1 # via # feast (setup.py) # grpcio-reflection -grpcio-reflection==1.49.1 +grpcio-reflection==1.51.1 # via feast (setup.py) h11==0.14.0 - # via uvicorn + # via + # httpcore + # uvicorn +httpcore==0.16.3 + # via httpx httptools==0.5.0 # via uvicorn +httpx==0.23.3 + # via feast (setup.py) idna==3.4 # via # anyio # requests -jinja2==3.0.3 + # rfc3986 +jinja2==3.1.2 # via feast (setup.py) -jsonschema==4.16.0 +jsonschema==4.17.3 # via feast (setup.py) locket==1.0.0 # via partd -markupsafe==2.1.1 +markupsafe==2.1.2 # via jinja2 mmh3==3.0.0 # via feast (setup.py) moreorless==0.4.0 # via bowler -mypy==0.981 +mypy==0.991 # via sqlalchemy mypy-extensions==0.4.3 # via mypy -numpy==1.23.3 +numpy==1.24.1 # via # feast (setup.py) # pandas # pandavro # pyarrow -packaging==21.3 +packaging==23.0 # via dask -pandas==1.5.0 +pandas==1.5.3 # via # feast (setup.py) # pandavro @@ -102,9 +114,9 @@ pandavro==1.5.2 # via feast (setup.py) partd==1.3.0 # via dask -proto-plus==1.22.1 +proto-plus==1.22.2 # via feast (setup.py) -protobuf==4.21.7 +protobuf==4.21.12 # via # feast (setup.py) # google-api-core @@ -119,29 +131,29 @@ pyasn1==0.4.8 # rsa pyasn1-modules==0.2.8 # via google-auth -pydantic==1.10.2 +pydantic==1.10.4 # via # fastapi # feast (setup.py) -pygments==2.13.0 +pygments==2.14.0 # via feast (setup.py) -pyparsing==2.4.7 - # via packaging -pyrsistent==0.18.1 +pyrsistent==0.19.3 # via jsonschema python-dateutil==2.8.2 # via pandas -python-dotenv==0.21.0 +python-dotenv==0.21.1 # via uvicorn -pytz==2022.2.1 +pytz==2022.7.1 # via pandas pyyaml==6.0 # via # dask # feast (setup.py) # uvicorn -requests==2.28.1 +requests==2.28.2 # via google-api-core +rfc3986[idna2008]==1.5.0 + # via httpx rsa==4.9 # via google-auth six==1.16.0 @@ -150,14 +162,17 @@ six==1.16.0 # pandavro # python-dateutil sniffio==1.3.0 - # via anyio -sqlalchemy[mypy]==1.4.41 + # via + # anyio + # httpcore + # httpx +sqlalchemy[mypy]==1.4.46 # via feast (setup.py) -sqlalchemy2-stubs==0.0.2a27 +sqlalchemy2-stubs==0.0.2a32 # via sqlalchemy -starlette==0.20.4 +starlette==0.22.0 # via fastapi -tabulate==0.8.10 +tabulate==0.9.0 # via feast (setup.py) tenacity==8.1.0 # via feast (setup.py) @@ -173,21 +188,21 @@ tqdm==4.64.1 # via feast (setup.py) typeguard==2.13.3 # via feast (setup.py) -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # mypy # pydantic # sqlalchemy2-stubs # starlette -urllib3==1.26.12 +urllib3==1.26.14 # via requests -uvicorn[standard]==0.18.3 +uvicorn[standard]==0.20.0 # via feast (setup.py) uvloop==0.17.0 # via uvicorn volatile==2.1.0 # via bowler -watchfiles==0.17.0 +watchfiles==0.18.1 # via uvicorn -websockets==10.3 +websockets==10.4 # via uvicorn diff --git a/setup.py b/setup.py index 417ac3dce83..7f7be301244 100644 --- a/setup.py +++ b/setup.py @@ -48,10 +48,10 @@ REQUIRED = [ "click>=7.0.0,<9.0.0", "colorama>=0.3.9,<1", - "dill==0.3.*", + "dill~=0.3.0", "fastavro>=1.1.0,<2", "google-api-core>=1.23.0,<3", - "googleapis-common-protos>=1.52.*,<2", + "googleapis-common-protos>=1.52.0,<2", "grpcio>=1.47.0,<2", "grpcio-reflection>=1.47.0,<2", "Jinja2>=2,<4", @@ -59,13 +59,13 @@ "mmh3", "numpy>=1.22,<3", "pandas>=1.4.3,<2", - "pandavro==1.5.*", # For some reason pandavro higher than 1.5.* only support pandas less than 1.3. + "pandavro~=1.5.0", # For some reason pandavro higher than 1.5.* only support pandas less than 1.3. "protobuf<5,>3", "proto-plus>=1.20.0,<2", "pyarrow>=4,<9", "pydantic>=1,<2", "pygments>=2.12.0,<3", - "PyYAML>=5.4.*,<7", + "PyYAML>=5.4.0,<7", "SQLAlchemy[mypy]>1,<2", "tabulate>=0.8.0,<1", "tenacity>=7,<9", @@ -74,16 +74,17 @@ "typeguard", "fastapi>=0.68.0,<1", "uvicorn[standard]>=0.14.0,<1", - "dask>=2021.*", + "dask>=2021.1.0", "bowler", # Needed for automatic repo upgrades + "httpx>=0.23.3", # FastAPI does not correctly pull starlette dependency on httpx see thread(https://github.com/tiangolo/fastapi/issues/5656). ] GCP_REQUIRED = [ "google-cloud-bigquery[pandas]>=2,<4", "google-cloud-bigquery-storage >= 2.0.0,<3", - "google-cloud-datastore>=2.1.*,<3", - "google-cloud-storage>=1.34.*,<3", - "google-cloud-bigtable>=2.11.*,<3", + "google-cloud-datastore>=2.1.0,<3", + "google-cloud-storage>=1.34.0,<3", + "google-cloud-bigtable>=2.11.0,<3", ] REDIS_REQUIRED = [ @@ -128,7 +129,7 @@ GE_REQUIRED = ["great_expectations>=0.14.0,<0.15.0"] GO_REQUIRED = [ - "cffi==1.15.*,<2", + "cffi~=1.15.0", ] AZURE_REQUIRED = [ @@ -151,20 +152,20 @@ "minio==7.1.0", "mock==2.0.0", "moto<4", - "mypy>=0.931", + "mypy>=0.981,<0.990", "mypy-protobuf==3.1", "avro==1.10.0", "gcsfs>=0.4.0,<=2022.01.0", "urllib3>=1.25.4,<2", "psutil==5.9.0", - "py>=1.11.0", # https://github.com/pytest-dev/pytest/issues/10420 + "py>=1.11.0", # https://github.com/pytest-dev/pytest/issues/10420 "pytest>=6.0.0,<8", "pytest-cov", "pytest-xdist", "pytest-benchmark>=3.4.1,<4", "pytest-lazy-fixture==0.6.3", "pytest-timeout==1.4.2", - "pytest-ordering==0.6.*", + "pytest-ordering~=0.6.0", "pytest-mock==1.10.4", "Sphinx>4.0.0,<7", "testcontainers>=3.5,<4", @@ -174,7 +175,7 @@ "assertpy==1.1", "pip-tools", "pybindgen", - "types-protobuf", + "types-protobuf~=3.19.22", "types-python-dateutil", "types-pytz", "types-PyYAML", @@ -205,7 +206,7 @@ for _r in MYSQL_REQUIRED: DOCS_REQUIRED.remove(_r) -DEV_REQUIRED = ["mypy-protobuf==3.1", "grpcio-testing==1.*"] + CI_REQUIRED +DEV_REQUIRED = ["mypy-protobuf==3.1", "grpcio-testing~=1.0"] + CI_REQUIRED # Get git repo root directory repo_root = str(pathlib.Path(__file__).resolve().parent) From d3b7c060bdc2a4d2b19dbd4e0dd8f35e76589d5f Mon Sep 17 00:00:00 2001 From: feast-ci-bot Date: Tue, 31 Jan 2023 01:13:36 +0000 Subject: [PATCH 21/21] chore(release): release 0.29.0 # [0.29.0](https://github.com/feast-dev/feast/compare/v0.28.0...v0.29.0) (2023-01-31) ### Bug Fixes * Add check for bool type in addition to sample ([#3452](https://github.com/feast-dev/feast/issues/3452)) ([1c7c491](https://github.com/feast-dev/feast/commit/1c7c491378c9a5dc892ec58f2d81d4e95b800580)) * Buggy SQL for postgres source ([#3424](https://github.com/feast-dev/feast/issues/3424)) ([1ea100e](https://github.com/feast-dev/feast/commit/1ea100ef472a7cc5b750d4b84992a254b4582de6)) * Ensure no duplicates in `fv.schema` ([#3460](https://github.com/feast-dev/feast/issues/3460)) ([08ffa8d](https://github.com/feast-dev/feast/commit/08ffa8dff61acd7047d205083b78efa98e2dccb8)) * Fix delete sfv twice issue ([#3466](https://github.com/feast-dev/feast/issues/3466)) ([dfd5eae](https://github.com/feast-dev/feast/commit/dfd5eaec6bab4961a7981e4f6a70b45e4d72bce4)) * Stream feature view UI shows transformation issue ([#3464](https://github.com/feast-dev/feast/issues/3464)) ([1ef5137](https://github.com/feast-dev/feast/commit/1ef51376a67347c31ee2e7a037be844526ecc48d)) * Update registry.refresh to have a default arg ([#3450](https://github.com/feast-dev/feast/issues/3450)) ([2f7c4ed](https://github.com/feast-dev/feast/commit/2f7c4ede8f9e66703714261f1152f78526d4bf43)) * Updating the batch field so that you can query create and event date. ([#3411](https://github.com/feast-dev/feast/issues/3411)) ([01ab462](https://github.com/feast-dev/feast/commit/01ab462d49442d8c7f4de418132665e48552c22d)), closes [#3401](https://github.com/feast-dev/feast/issues/3401) ### Features * Add data source search ([#3449](https://github.com/feast-dev/feast/issues/3449)) ([fbbb293](https://github.com/feast-dev/feast/commit/fbbb2935fd7c722dbe85f19a8ddf788765116360)) * Adding list_validation_references for default and sql registry ([#3436](https://github.com/feast-dev/feast/issues/3436)) ([21dd253](https://github.com/feast-dev/feast/commit/21dd253adda26c18366cf4338512bdc2c00882cf)) * Make UI accessible behind proxy ([#3428](https://github.com/feast-dev/feast/issues/3428)) ([753d8db](https://github.com/feast-dev/feast/commit/753d8dbb5e34c24cf065f599a2cd370b3723de9c)) --- CHANGELOG.md | 20 +++++++++++++++++++ infra/charts/feast-feature-server/Chart.yaml | 2 +- infra/charts/feast-feature-server/README.md | 4 ++-- infra/charts/feast-feature-server/values.yaml | 2 +- infra/charts/feast/Chart.yaml | 2 +- infra/charts/feast/README.md | 6 +++--- .../feast/charts/feature-server/Chart.yaml | 4 ++-- .../feast/charts/feature-server/README.md | 4 ++-- .../feast/charts/feature-server/values.yaml | 2 +- .../charts/transformation-service/Chart.yaml | 4 ++-- .../charts/transformation-service/README.md | 4 ++-- .../charts/transformation-service/values.yaml | 2 +- infra/charts/feast/requirements.yaml | 4 ++-- java/pom.xml | 2 +- sdk/python/feast/ui/package.json | 2 +- sdk/python/feast/ui/yarn.lock | 8 ++++---- ui/package.json | 2 +- 17 files changed, 47 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68bdd8db5c7..6afa5f251bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +# [0.29.0](https://github.com/feast-dev/feast/compare/v0.28.0...v0.29.0) (2023-01-31) + + +### Bug Fixes + +* Add check for bool type in addition to sample ([#3452](https://github.com/feast-dev/feast/issues/3452)) ([1c7c491](https://github.com/feast-dev/feast/commit/1c7c491378c9a5dc892ec58f2d81d4e95b800580)) +* Buggy SQL for postgres source ([#3424](https://github.com/feast-dev/feast/issues/3424)) ([1ea100e](https://github.com/feast-dev/feast/commit/1ea100ef472a7cc5b750d4b84992a254b4582de6)) +* Ensure no duplicates in `fv.schema` ([#3460](https://github.com/feast-dev/feast/issues/3460)) ([08ffa8d](https://github.com/feast-dev/feast/commit/08ffa8dff61acd7047d205083b78efa98e2dccb8)) +* Fix delete sfv twice issue ([#3466](https://github.com/feast-dev/feast/issues/3466)) ([dfd5eae](https://github.com/feast-dev/feast/commit/dfd5eaec6bab4961a7981e4f6a70b45e4d72bce4)) +* Stream feature view UI shows transformation issue ([#3464](https://github.com/feast-dev/feast/issues/3464)) ([1ef5137](https://github.com/feast-dev/feast/commit/1ef51376a67347c31ee2e7a037be844526ecc48d)) +* Update registry.refresh to have a default arg ([#3450](https://github.com/feast-dev/feast/issues/3450)) ([2f7c4ed](https://github.com/feast-dev/feast/commit/2f7c4ede8f9e66703714261f1152f78526d4bf43)) +* Updating the batch field so that you can query create and event date. ([#3411](https://github.com/feast-dev/feast/issues/3411)) ([01ab462](https://github.com/feast-dev/feast/commit/01ab462d49442d8c7f4de418132665e48552c22d)), closes [#3401](https://github.com/feast-dev/feast/issues/3401) + + +### Features + +* Add data source search ([#3449](https://github.com/feast-dev/feast/issues/3449)) ([fbbb293](https://github.com/feast-dev/feast/commit/fbbb2935fd7c722dbe85f19a8ddf788765116360)) +* Adding list_validation_references for default and sql registry ([#3436](https://github.com/feast-dev/feast/issues/3436)) ([21dd253](https://github.com/feast-dev/feast/commit/21dd253adda26c18366cf4338512bdc2c00882cf)) +* Make UI accessible behind proxy ([#3428](https://github.com/feast-dev/feast/issues/3428)) ([753d8db](https://github.com/feast-dev/feast/commit/753d8dbb5e34c24cf065f599a2cd370b3723de9c)) + # [0.28.0](https://github.com/feast-dev/feast/compare/v0.27.0...v0.28.0) (2023-01-03) diff --git a/infra/charts/feast-feature-server/Chart.yaml b/infra/charts/feast-feature-server/Chart.yaml index 73836936eec..b03e3ba7bfb 100644 --- a/infra/charts/feast-feature-server/Chart.yaml +++ b/infra/charts/feast-feature-server/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: feast-feature-server description: Feast Feature Server in Go or Python type: application -version: 0.28.0 +version: 0.29.0 keywords: - machine learning - big data diff --git a/infra/charts/feast-feature-server/README.md b/infra/charts/feast-feature-server/README.md index f8120626c0d..d6f38b36169 100644 --- a/infra/charts/feast-feature-server/README.md +++ b/infra/charts/feast-feature-server/README.md @@ -1,6 +1,6 @@ # Feast Python / Go Feature Server Helm Charts -Current chart version is `0.28.0` +Current chart version is `0.29.0` ## Installation @@ -30,7 +30,7 @@ See [here](https://github.com/feast-dev/feast/tree/master/examples/python-helm-d | fullnameOverride | string | `""` | | | image.pullPolicy | string | `"IfNotPresent"` | | | image.repository | string | `"feastdev/feature-server"` | Docker image for Feature Server repository | -| image.tag | string | `"0.28.0"` | The Docker image tag (can be overwritten if custom feature server deps are needed for on demand transforms) | +| image.tag | string | `"0.29.0"` | The Docker image tag (can be overwritten if custom feature server deps are needed for on demand transforms) | | imagePullSecrets | list | `[]` | | | livenessProbe.initialDelaySeconds | int | `30` | | | livenessProbe.periodSeconds | int | `30` | | diff --git a/infra/charts/feast-feature-server/values.yaml b/infra/charts/feast-feature-server/values.yaml index 86070f9ebaa..f21f0c9ecf7 100644 --- a/infra/charts/feast-feature-server/values.yaml +++ b/infra/charts/feast-feature-server/values.yaml @@ -9,7 +9,7 @@ image: repository: feastdev/feature-server pullPolicy: IfNotPresent # image.tag -- The Docker image tag (can be overwritten if custom feature server deps are needed for on demand transforms) - tag: 0.28.0 + tag: 0.29.0 imagePullSecrets: [] nameOverride: "" diff --git a/infra/charts/feast/Chart.yaml b/infra/charts/feast/Chart.yaml index 6a797601406..fbcec2b8033 100644 --- a/infra/charts/feast/Chart.yaml +++ b/infra/charts/feast/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Feature store for machine learning name: feast -version: 0.28.0 +version: 0.29.0 keywords: - machine learning - big data diff --git a/infra/charts/feast/README.md b/infra/charts/feast/README.md index 516a66b2daa..6364377f2c1 100644 --- a/infra/charts/feast/README.md +++ b/infra/charts/feast/README.md @@ -8,7 +8,7 @@ This repo contains Helm charts for Feast Java components that are being installe ## Chart: Feast -Feature store for machine learning Current chart version is `0.28.0` +Feature store for machine learning Current chart version is `0.29.0` ## Installation @@ -65,8 +65,8 @@ See [here](https://github.com/feast-dev/feast/tree/master/examples/java-demo) fo | Repository | Name | Version | |------------|------|---------| | https://charts.helm.sh/stable | redis | 10.5.6 | -| https://feast-helm-charts.storage.googleapis.com | feature-server(feature-server) | 0.28.0 | -| https://feast-helm-charts.storage.googleapis.com | transformation-service(transformation-service) | 0.28.0 | +| https://feast-helm-charts.storage.googleapis.com | feature-server(feature-server) | 0.29.0 | +| https://feast-helm-charts.storage.googleapis.com | transformation-service(transformation-service) | 0.29.0 | ## Values diff --git a/infra/charts/feast/charts/feature-server/Chart.yaml b/infra/charts/feast/charts/feature-server/Chart.yaml index 9b3a944342e..d21357b7923 100644 --- a/infra/charts/feast/charts/feature-server/Chart.yaml +++ b/infra/charts/feast/charts/feature-server/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 description: "Feast Feature Server: Online feature serving service for Feast" name: feature-server -version: 0.28.0 -appVersion: v0.28.0 +version: 0.29.0 +appVersion: v0.29.0 keywords: - machine learning - big data diff --git a/infra/charts/feast/charts/feature-server/README.md b/infra/charts/feast/charts/feature-server/README.md index 65133d1d24d..f2e0b281829 100644 --- a/infra/charts/feast/charts/feature-server/README.md +++ b/infra/charts/feast/charts/feature-server/README.md @@ -1,6 +1,6 @@ # feature-server -![Version: 0.28.0](https://img.shields.io/badge/Version-0.28.0-informational?style=flat-square) ![AppVersion: v0.28.0](https://img.shields.io/badge/AppVersion-v0.28.0-informational?style=flat-square) +![Version: 0.29.0](https://img.shields.io/badge/Version-0.29.0-informational?style=flat-square) ![AppVersion: v0.29.0](https://img.shields.io/badge/AppVersion-v0.29.0-informational?style=flat-square) Feast Feature Server: Online feature serving service for Feast @@ -17,7 +17,7 @@ Feast Feature Server: Online feature serving service for Feast | envOverrides | object | `{}` | Extra environment variables to set | | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | image.repository | string | `"feastdev/feature-server-java"` | Docker image for Feature Server repository | -| image.tag | string | `"0.28.0"` | Image tag | +| image.tag | string | `"0.29.0"` | Image tag | | ingress.grpc.annotations | object | `{}` | Extra annotations for the ingress | | ingress.grpc.auth.enabled | bool | `false` | Flag to enable auth | | ingress.grpc.class | string | `"nginx"` | Which ingress controller to use | diff --git a/infra/charts/feast/charts/feature-server/values.yaml b/infra/charts/feast/charts/feature-server/values.yaml index 866e95ca95b..842cfc43e8a 100644 --- a/infra/charts/feast/charts/feature-server/values.yaml +++ b/infra/charts/feast/charts/feature-server/values.yaml @@ -5,7 +5,7 @@ image: # image.repository -- Docker image for Feature Server repository repository: feastdev/feature-server-java # image.tag -- Image tag - tag: 0.28.0 + tag: 0.29.0 # image.pullPolicy -- Image pull policy pullPolicy: IfNotPresent diff --git a/infra/charts/feast/charts/transformation-service/Chart.yaml b/infra/charts/feast/charts/transformation-service/Chart.yaml index 651ccb9e84c..253533ef39f 100644 --- a/infra/charts/feast/charts/transformation-service/Chart.yaml +++ b/infra/charts/feast/charts/transformation-service/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 description: "Transformation service: to compute on-demand features" name: transformation-service -version: 0.28.0 -appVersion: v0.28.0 +version: 0.29.0 +appVersion: v0.29.0 keywords: - machine learning - big data diff --git a/infra/charts/feast/charts/transformation-service/README.md b/infra/charts/feast/charts/transformation-service/README.md index f7f2a515225..65ba7916cf7 100644 --- a/infra/charts/feast/charts/transformation-service/README.md +++ b/infra/charts/feast/charts/transformation-service/README.md @@ -1,6 +1,6 @@ # transformation-service -![Version: 0.28.0](https://img.shields.io/badge/Version-0.28.0-informational?style=flat-square) ![AppVersion: v0.28.0](https://img.shields.io/badge/AppVersion-v0.28.0-informational?style=flat-square) +![Version: 0.29.0](https://img.shields.io/badge/Version-0.29.0-informational?style=flat-square) ![AppVersion: v0.29.0](https://img.shields.io/badge/AppVersion-v0.29.0-informational?style=flat-square) Transformation service: to compute on-demand features @@ -13,7 +13,7 @@ Transformation service: to compute on-demand features | envOverrides | object | `{}` | Extra environment variables to set | | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | image.repository | string | `"feastdev/feature-transformation-server"` | Docker image for Transformation Server repository | -| image.tag | string | `"0.28.0"` | Image tag | +| image.tag | string | `"0.29.0"` | Image tag | | nodeSelector | object | `{}` | Node labels for pod assignment | | podLabels | object | `{}` | Labels to be added to Feast Serving pods | | replicaCount | int | `1` | Number of pods that will be created | diff --git a/infra/charts/feast/charts/transformation-service/values.yaml b/infra/charts/feast/charts/transformation-service/values.yaml index f8c4114af5c..2a41668ffd0 100644 --- a/infra/charts/feast/charts/transformation-service/values.yaml +++ b/infra/charts/feast/charts/transformation-service/values.yaml @@ -5,7 +5,7 @@ image: # image.repository -- Docker image for Transformation Server repository repository: feastdev/feature-transformation-server # image.tag -- Image tag - tag: 0.28.0 + tag: 0.29.0 # image.pullPolicy -- Image pull policy pullPolicy: IfNotPresent diff --git a/infra/charts/feast/requirements.yaml b/infra/charts/feast/requirements.yaml index b1ee0ae945e..c5700116187 100644 --- a/infra/charts/feast/requirements.yaml +++ b/infra/charts/feast/requirements.yaml @@ -1,12 +1,12 @@ dependencies: - name: feature-server alias: feature-server - version: 0.28.0 + version: 0.29.0 condition: feature-server.enabled repository: https://feast-helm-charts.storage.googleapis.com - name: transformation-service alias: transformation-service - version: 0.28.0 + version: 0.29.0 condition: transformation-service.enabled repository: https://feast-helm-charts.storage.googleapis.com - name: redis diff --git a/java/pom.xml b/java/pom.xml index a7ef145e2a7..b92edac7ddf 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -35,7 +35,7 @@ - 0.28.0 + 0.29.0 https://github.com/feast-dev/feast UTF-8 diff --git a/sdk/python/feast/ui/package.json b/sdk/python/feast/ui/package.json index 981bda4b270..30ef44e4156 100644 --- a/sdk/python/feast/ui/package.json +++ b/sdk/python/feast/ui/package.json @@ -6,7 +6,7 @@ "@elastic/datemath": "^5.0.3", "@elastic/eui": "^55.0.1", "@emotion/react": "^11.9.0", - "@feast-dev/feast-ui": "0.28.0", + "@feast-dev/feast-ui": "0.29.0", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.2.0", "@testing-library/user-event": "^13.5.0", diff --git a/sdk/python/feast/ui/yarn.lock b/sdk/python/feast/ui/yarn.lock index 382b3c55033..61c75e653c8 100644 --- a/sdk/python/feast/ui/yarn.lock +++ b/sdk/python/feast/ui/yarn.lock @@ -1300,10 +1300,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@feast-dev/feast-ui@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@feast-dev/feast-ui/-/feast-ui-0.28.0.tgz#5d6a85c40cf15d028682cfdb90f98436af8a46a7" - integrity sha512-cIPB4x8zZ/MBP0Tdu5RnfMJBpSg0OfVBJABCUizrSKXeQSWBoydMoT6iH7hkcZpSnKGfmIKnO/kDSIRh9FHzOw== +"@feast-dev/feast-ui@0.29.0": + version "0.29.0" + resolved "https://registry.yarnpkg.com/@feast-dev/feast-ui/-/feast-ui-0.29.0.tgz#b78070b51c3f83b2b823946b64fea4f223820429" + integrity sha512-XF/C3CcLmQTAUV9vHbW37BEACoNXXbUaMUoWPIJMrZvW6IStoVUlBuA4bx995XSE4gUcZ7j/5SmrOUAAlanL9Q== dependencies: "@elastic/datemath" "^5.0.3" "@elastic/eui" "^55.0.1" diff --git a/ui/package.json b/ui/package.json index fd8262826c6..6c456f7b007 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "@feast-dev/feast-ui", - "version": "0.28.0", + "version": "0.29.0", "private": false, "files": [ "dist"