Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor OnlineStoreConfig classes into owning modules #1649

Merged
merged 11 commits into from
Jun 21, 2021

Conversation

achals
Copy link
Member

@achals achals commented Jun 15, 2021

What this PR does / why we need it:
This PR:

  • introduces a new pydantic base class for Config classes to extend
  • moves the online store config classes into the corresponding modules
  • adds logic to dynamically load the OnlineStoreConfig classes (and also the OnlineStore classes in a second pass).
  • Keeps tests basically the same (and adding more tests for the dynamic classes)

Which issue(s) this PR fixes:

Part 1 for #1605

Does this PR introduce a user-facing change?:

Allow OnlineStore implementations to be loaded dynamically.

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Achal Shah <achals@gmail.com>
@codecov-commenter
Copy link

codecov-commenter commented Jun 16, 2021

Codecov Report

Merging #1649 (3ee9185) into master (d71b452) will increase coverage by 0.07%.
The diff coverage is 85.43%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1649      +/-   ##
==========================================
+ Coverage   83.47%   83.55%   +0.07%     
==========================================
  Files          71       71              
  Lines        6144     6225      +81     
==========================================
+ Hits         5129     5201      +72     
- Misses       1015     1024       +9     
Flag Coverage Δ
integrationtests 83.46% <85.43%> (+0.07%) ⬆️
unittests 74.54% <85.43%> (-2.03%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
sdk/python/feast/infra/provider.py 83.62% <0.00%> (ø)
sdk/python/feast/repo_operations.py 31.70% <0.00%> (-0.48%) ⬇️
sdk/python/feast/errors.py 68.51% <72.72%> (+1.85%) ⬆️
sdk/python/feast/infra/online_stores/helpers.py 85.18% <75.00%> (+5.77%) ⬆️
sdk/python/feast/repo_config.py 92.68% <85.29%> (-3.22%) ⬇️
sdk/python/feast/infra/online_stores/datastore.py 80.67% <100.00%> (+1.58%) ⬆️
sdk/python/feast/infra/online_stores/redis.py 91.96% <100.00%> (+0.78%) ⬆️
sdk/python/feast/infra/online_stores/sqlite.py 96.38% <100.00%> (+0.28%) ⬆️
sdk/python/tests/test_feature_store.py 100.00% <100.00%> (ø)
sdk/python/tests/test_historical_retrieval.py 98.99% <100.00%> (+0.05%) ⬆️
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d71b452...3ee9185. Read the comment docs.

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Achal Shah <achals@gmail.com>
…Config ctor directly

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Achal Shah <achals@gmail.com>
@achals achals force-pushed the achal/refactor-config-classes branch from 7e8d05e to aaa4a3e Compare June 17, 2021 22:42
Signed-off-by: Achal Shah <achals@gmail.com>

Remove redis provider reference
Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Achal Shah <achals@gmail.com>
@achals achals force-pushed the achal/refactor-config-classes branch from aaa4a3e to 39be498 Compare June 17, 2021 22:45
Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Achal Shah <achals@gmail.com>
@feast-ci-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: achals, woop

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@woop
Copy link
Member

woop commented Jun 21, 2021

/lgtm

@achals achals removed the needs-kind label Jun 21, 2021
@feast-ci-bot feast-ci-bot merged commit 469234a into feast-dev:master Jun 21, 2021
@achals achals deleted the achal/refactor-config-classes branch June 21, 2021 19:25
Copy link
Collaborator

@tsotnet tsotnet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like the combination of get_online_config_from_type and get_online_store_from_config provides the same functionality as get_prodiver (defined in sdk/python/feast/infra/provider.py) for online stores. Can you make a more generalized methods that unifiy custom class loading potentially for all components (provider, online store, offline store, etc.)?

Something like

def get_component(config, component_type, default_component_map, init_args=None, init_kwargs=None):
    ...

Where config is the configuration object (e.g. RepoConfig or OnlineStoreConfig), component_type is a string containing either one of the default component types, or import paths, default_component_map is a map of built-in component short names to class paths (like ONLINE_CONFIG_CLASS_FOR_TYPE), and init_* parameters are for constructing the component.

For providers, you could call

provider = get_component(repo_config, repo_config.provider, PROVIDER_CLASS_FOR_TYPE, (repo_config, repo_path))

While for online stores you could call

online_store = get_component(repo_config.online_store, repo_config.online_store.type, ONLINE_CONFIG_CLASS_FOR_TYPE)

def __init__(self, module_name):
super().__init__(f"Could not import provider module '{module_name}'")
class FeastModuleImportError(Exception):
def __init__(self, module_name, module_type="provider"):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's remove the default module_type here, instead explicitly pass the module.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done in #1657

class FeastProviderClassImportError(Exception):
def __init__(self, module_name, class_name):
class FeastClassImportError(Exception):
def __init__(self, module_name, class_name, class_type="provider"):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done in #1657

def get_online_store_from_config(
online_store_config: OnlineStoreConfig,
) -> OnlineStore:
def get_online_store_from_config(online_store_config: Any,) -> OnlineStore:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: trailing comma

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the type of online_store_config be Any? Or FeastConfigBaseModel?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It has to be Any unfortunately - can't be FeastConfigBaseModel since pydantic doesn't understand or handle "subclass of type" as a type annotation.

@@ -246,6 +205,38 @@ def __repr__(self) -> str:
)


