From b8bc6d73c12a9e07c34d3412987708be596e033b Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 18 Sep 2024 03:40:29 +0000 Subject: [PATCH 01/12] fix: grpc import error Signed-off-by: tokoko --- .github/workflows/smoke_tests.yml | 38 +++++++++++++++++++++++++++++++ Makefile | 15 ++++++++++++ sdk/python/feast/errors.py | 12 ++++++---- 3 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/smoke_tests.yml diff --git a/.github/workflows/smoke_tests.yml b/.github/workflows/smoke_tests.yml new file mode 100644 index 00000000000..a8d4c3bae50 --- /dev/null +++ b/.github/workflows/smoke_tests.yml @@ -0,0 +1,38 @@ +name: smoke-tests + +on: [pull_request] +jobs: + unit-test-python: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: [ "3.9", "3.10", "3.11"] + os: [ ubuntu-latest ] + env: + OS: ${{ matrix.os }} + PYTHON: ${{ matrix.python-version }} + steps: + - uses: actions/checkout@v4 + - name: Setup Python + id: setup-python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + - name: Install uv + run: | + curl -LsSf https://astral.sh/uv/install.sh | sh + - name: Get uv cache dir + id: uv-cache + run: | + echo "::set-output name=dir::$(uv cache dir)" + - name: uv cache + uses: actions/cache@v4 + with: + path: ${{ steps.uv-cache.outputs.dir }} + key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} + - name: Install dependencies + run: make install-python-dependencies-uv + - name: Test Imports + run: pixi run python -c "from feast import cli" \ No newline at end of file diff --git a/Makefile b/Makefile index 78a0b6d3285..924724bc9e8 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,21 @@ build: protos build-java build-docker # Python SDK +install-python-dependencies: + python -m piptools sync sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt + pip install --no-deps . + python setup.py build_python_protos --inplace + +install-python-dependencies-uv: + uv pip sync --system sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt + uv pip install --system --no-deps . + python setup.py build_python_protos --inplace + +install-python-dependencies-uv-venv: + uv pip sync sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt + uv pip install --no-deps . + python setup.py build_python_protos --inplace + install-python-ci-dependencies: python -m piptools sync sdk/python/requirements/py$(PYTHON_VERSION)-ci-requirements.txt pip install --no-deps -e . diff --git a/sdk/python/feast/errors.py b/sdk/python/feast/errors.py index 4dbb220c1ef..3665a023616 100644 --- a/sdk/python/feast/errors.py +++ b/sdk/python/feast/errors.py @@ -1,11 +1,13 @@ import importlib import json import logging -from typing import Any, List, Optional, Set +from typing import TYPE_CHECKING, Any, List, Optional, Set from colorama import Fore, Style from fastapi import status as HttpStatusCode -from grpc import StatusCode as GrpcStatusCode + +if TYPE_CHECKING: + from grpc import StatusCode as GrpcStatusCode from feast.field import Field @@ -15,7 +17,7 @@ class FeastError(Exception): pass - def grpc_status_code(self) -> GrpcStatusCode: + def grpc_status_code(self) -> "GrpcStatusCode": return GrpcStatusCode.INTERNAL def http_status_code(self) -> int: @@ -89,7 +91,7 @@ def __init__(self, ds_name: str): class FeastObjectNotFoundException(FeastError): pass - def grpc_status_code(self) -> GrpcStatusCode: + def grpc_status_code(self) -> "GrpcStatusCode": return GrpcStatusCode.NOT_FOUND def http_status_code(self) -> int: @@ -504,7 +506,7 @@ class FeastPermissionError(FeastError, PermissionError): def __init__(self, details: str): super().__init__(f"Permission error:\n{details}") - def grpc_status_code(self) -> GrpcStatusCode: + def grpc_status_code(self) -> "GrpcStatusCode": return GrpcStatusCode.PERMISSION_DENIED def http_status_code(self) -> int: From 7dd19bb64d91eca3d4d22dd5b7f5108979773206 Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 18 Sep 2024 03:49:36 +0000 Subject: [PATCH 02/12] fix: loosen protobuf build requirement Signed-off-by: tokoko --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d412541b7d5..e0c7aff0ced 100644 --- a/setup.py +++ b/setup.py @@ -405,7 +405,7 @@ def run(self): "grpcio-tools>=1.56.2,<2", "grpcio>=1.56.2,<2", "mypy-protobuf==3.1", - "protobuf==4.24.0", + "protobuf>=4.24.0,<5.0.0", "pybindgen==0.22.0", "setuptools_scm>=6.2", ], From ce3b89f21e210e853833f8f889b5adf0225ddc76 Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 18 Sep 2024 06:04:05 +0000 Subject: [PATCH 03/12] fix: pin grpcio-tools version Signed-off-by: tokoko --- .devcontainer/devcontainer.json | 4 +- pyproject.toml | 14 -- .../requirements/py3.10-ci-requirements.txt | 151 ++---------------- .../requirements/py3.10-requirements.txt | 43 +---- .../requirements/py3.11-ci-requirements.txt | 151 ++---------------- .../requirements/py3.11-requirements.txt | 43 +---- .../requirements/py3.9-ci-requirements.txt | 151 ++---------------- .../requirements/py3.9-requirements.txt | 43 +---- setup.py | 4 +- 9 files changed, 73 insertions(+), 531 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 04fcbb00aab..1b15dcf882a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -17,13 +17,13 @@ "ghcr.io/devcontainers-contrib/features/maven-sdkman:2": { "jdkVersion": "11.0.24-amzn" } - }, + } // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], // Uncomment the next line to run commands after the container is created. - "postCreateCommand": "make install-python-ci-dependencies-uv-venv" + // "postCreateCommand": "make install-python-ci-dependencies-uv-venv" // Configure tool-specific properties. // "customizations": {}, diff --git a/pyproject.toml b/pyproject.toml index 15921e633cd..31cbead1866 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,3 @@ -[build-system] -requires = [ - "grpcio-tools>=1.56.2,<2", - "grpcio>=1.56.2,<2", - "mypy-protobuf==3.1", - "protobuf==4.24.0", - "pybindgen==0.22.0", - "setuptools>=60", - "setuptools_scm>=6.2", - "sphinx!=4.0.0", - "wheel", -] -build-backend = "setuptools.build_meta" - [tool.setuptools_scm] # Including this section is comparable to supplying use_scm_version=True in setup.py. diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 55df7ccb68c..951e5c8d76c 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -1,7 +1,6 @@ # This file was autogenerated by uv via the following command: # uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.10-ci-requirements.txt aiobotocore==2.15.0 - # via feast (setup.py) aiohappyeyeballs==2.4.0 # via aiohttp aiohttp==3.10.5 @@ -22,8 +21,6 @@ anyio==4.4.0 # jupyter-server # starlette # watchfiles -appnope==0.1.4 - # via ipykernel argon2-cffi==23.1.0 # via jupyter-server argon2-cffi-bindings==21.2.0 @@ -33,7 +30,6 @@ arrow==1.3.0 asn1crypto==1.5.1 # via snowflake-connector-python assertpy==1.1 - # via feast (setup.py) asttokens==2.4.1 # via stack-data async-lru==2.0.4 @@ -56,9 +52,7 @@ azure-core==1.30.2 # azure-identity # azure-storage-blob azure-identity==1.17.1 - # via feast (setup.py) azure-storage-blob==12.22.0 - # via feast (setup.py) babel==2.16.0 # via # jupyterlab-server @@ -66,13 +60,10 @@ babel==2.16.0 beautifulsoup4==4.12.3 # via nbconvert bigtree==0.21.1 - # via feast (setup.py) bleach==6.1.0 # via nbconvert boto3==1.35.16 - # via - # feast (setup.py) - # moto + # via moto botocore==1.35.16 # via # aiobotocore @@ -81,13 +72,11 @@ botocore==1.35.16 # s3transfer build==1.2.2 # via - # feast (setup.py) # pip-tools # singlestoredb cachetools==5.5.0 # via google-auth cassandra-driver==3.29.2 - # via feast (setup.py) certifi==2024.8.30 # via # elastic-transport @@ -110,7 +99,6 @@ charset-normalizer==3.3.2 # snowflake-connector-python click==8.1.7 # via - # feast (setup.py) # dask # geomet # great-expectations @@ -119,9 +107,7 @@ click==8.1.7 cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via - # feast (setup.py) - # great-expectations + # via great-expectations comm==0.2.2 # via # ipykernel @@ -130,7 +116,6 @@ coverage[toml]==7.6.1 # via pytest-cov cryptography==42.0.8 # via - # feast (setup.py) # azure-identity # azure-storage-blob # great-expectations @@ -145,9 +130,7 @@ cryptography==42.0.8 cython==3.0.11 # via thriftpy2 dask[dataframe]==2024.8.2 - # via - # feast (setup.py) - # dask-expr + # via dask-expr dask-expr==1.1.13 # via dask db-dtypes==1.3.0 @@ -159,11 +142,9 @@ decorator==5.1.1 defusedxml==0.7.1 # via nbconvert deltalake==0.19.2 - # via feast (setup.py) deprecation==2.1.0 # via python-keycloak dill==0.3.8 - # via feast (setup.py) distlib==0.3.8 # via virtualenv docker==7.1.0 @@ -175,7 +156,6 @@ duckdb==1.1.0 elastic-transport==8.15.0 # via elasticsearch elasticsearch==8.15.1 - # via feast (setup.py) entrypoints==0.4 # via altair exceptiongroup==1.2.2 @@ -188,7 +168,6 @@ execnet==2.1.1 executing==2.1.0 # via stack-data fastapi==0.114.1 - # via feast (setup.py) fastjsonschema==2.20.0 # via nbformat filelock==3.16.0 @@ -202,14 +181,11 @@ frozenlist==1.4.1 # aiohttp # aiosignal fsspec==2024.9.0 - # via - # feast (setup.py) - # dask + # via dask geomet==0.2.1.post1 # via cassandra-driver google-api-core[grpc]==2.19.2 # via - # feast (setup.py) # google-cloud-bigquery # google-cloud-bigquery-storage # google-cloud-bigtable @@ -227,11 +203,8 @@ google-auth==2.34.0 # google-cloud-storage # kubernetes google-cloud-bigquery[pandas]==3.25.0 - # via feast (setup.py) google-cloud-bigquery-storage==2.26.0 - # via feast (setup.py) google-cloud-bigtable==2.26.0 - # via feast (setup.py) google-cloud-core==2.4.1 # via # google-cloud-bigquery @@ -239,9 +212,7 @@ google-cloud-core==2.4.1 # google-cloud-datastore # google-cloud-storage google-cloud-datastore==2.20.1 - # via feast (setup.py) google-cloud-storage==2.18.2 - # via feast (setup.py) google-crc32c==1.6.0 # via # google-cloud-storage @@ -252,17 +223,16 @@ google-resumable-media==2.7.2 # google-cloud-storage googleapis-common-protos[grpc]==1.65.0 # via - # feast (setup.py) # google-api-core # grpc-google-iam-v1 # grpcio-status great-expectations==0.18.20 - # via feast (setup.py) +greenlet==3.1.0 + # via sqlalchemy grpc-google-iam-v1==0.13.1 # via google-cloud-bigtable grpcio==1.66.1 # via - # feast (setup.py) # google-api-core # googleapis-common-protos # grpc-google-iam-v1 @@ -272,42 +242,30 @@ grpcio==1.66.1 # grpcio-testing # grpcio-tools grpcio-health-checking==1.62.3 - # via feast (setup.py) grpcio-reflection==1.62.3 - # via feast (setup.py) grpcio-status==1.62.3 # via google-api-core grpcio-testing==1.62.3 - # via feast (setup.py) -grpcio-tools==1.62.3 - # via feast (setup.py) +grpcio-tools==1.56.2 gunicorn==23.0.0 - # via feast (setup.py) h11==0.14.0 # via # httpcore # uvicorn happybase==1.2.0 - # via feast (setup.py) hazelcast-python-client==5.5.0 - # via feast (setup.py) hiredis==2.4.0 - # via feast (setup.py) httpcore==1.0.5 # via httpx httptools==0.6.1 # via uvicorn httpx==0.27.2 # via - # feast (setup.py) # jupyterlab # python-keycloak ibis-framework[duckdb]==9.4.0 - # via - # feast (setup.py) - # ibis-substrait + # via ibis-substrait ibis-substrait==4.0.1 - # via feast (setup.py) identify==2.6.0 # via pre-commit idna==3.8 @@ -341,7 +299,6 @@ jedi==0.19.1 # via ipython jinja2==3.1.4 # via - # feast (setup.py) # altair # great-expectations # jupyter-server @@ -364,7 +321,6 @@ jsonpointer==3.0.0 # jsonschema jsonschema[format-nongpl]==4.23.0 # via - # feast (setup.py) # altair # great-expectations # jupyter-events @@ -412,7 +368,6 @@ jupyterlab-widgets==3.0.13 jwcrypto==1.5.6 # via python-keycloak kubernetes==20.13.0 - # via feast (setup.py) locket==1.0.0 # via partd makefun==1.15.4 @@ -433,17 +388,13 @@ matplotlib-inline==0.1.7 mdurl==0.1.2 # via markdown-it-py minio==7.1.0 - # via feast (setup.py) mistune==3.0.2 # via # great-expectations # nbconvert mmh3==4.1.0 - # via feast (setup.py) mock==2.0.0 - # via feast (setup.py) moto==4.2.14 - # via feast (setup.py) msal==1.31.0 # via # azure-identity @@ -455,13 +406,10 @@ multidict==6.1.0 # aiohttp # yarl mypy==1.11.2 - # via - # feast (setup.py) - # sqlalchemy + # via sqlalchemy mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.3.0 - # via feast (setup.py) nbclient==0.10.0 # via nbconvert nbconvert==7.16.4 @@ -484,7 +432,6 @@ notebook-shim==0.2.4 # notebook numpy==1.26.4 # via - # feast (setup.py) # altair # dask # db-dtypes @@ -518,7 +465,6 @@ packaging==24.1 # sphinx pandas==2.2.2 # via - # feast (setup.py) # altair # dask # dask-expr @@ -544,7 +490,6 @@ pexpect==4.9.0 pip==24.2 # via pip-tools pip-tools==7.4.1 - # via feast (setup.py) platformdirs==3.11.0 # via # jupyter-core @@ -557,11 +502,8 @@ ply==3.11 portalocker==2.10.1 # via msal-extensions pre-commit==3.3.1 - # via feast (setup.py) prometheus-client==0.20.0 - # via - # feast (setup.py) - # jupyter-server + # via jupyter-server prompt-toolkit==3.0.47 # via ipython proto-plus==1.24.0 @@ -572,7 +514,6 @@ proto-plus==1.24.0 # google-cloud-datastore protobuf==4.25.4 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable @@ -588,11 +529,8 @@ protobuf==4.25.4 # proto-plus # substrait psutil==5.9.0 - # via - # feast (setup.py) - # ipykernel + # via ipykernel psycopg[binary, pool]==3.2.1 - # via feast (setup.py) psycopg-binary==3.2.1 # via psycopg psycopg-pool==3.2.2 @@ -604,14 +542,12 @@ ptyprocess==0.7.0 pure-eval==0.2.3 # via stack-data py==1.11.0 - # via feast (setup.py) py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.7 # via pyspark pyarrow==17.0.0 # via - # feast (setup.py) # dask-expr # db-dtypes # deltalake @@ -627,35 +563,28 @@ pyasn1==0.6.1 pyasn1-modules==0.4.1 # via google-auth pybindgen==0.22.1 - # via feast (setup.py) pycparser==2.22 # via cffi pydantic==2.9.1 # via - # feast (setup.py) # fastapi # great-expectations pydantic-core==2.23.3 # via pydantic pygments==2.18.0 # via - # feast (setup.py) # ipython # nbconvert # rich # sphinx pyjwt[crypto]==2.9.0 # via - # feast (setup.py) # msal # singlestoredb # snowflake-connector-python pymssql==2.3.1 - # via feast (setup.py) pymysql==1.1.1 - # via feast (setup.py) pyodbc==5.1.0 - # via feast (setup.py) pyopenssl==24.2.1 # via snowflake-connector-python pyparsing==3.1.4 @@ -665,10 +594,8 @@ pyproject-hooks==1.1.0 # build # pip-tools pyspark==3.5.2 - # via feast (setup.py) pytest==7.4.4 # via - # feast (setup.py) # pytest-benchmark # pytest-cov # pytest-env @@ -678,21 +605,13 @@ pytest==7.4.4 # pytest-timeout # pytest-xdist pytest-benchmark==3.4.1 - # via feast (setup.py) pytest-cov==5.0.0 - # via feast (setup.py) pytest-env==1.1.3 - # via feast (setup.py) pytest-lazy-fixture==0.6.3 - # via feast (setup.py) pytest-mock==1.10.4 - # via feast (setup.py) pytest-ordering==0.6 - # via feast (setup.py) pytest-timeout==1.4.2 - # via feast (setup.py) pytest-xdist==3.6.1 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via # arrow @@ -710,7 +629,6 @@ python-dotenv==1.0.1 python-json-logger==2.0.7 # via jupyter-events python-keycloak==4.2.2 - # via feast (setup.py) pytz==2024.2 # via # great-expectations @@ -720,7 +638,6 @@ pytz==2024.2 # trino pyyaml==6.0.2 # via - # feast (setup.py) # dask # ibis-substrait # jupyter-events @@ -734,19 +651,15 @@ pyzmq==26.2.0 # jupyter-client # jupyter-server redis==4.6.0 - # via feast (setup.py) referencing==0.35.1 # via # jsonschema # jsonschema-specifications # jupyter-events regex==2024.7.24 - # via - # feast (setup.py) - # parsimonious + # via parsimonious requests==2.32.3 # via - # feast (setup.py) # azure-core # docker # google-api-core @@ -792,7 +705,6 @@ ruamel-yaml==0.17.40 ruamel-yaml-clib==0.2.8 # via ruamel-yaml ruff==0.6.4 - # via feast (setup.py) s3transfer==0.10.2 # via boto3 scipy==1.14.1 @@ -807,7 +719,6 @@ setuptools==74.1.2 # pip-tools # singlestoredb singlestoredb==1.6.3 - # via feast (setup.py) six==1.16.0 # via # asttokens @@ -828,13 +739,11 @@ sniffio==1.3.1 snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==3.12.1 - # via feast (setup.py) sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.6 # via beautifulsoup4 sphinx==6.2.1 - # via feast (setup.py) sphinxcontrib-applehelp==2.0.0 # via sphinx sphinxcontrib-devhelp==2.0.0 @@ -848,11 +757,9 @@ sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 # via sphinx sqlalchemy[mypy]==2.0.34 - # via feast (setup.py) sqlglot==25.18.0 # via ibis-framework sqlite-vec==0.1.1 - # via feast (setup.py) sqlparams==6.1.0 # via singlestoredb stack-data==0.6.3 @@ -862,21 +769,17 @@ starlette==0.38.5 substrait==0.22.0 # via ibis-substrait tabulate==0.9.0 - # via feast (setup.py) tenacity==8.5.0 - # via feast (setup.py) terminado==0.18.1 # via # jupyter-server # jupyter-server-terminals testcontainers==4.4.0 - # via feast (setup.py) thriftpy2==0.5.2 # via happybase tinycss2==1.3.0 # via nbconvert toml==0.10.2 - # via feast (setup.py) tomli==2.0.1 # via # build @@ -904,9 +807,7 @@ tornado==6.4.1 # notebook # terminado tqdm==4.66.5 - # via - # feast (setup.py) - # great-expectations + # via great-expectations traitlets==5.14.3 # via # comm @@ -923,37 +824,23 @@ traitlets==5.14.3 # nbconvert # nbformat trino==0.329.0 - # via feast (setup.py) typeguard==4.3.0 - # via feast (setup.py) types-cffi==1.16.0.20240331 # via types-pyopenssl types-protobuf==3.19.22 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf types-pymysql==1.1.0.20240524 - # via feast (setup.py) types-pyopenssl==24.1.0.20240722 # via types-redis types-python-dateutil==2.9.0.20240906 - # via - # feast (setup.py) - # arrow + # via arrow types-pytz==2024.1.0.20240417 - # via feast (setup.py) types-pyyaml==6.0.12.20240808 - # via feast (setup.py) types-redis==4.6.0.20240903 - # via feast (setup.py) types-requests==2.30.0.0 - # via feast (setup.py) types-setuptools==74.1.0.20240907 - # via - # feast (setup.py) - # types-cffi + # via types-cffi types-tabulate==0.9.0.20240106 - # via feast (setup.py) types-urllib3==1.26.25.14 # via types-requests typing-extensions==4.12.2 @@ -989,7 +876,6 @@ uri-template==1.3.0 # via jsonschema urllib3==2.2.2 # via - # feast (setup.py) # botocore # docker # elastic-transport @@ -1000,13 +886,10 @@ urllib3==2.2.2 # responses # testcontainers uvicorn[standard]==0.30.6 - # via feast (setup.py) uvloop==0.20.0 # via uvicorn virtualenv==20.23.0 - # via - # feast (setup.py) - # pre-commit + # via pre-commit watchfiles==0.24.0 # via uvicorn wcwidth==0.2.13 diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index 3420c8a0e30..8eb72e8c1f2 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -11,36 +11,30 @@ attrs==24.2.0 # jsonschema # referencing bigtree==0.21.1 - # via feast (setup.py) certifi==2024.8.30 # via requests charset-normalizer==3.3.2 # via requests click==8.1.7 # via - # feast (setup.py) # dask # uvicorn cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via feast (setup.py) dask[dataframe]==2024.8.2 - # via - # feast (setup.py) - # dask-expr + # via dask-expr dask-expr==1.1.13 # via dask dill==0.3.8 - # via feast (setup.py) exceptiongroup==1.2.2 # via anyio fastapi==0.114.1 - # via feast (setup.py) fsspec==2024.9.0 # via dask +greenlet==3.1.0 + # via sqlalchemy gunicorn==23.0.0 - # via feast (setup.py) h11==0.14.0 # via uvicorn httptools==0.6.1 @@ -52,9 +46,7 @@ idna==3.8 importlib-metadata==8.5.0 # via dask jinja2==3.1.4 - # via feast (setup.py) jsonschema==4.23.0 - # via feast (setup.py) jsonschema-specifications==2023.12.1 # via jsonschema locket==1.0.0 @@ -62,16 +54,13 @@ locket==1.0.0 markupsafe==2.1.5 # via jinja2 mmh3==4.1.0 - # via feast (setup.py) mypy==1.11.2 # via sqlalchemy mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.6.0 - # via feast (setup.py) numpy==1.26.4 # via - # feast (setup.py) # dask # pandas # pyarrow @@ -81,33 +70,22 @@ packaging==24.1 # gunicorn pandas==2.2.2 # via - # feast (setup.py) # dask # dask-expr partd==1.4.2 # via dask prometheus-client==0.20.0 - # via feast (setup.py) protobuf==4.25.4 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf psutil==6.0.0 - # via feast (setup.py) pyarrow==17.0.0 - # via - # feast (setup.py) - # dask-expr + # via dask-expr pydantic==2.9.1 - # via - # feast (setup.py) - # fastapi + # via fastapi pydantic-core==2.23.3 # via pydantic pygments==2.18.0 - # via feast (setup.py) pyjwt==2.9.0 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via pandas python-dotenv==1.0.1 @@ -116,7 +94,6 @@ pytz==2024.2 # via pandas pyyaml==6.0.2 # via - # feast (setup.py) # dask # uvicorn referencing==0.35.1 @@ -124,7 +101,6 @@ referencing==0.35.1 # jsonschema # jsonschema-specifications requests==2.32.3 - # via feast (setup.py) rpds-py==0.20.0 # via # jsonschema @@ -134,15 +110,11 @@ six==1.16.0 sniffio==1.3.1 # via anyio sqlalchemy[mypy]==2.0.34 - # via feast (setup.py) starlette==0.38.5 # via fastapi tabulate==0.9.0 - # via feast (setup.py) tenacity==8.5.0 - # via feast (setup.py) toml==0.10.2 - # via feast (setup.py) tomli==2.0.1 # via mypy toolz==0.12.1 @@ -150,9 +122,7 @@ toolz==0.12.1 # dask # partd tqdm==4.66.5 - # via feast (setup.py) typeguard==4.3.0 - # via feast (setup.py) types-protobuf==5.27.0.20240907 # via mypy-protobuf typing-extensions==4.12.2 @@ -170,7 +140,6 @@ tzdata==2024.1 urllib3==2.2.2 # via requests uvicorn[standard]==0.30.6 - # via feast (setup.py) uvloop==0.20.0 # via uvicorn watchfiles==0.24.0 diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index 6c5fb02e06b..3e7439d367e 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -1,7 +1,6 @@ # This file was autogenerated by uv via the following command: # uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.11-ci-requirements.txt aiobotocore==2.15.0 - # via feast (setup.py) aiohappyeyeballs==2.4.0 # via aiohttp aiohttp==3.10.5 @@ -22,8 +21,6 @@ anyio==4.4.0 # jupyter-server # starlette # watchfiles -appnope==0.1.4 - # via ipykernel argon2-cffi==23.1.0 # via jupyter-server argon2-cffi-bindings==21.2.0 @@ -33,7 +30,6 @@ arrow==1.3.0 asn1crypto==1.5.1 # via snowflake-connector-python assertpy==1.1 - # via feast (setup.py) asttokens==2.4.1 # via stack-data async-lru==2.0.4 @@ -52,9 +48,7 @@ azure-core==1.30.2 # azure-identity # azure-storage-blob azure-identity==1.17.1 - # via feast (setup.py) azure-storage-blob==12.22.0 - # via feast (setup.py) babel==2.16.0 # via # jupyterlab-server @@ -62,13 +56,10 @@ babel==2.16.0 beautifulsoup4==4.12.3 # via nbconvert bigtree==0.21.1 - # via feast (setup.py) bleach==6.1.0 # via nbconvert boto3==1.35.16 - # via - # feast (setup.py) - # moto + # via moto botocore==1.35.16 # via # aiobotocore @@ -77,13 +68,11 @@ botocore==1.35.16 # s3transfer build==1.2.2 # via - # feast (setup.py) # pip-tools # singlestoredb cachetools==5.5.0 # via google-auth cassandra-driver==3.29.2 - # via feast (setup.py) certifi==2024.8.30 # via # elastic-transport @@ -106,7 +95,6 @@ charset-normalizer==3.3.2 # snowflake-connector-python click==8.1.7 # via - # feast (setup.py) # dask # geomet # great-expectations @@ -115,9 +103,7 @@ click==8.1.7 cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via - # feast (setup.py) - # great-expectations + # via great-expectations comm==0.2.2 # via # ipykernel @@ -126,7 +112,6 @@ coverage[toml]==7.6.1 # via pytest-cov cryptography==42.0.8 # via - # feast (setup.py) # azure-identity # azure-storage-blob # great-expectations @@ -141,9 +126,7 @@ cryptography==42.0.8 cython==3.0.11 # via thriftpy2 dask[dataframe]==2024.8.2 - # via - # feast (setup.py) - # dask-expr + # via dask-expr dask-expr==1.1.13 # via dask db-dtypes==1.3.0 @@ -155,11 +138,9 @@ decorator==5.1.1 defusedxml==0.7.1 # via nbconvert deltalake==0.19.2 - # via feast (setup.py) deprecation==2.1.0 # via python-keycloak dill==0.3.8 - # via feast (setup.py) distlib==0.3.8 # via virtualenv docker==7.1.0 @@ -171,7 +152,6 @@ duckdb==1.1.0 elastic-transport==8.15.0 # via elasticsearch elasticsearch==8.15.1 - # via feast (setup.py) entrypoints==0.4 # via altair execnet==2.1.1 @@ -179,7 +159,6 @@ execnet==2.1.1 executing==2.1.0 # via stack-data fastapi==0.114.1 - # via feast (setup.py) fastjsonschema==2.20.0 # via nbformat filelock==3.16.0 @@ -193,14 +172,11 @@ frozenlist==1.4.1 # aiohttp # aiosignal fsspec==2024.9.0 - # via - # feast (setup.py) - # dask + # via dask geomet==0.2.1.post1 # via cassandra-driver google-api-core[grpc]==2.19.2 # via - # feast (setup.py) # google-cloud-bigquery # google-cloud-bigquery-storage # google-cloud-bigtable @@ -218,11 +194,8 @@ google-auth==2.34.0 # google-cloud-storage # kubernetes google-cloud-bigquery[pandas]==3.25.0 - # via feast (setup.py) google-cloud-bigquery-storage==2.26.0 - # via feast (setup.py) google-cloud-bigtable==2.26.0 - # via feast (setup.py) google-cloud-core==2.4.1 # via # google-cloud-bigquery @@ -230,9 +203,7 @@ google-cloud-core==2.4.1 # google-cloud-datastore # google-cloud-storage google-cloud-datastore==2.20.1 - # via feast (setup.py) google-cloud-storage==2.18.2 - # via feast (setup.py) google-crc32c==1.6.0 # via # google-cloud-storage @@ -243,17 +214,16 @@ google-resumable-media==2.7.2 # google-cloud-storage googleapis-common-protos[grpc]==1.65.0 # via - # feast (setup.py) # google-api-core # grpc-google-iam-v1 # grpcio-status great-expectations==0.18.20 - # via feast (setup.py) +greenlet==3.1.0 + # via sqlalchemy grpc-google-iam-v1==0.13.1 # via google-cloud-bigtable grpcio==1.66.1 # via - # feast (setup.py) # google-api-core # googleapis-common-protos # grpc-google-iam-v1 @@ -263,42 +233,30 @@ grpcio==1.66.1 # grpcio-testing # grpcio-tools grpcio-health-checking==1.62.3 - # via feast (setup.py) grpcio-reflection==1.62.3 - # via feast (setup.py) grpcio-status==1.62.3 # via google-api-core grpcio-testing==1.62.3 - # via feast (setup.py) -grpcio-tools==1.62.3 - # via feast (setup.py) +grpcio-tools==1.56.2 gunicorn==23.0.0 - # via feast (setup.py) h11==0.14.0 # via # httpcore # uvicorn happybase==1.2.0 - # via feast (setup.py) hazelcast-python-client==5.5.0 - # via feast (setup.py) hiredis==2.4.0 - # via feast (setup.py) httpcore==1.0.5 # via httpx httptools==0.6.1 # via uvicorn httpx==0.27.2 # via - # feast (setup.py) # jupyterlab # python-keycloak ibis-framework[duckdb]==9.4.0 - # via - # feast (setup.py) - # ibis-substrait + # via ibis-substrait ibis-substrait==4.0.1 - # via feast (setup.py) identify==2.6.0 # via pre-commit idna==3.8 @@ -332,7 +290,6 @@ jedi==0.19.1 # via ipython jinja2==3.1.4 # via - # feast (setup.py) # altair # great-expectations # jupyter-server @@ -355,7 +312,6 @@ jsonpointer==3.0.0 # jsonschema jsonschema[format-nongpl]==4.23.0 # via - # feast (setup.py) # altair # great-expectations # jupyter-events @@ -403,7 +359,6 @@ jupyterlab-widgets==3.0.13 jwcrypto==1.5.6 # via python-keycloak kubernetes==20.13.0 - # via feast (setup.py) locket==1.0.0 # via partd makefun==1.15.4 @@ -424,17 +379,13 @@ matplotlib-inline==0.1.7 mdurl==0.1.2 # via markdown-it-py minio==7.1.0 - # via feast (setup.py) mistune==3.0.2 # via # great-expectations # nbconvert mmh3==4.1.0 - # via feast (setup.py) mock==2.0.0 - # via feast (setup.py) moto==4.2.14 - # via feast (setup.py) msal==1.31.0 # via # azure-identity @@ -446,13 +397,10 @@ multidict==6.1.0 # aiohttp # yarl mypy==1.11.2 - # via - # feast (setup.py) - # sqlalchemy + # via sqlalchemy mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.3.0 - # via feast (setup.py) nbclient==0.10.0 # via nbconvert nbconvert==7.16.4 @@ -475,7 +423,6 @@ notebook-shim==0.2.4 # notebook numpy==1.26.4 # via - # feast (setup.py) # altair # dask # db-dtypes @@ -509,7 +456,6 @@ packaging==24.1 # sphinx pandas==2.2.2 # via - # feast (setup.py) # altair # dask # dask-expr @@ -535,7 +481,6 @@ pexpect==4.9.0 pip==24.2 # via pip-tools pip-tools==7.4.1 - # via feast (setup.py) platformdirs==3.11.0 # via # jupyter-core @@ -548,11 +493,8 @@ ply==3.11 portalocker==2.10.1 # via msal-extensions pre-commit==3.3.1 - # via feast (setup.py) prometheus-client==0.20.0 - # via - # feast (setup.py) - # jupyter-server + # via jupyter-server prompt-toolkit==3.0.47 # via ipython proto-plus==1.24.0 @@ -563,7 +505,6 @@ proto-plus==1.24.0 # google-cloud-datastore protobuf==4.25.4 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable @@ -579,11 +520,8 @@ protobuf==4.25.4 # proto-plus # substrait psutil==5.9.0 - # via - # feast (setup.py) - # ipykernel + # via ipykernel psycopg[binary, pool]==3.2.1 - # via feast (setup.py) psycopg-binary==3.2.1 # via psycopg psycopg-pool==3.2.2 @@ -595,14 +533,12 @@ ptyprocess==0.7.0 pure-eval==0.2.3 # via stack-data py==1.11.0 - # via feast (setup.py) py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.7 # via pyspark pyarrow==17.0.0 # via - # feast (setup.py) # dask-expr # db-dtypes # deltalake @@ -618,35 +554,28 @@ pyasn1==0.6.1 pyasn1-modules==0.4.1 # via google-auth pybindgen==0.22.1 - # via feast (setup.py) pycparser==2.22 # via cffi pydantic==2.9.1 # via - # feast (setup.py) # fastapi # great-expectations pydantic-core==2.23.3 # via pydantic pygments==2.18.0 # via - # feast (setup.py) # ipython # nbconvert # rich # sphinx pyjwt[crypto]==2.9.0 # via - # feast (setup.py) # msal # singlestoredb # snowflake-connector-python pymssql==2.3.1 - # via feast (setup.py) pymysql==1.1.1 - # via feast (setup.py) pyodbc==5.1.0 - # via feast (setup.py) pyopenssl==24.2.1 # via snowflake-connector-python pyparsing==3.1.4 @@ -656,10 +585,8 @@ pyproject-hooks==1.1.0 # build # pip-tools pyspark==3.5.2 - # via feast (setup.py) pytest==7.4.4 # via - # feast (setup.py) # pytest-benchmark # pytest-cov # pytest-env @@ -669,21 +596,13 @@ pytest==7.4.4 # pytest-timeout # pytest-xdist pytest-benchmark==3.4.1 - # via feast (setup.py) pytest-cov==5.0.0 - # via feast (setup.py) pytest-env==1.1.3 - # via feast (setup.py) pytest-lazy-fixture==0.6.3 - # via feast (setup.py) pytest-mock==1.10.4 - # via feast (setup.py) pytest-ordering==0.6 - # via feast (setup.py) pytest-timeout==1.4.2 - # via feast (setup.py) pytest-xdist==3.6.1 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via # arrow @@ -701,7 +620,6 @@ python-dotenv==1.0.1 python-json-logger==2.0.7 # via jupyter-events python-keycloak==4.2.2 - # via feast (setup.py) pytz==2024.2 # via # great-expectations @@ -711,7 +629,6 @@ pytz==2024.2 # trino pyyaml==6.0.2 # via - # feast (setup.py) # dask # ibis-substrait # jupyter-events @@ -725,19 +642,15 @@ pyzmq==26.2.0 # jupyter-client # jupyter-server redis==4.6.0 - # via feast (setup.py) referencing==0.35.1 # via # jsonschema # jsonschema-specifications # jupyter-events regex==2024.7.24 - # via - # feast (setup.py) - # parsimonious + # via parsimonious requests==2.32.3 # via - # feast (setup.py) # azure-core # docker # google-api-core @@ -783,7 +696,6 @@ ruamel-yaml==0.17.40 ruamel-yaml-clib==0.2.8 # via ruamel-yaml ruff==0.6.4 - # via feast (setup.py) s3transfer==0.10.2 # via boto3 scipy==1.14.1 @@ -798,7 +710,6 @@ setuptools==74.1.2 # pip-tools # singlestoredb singlestoredb==1.6.3 - # via feast (setup.py) six==1.16.0 # via # asttokens @@ -819,13 +730,11 @@ sniffio==1.3.1 snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==3.12.1 - # via feast (setup.py) sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.6 # via beautifulsoup4 sphinx==6.2.1 - # via feast (setup.py) sphinxcontrib-applehelp==2.0.0 # via sphinx sphinxcontrib-devhelp==2.0.0 @@ -839,11 +748,9 @@ sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 # via sphinx sqlalchemy[mypy]==2.0.34 - # via feast (setup.py) sqlglot==25.18.0 # via ibis-framework sqlite-vec==0.1.1 - # via feast (setup.py) sqlparams==6.1.0 # via singlestoredb stack-data==0.6.3 @@ -853,21 +760,17 @@ starlette==0.38.5 substrait==0.22.0 # via ibis-substrait tabulate==0.9.0 - # via feast (setup.py) tenacity==8.5.0 - # via feast (setup.py) terminado==0.18.1 # via # jupyter-server # jupyter-server-terminals testcontainers==4.4.0 - # via feast (setup.py) thriftpy2==0.5.2 # via happybase tinycss2==1.3.0 # via nbconvert toml==0.10.2 - # via feast (setup.py) tomlkit==0.13.2 # via snowflake-connector-python toolz==0.12.1 @@ -885,9 +788,7 @@ tornado==6.4.1 # notebook # terminado tqdm==4.66.5 - # via - # feast (setup.py) - # great-expectations + # via great-expectations traitlets==5.14.3 # via # comm @@ -904,37 +805,23 @@ traitlets==5.14.3 # nbconvert # nbformat trino==0.329.0 - # via feast (setup.py) typeguard==4.3.0 - # via feast (setup.py) types-cffi==1.16.0.20240331 # via types-pyopenssl types-protobuf==3.19.22 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf types-pymysql==1.1.0.20240524 - # via feast (setup.py) types-pyopenssl==24.1.0.20240722 # via types-redis types-python-dateutil==2.9.0.20240906 - # via - # feast (setup.py) - # arrow + # via arrow types-pytz==2024.1.0.20240417 - # via feast (setup.py) types-pyyaml==6.0.12.20240808 - # via feast (setup.py) types-redis==4.6.0.20240903 - # via feast (setup.py) types-requests==2.30.0.0 - # via feast (setup.py) types-setuptools==74.1.0.20240907 - # via - # feast (setup.py) - # types-cffi + # via types-cffi types-tabulate==0.9.0.20240106 - # via feast (setup.py) types-urllib3==1.26.25.14 # via types-requests typing-extensions==4.12.2 @@ -966,7 +853,6 @@ uri-template==1.3.0 # via jsonschema urllib3==2.2.2 # via - # feast (setup.py) # botocore # docker # elastic-transport @@ -977,13 +863,10 @@ urllib3==2.2.2 # responses # testcontainers uvicorn[standard]==0.30.6 - # via feast (setup.py) uvloop==0.20.0 # via uvicorn virtualenv==20.23.0 - # via - # feast (setup.py) - # pre-commit + # via pre-commit watchfiles==0.24.0 # via uvicorn wcwidth==0.2.13 diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index 1d0ce54cc1c..4332763e180 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -11,34 +11,28 @@ attrs==24.2.0 # jsonschema # referencing bigtree==0.21.1 - # via feast (setup.py) certifi==2024.8.30 # via requests charset-normalizer==3.3.2 # via requests click==8.1.7 # via - # feast (setup.py) # dask # uvicorn cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via feast (setup.py) dask[dataframe]==2024.8.2 - # via - # feast (setup.py) - # dask-expr + # via dask-expr dask-expr==1.1.13 # via dask dill==0.3.8 - # via feast (setup.py) fastapi==0.114.1 - # via feast (setup.py) fsspec==2024.9.0 # via dask +greenlet==3.1.0 + # via sqlalchemy gunicorn==23.0.0 - # via feast (setup.py) h11==0.14.0 # via uvicorn httptools==0.6.1 @@ -50,9 +44,7 @@ idna==3.8 importlib-metadata==8.5.0 # via dask jinja2==3.1.4 - # via feast (setup.py) jsonschema==4.23.0 - # via feast (setup.py) jsonschema-specifications==2023.12.1 # via jsonschema locket==1.0.0 @@ -60,16 +52,13 @@ locket==1.0.0 markupsafe==2.1.5 # via jinja2 mmh3==4.1.0 - # via feast (setup.py) mypy==1.11.2 # via sqlalchemy mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.6.0 - # via feast (setup.py) numpy==1.26.4 # via - # feast (setup.py) # dask # pandas # pyarrow @@ -79,33 +68,22 @@ packaging==24.1 # gunicorn pandas==2.2.2 # via - # feast (setup.py) # dask # dask-expr partd==1.4.2 # via dask prometheus-client==0.20.0 - # via feast (setup.py) protobuf==4.25.4 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf psutil==6.0.0 - # via feast (setup.py) pyarrow==17.0.0 - # via - # feast (setup.py) - # dask-expr + # via dask-expr pydantic==2.9.1 - # via - # feast (setup.py) - # fastapi + # via fastapi pydantic-core==2.23.3 # via pydantic pygments==2.18.0 - # via feast (setup.py) pyjwt==2.9.0 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via pandas python-dotenv==1.0.1 @@ -114,7 +92,6 @@ pytz==2024.2 # via pandas pyyaml==6.0.2 # via - # feast (setup.py) # dask # uvicorn referencing==0.35.1 @@ -122,7 +99,6 @@ referencing==0.35.1 # jsonschema # jsonschema-specifications requests==2.32.3 - # via feast (setup.py) rpds-py==0.20.0 # via # jsonschema @@ -132,23 +108,17 @@ six==1.16.0 sniffio==1.3.1 # via anyio sqlalchemy[mypy]==2.0.34 - # via feast (setup.py) starlette==0.38.5 # via fastapi tabulate==0.9.0 - # via feast (setup.py) tenacity==8.5.0 - # via feast (setup.py) toml==0.10.2 - # via feast (setup.py) toolz==0.12.1 # via # dask # partd tqdm==4.66.5 - # via feast (setup.py) typeguard==4.3.0 - # via feast (setup.py) types-protobuf==5.27.0.20240907 # via mypy-protobuf typing-extensions==4.12.2 @@ -164,7 +134,6 @@ tzdata==2024.1 urllib3==2.2.2 # via requests uvicorn[standard]==0.30.6 - # via feast (setup.py) uvloop==0.20.0 # via uvicorn watchfiles==0.24.0 diff --git a/sdk/python/requirements/py3.9-ci-requirements.txt b/sdk/python/requirements/py3.9-ci-requirements.txt index ae27849f4fa..313290e5c28 100644 --- a/sdk/python/requirements/py3.9-ci-requirements.txt +++ b/sdk/python/requirements/py3.9-ci-requirements.txt @@ -1,7 +1,6 @@ # This file was autogenerated by uv via the following command: # uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.9-ci-requirements.txt aiobotocore==2.15.0 - # via feast (setup.py) aiohappyeyeballs==2.4.0 # via aiohttp aiohttp==3.10.5 @@ -22,8 +21,6 @@ anyio==4.4.0 # jupyter-server # starlette # watchfiles -appnope==0.1.4 - # via ipykernel argon2-cffi==23.1.0 # via jupyter-server argon2-cffi-bindings==21.2.0 @@ -33,7 +30,6 @@ arrow==1.3.0 asn1crypto==1.5.1 # via snowflake-connector-python assertpy==1.1 - # via feast (setup.py) asttokens==2.4.1 # via stack-data async-lru==2.0.4 @@ -56,9 +52,7 @@ azure-core==1.30.2 # azure-identity # azure-storage-blob azure-identity==1.17.1 - # via feast (setup.py) azure-storage-blob==12.22.0 - # via feast (setup.py) babel==2.16.0 # via # jupyterlab-server @@ -68,13 +62,10 @@ beautifulsoup4==4.12.3 bidict==0.23.1 # via ibis-framework bigtree==0.21.1 - # via feast (setup.py) bleach==6.1.0 # via nbconvert boto3==1.35.16 - # via - # feast (setup.py) - # moto + # via moto botocore==1.35.16 # via # aiobotocore @@ -83,13 +74,11 @@ botocore==1.35.16 # s3transfer build==1.2.2 # via - # feast (setup.py) # pip-tools # singlestoredb cachetools==5.5.0 # via google-auth cassandra-driver==3.29.2 - # via feast (setup.py) certifi==2024.8.30 # via # elastic-transport @@ -112,7 +101,6 @@ charset-normalizer==3.3.2 # snowflake-connector-python click==8.1.7 # via - # feast (setup.py) # dask # geomet # great-expectations @@ -121,9 +109,7 @@ click==8.1.7 cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via - # feast (setup.py) - # great-expectations + # via great-expectations comm==0.2.2 # via # ipykernel @@ -132,7 +118,6 @@ coverage[toml]==7.6.1 # via pytest-cov cryptography==42.0.8 # via - # feast (setup.py) # azure-identity # azure-storage-blob # great-expectations @@ -147,9 +132,7 @@ cryptography==42.0.8 cython==3.0.11 # via thriftpy2 dask[dataframe]==2024.8.0 - # via - # feast (setup.py) - # dask-expr + # via dask-expr dask-expr==1.1.10 # via dask db-dtypes==1.3.0 @@ -161,11 +144,9 @@ decorator==5.1.1 defusedxml==0.7.1 # via nbconvert deltalake==0.19.2 - # via feast (setup.py) deprecation==2.1.0 # via python-keycloak dill==0.3.8 - # via feast (setup.py) distlib==0.3.8 # via virtualenv docker==7.1.0 @@ -177,7 +158,6 @@ duckdb==0.10.3 elastic-transport==8.15.0 # via elasticsearch elasticsearch==8.15.1 - # via feast (setup.py) entrypoints==0.4 # via altair exceptiongroup==1.2.2 @@ -190,7 +170,6 @@ execnet==2.1.1 executing==2.1.0 # via stack-data fastapi==0.114.1 - # via feast (setup.py) fastjsonschema==2.20.0 # via nbformat filelock==3.16.0 @@ -204,14 +183,11 @@ frozenlist==1.4.1 # aiohttp # aiosignal fsspec==2024.9.0 - # via - # feast (setup.py) - # dask + # via dask geomet==0.2.1.post1 # via cassandra-driver google-api-core[grpc]==2.19.2 # via - # feast (setup.py) # google-cloud-bigquery # google-cloud-bigquery-storage # google-cloud-bigtable @@ -229,11 +205,8 @@ google-auth==2.34.0 # google-cloud-storage # kubernetes google-cloud-bigquery[pandas]==3.25.0 - # via feast (setup.py) google-cloud-bigquery-storage==2.26.0 - # via feast (setup.py) google-cloud-bigtable==2.26.0 - # via feast (setup.py) google-cloud-core==2.4.1 # via # google-cloud-bigquery @@ -241,9 +214,7 @@ google-cloud-core==2.4.1 # google-cloud-datastore # google-cloud-storage google-cloud-datastore==2.20.1 - # via feast (setup.py) google-cloud-storage==2.18.2 - # via feast (setup.py) google-crc32c==1.6.0 # via # google-cloud-storage @@ -254,17 +225,16 @@ google-resumable-media==2.7.2 # google-cloud-storage googleapis-common-protos[grpc]==1.65.0 # via - # feast (setup.py) # google-api-core # grpc-google-iam-v1 # grpcio-status great-expectations==0.18.20 - # via feast (setup.py) +greenlet==3.1.0 + # via sqlalchemy grpc-google-iam-v1==0.13.1 # via google-cloud-bigtable grpcio==1.66.1 # via - # feast (setup.py) # google-api-core # googleapis-common-protos # grpc-google-iam-v1 @@ -274,42 +244,30 @@ grpcio==1.66.1 # grpcio-testing # grpcio-tools grpcio-health-checking==1.62.3 - # via feast (setup.py) grpcio-reflection==1.62.3 - # via feast (setup.py) grpcio-status==1.62.3 # via google-api-core grpcio-testing==1.62.3 - # via feast (setup.py) -grpcio-tools==1.62.3 - # via feast (setup.py) +grpcio-tools==1.56.2 gunicorn==23.0.0 - # via feast (setup.py) h11==0.14.0 # via # httpcore # uvicorn happybase==1.2.0 - # via feast (setup.py) hazelcast-python-client==5.5.0 - # via feast (setup.py) hiredis==2.4.0 - # via feast (setup.py) httpcore==1.0.5 # via httpx httptools==0.6.1 # via uvicorn httpx==0.27.2 # via - # feast (setup.py) # jupyterlab # python-keycloak ibis-framework[duckdb]==9.0.0 - # via - # feast (setup.py) - # ibis-substrait + # via ibis-substrait ibis-substrait==4.0.1 - # via feast (setup.py) identify==2.6.0 # via pre-commit idna==3.8 @@ -352,7 +310,6 @@ jedi==0.19.1 # via ipython jinja2==3.1.4 # via - # feast (setup.py) # altair # great-expectations # jupyter-server @@ -375,7 +332,6 @@ jsonpointer==3.0.0 # jsonschema jsonschema[format-nongpl]==4.23.0 # via - # feast (setup.py) # altair # great-expectations # jupyter-events @@ -423,7 +379,6 @@ jupyterlab-widgets==3.0.13 jwcrypto==1.5.6 # via python-keycloak kubernetes==20.13.0 - # via feast (setup.py) locket==1.0.0 # via partd makefun==1.15.4 @@ -444,17 +399,13 @@ matplotlib-inline==0.1.7 mdurl==0.1.2 # via markdown-it-py minio==7.1.0 - # via feast (setup.py) mistune==3.0.2 # via # great-expectations # nbconvert mmh3==4.1.0 - # via feast (setup.py) mock==2.0.0 - # via feast (setup.py) moto==4.2.14 - # via feast (setup.py) msal==1.31.0 # via # azure-identity @@ -466,13 +417,10 @@ multidict==6.1.0 # aiohttp # yarl mypy==1.11.2 - # via - # feast (setup.py) - # sqlalchemy + # via sqlalchemy mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.3.0 - # via feast (setup.py) nbclient==0.10.0 # via nbconvert nbconvert==7.16.4 @@ -495,7 +443,6 @@ notebook-shim==0.2.4 # notebook numpy==1.26.4 # via - # feast (setup.py) # altair # dask # db-dtypes @@ -529,7 +476,6 @@ packaging==24.1 # sphinx pandas==2.2.2 # via - # feast (setup.py) # altair # dask # dask-expr @@ -555,7 +501,6 @@ pexpect==4.9.0 pip==24.2 # via pip-tools pip-tools==7.4.1 - # via feast (setup.py) platformdirs==3.11.0 # via # jupyter-core @@ -568,11 +513,8 @@ ply==3.11 portalocker==2.10.1 # via msal-extensions pre-commit==3.3.1 - # via feast (setup.py) prometheus-client==0.20.0 - # via - # feast (setup.py) - # jupyter-server + # via jupyter-server prompt-toolkit==3.0.47 # via ipython proto-plus==1.24.0 @@ -583,7 +525,6 @@ proto-plus==1.24.0 # google-cloud-datastore protobuf==4.25.4 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable @@ -599,11 +540,8 @@ protobuf==4.25.4 # proto-plus # substrait psutil==5.9.0 - # via - # feast (setup.py) - # ipykernel + # via ipykernel psycopg[binary, pool]==3.1.18 - # via feast (setup.py) psycopg-binary==3.1.18 # via psycopg psycopg-pool==3.2.2 @@ -615,14 +553,12 @@ ptyprocess==0.7.0 pure-eval==0.2.3 # via stack-data py==1.11.0 - # via feast (setup.py) py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.7 # via pyspark pyarrow==16.1.0 # via - # feast (setup.py) # dask-expr # db-dtypes # deltalake @@ -638,35 +574,28 @@ pyasn1==0.6.1 pyasn1-modules==0.4.1 # via google-auth pybindgen==0.22.1 - # via feast (setup.py) pycparser==2.22 # via cffi pydantic==2.9.1 # via - # feast (setup.py) # fastapi # great-expectations pydantic-core==2.23.3 # via pydantic pygments==2.18.0 # via - # feast (setup.py) # ipython # nbconvert # rich # sphinx pyjwt[crypto]==2.9.0 # via - # feast (setup.py) # msal # singlestoredb # snowflake-connector-python pymssql==2.3.1 - # via feast (setup.py) pymysql==1.1.1 - # via feast (setup.py) pyodbc==5.1.0 - # via feast (setup.py) pyopenssl==24.2.1 # via snowflake-connector-python pyparsing==3.1.4 @@ -676,10 +605,8 @@ pyproject-hooks==1.1.0 # build # pip-tools pyspark==3.5.2 - # via feast (setup.py) pytest==7.4.4 # via - # feast (setup.py) # pytest-benchmark # pytest-cov # pytest-env @@ -689,21 +616,13 @@ pytest==7.4.4 # pytest-timeout # pytest-xdist pytest-benchmark==3.4.1 - # via feast (setup.py) pytest-cov==5.0.0 - # via feast (setup.py) pytest-env==1.1.3 - # via feast (setup.py) pytest-lazy-fixture==0.6.3 - # via feast (setup.py) pytest-mock==1.10.4 - # via feast (setup.py) pytest-ordering==0.6 - # via feast (setup.py) pytest-timeout==1.4.2 - # via feast (setup.py) pytest-xdist==3.6.1 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via # arrow @@ -721,7 +640,6 @@ python-dotenv==1.0.1 python-json-logger==2.0.7 # via jupyter-events python-keycloak==4.2.2 - # via feast (setup.py) pytz==2024.2 # via # great-expectations @@ -731,7 +649,6 @@ pytz==2024.2 # trino pyyaml==6.0.2 # via - # feast (setup.py) # dask # ibis-substrait # jupyter-events @@ -745,19 +662,15 @@ pyzmq==26.2.0 # jupyter-client # jupyter-server redis==4.6.0 - # via feast (setup.py) referencing==0.35.1 # via # jsonschema # jsonschema-specifications # jupyter-events regex==2024.7.24 - # via - # feast (setup.py) - # parsimonious + # via parsimonious requests==2.32.3 # via - # feast (setup.py) # azure-core # docker # google-api-core @@ -803,7 +716,6 @@ ruamel-yaml==0.17.40 ruamel-yaml-clib==0.2.8 # via ruamel-yaml ruff==0.6.4 - # via feast (setup.py) s3transfer==0.10.2 # via boto3 scipy==1.13.1 @@ -818,7 +730,6 @@ setuptools==74.1.2 # pip-tools # singlestoredb singlestoredb==1.6.3 - # via feast (setup.py) six==1.16.0 # via # asttokens @@ -839,13 +750,11 @@ sniffio==1.3.1 snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==3.12.1 - # via feast (setup.py) sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.6 # via beautifulsoup4 sphinx==6.2.1 - # via feast (setup.py) sphinxcontrib-applehelp==2.0.0 # via sphinx sphinxcontrib-devhelp==2.0.0 @@ -859,11 +768,9 @@ sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 # via sphinx sqlalchemy[mypy]==2.0.34 - # via feast (setup.py) sqlglot==23.12.2 # via ibis-framework sqlite-vec==0.1.1 - # via feast (setup.py) sqlparams==6.1.0 # via singlestoredb stack-data==0.6.3 @@ -873,21 +780,17 @@ starlette==0.38.5 substrait==0.22.0 # via ibis-substrait tabulate==0.9.0 - # via feast (setup.py) tenacity==8.5.0 - # via feast (setup.py) terminado==0.18.1 # via # jupyter-server # jupyter-server-terminals testcontainers==4.4.0 - # via feast (setup.py) thriftpy2==0.5.2 # via happybase tinycss2==1.3.0 # via nbconvert toml==0.10.2 - # via feast (setup.py) tomli==2.0.1 # via # build @@ -915,9 +818,7 @@ tornado==6.4.1 # notebook # terminado tqdm==4.66.5 - # via - # feast (setup.py) - # great-expectations + # via great-expectations traitlets==5.14.3 # via # comm @@ -934,37 +835,23 @@ traitlets==5.14.3 # nbconvert # nbformat trino==0.329.0 - # via feast (setup.py) typeguard==4.3.0 - # via feast (setup.py) types-cffi==1.16.0.20240331 # via types-pyopenssl types-protobuf==3.19.22 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf types-pymysql==1.1.0.20240524 - # via feast (setup.py) types-pyopenssl==24.1.0.20240722 # via types-redis types-python-dateutil==2.9.0.20240906 - # via - # feast (setup.py) - # arrow + # via arrow types-pytz==2024.1.0.20240417 - # via feast (setup.py) types-pyyaml==6.0.12.20240808 - # via feast (setup.py) types-redis==4.6.0.20240903 - # via feast (setup.py) types-requests==2.30.0.0 - # via feast (setup.py) types-setuptools==74.1.0.20240907 - # via - # feast (setup.py) - # types-cffi + # via types-cffi types-tabulate==0.9.0.20240106 - # via feast (setup.py) types-urllib3==1.26.25.14 # via types-requests typing-extensions==4.12.2 @@ -1002,7 +889,6 @@ uri-template==1.3.0 # via jsonschema urllib3==1.26.20 # via - # feast (setup.py) # botocore # docker # elastic-transport @@ -1014,13 +900,10 @@ urllib3==1.26.20 # snowflake-connector-python # testcontainers uvicorn[standard]==0.30.6 - # via feast (setup.py) uvloop==0.20.0 # via uvicorn virtualenv==20.23.0 - # via - # feast (setup.py) - # pre-commit + # via pre-commit watchfiles==0.24.0 # via uvicorn wcwidth==0.2.13 diff --git a/sdk/python/requirements/py3.9-requirements.txt b/sdk/python/requirements/py3.9-requirements.txt index 8a7ac763c0f..6659adb51b8 100644 --- a/sdk/python/requirements/py3.9-requirements.txt +++ b/sdk/python/requirements/py3.9-requirements.txt @@ -11,36 +11,30 @@ attrs==24.2.0 # jsonschema # referencing bigtree==0.21.1 - # via feast (setup.py) certifi==2024.8.30 # via requests charset-normalizer==3.3.2 # via requests click==8.1.7 # via - # feast (setup.py) # dask # uvicorn cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via feast (setup.py) dask[dataframe]==2024.8.0 - # via - # feast (setup.py) - # dask-expr + # via dask-expr dask-expr==1.1.10 # via dask dill==0.3.8 - # via feast (setup.py) exceptiongroup==1.2.2 # via anyio fastapi==0.114.1 - # via feast (setup.py) fsspec==2024.9.0 # via dask +greenlet==3.1.0 + # via sqlalchemy gunicorn==23.0.0 - # via feast (setup.py) h11==0.14.0 # via uvicorn httptools==0.6.1 @@ -54,9 +48,7 @@ importlib-metadata==8.5.0 # dask # typeguard jinja2==3.1.4 - # via feast (setup.py) jsonschema==4.23.0 - # via feast (setup.py) jsonschema-specifications==2023.12.1 # via jsonschema locket==1.0.0 @@ -64,16 +56,13 @@ locket==1.0.0 markupsafe==2.1.5 # via jinja2 mmh3==4.1.0 - # via feast (setup.py) mypy==1.11.2 # via sqlalchemy mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.6.0 - # via feast (setup.py) numpy==1.26.4 # via - # feast (setup.py) # dask # pandas # pyarrow @@ -83,33 +72,22 @@ packaging==24.1 # gunicorn pandas==2.2.2 # via - # feast (setup.py) # dask # dask-expr partd==1.4.2 # via dask prometheus-client==0.20.0 - # via feast (setup.py) protobuf==4.25.4 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf psutil==6.0.0 - # via feast (setup.py) pyarrow==17.0.0 - # via - # feast (setup.py) - # dask-expr + # via dask-expr pydantic==2.9.1 - # via - # feast (setup.py) - # fastapi + # via fastapi pydantic-core==2.23.3 # via pydantic pygments==2.18.0 - # via feast (setup.py) pyjwt==2.9.0 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via pandas python-dotenv==1.0.1 @@ -118,7 +96,6 @@ pytz==2024.2 # via pandas pyyaml==6.0.2 # via - # feast (setup.py) # dask # uvicorn referencing==0.35.1 @@ -126,7 +103,6 @@ referencing==0.35.1 # jsonschema # jsonschema-specifications requests==2.32.3 - # via feast (setup.py) rpds-py==0.20.0 # via # jsonschema @@ -136,15 +112,11 @@ six==1.16.0 sniffio==1.3.1 # via anyio sqlalchemy[mypy]==2.0.34 - # via feast (setup.py) starlette==0.38.5 # via fastapi tabulate==0.9.0 - # via feast (setup.py) tenacity==8.5.0 - # via feast (setup.py) toml==0.10.2 - # via feast (setup.py) tomli==2.0.1 # via mypy toolz==0.12.1 @@ -152,9 +124,7 @@ toolz==0.12.1 # dask # partd tqdm==4.66.5 - # via feast (setup.py) typeguard==4.3.0 - # via feast (setup.py) types-protobuf==5.27.0.20240907 # via mypy-protobuf typing-extensions==4.12.2 @@ -173,7 +143,6 @@ tzdata==2024.1 urllib3==2.2.2 # via requests uvicorn[standard]==0.30.6 - # via feast (setup.py) uvloop==0.20.0 # via uvicorn watchfiles==0.24.0 diff --git a/setup.py b/setup.py index e0c7aff0ced..fcf9a94afaa 100644 --- a/setup.py +++ b/setup.py @@ -139,7 +139,7 @@ GRPCIO_REQUIRED = [ "grpcio>=1.56.2,<2", - "grpcio-tools>=1.56.2,<2", + "grpcio-tools==1.56.2", # TODO why isn't this a dev dependency? "grpcio-reflection>=1.56.2,<2", "grpcio-health-checking>=1.56.2,<2", ] @@ -402,7 +402,7 @@ def run(self): entry_points={"console_scripts": ["feast=feast.cli:cli"]}, use_scm_version=use_scm_version, setup_requires=[ - "grpcio-tools>=1.56.2,<2", + "grpcio-tools==1.56.2", "grpcio>=1.56.2,<2", "mypy-protobuf==3.1", "protobuf>=4.24.0,<5.0.0", From 4cef27893ba5a879a6b4dd249407235e35a4063f Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 18 Sep 2024 06:07:44 +0000 Subject: [PATCH 04/12] fix: revert build-system in pyproject Signed-off-by: tokoko --- pyproject.toml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 31cbead1866..03b8f290c21 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,17 @@ +[build-system] +requires = [ + "grpcio-tools==1.56.2", + "grpcio>=1.56.2,<2", + "mypy-protobuf==3.1", + "protobuf>=4.24.0,<5.0.0", + "pybindgen==0.22.0", + "setuptools>=60", + "setuptools_scm>=6.2", + "sphinx!=4.0.0", + "wheel", +] +build-backend = "setuptools.build_meta" + [tool.setuptools_scm] # Including this section is comparable to supplying use_scm_version=True in setup.py. From 551e10812b7a13b1c9fbfa487d2b9545d7f31d75 Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 18 Sep 2024 06:19:25 +0000 Subject: [PATCH 05/12] fix: add manual install of setuptools and grpcio-tools Signed-off-by: tokoko --- Makefile | 7 ++----- pyproject.toml | 14 -------------- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 924724bc9e8..89b078bf096 100644 --- a/Makefile +++ b/Makefile @@ -37,18 +37,15 @@ build: protos build-java build-docker # Python SDK -install-python-dependencies: - python -m piptools sync sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt - pip install --no-deps . - python setup.py build_python_protos --inplace - install-python-dependencies-uv: uv pip sync --system sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt + uv pip install --system setuptools grpcio-tools==1.56.2 uv pip install --system --no-deps . python setup.py build_python_protos --inplace install-python-dependencies-uv-venv: uv pip sync sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt + uv pip install setuptools grpcio-tools==1.56.2 uv pip install --no-deps . python setup.py build_python_protos --inplace diff --git a/pyproject.toml b/pyproject.toml index 03b8f290c21..31cbead1866 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,3 @@ -[build-system] -requires = [ - "grpcio-tools==1.56.2", - "grpcio>=1.56.2,<2", - "mypy-protobuf==3.1", - "protobuf>=4.24.0,<5.0.0", - "pybindgen==0.22.0", - "setuptools>=60", - "setuptools_scm>=6.2", - "sphinx!=4.0.0", - "wheel", -] -build-backend = "setuptools.build_meta" - [tool.setuptools_scm] # Including this section is comparable to supplying use_scm_version=True in setup.py. From 0d5c139bd75b0ab3b2c1a04002bf8fd423a0f115 Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 18 Sep 2024 06:21:03 +0000 Subject: [PATCH 06/12] fix: remove incorrect pixi call Signed-off-by: tokoko --- .github/workflows/smoke_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/smoke_tests.yml b/.github/workflows/smoke_tests.yml index a8d4c3bae50..782f8b3f511 100644 --- a/.github/workflows/smoke_tests.yml +++ b/.github/workflows/smoke_tests.yml @@ -35,4 +35,4 @@ jobs: - name: Install dependencies run: make install-python-dependencies-uv - name: Test Imports - run: pixi run python -c "from feast import cli" \ No newline at end of file + run: python -c "from feast import cli" \ No newline at end of file From e0ffa9a4d0f50924c12b21cc3a8cd7f82a232f17 Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 18 Sep 2024 16:32:47 +0000 Subject: [PATCH 07/12] fix: add in-function imports in errors.py Signed-off-by: tokoko --- sdk/python/feast/errors.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sdk/python/feast/errors.py b/sdk/python/feast/errors.py index 3665a023616..76a20611bfd 100644 --- a/sdk/python/feast/errors.py +++ b/sdk/python/feast/errors.py @@ -18,6 +18,7 @@ class FeastError(Exception): pass def grpc_status_code(self) -> "GrpcStatusCode": + from grpc import StatusCode as GrpcStatusCode return GrpcStatusCode.INTERNAL def http_status_code(self) -> int: @@ -92,6 +93,7 @@ class FeastObjectNotFoundException(FeastError): pass def grpc_status_code(self) -> "GrpcStatusCode": + from grpc import StatusCode as GrpcStatusCode return GrpcStatusCode.NOT_FOUND def http_status_code(self) -> int: @@ -507,6 +509,7 @@ def __init__(self, details: str): super().__init__(f"Permission error:\n{details}") def grpc_status_code(self) -> "GrpcStatusCode": + from grpc import StatusCode as GrpcStatusCode return GrpcStatusCode.PERMISSION_DENIED def http_status_code(self) -> int: From 8eec3e73ef97644d45b326080eb348f2c821ef62 Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 18 Sep 2024 17:03:06 +0000 Subject: [PATCH 08/12] fix: formatting Signed-off-by: tokoko --- sdk/python/feast/errors.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sdk/python/feast/errors.py b/sdk/python/feast/errors.py index 76a20611bfd..11ce9ebc626 100644 --- a/sdk/python/feast/errors.py +++ b/sdk/python/feast/errors.py @@ -19,6 +19,7 @@ class FeastError(Exception): def grpc_status_code(self) -> "GrpcStatusCode": from grpc import StatusCode as GrpcStatusCode + return GrpcStatusCode.INTERNAL def http_status_code(self) -> int: @@ -94,6 +95,7 @@ class FeastObjectNotFoundException(FeastError): def grpc_status_code(self) -> "GrpcStatusCode": from grpc import StatusCode as GrpcStatusCode + return GrpcStatusCode.NOT_FOUND def http_status_code(self) -> int: @@ -510,6 +512,7 @@ def __init__(self, details: str): def grpc_status_code(self) -> "GrpcStatusCode": from grpc import StatusCode as GrpcStatusCode + return GrpcStatusCode.PERMISSION_DENIED def http_status_code(self) -> int: From 7094342c4c88913911742247a0e48953b978ff25 Mon Sep 17 00:00:00 2001 From: tokoko Date: Thu, 19 Sep 2024 18:50:44 +0000 Subject: [PATCH 09/12] fix: merge changes from master Signed-off-by: tokoko --- .../requirements/py3.10-ci-requirements.txt | 71 ++++++++++--------- .../requirements/py3.10-requirements.txt | 28 ++++---- .../requirements/py3.11-ci-requirements.txt | 71 ++++++++++--------- .../requirements/py3.11-requirements.txt | 28 ++++---- .../requirements/py3.9-ci-requirements.txt | 60 ++++++++-------- .../requirements/py3.9-requirements.txt | 24 +++---- setup.py | 9 ++- 7 files changed, 143 insertions(+), 148 deletions(-) diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 951e5c8d76c..b66e15f4d6d 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -15,7 +15,7 @@ altair==4.2.2 # via great-expectations annotated-types==0.7.0 # via pydantic -anyio==4.4.0 +anyio==4.5.0 # via # httpx # jupyter-server @@ -47,12 +47,12 @@ attrs==24.2.0 # aiohttp # jsonschema # referencing -azure-core==1.30.2 +azure-core==1.31.0 # via # azure-identity # azure-storage-blob azure-identity==1.17.1 -azure-storage-blob==12.22.0 +azure-storage-blob==12.23.0 babel==2.16.0 # via # jupyterlab-server @@ -129,9 +129,9 @@ cryptography==42.0.8 # types-redis cython==3.0.11 # via thriftpy2 -dask[dataframe]==2024.8.2 +dask[dataframe]==2024.9.0 # via dask-expr -dask-expr==1.1.13 +dask-expr==1.1.14 # via dask db-dtypes==1.3.0 # via google-cloud-bigquery @@ -141,7 +141,7 @@ decorator==5.1.1 # via ipython defusedxml==0.7.1 # via nbconvert -deltalake==0.19.2 +deltalake==0.20.0 deprecation==2.1.0 # via python-keycloak dill==0.3.8 @@ -167,10 +167,10 @@ execnet==2.1.1 # via pytest-xdist executing==2.1.0 # via stack-data -fastapi==0.114.1 +fastapi==0.115.0 fastjsonschema==2.20.0 # via nbformat -filelock==3.16.0 +filelock==3.16.1 # via # snowflake-connector-python # virtualenv @@ -184,7 +184,7 @@ fsspec==2024.9.0 # via dask geomet==0.2.1.post1 # via cassandra-driver -google-api-core[grpc]==2.19.2 +google-api-core[grpc]==2.20.0 # via # google-cloud-bigquery # google-cloud-bigquery-storage @@ -192,7 +192,7 @@ google-api-core[grpc]==2.19.2 # google-cloud-core # google-cloud-datastore # google-cloud-storage -google-auth==2.34.0 +google-auth==2.35.0 # via # google-api-core # google-cloud-bigquery @@ -226,7 +226,7 @@ googleapis-common-protos[grpc]==1.65.0 # google-api-core # grpc-google-iam-v1 # grpcio-status -great-expectations==0.18.20 +great-expectations==0.18.21 greenlet==3.1.0 # via sqlalchemy grpc-google-iam-v1==0.13.1 @@ -246,7 +246,7 @@ grpcio-reflection==1.62.3 grpcio-status==1.62.3 # via google-api-core grpcio-testing==1.62.3 -grpcio-tools==1.56.2 +grpcio-tools==1.62.3 gunicorn==23.0.0 h11==0.14.0 # via @@ -263,12 +263,12 @@ httpx==0.27.2 # via # jupyterlab # python-keycloak -ibis-framework[duckdb]==9.4.0 +ibis-framework[duckdb]==9.5.0 # via ibis-substrait ibis-substrait==4.0.1 -identify==2.6.0 +identify==2.6.1 # via pre-commit -idna==3.8 +idna==3.10 # via # anyio # httpx @@ -328,7 +328,7 @@ jsonschema[format-nongpl]==4.23.0 # nbformat jsonschema-specifications==2023.12.1 # via jsonschema -jupyter-client==8.6.2 +jupyter-client==8.6.3 # via # ipykernel # jupyter-server @@ -392,7 +392,7 @@ mistune==3.0.2 # via # great-expectations # nbconvert -mmh3==4.1.0 +mmh3==5.0.0 mock==2.0.0 moto==4.2.14 msal==1.31.0 @@ -453,6 +453,7 @@ packaging==24.1 # google-cloud-bigquery # great-expectations # gunicorn + # ibis-framework # ibis-substrait # ipykernel # jupyter-server @@ -512,7 +513,7 @@ proto-plus==1.24.0 # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==4.25.4 +protobuf==4.25.5 # via # google-api-core # google-cloud-bigquery-storage @@ -530,10 +531,10 @@ protobuf==4.25.4 # substrait psutil==5.9.0 # via ipykernel -psycopg[binary, pool]==3.2.1 -psycopg-binary==3.2.1 +psycopg[binary, pool]==3.2.2 +psycopg-binary==3.2.2 # via psycopg -psycopg-pool==3.2.2 +psycopg-pool==3.2.3 # via psycopg ptyprocess==0.7.0 # via @@ -565,11 +566,11 @@ pyasn1-modules==0.4.1 pybindgen==0.22.1 pycparser==2.22 # via cffi -pydantic==2.9.1 +pydantic==2.9.2 # via # fastapi # great-expectations -pydantic-core==2.23.3 +pydantic-core==2.23.4 # via pydantic pygments==2.18.0 # via @@ -656,7 +657,7 @@ referencing==0.35.1 # jsonschema # jsonschema-specifications # jupyter-events -regex==2024.7.24 +regex==2024.9.11 # via parsimonious requests==2.32.3 # via @@ -704,14 +705,14 @@ ruamel-yaml==0.17.40 # via great-expectations ruamel-yaml-clib==0.2.8 # via ruamel-yaml -ruff==0.6.4 +ruff==0.6.5 s3transfer==0.10.2 # via boto3 scipy==1.14.1 # via great-expectations send2trash==1.8.3 # via jupyter-server -setuptools==74.1.2 +setuptools==75.1.0 # via # grpcio-tools # jupyterlab @@ -738,7 +739,7 @@ sniffio==1.3.1 # httpx snowballstemmer==2.2.0 # via sphinx -snowflake-connector-python[pandas]==3.12.1 +snowflake-connector-python[pandas]==3.12.2 sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.6 @@ -756,8 +757,8 @@ sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlalchemy[mypy]==2.0.34 -sqlglot==25.18.0 +sqlalchemy[mypy]==2.0.35 +sqlglot==25.20.1 # via ibis-framework sqlite-vec==0.1.1 sqlparams==6.1.0 @@ -766,7 +767,7 @@ stack-data==0.6.3 # via ipython starlette==0.38.5 # via fastapi -substrait==0.22.0 +substrait==0.23.0 # via ibis-substrait tabulate==0.9.0 tenacity==8.5.0 @@ -834,11 +835,11 @@ types-pyopenssl==24.1.0.20240722 # via types-redis types-python-dateutil==2.9.0.20240906 # via arrow -types-pytz==2024.1.0.20240417 -types-pyyaml==6.0.12.20240808 +types-pytz==2024.2.0.20240913 +types-pyyaml==6.0.12.20240917 types-redis==4.6.0.20240903 types-requests==2.30.0.0 -types-setuptools==74.1.0.20240907 +types-setuptools==75.1.0.20240917 # via types-cffi types-tabulate==0.9.0.20240106 types-urllib3==1.26.25.14 @@ -874,7 +875,7 @@ tzlocal==5.2 # trino uri-template==1.3.0 # via jsonschema -urllib3==2.2.2 +urllib3==2.2.3 # via # botocore # docker @@ -922,5 +923,5 @@ xmltodict==0.13.0 # via moto yarl==1.11.1 # via aiohttp -zipp==3.20.1 +zipp==3.20.2 # via importlib-metadata diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index 8eb72e8c1f2..8da0ee33c34 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -2,7 +2,7 @@ # uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.10-requirements.txt annotated-types==0.7.0 # via pydantic -anyio==4.4.0 +anyio==4.5.0 # via # starlette # watchfiles @@ -22,14 +22,14 @@ click==8.1.7 cloudpickle==3.0.0 # via dask colorama==0.4.6 -dask[dataframe]==2024.8.2 +dask[dataframe]==2024.9.0 # via dask-expr -dask-expr==1.1.13 +dask-expr==1.1.14 # via dask dill==0.3.8 exceptiongroup==1.2.2 # via anyio -fastapi==0.114.1 +fastapi==0.115.0 fsspec==2024.9.0 # via dask greenlet==3.1.0 @@ -39,7 +39,7 @@ h11==0.14.0 # via uvicorn httptools==0.6.1 # via uvicorn -idna==3.8 +idna==3.10 # via # anyio # requests @@ -53,12 +53,11 @@ locket==1.0.0 # via partd markupsafe==2.1.5 # via jinja2 -mmh3==4.1.0 +mmh3==5.0.0 mypy==1.11.2 # via sqlalchemy mypy-extensions==1.0.0 # via mypy -mypy-protobuf==3.6.0 numpy==1.26.4 # via # dask @@ -75,14 +74,13 @@ pandas==2.2.2 partd==1.4.2 # via dask prometheus-client==0.20.0 -protobuf==4.25.4 - # via mypy-protobuf +protobuf==4.25.5 psutil==6.0.0 pyarrow==17.0.0 # via dask-expr -pydantic==2.9.1 +pydantic==2.9.2 # via fastapi -pydantic-core==2.23.3 +pydantic-core==2.23.4 # via pydantic pygments==2.18.0 pyjwt==2.9.0 @@ -109,7 +107,7 @@ six==1.16.0 # via python-dateutil sniffio==1.3.1 # via anyio -sqlalchemy[mypy]==2.0.34 +sqlalchemy[mypy]==2.0.35 starlette==0.38.5 # via fastapi tabulate==0.9.0 @@ -123,8 +121,6 @@ toolz==0.12.1 # partd tqdm==4.66.5 typeguard==4.3.0 -types-protobuf==5.27.0.20240907 - # via mypy-protobuf typing-extensions==4.12.2 # via # anyio @@ -137,7 +133,7 @@ typing-extensions==4.12.2 # uvicorn tzdata==2024.1 # via pandas -urllib3==2.2.2 +urllib3==2.2.3 # via requests uvicorn[standard]==0.30.6 uvloop==0.20.0 @@ -146,5 +142,5 @@ watchfiles==0.24.0 # via uvicorn websockets==13.0.1 # via uvicorn -zipp==3.20.1 +zipp==3.20.2 # via importlib-metadata diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index 3e7439d367e..2b55840d022 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -15,7 +15,7 @@ altair==4.2.2 # via great-expectations annotated-types==0.7.0 # via pydantic -anyio==4.4.0 +anyio==4.5.0 # via # httpx # jupyter-server @@ -43,12 +43,12 @@ attrs==24.2.0 # aiohttp # jsonschema # referencing -azure-core==1.30.2 +azure-core==1.31.0 # via # azure-identity # azure-storage-blob azure-identity==1.17.1 -azure-storage-blob==12.22.0 +azure-storage-blob==12.23.0 babel==2.16.0 # via # jupyterlab-server @@ -125,9 +125,9 @@ cryptography==42.0.8 # types-redis cython==3.0.11 # via thriftpy2 -dask[dataframe]==2024.8.2 +dask[dataframe]==2024.9.0 # via dask-expr -dask-expr==1.1.13 +dask-expr==1.1.14 # via dask db-dtypes==1.3.0 # via google-cloud-bigquery @@ -137,7 +137,7 @@ decorator==5.1.1 # via ipython defusedxml==0.7.1 # via nbconvert -deltalake==0.19.2 +deltalake==0.20.0 deprecation==2.1.0 # via python-keycloak dill==0.3.8 @@ -158,10 +158,10 @@ execnet==2.1.1 # via pytest-xdist executing==2.1.0 # via stack-data -fastapi==0.114.1 +fastapi==0.115.0 fastjsonschema==2.20.0 # via nbformat -filelock==3.16.0 +filelock==3.16.1 # via # snowflake-connector-python # virtualenv @@ -175,7 +175,7 @@ fsspec==2024.9.0 # via dask geomet==0.2.1.post1 # via cassandra-driver -google-api-core[grpc]==2.19.2 +google-api-core[grpc]==2.20.0 # via # google-cloud-bigquery # google-cloud-bigquery-storage @@ -183,7 +183,7 @@ google-api-core[grpc]==2.19.2 # google-cloud-core # google-cloud-datastore # google-cloud-storage -google-auth==2.34.0 +google-auth==2.35.0 # via # google-api-core # google-cloud-bigquery @@ -217,7 +217,7 @@ googleapis-common-protos[grpc]==1.65.0 # google-api-core # grpc-google-iam-v1 # grpcio-status -great-expectations==0.18.20 +great-expectations==0.18.21 greenlet==3.1.0 # via sqlalchemy grpc-google-iam-v1==0.13.1 @@ -237,7 +237,7 @@ grpcio-reflection==1.62.3 grpcio-status==1.62.3 # via google-api-core grpcio-testing==1.62.3 -grpcio-tools==1.56.2 +grpcio-tools==1.62.3 gunicorn==23.0.0 h11==0.14.0 # via @@ -254,12 +254,12 @@ httpx==0.27.2 # via # jupyterlab # python-keycloak -ibis-framework[duckdb]==9.4.0 +ibis-framework[duckdb]==9.5.0 # via ibis-substrait ibis-substrait==4.0.1 -identify==2.6.0 +identify==2.6.1 # via pre-commit -idna==3.8 +idna==3.10 # via # anyio # httpx @@ -319,7 +319,7 @@ jsonschema[format-nongpl]==4.23.0 # nbformat jsonschema-specifications==2023.12.1 # via jsonschema -jupyter-client==8.6.2 +jupyter-client==8.6.3 # via # ipykernel # jupyter-server @@ -383,7 +383,7 @@ mistune==3.0.2 # via # great-expectations # nbconvert -mmh3==4.1.0 +mmh3==5.0.0 mock==2.0.0 moto==4.2.14 msal==1.31.0 @@ -444,6 +444,7 @@ packaging==24.1 # google-cloud-bigquery # great-expectations # gunicorn + # ibis-framework # ibis-substrait # ipykernel # jupyter-server @@ -503,7 +504,7 @@ proto-plus==1.24.0 # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==4.25.4 +protobuf==4.25.5 # via # google-api-core # google-cloud-bigquery-storage @@ -521,10 +522,10 @@ protobuf==4.25.4 # substrait psutil==5.9.0 # via ipykernel -psycopg[binary, pool]==3.2.1 -psycopg-binary==3.2.1 +psycopg[binary, pool]==3.2.2 +psycopg-binary==3.2.2 # via psycopg -psycopg-pool==3.2.2 +psycopg-pool==3.2.3 # via psycopg ptyprocess==0.7.0 # via @@ -556,11 +557,11 @@ pyasn1-modules==0.4.1 pybindgen==0.22.1 pycparser==2.22 # via cffi -pydantic==2.9.1 +pydantic==2.9.2 # via # fastapi # great-expectations -pydantic-core==2.23.3 +pydantic-core==2.23.4 # via pydantic pygments==2.18.0 # via @@ -647,7 +648,7 @@ referencing==0.35.1 # jsonschema # jsonschema-specifications # jupyter-events -regex==2024.7.24 +regex==2024.9.11 # via parsimonious requests==2.32.3 # via @@ -695,14 +696,14 @@ ruamel-yaml==0.17.40 # via great-expectations ruamel-yaml-clib==0.2.8 # via ruamel-yaml -ruff==0.6.4 +ruff==0.6.5 s3transfer==0.10.2 # via boto3 scipy==1.14.1 # via great-expectations send2trash==1.8.3 # via jupyter-server -setuptools==74.1.2 +setuptools==75.1.0 # via # grpcio-tools # jupyterlab @@ -729,7 +730,7 @@ sniffio==1.3.1 # httpx snowballstemmer==2.2.0 # via sphinx -snowflake-connector-python[pandas]==3.12.1 +snowflake-connector-python[pandas]==3.12.2 sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.6 @@ -747,8 +748,8 @@ sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlalchemy[mypy]==2.0.34 -sqlglot==25.18.0 +sqlalchemy[mypy]==2.0.35 +sqlglot==25.20.1 # via ibis-framework sqlite-vec==0.1.1 sqlparams==6.1.0 @@ -757,7 +758,7 @@ stack-data==0.6.3 # via ipython starlette==0.38.5 # via fastapi -substrait==0.22.0 +substrait==0.23.0 # via ibis-substrait tabulate==0.9.0 tenacity==8.5.0 @@ -815,11 +816,11 @@ types-pyopenssl==24.1.0.20240722 # via types-redis types-python-dateutil==2.9.0.20240906 # via arrow -types-pytz==2024.1.0.20240417 -types-pyyaml==6.0.12.20240808 +types-pytz==2024.2.0.20240913 +types-pyyaml==6.0.12.20240917 types-redis==4.6.0.20240903 types-requests==2.30.0.0 -types-setuptools==74.1.0.20240907 +types-setuptools==75.1.0.20240917 # via types-cffi types-tabulate==0.9.0.20240106 types-urllib3==1.26.25.14 @@ -851,7 +852,7 @@ tzlocal==5.2 # trino uri-template==1.3.0 # via jsonschema -urllib3==2.2.2 +urllib3==2.2.3 # via # botocore # docker @@ -899,5 +900,5 @@ xmltodict==0.13.0 # via moto yarl==1.11.1 # via aiohttp -zipp==3.20.1 +zipp==3.20.2 # via importlib-metadata diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index 4332763e180..29d2185fe2d 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -2,7 +2,7 @@ # uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.11-requirements.txt annotated-types==0.7.0 # via pydantic -anyio==4.4.0 +anyio==4.5.0 # via # starlette # watchfiles @@ -22,12 +22,12 @@ click==8.1.7 cloudpickle==3.0.0 # via dask colorama==0.4.6 -dask[dataframe]==2024.8.2 +dask[dataframe]==2024.9.0 # via dask-expr -dask-expr==1.1.13 +dask-expr==1.1.14 # via dask dill==0.3.8 -fastapi==0.114.1 +fastapi==0.115.0 fsspec==2024.9.0 # via dask greenlet==3.1.0 @@ -37,7 +37,7 @@ h11==0.14.0 # via uvicorn httptools==0.6.1 # via uvicorn -idna==3.8 +idna==3.10 # via # anyio # requests @@ -51,12 +51,11 @@ locket==1.0.0 # via partd markupsafe==2.1.5 # via jinja2 -mmh3==4.1.0 +mmh3==5.0.0 mypy==1.11.2 # via sqlalchemy mypy-extensions==1.0.0 # via mypy -mypy-protobuf==3.6.0 numpy==1.26.4 # via # dask @@ -73,14 +72,13 @@ pandas==2.2.2 partd==1.4.2 # via dask prometheus-client==0.20.0 -protobuf==4.25.4 - # via mypy-protobuf +protobuf==4.25.5 psutil==6.0.0 pyarrow==17.0.0 # via dask-expr -pydantic==2.9.1 +pydantic==2.9.2 # via fastapi -pydantic-core==2.23.3 +pydantic-core==2.23.4 # via pydantic pygments==2.18.0 pyjwt==2.9.0 @@ -107,7 +105,7 @@ six==1.16.0 # via python-dateutil sniffio==1.3.1 # via anyio -sqlalchemy[mypy]==2.0.34 +sqlalchemy[mypy]==2.0.35 starlette==0.38.5 # via fastapi tabulate==0.9.0 @@ -119,8 +117,6 @@ toolz==0.12.1 # partd tqdm==4.66.5 typeguard==4.3.0 -types-protobuf==5.27.0.20240907 - # via mypy-protobuf typing-extensions==4.12.2 # via # fastapi @@ -131,7 +127,7 @@ typing-extensions==4.12.2 # typeguard tzdata==2024.1 # via pandas -urllib3==2.2.2 +urllib3==2.2.3 # via requests uvicorn[standard]==0.30.6 uvloop==0.20.0 @@ -140,5 +136,5 @@ watchfiles==0.24.0 # via uvicorn websockets==13.0.1 # via uvicorn -zipp==3.20.1 +zipp==3.20.2 # via importlib-metadata diff --git a/sdk/python/requirements/py3.9-ci-requirements.txt b/sdk/python/requirements/py3.9-ci-requirements.txt index 313290e5c28..aa973c89f52 100644 --- a/sdk/python/requirements/py3.9-ci-requirements.txt +++ b/sdk/python/requirements/py3.9-ci-requirements.txt @@ -15,7 +15,7 @@ altair==4.2.2 # via great-expectations annotated-types==0.7.0 # via pydantic -anyio==4.4.0 +anyio==4.5.0 # via # httpx # jupyter-server @@ -47,12 +47,12 @@ attrs==24.2.0 # aiohttp # jsonschema # referencing -azure-core==1.30.2 +azure-core==1.31.0 # via # azure-identity # azure-storage-blob azure-identity==1.17.1 -azure-storage-blob==12.22.0 +azure-storage-blob==12.23.0 babel==2.16.0 # via # jupyterlab-server @@ -143,7 +143,7 @@ decorator==5.1.1 # via ipython defusedxml==0.7.1 # via nbconvert -deltalake==0.19.2 +deltalake==0.20.0 deprecation==2.1.0 # via python-keycloak dill==0.3.8 @@ -169,10 +169,10 @@ execnet==2.1.1 # via pytest-xdist executing==2.1.0 # via stack-data -fastapi==0.114.1 +fastapi==0.115.0 fastjsonschema==2.20.0 # via nbformat -filelock==3.16.0 +filelock==3.16.1 # via # snowflake-connector-python # virtualenv @@ -186,7 +186,7 @@ fsspec==2024.9.0 # via dask geomet==0.2.1.post1 # via cassandra-driver -google-api-core[grpc]==2.19.2 +google-api-core[grpc]==2.20.0 # via # google-cloud-bigquery # google-cloud-bigquery-storage @@ -194,7 +194,7 @@ google-api-core[grpc]==2.19.2 # google-cloud-core # google-cloud-datastore # google-cloud-storage -google-auth==2.34.0 +google-auth==2.35.0 # via # google-api-core # google-cloud-bigquery @@ -228,7 +228,7 @@ googleapis-common-protos[grpc]==1.65.0 # google-api-core # grpc-google-iam-v1 # grpcio-status -great-expectations==0.18.20 +great-expectations==0.18.21 greenlet==3.1.0 # via sqlalchemy grpc-google-iam-v1==0.13.1 @@ -248,7 +248,7 @@ grpcio-reflection==1.62.3 grpcio-status==1.62.3 # via google-api-core grpcio-testing==1.62.3 -grpcio-tools==1.56.2 +grpcio-tools==1.62.3 gunicorn==23.0.0 h11==0.14.0 # via @@ -268,9 +268,9 @@ httpx==0.27.2 ibis-framework[duckdb]==9.0.0 # via ibis-substrait ibis-substrait==4.0.1 -identify==2.6.0 +identify==2.6.1 # via pre-commit -idna==3.8 +idna==3.10 # via # anyio # httpx @@ -339,7 +339,7 @@ jsonschema[format-nongpl]==4.23.0 # nbformat jsonschema-specifications==2023.12.1 # via jsonschema -jupyter-client==8.6.2 +jupyter-client==8.6.3 # via # ipykernel # jupyter-server @@ -403,7 +403,7 @@ mistune==3.0.2 # via # great-expectations # nbconvert -mmh3==4.1.0 +mmh3==5.0.0 mock==2.0.0 moto==4.2.14 msal==1.31.0 @@ -523,7 +523,7 @@ proto-plus==1.24.0 # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==4.25.4 +protobuf==4.25.5 # via # google-api-core # google-cloud-bigquery-storage @@ -541,10 +541,10 @@ protobuf==4.25.4 # substrait psutil==5.9.0 # via ipykernel -psycopg[binary, pool]==3.1.18 -psycopg-binary==3.1.18 +psycopg[binary, pool]==3.2.2 +psycopg-binary==3.2.2 # via psycopg -psycopg-pool==3.2.2 +psycopg-pool==3.2.3 # via psycopg ptyprocess==0.7.0 # via @@ -576,11 +576,11 @@ pyasn1-modules==0.4.1 pybindgen==0.22.1 pycparser==2.22 # via cffi -pydantic==2.9.1 +pydantic==2.9.2 # via # fastapi # great-expectations -pydantic-core==2.23.3 +pydantic-core==2.23.4 # via pydantic pygments==2.18.0 # via @@ -667,7 +667,7 @@ referencing==0.35.1 # jsonschema # jsonschema-specifications # jupyter-events -regex==2024.7.24 +regex==2024.9.11 # via parsimonious requests==2.32.3 # via @@ -715,14 +715,14 @@ ruamel-yaml==0.17.40 # via great-expectations ruamel-yaml-clib==0.2.8 # via ruamel-yaml -ruff==0.6.4 +ruff==0.6.5 s3transfer==0.10.2 # via boto3 scipy==1.13.1 # via great-expectations send2trash==1.8.3 # via jupyter-server -setuptools==74.1.2 +setuptools==75.1.0 # via # grpcio-tools # jupyterlab @@ -749,7 +749,7 @@ sniffio==1.3.1 # httpx snowballstemmer==2.2.0 # via sphinx -snowflake-connector-python[pandas]==3.12.1 +snowflake-connector-python[pandas]==3.12.2 sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.6 @@ -767,7 +767,7 @@ sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlalchemy[mypy]==2.0.34 +sqlalchemy[mypy]==2.0.35 sqlglot==23.12.2 # via ibis-framework sqlite-vec==0.1.1 @@ -777,7 +777,7 @@ stack-data==0.6.3 # via ipython starlette==0.38.5 # via fastapi -substrait==0.22.0 +substrait==0.23.0 # via ibis-substrait tabulate==0.9.0 tenacity==8.5.0 @@ -845,11 +845,11 @@ types-pyopenssl==24.1.0.20240722 # via types-redis types-python-dateutil==2.9.0.20240906 # via arrow -types-pytz==2024.1.0.20240417 -types-pyyaml==6.0.12.20240808 +types-pytz==2024.2.0.20240913 +types-pyyaml==6.0.12.20240917 types-redis==4.6.0.20240903 types-requests==2.30.0.0 -types-setuptools==74.1.0.20240907 +types-setuptools==75.1.0.20240917 # via types-cffi types-tabulate==0.9.0.20240106 types-urllib3==1.26.25.14 @@ -936,5 +936,5 @@ xmltodict==0.13.0 # via moto yarl==1.11.1 # via aiohttp -zipp==3.20.1 +zipp==3.20.2 # via importlib-metadata diff --git a/sdk/python/requirements/py3.9-requirements.txt b/sdk/python/requirements/py3.9-requirements.txt index 6659adb51b8..78986a8d739 100644 --- a/sdk/python/requirements/py3.9-requirements.txt +++ b/sdk/python/requirements/py3.9-requirements.txt @@ -2,7 +2,7 @@ # uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.9-requirements.txt annotated-types==0.7.0 # via pydantic -anyio==4.4.0 +anyio==4.5.0 # via # starlette # watchfiles @@ -29,7 +29,7 @@ dask-expr==1.1.10 dill==0.3.8 exceptiongroup==1.2.2 # via anyio -fastapi==0.114.1 +fastapi==0.115.0 fsspec==2024.9.0 # via dask greenlet==3.1.0 @@ -39,7 +39,7 @@ h11==0.14.0 # via uvicorn httptools==0.6.1 # via uvicorn -idna==3.8 +idna==3.10 # via # anyio # requests @@ -55,12 +55,11 @@ locket==1.0.0 # via partd markupsafe==2.1.5 # via jinja2 -mmh3==4.1.0 +mmh3==5.0.0 mypy==1.11.2 # via sqlalchemy mypy-extensions==1.0.0 # via mypy -mypy-protobuf==3.6.0 numpy==1.26.4 # via # dask @@ -77,14 +76,13 @@ pandas==2.2.2 partd==1.4.2 # via dask prometheus-client==0.20.0 -protobuf==4.25.4 - # via mypy-protobuf +protobuf==4.25.5 psutil==6.0.0 pyarrow==17.0.0 # via dask-expr -pydantic==2.9.1 +pydantic==2.9.2 # via fastapi -pydantic-core==2.23.3 +pydantic-core==2.23.4 # via pydantic pygments==2.18.0 pyjwt==2.9.0 @@ -111,7 +109,7 @@ six==1.16.0 # via python-dateutil sniffio==1.3.1 # via anyio -sqlalchemy[mypy]==2.0.34 +sqlalchemy[mypy]==2.0.35 starlette==0.38.5 # via fastapi tabulate==0.9.0 @@ -125,8 +123,6 @@ toolz==0.12.1 # partd tqdm==4.66.5 typeguard==4.3.0 -types-protobuf==5.27.0.20240907 - # via mypy-protobuf typing-extensions==4.12.2 # via # anyio @@ -140,7 +136,7 @@ typing-extensions==4.12.2 # uvicorn tzdata==2024.1 # via pandas -urllib3==2.2.2 +urllib3==2.2.3 # via requests uvicorn[standard]==0.30.6 uvloop==0.20.0 @@ -149,5 +145,5 @@ watchfiles==0.24.0 # via uvicorn websockets==13.0.1 # via uvicorn -zipp==3.20.1 +zipp==3.20.2 # via importlib-metadata diff --git a/setup.py b/setup.py index f332c21f717..e5026a5144e 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ "click>=7.0.0,<9.0.0", "colorama>=0.3.9,<1", "dill~=0.3.0", - "mypy-protobuf>=3.1", + "protobuf<5", "Jinja2>=2,<4", "jsonschema", "mmh3", @@ -157,6 +157,8 @@ "virtualenv==20.23.0", "cryptography>=35.0,<43", "ruff>=0.3.3", + "protobuf<5", + "mypy-protobuf>=3.1", "grpcio-tools>=1.56.2,<2", "grpcio-testing>=1.56.2,<2", # FastAPI does not correctly pull starlette dependency on httpx see thread(https://github.com/tiangolo/fastapi/issues/5656). @@ -400,6 +402,9 @@ def run(self): entry_points={"console_scripts": ["feast=feast.cli:cli"]}, use_scm_version=use_scm_version, setup_requires=[ + # snowflake udf packages refer to conda packages, not pypi libraries. Conda stack is still on protobuf 4 + # So we are adding protobuf<5 as a requirement + "protobuf<5", "grpcio-tools>=1.56.2,<2", "mypy-protobuf>=3.1", "pybindgen==0.22.0", @@ -410,4 +415,4 @@ def run(self): "build_py": BuildCommand, "develop": DevelopCommand, }, -) +) \ No newline at end of file From a53001facedc04e59555c1bed5eb956b4d3608b8 Mon Sep 17 00:00:00 2001 From: tokoko Date: Thu, 19 Sep 2024 18:56:53 +0000 Subject: [PATCH 10/12] fix: add line endings Signed-off-by: tokoko --- sdk/python/requirements/py3.10-ci-requirements.txt | 2 +- sdk/python/requirements/py3.10-requirements.txt | 2 +- sdk/python/requirements/py3.11-ci-requirements.txt | 2 +- sdk/python/requirements/py3.11-requirements.txt | 2 +- sdk/python/requirements/py3.9-ci-requirements.txt | 2 +- sdk/python/requirements/py3.9-requirements.txt | 2 +- setup.py | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index e677c5134a0..59e799ebab6 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -1043,4 +1043,4 @@ xmltodict==0.13.0 yarl==1.11.1 # via aiohttp zipp==3.20.2 - # via importlib-metadata \ No newline at end of file + # via importlib-metadata diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index 92c67aef95c..26eeca3529a 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -172,4 +172,4 @@ watchfiles==0.24.0 websockets==13.0.1 # via uvicorn zipp==3.20.2 - # via importlib-metadata \ No newline at end of file + # via importlib-metadata diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index b148fd09e39..1f98054da47 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -1022,4 +1022,4 @@ xmltodict==0.13.0 yarl==1.11.1 # via aiohttp zipp==3.20.2 - # via importlib-metadata \ No newline at end of file + # via importlib-metadatac diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index 4c438ee0bb7..5c20e45f075 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -166,4 +166,4 @@ watchfiles==0.24.0 websockets==13.0.1 # via uvicorn zipp==3.20.2 - # via importlib-metadata \ No newline at end of file + # via importlib-metadata diff --git a/sdk/python/requirements/py3.9-ci-requirements.txt b/sdk/python/requirements/py3.9-ci-requirements.txt index 85a6e18f012..bbdca890b6a 100644 --- a/sdk/python/requirements/py3.9-ci-requirements.txt +++ b/sdk/python/requirements/py3.9-ci-requirements.txt @@ -1054,4 +1054,4 @@ xmltodict==0.13.0 yarl==1.11.1 # via aiohttp zipp==3.20.2 - # via importlib-metadata \ No newline at end of file + # via importlib-metadata diff --git a/sdk/python/requirements/py3.9-requirements.txt b/sdk/python/requirements/py3.9-requirements.txt index 35a8911c8f0..7ffef84b235 100644 --- a/sdk/python/requirements/py3.9-requirements.txt +++ b/sdk/python/requirements/py3.9-requirements.txt @@ -175,4 +175,4 @@ watchfiles==0.24.0 websockets==13.0.1 # via uvicorn zipp==3.20.2 - # via importlib-metadata \ No newline at end of file + # via importlib-metadata diff --git a/setup.py b/setup.py index e5026a5144e..5a6f18db353 100644 --- a/setup.py +++ b/setup.py @@ -415,4 +415,4 @@ def run(self): "build_py": BuildCommand, "develop": DevelopCommand, }, -) \ No newline at end of file +) From 51584b6364dc72a855818c1f4ee8e4d299ecab86 Mon Sep 17 00:00:00 2001 From: tokoko Date: Thu, 19 Sep 2024 18:57:23 +0000 Subject: [PATCH 11/12] fix: add line endings Signed-off-by: tokoko --- sdk/python/requirements/py3.11-ci-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index 1f98054da47..9f57ecd8411 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -1022,4 +1022,4 @@ xmltodict==0.13.0 yarl==1.11.1 # via aiohttp zipp==3.20.2 - # via importlib-metadatac + # via importlib-metadata From a375685f5e8558baf7dfa5f57701a60eb5259729 Mon Sep 17 00:00:00 2001 From: tokoko Date: Sun, 22 Sep 2024 16:54:14 +0000 Subject: [PATCH 12/12] chore: remove proto generation from make commands Signed-off-by: tokoko --- Makefile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Makefile b/Makefile index 383363ce837..6831a583379 100644 --- a/Makefile +++ b/Makefile @@ -39,15 +39,11 @@ build: protos build-java build-docker install-python-dependencies-uv: uv pip sync --system sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt - uv pip install --system setuptools grpcio-tools==1.56.2 uv pip install --system --no-deps . - python setup.py build_python_protos --inplace install-python-dependencies-uv-venv: uv pip sync sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt - uv pip install setuptools grpcio-tools==1.56.2 uv pip install --no-deps . - python setup.py build_python_protos --inplace install-python-ci-dependencies: python -m piptools sync sdk/python/requirements/py$(PYTHON_VERSION)-ci-requirements.txt