Skip to content

Commit 0dc06dc

Browse files
committed
Merged with master
Signed-off-by: David Y Liu <davidyliuliu@gmail.com>
2 parents 4ca2048 + b1ccf8d commit 0dc06dc

37 files changed

Lines changed: 1057 additions & 267 deletions

.github/workflows/integration_tests.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ jobs:
2929
steps:
3030
- uses: actions/checkout@v2
3131
- name: Setup Python
32+
id: setup-python
3233
uses: actions/setup-python@v2
3334
with:
3435
python-version: ${{ matrix.python-version }}
@@ -49,6 +50,20 @@ jobs:
4950
aws-region: us-west-2
5051
- name: Use AWS CLI
5152
run: aws sts get-caller-identity
53+
- name: Get pip cache dir
54+
id: pip-cache
55+
run: |
56+
echo "::set-output name=dir::$(pip cache dir)"
57+
- name: pip cache
58+
uses: actions/cache@v2
59+
with:
60+
path: |
61+
${{ steps.pip-cache.outputs.dir }}
62+
/opt/hostedtoolcache/Python
63+
/Users/runner/hostedtoolcache/Python
64+
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles('**/setup.py') }}
65+
restore-keys: |
66+
${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-
5267
- name: Install dependencies
5368
run: make install-python-ci-dependencies
5469
- name: Test python

.github/workflows/linter.yml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,29 @@ on: [push, pull_request]
44

55
jobs:
66
lint-python:
7-
container: python:3.7
87
runs-on: [ubuntu-latest]
98
steps:
109
- uses: actions/checkout@v2
10+
- name: Setup Python
11+
id: setup-python
12+
uses: actions/setup-python@v2
13+
with:
14+
python-version: "3.7"
15+
architecture: x64
16+
- name: Get pip cache dir
17+
id: pip-cache
18+
run: |
19+
echo "::set-output name=dir::$(pip cache dir)"
20+
- name: pip cache
21+
uses: actions/cache@v2
22+
with:
23+
path: |
24+
${{ steps.pip-cache.outputs.dir }}
25+
/opt/hostedtoolcache/Python
26+
/Users/runner/hostedtoolcache/Python
27+
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles('**/setup.py') }}
28+
restore-keys: |
29+
${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-
1130
- name: Install dependencies
1231
run: make install-python-ci-dependencies
1332
- name: Lint python

.github/workflows/pr_integration_tests.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ jobs:
4141
submodules: recursive
4242
- name: Setup Python
4343
uses: actions/setup-python@v2
44+
id: setup-python
4445
with:
4546
python-version: ${{ matrix.python-version }}
4647
architecture: x64
@@ -60,6 +61,20 @@ jobs:
6061
aws-region: us-west-2
6162
- name: Use AWS CLI
6263
run: aws sts get-caller-identity
64+
- name: Get pip cache dir
65+
id: pip-cache
66+
run: |
67+
echo "::set-output name=dir::$(pip cache dir)"
68+
- name: pip cache
69+
uses: actions/cache@v2
70+
with:
71+
path: |
72+
${{ steps.pip-cache.outputs.dir }}
73+
/opt/hostedtoolcache/Python
74+
/Users/runner/hostedtoolcache/Python
75+
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles('**/setup.py') }}
76+
restore-keys: |
77+
${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-
6378
- name: Install dependencies
6479
run: make install-python-ci-dependencies
6580
- name: Test python

.github/workflows/unit_tests.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,25 @@ jobs:
1515
steps:
1616
- uses: actions/checkout@v2
1717
- name: Setup Python
18+
id: setup-python
1819
uses: actions/setup-python@v2
1920
with:
2021
python-version: ${{ matrix.python-version }}
2122
architecture: x64
23+
- name: Get pip cache dir
24+
id: pip-cache
25+
run: |
26+
echo "::set-output name=dir::$(pip cache dir)"
27+
- name: pip cache
28+
uses: actions/cache@v2
29+
with:
30+
path: |
31+
${{ steps.pip-cache.outputs.dir }}
32+
/opt/hostedtoolcache/Python
33+
/Users/runner/hostedtoolcache/Python
34+
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles('**/setup.py') }}
35+
restore-keys: |
36+
${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-
2237
- name: Install dependencies
2338
run: make install-python-ci-dependencies
2439
- name: Test Python

Makefile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,26 @@ install-python:
5353
python -m pip install -e sdk/python -U --use-deprecated=legacy-resolver
5454

5555
benchmark-python:
56-
FEAST_USAGE=False IS_TEST=True pytest --integration --benchmark --benchmark-autosave --benchmark-save-data sdk/python/tests
56+
FEAST_USAGE=False IS_TEST=True python -m pytest --integration --benchmark --benchmark-autosave --benchmark-save-data sdk/python/tests
5757

5858
test-python:
59-
FEAST_USAGE=False IS_TEST=True pytest -n 8 sdk/python/tests
59+
FEAST_USAGE=False IS_TEST=True python -m pytest -n 8 sdk/python/tests
6060

6161
test-python-integration:
62-
FEAST_USAGE=False IS_TEST=True pytest -n 8 --integration sdk/python/tests
62+
FEAST_USAGE=False IS_TEST=True python -m pytest -n 8 --integration sdk/python/tests
6363

6464
format-python:
6565
# Sort
66-
cd ${ROOT_DIR}/sdk/python; isort feast/ tests/
66+
cd ${ROOT_DIR}/sdk/python; python -m isort feast/ tests/
6767

6868
# Format
69-
cd ${ROOT_DIR}/sdk/python; black --target-version py37 feast tests
69+
cd ${ROOT_DIR}/sdk/python; python -m black --target-version py37 feast tests
7070

7171
lint-python:
72-
cd ${ROOT_DIR}/sdk/python; mypy feast/ tests/
73-
cd ${ROOT_DIR}/sdk/python; isort feast/ tests/ --check-only
74-
cd ${ROOT_DIR}/sdk/python; flake8 feast/ tests/
75-
cd ${ROOT_DIR}/sdk/python; black --check feast tests
72+
cd ${ROOT_DIR}/sdk/python; python -m mypy feast/ tests/
73+
cd ${ROOT_DIR}/sdk/python; python -m isort feast/ tests/ --check-only
74+
cd ${ROOT_DIR}/sdk/python; python -m flake8 feast/ tests/
75+
cd ${ROOT_DIR}/sdk/python; python -m black --check feast tests
7676

7777
# Go SDK
7878

docs/getting-started/quickstart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ In this tutorial, we use feature stores to generate training data and power onli
2222
* Feast manages deployment to a variety of online stores \(e.g. DynamoDB, Redis, Google Cloud Datastore\) and ensures necessary features are consistently _available_ and _freshly computed_ at inference time.
2323
3. **Feature reusability and model versioning:** Different teams within an organization are often unable to reuse features across projects, resulting in duplicate feature creation logic. Models have data dependencies that need to be versioned, for example when running A/B tests on model versions.
2424
* Feast enables discovery of and collaboration on previously used features and enables versioning of sets of features \(via _feature services_\).
25-
* _\*Upcoming_: Feast enables feature transformation so users can re-use transformation logic across online / offline usecases and across models.
25+
* Feast enables feature transformation so users can re-use transformation logic across online / offline usecases and across models.
2626

2727
## Step 1: Install Feast
2828

protos/feast/core/FeatureService.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ message FeatureServiceSpec {
2323
// Name of Feast project that this Feature Service belongs to.
2424
string project = 2;
2525

26-
// List of features that this feature service encapsulates.
27-
// Stored as a list of references to other features views and the features from those views.
26+
// Represents a projection that's to be applied on top of the FeatureView.
27+
// Contains data such as the features to use from a FeatureView.
2828
repeated FeatureViewProjection features = 3;
2929

3030
// User defined metadata

protos/feast/core/FeatureViewProjection.proto

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ option java_package = "feast.proto.core";
88
import "feast/core/Feature.proto";
99

1010

11-
// A reference to features in a feature view
11+
// A projection to be applied on top of a FeatureView.
12+
// Contains the modifications to a FeatureView such as the features subset to use.
1213
message FeatureViewProjection {
1314
// The feature view name
1415
string feature_view_name = 1;

sdk/python/docs/index.rst

Lines changed: 111 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ Feature Store
77

88
.. automodule:: feast.feature_store
99
:members:
10+
:undoc-members:
11+
:show-inheritance:
1012

1113
Config
1214
==================
@@ -22,24 +24,131 @@ Data Source
2224
:members:
2325
:exclude-members: KafkaOptions, KafkaSource, KinesisOptions, KinesisSource
2426

25-
2627
Entity
2728
==================
2829

2930
.. automodule:: feast.entity
3031
:inherited-members:
3132
:members:
3233

33-
3434
Feature View
3535
==================
3636

3737
.. automodule:: feast.feature_view
3838
:members:
3939

40+
On Demand Feature View
41+
==================
42+
43+
.. automodule:: feast.on_demand_feature_view
44+
:members:
45+
4046
Feature
4147
==================
4248

4349
.. automodule:: feast.feature
4450
:inherited-members:
4551
:members:
52+
53+
Feature Service
54+
==================
55+
56+
.. automodule:: feast.feature_service
57+
:inherited-members:
58+
:members:
59+
60+
Registry
61+
==================
62+
63+
.. automodule:: feast.registry
64+
:inherited-members:
65+
:members:
66+
67+
Provider
68+
==================
69+
70+
.. automodule:: feast.infra.provider
71+
:inherited-members:
72+
:members:
73+
74+
Passthrough Provider
75+
------------------
76+
77+
.. automodule:: feast.infra.passthrough_provider
78+
:members:
79+
80+
Local Provider
81+
------------------
82+
83+
.. automodule:: feast.infra.local
84+
:members:
85+
:exclude-members: LocalRegistryStore
86+
87+
GCP Provider
88+
------------------
89+
90+
.. automodule:: feast.infra.gcp
91+
:members:
92+
:exclude-members: GCSRegistryStore
93+
94+
AWS Provider
95+
------------------
96+
97+
.. automodule:: feast.infra.aws
98+
:members:
99+
:exclude-members: S3RegistryStore
100+
101+
Offline Store
102+
==================
103+
104+
.. automodule:: feast.infra.offline_stores.offline_store
105+
:members:
106+
107+
File Offline Store
108+
------------------
109+
110+
.. automodule:: feast.infra.offline_stores.file
111+
:members:
112+
113+
BigQuery Offline Store
114+
------------------
115+
116+
.. automodule:: feast.infra.offline_stores.bigquery
117+
:members:
118+
119+
Redshift Offline Store
120+
------------------
121+
122+
.. automodule:: feast.infra.offline_stores.redshift
123+
:members:
124+
125+
Online Store
126+
==================
127+
128+
.. automodule:: feast.infra.online_stores.online_store
129+
:inherited-members:
130+
:members:
131+
132+
Sqlite Online Store
133+
------------------
134+
135+
.. automodule:: feast.infra.online_stores.sqlite
136+
:members:
137+
138+
Datastore Online Store
139+
------------------
140+
141+
.. automodule:: feast.infra.online_stores.datastore
142+
:members:
143+
144+
DynamoDB Online Store
145+
------------------
146+
147+
.. automodule:: feast.infra.online_stores.dynamodb
148+
:members:
149+
150+
Redis Online Store
151+
------------------
152+
153+
.. automodule:: feast.infra.online_stores.redis
154+
:members:

0 commit comments

Comments
 (0)