def get_online_config_from_type(online_store_type: str):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should also be in sdk/python/feast/infra/online_stores/helpers.py

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like leaving it here since it's more config-related. But happy to change if you feel strongly.

Mwad22 pushed a commit to Mwad22/feast that referenced this pull request Jul 7, 2021
* Refactor OnlineStoreConfig classes into owning modules

Signed-off-by: Achal Shah <achals@gmail.com>

* make format

Signed-off-by: Achal Shah <achals@gmail.com>

* Move redis too

Signed-off-by: Achal Shah <achals@gmail.com>

* update test_telemetery

Signed-off-by: Achal Shah <achals@gmail.com>

* add a create_repo_config method that should be called instead of RepoConfig ctor directly

Signed-off-by: Achal Shah <achals@gmail.com>

* fix the table reference in repo_operations

Signed-off-by: Achal Shah <achals@gmail.com>

* reuse create_repo_config

Signed-off-by: Achal Shah <achals@gmail.com>

Remove redis provider reference

* CR comments

Signed-off-by: Achal Shah <achals@gmail.com>

* Remove create_repo_config in favor of __init__

Signed-off-by: Achal Shah <achals@gmail.com>

* make format

Signed-off-by: Achal Shah <achals@gmail.com>

* Remove print statement

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>
feast-ci-bot pushed a commit that referenced this pull request Jul 8, 2021
…on to include feature view name in feature naming. (#1641)

* test

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* refactored existing tests to test full_feature_names feature on data retreival, added new tests also.

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* removed full_feature_names usage from quickstart and README to have more simple examples. Resolved failing tests.

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Update CHANGELOG for Feast v0.10.8

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* GitBook: [master] 2 pages modified

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Schema Inferencing should happen at apply time (#1646)

* wip1

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>

* just need to do clean up

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>

* linted

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>

* improve test coverage

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>

* changed placement of inference methods in repo_operation apply_total

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>

* updated inference method name + changed to void return since it updates in place

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>

* fixed integration test and added comments

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>

* Made DataSource event_timestamp_column optional

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* GitBook: [master] 80 pages modified

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* GitBook: [master] 80 pages modified

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Provide descriptive error on invalid table reference (#1627)

* Initial commit to catch nonexistent table

Signed-off-by: Cody Lin <codyjlin@yahoo.com>
Signed-off-by: Cody Lin <codyl@twitter.com>

* simplify nonexistent BQ table test

Signed-off-by: Cody Lin <codyl@twitter.com>

* clean up table_exists exception

Signed-off-by: Cody Lin <codyl@twitter.com>

* remove unneeded variable

Signed-off-by: Cody Lin <codyl@twitter.com>

* function name change to _assert_table_exists

Signed-off-by: Cody Lin <codyl@twitter.com>

* Initial commit to catch nonexistent table

Signed-off-by: Cody Lin <codyjlin@yahoo.com>
Signed-off-by: Cody Lin <codyl@twitter.com>

* simplify nonexistent BQ table test

Signed-off-by: Cody Lin <codyl@twitter.com>

* clean up table_exists exception

Signed-off-by: Cody Lin <codyl@twitter.com>

* function name change to _assert_table_exists

Signed-off-by: Cody Lin <codyl@twitter.com>

* fix lint errors and rebase

Signed-off-by: Cody Lin <codyl@twitter.com>

* Fix get_table(None) error

Signed-off-by: Cody Lin <codyl@twitter.com>

* custom exception for both missing file and BQ source

Signed-off-by: Cody Lin <codyl@twitter.com>

* revert FileSource checks

Signed-off-by: Cody Lin <codyl@twitter.com>

* Use DataSourceNotFoundException instead of subclassing

Signed-off-by: Cody Lin <codyl@twitter.com>

* Moved assert_table_exists out of the BQ constructor to apply_total

Signed-off-by: Cody Lin <codyl@twitter.com>

* rename test and test asset

Signed-off-by: Cody Lin <codyl@twitter.com>

* move validate logic back to data_source

Signed-off-by: Cody Lin <codyl@twitter.com>

* fixed tests

Signed-off-by: Cody Lin <codyl@twitter.com>

* Set pytest.integration for tests that access BQ

Signed-off-by: Cody Lin <codyl@twitter.com>

* Import pytest in failed test files

Signed-off-by: Cody Lin <codyl@twitter.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Refactor OnlineStoreConfig classes into owning modules (#1649)

* Refactor OnlineStoreConfig classes into owning modules

Signed-off-by: Achal Shah <achals@gmail.com>

* make format

Signed-off-by: Achal Shah <achals@gmail.com>

* Move redis too

Signed-off-by: Achal Shah <achals@gmail.com>

* update test_telemetery

Signed-off-by: Achal Shah <achals@gmail.com>

* add a create_repo_config method that should be called instead of RepoConfig ctor directly

Signed-off-by: Achal Shah <achals@gmail.com>

* fix the table reference in repo_operations

Signed-off-by: Achal Shah <achals@gmail.com>

* reuse create_repo_config

Signed-off-by: Achal Shah <achals@gmail.com>

Remove redis provider reference

* CR comments

Signed-off-by: Achal Shah <achals@gmail.com>

* Remove create_repo_config in favor of __init__

Signed-off-by: Achal Shah <achals@gmail.com>

* make format

Signed-off-by: Achal Shah <achals@gmail.com>

* Remove print statement

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Possibility to specify a project for BigQuery queries (#1656)

Signed-off-by: Matt Delacour <matt.delacour@shopify.com>

Co-authored-by: Achal Shah <achals@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Refactor OfflineStoreConfig classes into their owning modules (#1657)

* Refactor OfflineStoreConfig classes into their owning modules

Signed-off-by: Achal Shah <achals@gmail.com>

* Fix error string

Signed-off-by: Achal Shah <achals@gmail.com>

* Generic error class

Signed-off-by: Achal Shah <achals@gmail.com>

* Merge conflicts

Signed-off-by: Achal Shah <achals@gmail.com>

* make the store type work, and add a test that uses the fully qualified name of the OnlineStore

Signed-off-by: Achal Shah <achals@gmail.com>

* Address comments from previous PR

Signed-off-by: Achal Shah <achals@gmail.com>

* CR updates

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Run python unit tests in parallel (#1652)

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Rename telemetry to usage (#1660)

* Rename telemetry to usage

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

* Update docs

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

* Update .prow and infra

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

* Rename file

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

* Change url

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

* Re-add telemetry.md for backwards-compatibility

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* resolved final comments on PR (variable renaming, refactor tests)

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* reformatted after merge conflict

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Update CHANGELOG for Feast v0.11.0

Signed-off-by: Willem Pienaar <git@willem.co>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Update charts README (#1659)

Adding feast jupyter link to it.

+ Fix the helm 'feast-serving' name in aws/azure terraform.

Signed-off-by: szalai1 <szalaipeti.vagyok@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Added Redis to list of online stores for local provider in providers reference doc. (#1668)

Signed-off-by: Nel Swanepoel <c.swanepoel@ucl.ac.uk>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Grouped inferencing statements together in apply methods for easier readability (#1667)

* grouped inferencing statements together

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>

* update in testing

Signed-off-by: David Y Liu <davidyliuliu@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Add RedshiftDataSource (#1669)

* Add RedshiftDataSource

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

* Call parent __init__ first

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Provide the user with more options for setting the to_bigquery config (#1661)

* Provide more options for to_bigquery config

Signed-off-by: Cody Lin <codyl@twitter.com>

* Fix default job_config when none; remove excessive testing

Signed-off-by: Cody Lin <codyl@twitter.com>

* Add param type and docstring

Signed-off-by: Cody Lin <codyl@twitter.com>

* add docstrings and typing

Signed-off-by: Cody Lin <codyl@twitter.com>

* Apply docstring suggestions from code review

Co-authored-by: Willem Pienaar <6728866+woop@users.noreply.github.com>
Signed-off-by: Cody Lin <codyjlin@yahoomail.com>

Co-authored-by: Willem Pienaar <6728866+woop@users.noreply.github.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Add streaming sources to the FeatureView API (#1664)

* Add a streaming source to the FeatureView API

This diff only updates the API. It is currently up to the providers to actually use this information to spin up resources to consume events from the stream sources.

Signed-off-by: Achal Shah <achals@gmail.com>

* remove stuff from rebase

Signed-off-by: Achal Shah <achals@gmail.com>

* make format

Signed-off-by: Achal Shah <achals@gmail.com>

* Update protos

Signed-off-by: Achal Shah <achals@gmail.com>

* lint

Signed-off-by: Achal Shah <achals@gmail.com>

* format

Signed-off-by: Achal Shah <achals@gmail.com>

* CR

Signed-off-by: Achal Shah <achals@gmail.com>

* fix test

Signed-off-by: Achal Shah <achals@gmail.com>

* lint

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Add to_table() to RetrievalJob object (#1663)

* Add notion of OfflineJob

Signed-off-by: Matt Delacour <matt.delacour@shopify.com>

* Use RetrievalJob instead of creating a new OfflineJob object

Signed-off-by: Matt Delacour <matt.delacour@shopify.com>

* Add to_table() in integration tests

Signed-off-by: Matt Delacour <matt.delacour@shopify.com>

Co-authored-by: Tsotne Tabidze <tsotne@tecton.ai>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Rename to_table to to_arrow (#1671)

Signed-off-by: Matt Delacour <matt.delacour@shopify.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Cancel BigQuery job if timeout hits (#1672)

* Cancel BigQuery job if timedout hits

Signed-off-by: Matt Delacour <matt.delacour@shopify.com>

* Fix typo

Signed-off-by: Matt Delacour <matt.delacour@shopify.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Fix Feature References example (#1674)

Fix Feature References example by passing `entity_rows` to `get_online_features()`

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Allow strings for online/offline store instead of dicts (#1673)

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Remove default list from the FeatureView constructor (#1679)

Signed-off-by: Achal Shah <achals@gmail.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* made changes requested by @tsotnet

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Fix unit tests that got broken by Pandas 1.3.0 release (#1683)

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Add support for DynamoDB and S3 registry (#1483)

* Add support for DynamoDB and S3 registry

Signed-off-by: lblokhin <lenin133@yandex.ru>

* rcu and wcu as a parameter of dynamodb online store

Signed-off-by: lblokhin <lenin133@yandex.ru>

* fix linter

Signed-off-by: lblokhin <lenin133@yandex.ru>

* aws dependency to extras

Signed-off-by: lblokhin <lenin133@yandex.ru>

* FEAST_S3_ENDPOINT_URL

Signed-off-by: lblokhin <lenin133@yandex.ru>

* tests

Signed-off-by: lblokhin <lenin133@yandex.ru>

* fix signature, after merge

Signed-off-by: lblokhin <lenin133@yandex.ru>

* aws default region name configurable

Signed-off-by: lblokhin <lenin133@yandex.ru>

* add offlinestore config type to test

Signed-off-by: lblokhin <lenin133@yandex.ru>

* review changes

Signed-off-by: lblokhin <lenin133@yandex.ru>

* review requested changes

Signed-off-by: lblokhin <lenin133@yandex.ru>

* integration test for Dynamo

Signed-off-by: lblokhin <lenin133@yandex.ru>

* change the rest of table_name to table_instance (where table_name is actually an instance of DynamoDB Table object)

Signed-off-by: lblokhin <lenin133@yandex.ru>

* fix DynamoDBOnlineStore commit

Signed-off-by: lblokhin <lenin133@yandex.ru>

* move client to _initialize_dynamodb

Signed-off-by: lblokhin <lenin133@yandex.ru>

* rename document_id to entity_id and Row to entity_id

Signed-off-by: lblokhin <lenin133@yandex.ru>

* The default value is None

Signed-off-by: lblokhin <lenin133@yandex.ru>

* Remove Datastore from the docstring.

Signed-off-by: lblokhin <lenin133@yandex.ru>

* get rid of the return call from S3RegistryStore

Signed-off-by: lblokhin <lenin133@yandex.ru>

* merge two exceptions

Signed-off-by: lblokhin <lenin133@yandex.ru>

* For ci requirement

Signed-off-by: lblokhin <lenin133@yandex.ru>

* remove configuration from test

Signed-off-by: lblokhin <lenin133@yandex.ru>

* feast-integration-tests for tests

Signed-off-by: lblokhin <lenin133@yandex.ru>

* change test path

Signed-off-by: lblokhin <lenin133@yandex.ru>

* add fixture feature_store_with_s3_registry to test

Signed-off-by: lblokhin <lenin133@yandex.ru>

* region required

Signed-off-by: lblokhin <lenin133@yandex.ru>

* Address the rest of the comments

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

* Update to_table to to_arrow

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

Co-authored-by: Tsotne Tabidze <tsotne@tecton.ai>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Parallelize integration tests (#1684)

* Parallelize integration tests

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>

* Update the usage flag

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* BQ exception should be raised first before we check the timedout (#1675)

Signed-off-by: Matt Delacour <matt.delacour@shopify.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Update sdk/python/feast/infra/provider.py

Co-authored-by: Willem Pienaar <6728866+woop@users.noreply.github.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Update sdk/python/feast/feature_store.py

Co-authored-by: Willem Pienaar <6728866+woop@users.noreply.github.com>
Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* made error logic/messages more descriptive

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* made error logic/messages more descriptive.

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* Simplified error messages

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* ran formatter, issue in errors.py

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* python linter issues resolved

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* removed unnecessary default assignment in get_historical_features. default now set only in feature_store.py

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

* added error message assertion for feature name collisions, and other nitpick changes

Signed-off-by: Mwad22 <51929507+Mwad22@users.noreply.github.com>

Co-authored-by: David Y Liu <davidyliuliu@gmail.com>
Co-authored-by: Tsotne Tabidze <tsotne@tecton.ai>
Co-authored-by: Achal Shah <achals@gmail.com>
Co-authored-by: David Y Liu <7172604+mavysavydav@users.noreply.github.com>
Co-authored-by: Willem Pienaar <github@willem.co>
Co-authored-by: codyjlin <31944154+codyjlin@users.noreply.github.com>
Co-authored-by: Matt Delacour <MattDelac@users.noreply.github.com>
Co-authored-by: Willem Pienaar <git@willem.co>
Co-authored-by: Peter Szalai <szalaipeti.vagyok@gmail.com>
Co-authored-by: Nel Swanepoel <nels@users.noreply.github.com>
Co-authored-by: Willem Pienaar <6728866+woop@users.noreply.github.com>
Co-authored-by: Greg Kuhlmann <greg.kuhlmann@gmail.com>
Co-authored-by: Leonid <lenin133@yandex.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants