diff --git a/Makefile b/Makefile index d231da8be10..b86713385f3 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,7 @@ install-python-ci-dependencies-uv: python setup.py build_python_protos --inplace lock-python-ci-dependencies: - python -m piptools compile -U --extra ci --output-file sdk/python/requirements/py$(PYTHON)-ci-requirements.txt + uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py$(PYTHON)-ci-requirements.txt package-protos: cp -r ${ROOT_DIR}/protos ${ROOT_DIR}/sdk/python/feast/protos @@ -60,13 +60,15 @@ install-python: python setup.py develop lock-python-dependencies: - python -m piptools compile -U --output-file sdk/python/requirements/py$(PYTHON)-requirements.txt + uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py$(PYTHON)-requirements.txt lock-python-dependencies-all: - pixi run --environment py39 --manifest-path infra/scripts/pixi/pixi.toml "python -m piptools compile -U --output-file sdk/python/requirements/py3.9-requirements.txt" - pixi run --environment py39 --manifest-path infra/scripts/pixi/pixi.toml "python -m piptools compile -U --extra ci --output-file sdk/python/requirements/py3.9-ci-requirements.txt" - pixi run --environment py310 --manifest-path infra/scripts/pixi/pixi.toml "python -m piptools compile -U --output-file sdk/python/requirements/py3.10-requirements.txt" - pixi run --environment py310 --manifest-path infra/scripts/pixi/pixi.toml "python -m piptools compile -U --extra ci --output-file sdk/python/requirements/py3.10-ci-requirements.txt" + pixi run --environment py39 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.9-requirements.txt" + pixi run --environment py39 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.9-ci-requirements.txt" + pixi run --environment py310 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.10-requirements.txt" + pixi run --environment py310 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.10-ci-requirements.txt" + pixi run --environment py311 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.11-requirements.txt" + pixi run --environment py311 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.11-ci-requirements.txt" benchmark-python: FEAST_USAGE=False IS_TEST=True python -m pytest --integration --benchmark --benchmark-autosave --benchmark-save-data sdk/python/tests diff --git a/docs/project/development-guide.md b/docs/project/development-guide.md index 2d4ab0c7c6a..146b6d7516e 100644 --- a/docs/project/development-guide.md +++ b/docs/project/development-guide.md @@ -123,43 +123,43 @@ Note that this means if you are midway through working through a PR and rebase, Setting up your development environment for Feast Python SDK / CLI: 1. Ensure that you have Docker installed in your environment. Docker is used to provision service dependencies during testing, and build images for feature servers and other components. - Please note that we use [Docker with BuiltKit](https://docs.docker.com/develop/develop-images/build_enhancements/). -2. Ensure that you have `make`, Python (3.8 and above) with `pip`, installed. +2. Ensure that you have `make` and Python (3.9 or above) installed. 3. _Recommended:_ Create a virtual environment to isolate development dependencies to be installed ```sh # create & activate a virtual environment python -m venv venv/ source venv/bin/activate ``` -4. Upgrade `pip` if outdated - ```sh - pip install --upgrade pip - ``` -5. (M1 Mac only): Follow the [dev guide](https://github.com/feast-dev/feast/issues/2105) -6. Install pip-tools - ```sh - pip install pip-tools - ``` -7. (Optional): Install Node & Yarn. Then run the following to build Feast UI artifacts for use in `feast ui` +4. (M1 Mac only): Follow the [dev guide](https://github.com/feast-dev/feast/issues/2105) +5. Install uv +It is recommended to use uv for managing python dependencies. +```sh +curl -LsSf https://astral.sh/uv/install.sh | sh +``` +or +```ssh +pip install uv +``` +6. (Optional): Install Node & Yarn. Then run the following to build Feast UI artifacts for use in `feast ui` ``` make build-ui ``` -8. Install mysql (needed for ci dependencies) +7. (Optional) install pixi +pixi is necessary to run step 8 for all python versions at once. ```sh -brew install mysql +curl -fsSL https://pixi.sh/install.sh | bash ``` -9. Install development dependencies for Feast Python SDK / CLI +8. (Optional): Recompile python lock files +If you make changes to requirements or simply want to update python lock files to reflect latest versioons. ```sh -pip install -e ".[dev]" -``` - -This will allow the installed feast version to automatically reflect changes to your local development version of Feast without needing to reinstall everytime you make code changes. - -10. Compile the protubufs +make lock-python-dependencies-all +``` +9. Install development dependencies for Feast Python SDK / CLI +This will install package versions from the lock file, install editable version of feast and compile protobufs. ```sh -make compile-protos-python +make install-python-ci-dependencies-uv ``` - -11. Spin up Docker Image +10. Spin up Docker Image ```sh docker build -t docker-whale -f ./sdk/python/feast/infra/feature_servers/multicloud/Dockerfile . ``` diff --git a/infra/scripts/pixi/pixi.lock b/infra/scripts/pixi/pixi.lock index 65b761156e1..19a32f32ae8 100644 --- a/infra/scripts/pixi/pixi.lock +++ b/infra/scripts/pixi/pixi.lock @@ -1,6 +1,17 @@ version: 4 environments: default: + channels: + - url: https://conda.anaconda.org/conda-forge/ + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h95c4c6d_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.1.39-h0ea3d13_0.conda + py310: channels: - url: https://conda.anaconda.org/conda-forge/ packages: @@ -9,36 +20,25 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.1.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.3-h2797004_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h95c4c6d_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4.20240210-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-tools-7.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.3-hab00c5b_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.14-hd12c33a_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.1.39-h0ea3d13_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda - py310: + py311: channels: - url: https://conda.anaconda.org/conda-forge/ packages: @@ -47,34 +47,25 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h55db66e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-hc881cc4_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-hc881cc4_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.3-h2797004_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h95c4c6d_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4.20240210-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-tools-7.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.14-hd12c33a_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.0-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.9-hb806964_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.1.39-h0ea3d13_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda py39: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -84,34 +75,24 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.1.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.3-h2797004_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h95c4c6d_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4.20240210-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-tools-7.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.19-h0755675_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.1.39-h0ea3d13_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda packages: - kind: conda name: _libgcc_mutex @@ -168,53 +149,6 @@ packages: license: ISC size: 155432 timestamp: 1706843687645 -- kind: conda - name: click - version: 8.1.7 - build: unix_pyh707e725_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec - md5: f3ad426304898027fc619827ff428eca - depends: - - __unix - - python >=3.8 - license: BSD-3-Clause - license_family: BSD - size: 84437 - timestamp: 1692311973840 -- kind: conda - name: colorama - version: 0.4.6 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 - md5: 3faab06a954c2a04039983f2c4a50d99 - depends: - - python >=3.7 - license: BSD-3-Clause - license_family: BSD - size: 25170 - timestamp: 1666700778190 -- kind: conda - name: importlib-metadata - version: 7.1.0 - build: pyha770c72_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.1.0-pyha770c72_0.conda - sha256: cc2e7d1f7f01cede30feafc1118b7aefa244d0a12224513734e24165ae12ba49 - md5: 0896606848b2dc5cebdf111b6543aa04 - depends: - - python >=3.8 - - zipp >=0.5 - license: Apache-2.0 - license_family: APACHE - size: 27043 - timestamp: 1710971498183 - kind: conda name: ld_impl_linux-64 version: '2.40' @@ -229,6 +163,20 @@ packages: license_family: GPL size: 704696 timestamp: 1674833944779 +- kind: conda + name: ld_impl_linux-64 + version: '2.40' + build: h55db66e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h55db66e_0.conda + sha256: ef969eee228cfb71e55146eaecc6af065f468cb0bc0a5239bc053b39db0b5f09 + md5: 10569984e7db886e4f1abc2b47ad79a1 + constrains: + - binutils_impl_linux-64 2.40 + license: GPL-3.0-only + license_family: GPL + size: 713322 + timestamp: 1713651222435 - kind: conda name: libexpat version: 2.6.2 @@ -278,6 +226,24 @@ packages: license_family: GPL size: 770506 timestamp: 1706819192021 +- kind: conda + name: libgcc-ng + version: 13.2.0 + build: hc881cc4_6 + build_number: 6 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-hc881cc4_6.conda + sha256: 836a0057525f1414de43642d357d0ab21ac7f85e24800b010dbc17d132e6efec + md5: df88796bd09a0d2ed292e59101478ad8 + depends: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + constrains: + - libgomp 13.2.0 hc881cc4_6 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 777315 + timestamp: 1713755001744 - kind: conda name: libgomp version: 13.2.0 @@ -293,6 +259,21 @@ packages: license_family: GPL size: 419751 timestamp: 1706819107383 +- kind: conda + name: libgomp + version: 13.2.0 + build: hc881cc4_6 + build_number: 6 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-hc881cc4_6.conda + sha256: e722b19b23b31a14b1592d5eceabb38dc52452ff5e4d346e330526971c22e52a + md5: aae89d3736661c36a5591788aebd0817 + depends: + - _libgcc_mutex 0.1 conda_forge + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 422363 + timestamp: 1713754915251 - kind: conda name: libnsl version: 2.0.1 @@ -321,6 +302,19 @@ packages: license: Unlicense size: 859858 timestamp: 1713367435849 +- kind: conda + name: libstdcxx-ng + version: 13.2.0 + build: h95c4c6d_6 + build_number: 6 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h95c4c6d_6.conda + sha256: 2616dbf9d28431eea20b6e307145c6a92ea0328a047c725ff34b0316de2617da + md5: 3cfab3e709f77e9f1b3d380eb622494a + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 3842900 + timestamp: 1713755068572 - kind: conda name: libuuid version: 2.38.1 @@ -398,73 +392,22 @@ packages: size: 2865379 timestamp: 1710793235846 - kind: conda - name: packaging - version: '24.0' - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.0-pyhd8ed1ab_0.conda - sha256: a390182d74c31dfd713c16db888c92c277feeb6d1fe96ff9d9c105f9564be48a - md5: 248f521b64ce055e7feae3105e7abeb8 + name: openssl + version: 3.3.0 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.0-hd590300_0.conda + sha256: fdbf05e4db88c592366c90bb82e446edbe33c6e49e5130d51c580b2629c0b5d5 + md5: c0f3abb4a16477208bbd43a39bd56f18 depends: - - python >=3.8 + - ca-certificates + - libgcc-ng >=12 + constrains: + - pyopenssl >=22.1 license: Apache-2.0 - license_family: APACHE - size: 49832 - timestamp: 1710076089469 -- kind: conda - name: pip - version: '24.0' - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a - md5: f586ac1e56c8638b64f9c8122a7b8a67 - depends: - - python >=3.7 - - setuptools - - wheel - license: MIT - license_family: MIT - size: 1398245 - timestamp: 1706960660581 -- kind: conda - name: pip-tools - version: 7.4.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pip-tools-7.4.1-pyhd8ed1ab_0.conda - sha256: 5534c19a6233faed1c9109782322c9d31e536ce20448f8c90db3d864fb8f226d - md5: 73203bd783da9c37c2cdabb1f3b9d44d - depends: - - click >=7 - - pip >=21.2 - - python >=3.7 - - python-build - - setuptools - - wheel - license: BSD-3-Clause - license_family: BSD - size: 54113 - timestamp: 1709736180083 -- kind: conda - name: pyproject_hooks - version: 1.0.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.0.0-pyhd8ed1ab_0.conda - sha256: 016340837fcfef57b351febcbe855eedf0c1f0ecfc910ed48c7fbd20535f9847 - md5: 21de50391d584eb7f4441b9de1ad773f - depends: - - python >=3.7 - - tomli >=1.1.0 - license: MIT - license_family: MIT - size: 13867 - timestamp: 1670268791173 + license_family: Apache + size: 2895187 + timestamp: 1714466138265 - kind: conda name: python version: 3.9.19 @@ -525,12 +468,12 @@ packages: timestamp: 1710939725109 - kind: conda name: python - version: 3.12.3 - build: hab00c5b_0_cpython + version: 3.11.9 + build: hb806964_0_cpython subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.3-hab00c5b_0_cpython.conda - sha256: f9865bcbff69f15fd89a33a2da12ad616e98d65ce7c83c644b92e66e5016b227 - md5: 2540b74d304f71d3e89c81209db4db84 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.9-hb806964_0_cpython.conda + sha256: 177f33a1fb8d3476b38f73c37b42f01c0b014fa0e039a701fd9f83d83aae6d40 + md5: ac68acfa8b558ed406c75e98d3428d7b depends: - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 @@ -538,7 +481,7 @@ packages: - libffi >=3.4,<4.0a0 - libgcc-ng >=12 - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.45.2,<4.0a0 + - libsqlite >=3.45.3,<4.0a0 - libuuid >=2.38.1,<3.0a0 - libxcrypt >=4.4.36 - libzlib >=1.2.13,<1.3.0a0 @@ -549,32 +492,10 @@ packages: - tzdata - xz >=5.2.6,<6.0a0 constrains: - - python_abi 3.12.* *_cp312 + - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 31991381 - timestamp: 1713208036041 -- kind: conda - name: python-build - version: 1.2.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.1-pyhd8ed1ab_0.conda - sha256: 3104051be7279d1b15f0a4be79f4bfeaf3a42b2900d24a7ad8e980df903fe8db - md5: d657cde3b3943fcedf6038138eea84de - depends: - - colorama - - importlib-metadata >=4.6 - - packaging >=19.0 - - pyproject_hooks - - python >=3.8 - - tomli >=1.1.0 - constrains: - - build <0 - license: MIT - license_family: MIT - size: 24434 - timestamp: 1711647439510 + size: 30884494 + timestamp: 1713553104915 - kind: conda name: readline version: '8.2' @@ -591,21 +512,6 @@ packages: license_family: GPL size: 281456 timestamp: 1679532220005 -- kind: conda - name: setuptools - version: 69.5.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.5.1-pyhd8ed1ab_0.conda - sha256: 72d143408507043628b32bed089730b6d5f5445eccc44b59911ec9f262e365e7 - md5: 7462280d81f639363e6e63c81276bd9e - depends: - - python >=3.8 - license: MIT - license_family: MIT - size: 501790 - timestamp: 1713094963112 - kind: conda name: tk version: 8.6.13 @@ -622,21 +528,6 @@ packages: license_family: BSD size: 3318875 timestamp: 1699202167581 -- kind: conda - name: tomli - version: 2.0.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f - md5: 5844808ffab9ebdb694585b50ba02a96 - depends: - - python >=3.7 - license: MIT - license_family: MIT - size: 15940 - timestamp: 1644342331069 - kind: conda name: tzdata version: 2024a @@ -650,21 +541,19 @@ packages: size: 119815 timestamp: 1706886945727 - kind: conda - name: wheel - version: 0.43.0 - build: pyhd8ed1ab_1 - build_number: 1 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - sha256: cb318f066afd6fd64619f14c030569faf3f53e6f50abf743b4c865e7d95b96bc - md5: 0b5293a157c2b5cd513dd1b03d8d3aae + name: uv + version: 0.1.39 + build: h0ea3d13_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/uv-0.1.39-h0ea3d13_0.conda + sha256: 763d149b6f4f5c70c91e4106d3a48409c48283ed2e27392578998fb2441f23d8 + md5: c3206e7ca254e50b3556917886f9b12b depends: - - python >=3.8 - license: MIT - license_family: MIT - size: 57963 - timestamp: 1711546009410 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: Apache-2.0 OR MIT + size: 11891252 + timestamp: 1714233659570 - kind: conda name: xz version: 5.2.6 @@ -678,18 +567,3 @@ packages: license: LGPL-2.1 and GPL-2.0 size: 418368 timestamp: 1660346797927 -- kind: conda - name: zipp - version: 3.17.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda - sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 - md5: 2e4d6bc0b14e10f895fc6791a7d9b26a - depends: - - python >=3.8 - license: MIT - license_family: MIT - size: 18954 - timestamp: 1695255262261 diff --git a/infra/scripts/pixi/pixi.toml b/infra/scripts/pixi/pixi.toml index 80a29d3a59a..f0d360fff3d 100644 --- a/infra/scripts/pixi/pixi.toml +++ b/infra/scripts/pixi/pixi.toml @@ -6,7 +6,7 @@ platforms = ["linux-64"] [tasks] [dependencies] -pip-tools = ">=7.4.1,<7.5" +uv = ">=0.1.39,<0.2" [feature.py39.dependencies] python = "~=3.9.0" @@ -14,6 +14,10 @@ python = "~=3.9.0" [feature.py310.dependencies] python = "~=3.10.0" +[feature.py311.dependencies] +python = "~=3.11.0" + [environments] py39 = ["py39"] -py310 = ["py310"] \ No newline at end of file +py310 = ["py310"] +py311 = ["py311"] diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 15dadfd8740..9d3ceb2a1f1 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -1,9 +1,5 @@ -# -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: -# -# pip-compile --extra=ci --output-file=sdk/python/requirements/py3.10-ci-requirements.txt -# +# 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 alabaster==0.7.16 # via sphinx altair==4.2.2 @@ -27,7 +23,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 @@ -46,9 +41,7 @@ azure-core==1.30.1 # azure-identity # azure-storage-blob azure-identity==1.16.0 - # via feast (setup.py) azure-storage-blob==12.19.1 - # via feast (setup.py) babel==2.14.0 # via # jupyterlab-server @@ -60,26 +53,20 @@ bidict==0.23.1 bleach==6.1.0 # via nbconvert boto3==1.34.88 - # via - # feast (setup.py) - # moto + # via moto botocore==1.34.88 # via # boto3 # moto # s3transfer bowler==0.9.0 - # via feast (setup.py) build==1.2.1 - # via - # feast (setup.py) - # pip-tools + # via pip-tools cachecontrol==0.14.0 # via firebase-admin cachetools==5.3.3 # via google-auth cassandra-driver==3.29.1 - # via feast (setup.py) certifi==2024.2.2 # via # httpcore @@ -103,7 +90,6 @@ click==8.1.7 # via # bowler # dask - # feast (setup.py) # geomet # great-expectations # moreorless @@ -112,9 +98,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 @@ -125,7 +109,6 @@ cryptography==42.0.5 # via # azure-identity # azure-storage-blob - # feast (setup.py) # great-expectations # moto # msal @@ -134,10 +117,8 @@ cryptography==42.0.5 # snowflake-connector-python # types-pyopenssl # types-redis -dask[array,dataframe]==2024.4.2 - # via - # dask-expr - # feast (setup.py) +dask[dataframe]==2024.4.2 + # via dask-expr dask-expr==1.0.12 # via dask db-dtypes==1.2.0 @@ -149,15 +130,11 @@ decorator==5.1.1 defusedxml==0.7.1 # via nbconvert deltalake==0.16.4 - # via feast (setup.py) dill==0.3.8 - # via feast (setup.py) distlib==0.3.8 # via virtualenv docker==7.0.0 - # via - # feast (setup.py) - # testcontainers + # via testcontainers docutils==0.19 # via sphinx duckdb==0.10.2 @@ -178,7 +155,6 @@ execnet==2.1.1 executing==2.0.1 # via stack-data fastapi==0.110.2 - # via feast (setup.py) fastjsonschema==2.19.1 # via nbformat filelock==3.13.4 @@ -186,22 +162,18 @@ filelock==3.13.4 # snowflake-connector-python # virtualenv firebase-admin==5.4.0 - # via feast (setup.py) fissix==21.11.13 # via bowler fqdn==1.5.1 # via jsonschema fsspec==2023.12.2 - # via - # dask - # feast (setup.py) + # via dask geojson==2.5.0 # via rockset geomet==0.2.1.post1 # via cassandra-driver google-api-core[grpc]==2.18.0 # via - # feast (setup.py) # firebase-admin # google-api-python-client # google-cloud-bigquery @@ -225,11 +197,8 @@ google-auth==2.29.0 google-auth-httplib2==0.2.0 # via google-api-python-client google-cloud-bigquery[pandas]==3.12.0 - # via feast (setup.py) google-cloud-bigquery-storage==2.24.0 - # via feast (setup.py) google-cloud-bigtable==2.23.1 - # via feast (setup.py) google-cloud-core==2.4.1 # via # google-cloud-bigquery @@ -238,13 +207,10 @@ google-cloud-core==2.4.1 # google-cloud-firestore # google-cloud-storage google-cloud-datastore==2.19.0 - # via feast (setup.py) google-cloud-firestore==2.16.0 # via firebase-admin google-cloud-storage==2.16.0 - # via - # feast (setup.py) - # firebase-admin + # via firebase-admin google-crc32c==1.5.0 # via # google-cloud-storage @@ -255,19 +221,16 @@ google-resumable-media==2.7.0 # google-cloud-storage googleapis-common-protos[grpc]==1.63.0 # via - # feast (setup.py) # google-api-core # grpc-google-iam-v1 # grpcio-status great-expectations==0.18.12 - # via feast (setup.py) greenlet==3.0.3 # via sqlalchemy grpc-google-iam-v1==0.13.0 # via google-cloud-bigtable grpcio==1.62.2 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery # googleapis-common-protos @@ -278,27 +241,19 @@ grpcio==1.62.2 # grpcio-testing # grpcio-tools grpcio-health-checking==1.62.2 - # via feast (setup.py) grpcio-reflection==1.62.2 - # via feast (setup.py) grpcio-status==1.62.2 # via google-api-core grpcio-testing==1.62.2 - # via feast (setup.py) grpcio-tools==1.62.2 - # via feast (setup.py) -gunicorn==22.0.0 ; platform_system != "Windows" - # via feast (setup.py) +gunicorn==22.0.0 h11==0.14.0 # via # httpcore # uvicorn happybase==1.2.0 - # via feast (setup.py) hazelcast-python-client==5.3.0 - # via feast (setup.py) hiredis==2.3.2 - # via feast (setup.py) httpcore==1.0.5 # via httpx httplib2==0.22.0 @@ -308,15 +263,10 @@ httplib2==0.22.0 httptools==0.6.1 # via uvicorn httpx==0.27.0 - # via - # feast (setup.py) - # jupyterlab + # via jupyterlab ibis-framework[duckdb]==8.0.0 - # via - # feast (setup.py) - # ibis-substrait + # via ibis-substrait ibis-substrait==3.2.0 - # via feast (setup.py) identify==2.5.35 # via pre-commit idna==3.7 @@ -350,7 +300,6 @@ jedi==0.19.1 jinja2==3.1.3 # via # altair - # feast (setup.py) # great-expectations # jupyter-server # jupyterlab @@ -373,7 +322,6 @@ jsonpointer==2.4 jsonschema[format-nongpl]==4.21.1 # via # altair - # feast (setup.py) # great-expectations # jupyter-events # jupyterlab-server @@ -418,7 +366,6 @@ jupyterlab-server==2.26.0 jupyterlab-widgets==3.0.10 # via ipywidgets kubernetes==20.13.0 - # via feast (setup.py) locket==1.0.0 # via partd makefun==1.15.2 @@ -439,19 +386,15 @@ 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) moreorless==0.4.0 # via bowler moto==4.2.14 - # via feast (setup.py) msal==1.28.0 # via # azure-identity @@ -463,13 +406,10 @@ msgpack==1.0.8 multipledispatch==1.0.0 # via ibis-framework mypy==1.9.0 - # 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.3 @@ -495,7 +435,6 @@ numpy==1.26.4 # altair # dask # db-dtypes - # feast (setup.py) # great-expectations # ibis-framework # pandas @@ -532,7 +471,6 @@ pandas==2.2.2 # dask # dask-expr # db-dtypes - # feast (setup.py) # google-cloud-bigquery # great-expectations # ibis-framework @@ -549,8 +487,9 @@ pbr==6.0.0 # via mock pexpect==4.9.0 # via ipython +pip==24.0 + # via pip-tools pip-tools==7.4.1 - # via feast (setup.py) platformdirs==3.11.0 # via # jupyter-core @@ -563,7 +502,6 @@ ply==3.11 portalocker==2.8.2 # via msal-extensions pre-commit==3.3.1 - # via feast (setup.py) prometheus-client==0.20.0 # via jupyter-server prompt-toolkit==3.0.43 @@ -578,7 +516,6 @@ proto-plus==1.23.0 # google-cloud-firestore protobuf==4.25.3 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage @@ -596,11 +533,8 @@ protobuf==4.25.3 # proto-plus # substrait psutil==5.9.0 - # via - # feast (setup.py) - # ipykernel + # via ipykernel psycopg2-binary==2.9.9 - # via feast (setup.py) ptyprocess==0.7.0 # via # pexpect @@ -608,7 +542,6 @@ ptyprocess==0.7.0 pure-eval==0.2.2 # via stack-data py==1.11.0 - # via feast (setup.py) py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.7 @@ -618,7 +551,6 @@ pyarrow==15.0.2 # dask-expr # db-dtypes # deltalake - # feast (setup.py) # google-cloud-bigquery # ibis-framework # snowflake-connector-python @@ -633,19 +565,16 @@ pyasn1==0.6.0 pyasn1-modules==0.4.0 # via google-auth pybindgen==0.22.1 - # via feast (setup.py) pycparser==2.22 # via cffi pydantic==2.7.0 # via # fastapi - # feast (setup.py) # great-expectations pydantic-core==2.18.1 # via pydantic pygments==2.17.2 # via - # feast (setup.py) # ipython # nbconvert # rich @@ -655,11 +584,8 @@ pyjwt[crypto]==2.8.0 # msal # snowflake-connector-python pymssql==2.3.0 - # via feast (setup.py) pymysql==1.1.0 - # via feast (setup.py) pyodbc==5.1.0 - # via feast (setup.py) pyopenssl==24.1.0 # via snowflake-connector-python pyparsing==3.1.2 @@ -671,10 +597,8 @@ pyproject-hooks==1.0.0 # build # pip-tools pyspark==3.5.1 - # via feast (setup.py) pytest==7.4.4 # via - # feast (setup.py) # pytest-benchmark # pytest-cov # pytest-env @@ -684,21 +608,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.0 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via # arrow @@ -726,7 +642,6 @@ pytz==2024.1 pyyaml==6.0.1 # via # dask - # feast (setup.py) # ibis-substrait # jupyter-events # kubernetes @@ -739,20 +654,17 @@ pyzmq==26.0.2 # jupyter-client # jupyter-server redis==4.6.0 - # via feast (setup.py) referencing==0.34.0 # via # jsonschema # jsonschema-specifications # jupyter-events regex==2024.4.16 - # via feast (setup.py) requests==2.31.0 # via # azure-core # cachecontrol # docker - # feast (setup.py) # google-api-core # google-cloud-bigquery # google-cloud-storage @@ -781,7 +693,6 @@ rfc3986-validator==0.1.1 rich==13.7.1 # via ibis-framework rockset==2.1.1 - # via feast (setup.py) rpds-py==0.18.0 # via # jsonschema @@ -791,13 +702,18 @@ rsa==4.9 ruamel-yaml==0.17.17 # via great-expectations ruff==0.4.1 - # via feast (setup.py) s3transfer==0.10.1 # via boto3 scipy==1.13.0 # via great-expectations send2trash==1.8.3 # via jupyter-server +setuptools==69.5.1 + # via + # grpcio-tools + # kubernetes + # nodeenv + # pip-tools six==1.16.0 # via # asttokens @@ -818,13 +734,11 @@ sniffio==1.3.1 snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==3.9.0 - # via feast (setup.py) sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.5 # via beautifulsoup4 sphinx==6.2.1 - # via feast (setup.py) sphinxcontrib-applehelp==1.0.8 # via sphinx sphinxcontrib-devhelp==1.0.6 @@ -840,9 +754,7 @@ sphinxcontrib-serializinghtml==1.1.10 sqlalchemy[mypy]==2.0.29 # via # duckdb-engine - # feast (setup.py) # ibis-framework - # sqlalchemy # sqlalchemy-views sqlalchemy-views==0.3.2 # via ibis-framework @@ -855,21 +767,17 @@ starlette==0.37.2 substrait==0.16.0 # via ibis-substrait tabulate==0.9.0 - # via feast (setup.py) tenacity==8.2.3 - # via feast (setup.py) terminado==0.18.1 # via # jupyter-server # jupyter-server-terminals -testcontainers==4.3.3 - # via feast (setup.py) +testcontainers==4.4.0 thriftpy2==0.4.20 # via happybase tinycss2==1.2.1 # via nbconvert toml==0.10.2 - # via feast (setup.py) tomli==2.0.1 # via # build @@ -897,9 +805,7 @@ tornado==6.4 # notebook # terminado tqdm==4.66.2 - # via - # feast (setup.py) - # great-expectations + # via great-expectations traitlets==5.14.3 # via # comm @@ -916,37 +822,23 @@ traitlets==5.14.3 # nbconvert # nbformat trino==0.328.0 - # via feast (setup.py) typeguard==4.2.1 - # 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.1 - # via feast (setup.py) types-pyopenssl==24.0.0.20240417 # via types-redis types-python-dateutil==2.9.0.20240316 - # via - # arrow - # feast (setup.py) + # via arrow types-pytz==2024.1.0.20240417 - # via feast (setup.py) types-pyyaml==6.0.12.20240311 - # via feast (setup.py) types-redis==4.6.0.20240417 - # via feast (setup.py) types-requests==2.30.0.0 - # via feast (setup.py) types-setuptools==69.5.0.20240415 - # 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.11.0 @@ -981,7 +873,6 @@ urllib3==1.26.18 # via # botocore # docker - # feast (setup.py) # great-expectations # kubernetes # minio @@ -990,13 +881,10 @@ urllib3==1.26.18 # rockset # testcontainers uvicorn[standard]==0.29.0 - # via feast (setup.py) uvloop==0.19.0 # via uvicorn virtualenv==20.23.0 - # via - # feast (setup.py) - # pre-commit + # via pre-commit volatile==2.1.0 # via bowler watchfiles==0.21.0 @@ -1027,7 +915,3 @@ xmltodict==0.13.0 # via moto zipp==3.18.1 # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index 2cfe62c55bd..7cf36242e73 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -1,9 +1,5 @@ -# -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: -# -# pip-compile --output-file=sdk/python/requirements/py3.10-requirements.txt -# +# This file was autogenerated by uv via the following command: +# uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.10-requirements.txt annotated-types==0.6.0 # via pydantic anyio==4.3.0 @@ -18,7 +14,6 @@ attrs==23.2.0 # jsonschema # referencing bowler==0.9.0 - # via feast (setup.py) certifi==2024.2.2 # via requests charset-normalizer==3.3.2 @@ -27,33 +22,26 @@ click==8.1.7 # via # bowler # dask - # feast (setup.py) # moreorless # uvicorn cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via feast (setup.py) -dask[array,dataframe]==2024.4.2 - # via - # dask-expr - # feast (setup.py) +dask[dataframe]==2024.4.2 + # via dask-expr dask-expr==1.0.12 # via dask dill==0.3.8 - # via feast (setup.py) exceptiongroup==1.2.1 # via anyio fastapi==0.110.2 - # via feast (setup.py) fissix==21.11.13 # via bowler fsspec==2024.3.1 # via dask greenlet==3.0.3 # via sqlalchemy -gunicorn==22.0.0 ; platform_system != "Windows" - # via feast (setup.py) +gunicorn==22.0.0 h11==0.14.0 # via uvicorn httptools==0.6.1 @@ -65,9 +53,7 @@ idna==3.7 importlib-metadata==7.1.0 # via dask jinja2==3.1.3 - # via feast (setup.py) jsonschema==4.21.1 - # via feast (setup.py) jsonschema-specifications==2023.12.1 # via jsonschema locket==1.0.0 @@ -75,7 +61,6 @@ locket==1.0.0 markupsafe==2.1.5 # via jinja2 mmh3==4.1.0 - # via feast (setup.py) moreorless==0.4.0 # via bowler mypy==1.9.0 @@ -83,11 +68,9 @@ mypy==1.9.0 mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.6.0 - # via feast (setup.py) numpy==1.26.4 # via # dask - # feast (setup.py) # pandas # pyarrow packaging==24.0 @@ -98,25 +81,17 @@ pandas==2.2.2 # via # dask # dask-expr - # feast (setup.py) partd==1.4.1 # via dask protobuf==4.25.3 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf pyarrow==15.0.2 - # via - # dask-expr - # feast (setup.py) + # via dask-expr pydantic==2.7.0 - # via - # fastapi - # feast (setup.py) + # via fastapi pydantic-core==2.18.1 # via pydantic pygments==2.17.2 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via pandas python-dotenv==1.0.1 @@ -126,14 +101,12 @@ pytz==2024.1 pyyaml==6.0.1 # via # dask - # feast (setup.py) # uvicorn referencing==0.34.0 # via # jsonschema # jsonschema-specifications requests==2.31.0 - # via feast (setup.py) rpds-py==0.18.0 # via # jsonschema @@ -143,17 +116,11 @@ six==1.16.0 sniffio==1.3.1 # via anyio sqlalchemy[mypy]==2.0.29 - # via - # feast (setup.py) - # sqlalchemy starlette==0.37.2 # via fastapi tabulate==0.9.0 - # via feast (setup.py) tenacity==8.2.3 - # via feast (setup.py) toml==0.10.2 - # via feast (setup.py) tomli==2.0.1 # via mypy toolz==0.12.1 @@ -161,9 +128,7 @@ toolz==0.12.1 # dask # partd tqdm==4.66.2 - # via feast (setup.py) typeguard==4.2.1 - # via feast (setup.py) types-protobuf==5.26.0.20240420 # via mypy-protobuf typing-extensions==4.11.0 @@ -181,7 +146,6 @@ tzdata==2024.1 urllib3==2.2.1 # via requests uvicorn[standard]==0.29.0 - # via feast (setup.py) uvloop==0.19.0 # via uvicorn volatile==2.1.0 diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index 71f61964be6..c89f7f10878 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -1,9 +1,5 @@ -# -# This file is autogenerated by pip-compile with Python 3.9 -# by the following command: -# -# pip-compile --extra=ci --output-file=sdk/python/requirements/py3.11-ci-requirements.txt -# +# 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 alabaster==0.7.16 # via sphinx altair==4.2.2 @@ -18,8 +14,6 @@ anyio==4.3.0 # watchfiles appdirs==1.4.4 # via fissix -appnope==0.1.4 - # via ipykernel argon2-cffi==23.1.0 # via jupyter-server argon2-cffi-bindings==21.2.0 @@ -29,13 +23,10 @@ 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 # via jupyterlab -async-timeout==4.0.3 - # via redis atpublic==4.1.0 # via ibis-framework attrs==23.2.0 @@ -48,9 +39,7 @@ azure-core==1.30.1 # azure-identity # azure-storage-blob azure-identity==1.16.0 - # via feast (setup.py) azure-storage-blob==12.19.1 - # via feast (setup.py) babel==2.14.0 # via # jupyterlab-server @@ -62,26 +51,20 @@ bidict==0.23.1 bleach==6.1.0 # via nbconvert boto3==1.34.93 - # via - # feast (setup.py) - # moto + # via moto botocore==1.34.93 # via # boto3 # moto # s3transfer bowler==0.9.0 - # via feast (setup.py) build==1.2.1 - # via - # feast (setup.py) - # pip-tools + # via pip-tools cachecontrol==0.14.0 # via firebase-admin cachetools==5.3.3 # via google-auth cassandra-driver==3.29.1 - # via feast (setup.py) certifi==2024.2.2 # via # httpcore @@ -105,7 +88,6 @@ click==8.1.7 # via # bowler # dask - # feast (setup.py) # geomet # great-expectations # moreorless @@ -114,9 +96,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 @@ -127,7 +107,6 @@ cryptography==42.0.5 # via # azure-identity # azure-storage-blob - # feast (setup.py) # great-expectations # moto # msal @@ -136,10 +115,8 @@ cryptography==42.0.5 # snowflake-connector-python # types-pyopenssl # types-redis -dask[array,dataframe]==2024.4.2 - # via - # dask-expr - # feast (setup.py) +dask[dataframe]==2024.4.2 + # via dask-expr dask-expr==1.0.13 # via dask db-dtypes==1.2.0 @@ -151,15 +128,11 @@ decorator==5.1.1 defusedxml==0.7.1 # via nbconvert deltalake==0.17.2 - # via feast (setup.py) dill==0.3.8 - # via feast (setup.py) distlib==0.3.8 # via virtualenv docker==7.0.0 - # via - # feast (setup.py) - # testcontainers + # via testcontainers docutils==0.19 # via sphinx duckdb==0.10.2 @@ -170,17 +143,11 @@ duckdb-engine==0.12.0 # via ibis-framework entrypoints==0.4 # via altair -exceptiongroup==1.2.1 - # via - # anyio - # ipython - # pytest execnet==2.1.1 # via pytest-xdist executing==2.0.1 # via stack-data fastapi==0.110.2 - # via feast (setup.py) fastjsonschema==2.19.1 # via nbformat filelock==3.14.0 @@ -188,22 +155,18 @@ filelock==3.14.0 # snowflake-connector-python # virtualenv firebase-admin==5.4.0 - # via feast (setup.py) fissix==24.4.24 # via bowler fqdn==1.5.1 # via jsonschema fsspec==2023.12.2 - # via - # dask - # feast (setup.py) + # via dask geojson==2.5.0 # via rockset geomet==0.2.1.post1 # via cassandra-driver google-api-core[grpc]==2.18.0 # via - # feast (setup.py) # firebase-admin # google-api-python-client # google-cloud-bigquery @@ -227,11 +190,8 @@ google-auth==2.29.0 google-auth-httplib2==0.2.0 # via google-api-python-client google-cloud-bigquery[pandas]==3.12.0 - # via feast (setup.py) google-cloud-bigquery-storage==2.24.0 - # via feast (setup.py) google-cloud-bigtable==2.23.1 - # via feast (setup.py) google-cloud-core==2.4.1 # via # google-cloud-bigquery @@ -240,13 +200,10 @@ google-cloud-core==2.4.1 # google-cloud-firestore # google-cloud-storage google-cloud-datastore==2.19.0 - # via feast (setup.py) google-cloud-firestore==2.16.0 # via firebase-admin google-cloud-storage==2.16.0 - # via - # feast (setup.py) - # firebase-admin + # via firebase-admin google-crc32c==1.5.0 # via # google-cloud-storage @@ -257,19 +214,16 @@ google-resumable-media==2.7.0 # google-cloud-storage googleapis-common-protos[grpc]==1.63.0 # via - # feast (setup.py) # google-api-core # grpc-google-iam-v1 # grpcio-status great-expectations==0.18.12 - # via feast (setup.py) greenlet==3.0.3 # via sqlalchemy grpc-google-iam-v1==0.13.0 # via google-cloud-bigtable grpcio==1.62.2 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery # googleapis-common-protos @@ -280,27 +234,19 @@ grpcio==1.62.2 # grpcio-testing # grpcio-tools grpcio-health-checking==1.62.2 - # via feast (setup.py) grpcio-reflection==1.62.2 - # via feast (setup.py) grpcio-status==1.62.2 # via google-api-core grpcio-testing==1.62.2 - # via feast (setup.py) grpcio-tools==1.62.2 - # via feast (setup.py) -gunicorn==22.0.0 ; platform_system != "Windows" - # via feast (setup.py) +gunicorn==22.0.0 h11==0.14.0 # via # httpcore # uvicorn happybase==1.2.0 - # via feast (setup.py) hazelcast-python-client==5.3.0 - # via feast (setup.py) hiredis==2.3.2 - # via feast (setup.py) httpcore==1.0.5 # via httpx httplib2==0.22.0 @@ -310,15 +256,10 @@ httplib2==0.22.0 httptools==0.6.1 # via uvicorn httpx==0.27.0 - # via - # feast (setup.py) - # jupyterlab + # via jupyterlab ibis-framework[duckdb]==8.0.0 - # via - # feast (setup.py) - # ibis-substrait + # via ibis-substrait ibis-substrait==3.2.0 - # via feast (setup.py) identify==2.5.36 # via pre-commit idna==3.7 @@ -331,16 +272,7 @@ idna==3.7 imagesize==1.4.1 # via sphinx importlib-metadata==7.1.0 - # via - # build - # dask - # jupyter-client - # jupyter-lsp - # jupyterlab - # jupyterlab-server - # nbconvert - # sphinx - # typeguard + # via dask iniconfig==2.0.0 # via pytest ipykernel==6.29.4 @@ -361,7 +293,6 @@ jedi==0.19.1 jinja2==3.1.3 # via # altair - # feast (setup.py) # great-expectations # jupyter-server # jupyterlab @@ -384,7 +315,6 @@ jsonpointer==2.4 jsonschema[format-nongpl]==4.21.1 # via # altair - # feast (setup.py) # great-expectations # jupyter-events # jupyterlab-server @@ -429,7 +359,6 @@ jupyterlab-server==2.27.1 jupyterlab-widgets==3.0.10 # via ipywidgets kubernetes==20.13.0 - # via feast (setup.py) locket==1.0.0 # via partd makefun==1.15.2 @@ -450,19 +379,15 @@ 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) moreorless==0.4.0 # via bowler moto==4.2.14 - # via feast (setup.py) msal==1.28.0 # via # azure-identity @@ -474,13 +399,10 @@ msgpack==1.0.8 multipledispatch==1.0.0 # via ibis-framework mypy==1.10.0 - # 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 @@ -506,7 +428,6 @@ numpy==1.26.4 # altair # dask # db-dtypes - # feast (setup.py) # great-expectations # ibis-framework # pandas @@ -543,7 +464,6 @@ pandas==2.2.2 # dask # dask-expr # db-dtypes - # feast (setup.py) # google-cloud-bigquery # great-expectations # ibis-framework @@ -560,8 +480,9 @@ pbr==6.0.0 # via mock pexpect==4.9.0 # via ipython +pip==24.0 + # via pip-tools pip-tools==7.4.1 - # via feast (setup.py) platformdirs==3.11.0 # via # jupyter-core @@ -574,7 +495,6 @@ ply==3.11 portalocker==2.8.2 # via msal-extensions pre-commit==3.3.1 - # via feast (setup.py) prometheus-client==0.20.0 # via jupyter-server prompt-toolkit==3.0.43 @@ -589,7 +509,6 @@ proto-plus==1.23.0 # google-cloud-firestore protobuf==4.25.3 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage @@ -607,11 +526,8 @@ protobuf==4.25.3 # proto-plus # substrait psutil==5.9.0 - # via - # feast (setup.py) - # ipykernel + # via ipykernel psycopg2-binary==2.9.9 - # via feast (setup.py) ptyprocess==0.7.0 # via # pexpect @@ -619,7 +535,6 @@ ptyprocess==0.7.0 pure-eval==0.2.2 # via stack-data py==1.11.0 - # via feast (setup.py) py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.7 @@ -629,7 +544,6 @@ pyarrow==15.0.2 # dask-expr # db-dtypes # deltalake - # feast (setup.py) # google-cloud-bigquery # ibis-framework # snowflake-connector-python @@ -644,19 +558,16 @@ pyasn1==0.6.0 pyasn1-modules==0.4.0 # via google-auth pybindgen==0.22.1 - # via feast (setup.py) pycparser==2.22 # via cffi pydantic==2.7.1 # via # fastapi - # feast (setup.py) # great-expectations pydantic-core==2.18.2 # via pydantic pygments==2.17.2 # via - # feast (setup.py) # ipython # nbconvert # rich @@ -666,11 +577,8 @@ pyjwt[crypto]==2.8.0 # msal # snowflake-connector-python pymssql==2.3.0 - # via feast (setup.py) pymysql==1.1.0 - # via feast (setup.py) pyodbc==5.1.0 - # via feast (setup.py) pyopenssl==24.1.0 # via snowflake-connector-python pyparsing==3.1.2 @@ -682,10 +590,8 @@ pyproject-hooks==1.1.0 # build # pip-tools pyspark==3.5.1 - # via feast (setup.py) pytest==7.4.4 # via - # feast (setup.py) # pytest-benchmark # pytest-cov # pytest-env @@ -695,21 +601,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 @@ -737,7 +635,6 @@ pytz==2024.1 pyyaml==6.0.1 # via # dask - # feast (setup.py) # ibis-substrait # jupyter-events # kubernetes @@ -750,20 +647,17 @@ pyzmq==26.0.2 # jupyter-client # jupyter-server redis==4.6.0 - # via feast (setup.py) referencing==0.35.0 # via # jsonschema # jsonschema-specifications # jupyter-events regex==2024.4.28 - # via feast (setup.py) requests==2.31.0 # via # azure-core # cachecontrol # docker - # feast (setup.py) # google-api-core # google-cloud-bigquery # google-cloud-storage @@ -792,7 +686,6 @@ rfc3986-validator==0.1.1 rich==13.7.1 # via ibis-framework rockset==2.1.1 - # via feast (setup.py) rpds-py==0.18.0 # via # jsonschema @@ -801,16 +694,19 @@ rsa==4.9 # via google-auth ruamel-yaml==0.17.17 # via great-expectations -ruamel-yaml-clib==0.2.8 - # via ruamel-yaml ruff==0.4.2 - # via feast (setup.py) s3transfer==0.10.1 # via boto3 scipy==1.13.0 # via great-expectations send2trash==1.8.3 # via jupyter-server +setuptools==69.5.1 + # via + # grpcio-tools + # kubernetes + # nodeenv + # pip-tools six==1.16.0 # via # asttokens @@ -831,13 +727,11 @@ sniffio==1.3.1 snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==3.9.1 - # via feast (setup.py) sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.5 # via beautifulsoup4 sphinx==6.2.1 - # via feast (setup.py) sphinxcontrib-applehelp==1.0.8 # via sphinx sphinxcontrib-devhelp==1.0.6 @@ -853,9 +747,7 @@ sphinxcontrib-serializinghtml==1.1.10 sqlalchemy[mypy]==2.0.29 # via # duckdb-engine - # feast (setup.py) # ibis-framework - # sqlalchemy # sqlalchemy-views sqlalchemy-views==0.3.2 # via ibis-framework @@ -868,30 +760,17 @@ starlette==0.37.2 substrait==0.17.0 # via ibis-substrait tabulate==0.9.0 - # via feast (setup.py) tenacity==8.2.3 - # via feast (setup.py) terminado==0.18.1 # via # jupyter-server # jupyter-server-terminals testcontainers==4.4.0 - # via feast (setup.py) thriftpy2==0.4.20 # via happybase tinycss2==1.3.0 # via nbconvert toml==0.10.2 - # via feast (setup.py) -tomli==2.0.1 - # via - # build - # coverage - # jupyterlab - # mypy - # pip-tools - # pytest - # pytest-env tomlkit==0.12.4 # via snowflake-connector-python toolz==0.12.1 @@ -909,9 +788,7 @@ tornado==6.4 # notebook # terminado tqdm==4.66.2 - # via - # feast (setup.py) - # great-expectations + # via great-expectations traitlets==5.14.3 # via # comm @@ -928,58 +805,39 @@ traitlets==5.14.3 # nbconvert # nbformat trino==0.328.0 - # via feast (setup.py) typeguard==4.2.1 - # 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.20240425 - # via feast (setup.py) types-pyopenssl==24.1.0.20240425 # via types-redis types-python-dateutil==2.9.0.20240316 - # via - # arrow - # feast (setup.py) + # via arrow types-pytz==2024.1.0.20240417 - # via feast (setup.py) types-pyyaml==6.0.12.20240311 - # via feast (setup.py) types-redis==4.6.0.20240425 - # via feast (setup.py) types-requests==2.30.0.0 - # via feast (setup.py) types-setuptools==69.5.0.20240423 - # 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.11.0 # via - # anyio - # async-lru # azure-core # azure-storage-blob # fastapi # great-expectations # ibis-framework - # ipython # mypy # pydantic # pydantic-core # snowflake-connector-python # sqlalchemy - # starlette # testcontainers # typeguard - # uvicorn tzdata==2024.1 # via pandas tzlocal==5.2 @@ -994,23 +852,18 @@ urllib3==1.26.18 # via # botocore # docker - # feast (setup.py) # great-expectations # kubernetes # minio # requests # responses # rockset - # snowflake-connector-python # testcontainers uvicorn[standard]==0.29.0 - # via feast (setup.py) uvloop==0.19.0 # via uvicorn virtualenv==20.23.0 - # via - # feast (setup.py) - # pre-commit + # via pre-commit volatile==2.1.0 # via bowler watchfiles==0.21.0 @@ -1041,7 +894,3 @@ xmltodict==0.13.0 # via moto zipp==3.18.1 # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index 161e435b54e..d3333d6c09b 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -1,9 +1,5 @@ -# -# This file is autogenerated by pip-compile with Python 3.9 -# by the following command: -# -# pip-compile --output-file=sdk/python/requirements/py3.11-requirements.txt -# +# This file was autogenerated by uv via the following command: +# uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.11-requirements.txt annotated-types==0.6.0 # via pydantic anyio==4.3.0 @@ -18,7 +14,6 @@ attrs==23.2.0 # jsonschema # referencing bowler==0.9.0 - # via feast (setup.py) certifi==2024.2.2 # via requests charset-normalizer==3.3.2 @@ -27,33 +22,24 @@ click==8.1.7 # via # bowler # dask - # feast (setup.py) # moreorless # uvicorn cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via feast (setup.py) -dask[array,dataframe]==2024.4.2 - # via - # dask-expr - # feast (setup.py) +dask[dataframe]==2024.4.2 + # via dask-expr dask-expr==1.0.13 # via dask dill==0.3.8 - # via feast (setup.py) -exceptiongroup==1.2.1 - # via anyio fastapi==0.110.2 - # via feast (setup.py) fissix==24.4.24 # via bowler fsspec==2024.3.1 # via dask greenlet==3.0.3 # via sqlalchemy -gunicorn==22.0.0 ; platform_system != "Windows" - # via feast (setup.py) +gunicorn==22.0.0 h11==0.14.0 # via uvicorn httptools==0.6.1 @@ -63,13 +49,9 @@ idna==3.7 # anyio # requests importlib-metadata==7.1.0 - # via - # dask - # typeguard + # via dask jinja2==3.1.3 - # via feast (setup.py) jsonschema==4.21.1 - # via feast (setup.py) jsonschema-specifications==2023.12.1 # via jsonschema locket==1.0.0 @@ -77,7 +59,6 @@ locket==1.0.0 markupsafe==2.1.5 # via jinja2 mmh3==4.1.0 - # via feast (setup.py) moreorless==0.4.0 # via bowler mypy==1.10.0 @@ -85,11 +66,9 @@ mypy==1.10.0 mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.6.0 - # via feast (setup.py) numpy==1.26.4 # via # dask - # feast (setup.py) # pandas # pyarrow packaging==24.0 @@ -100,25 +79,17 @@ pandas==2.2.2 # via # dask # dask-expr - # feast (setup.py) partd==1.4.1 # via dask protobuf==4.25.3 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf pyarrow==16.0.0 - # via - # dask-expr - # feast (setup.py) + # via dask-expr pydantic==2.7.1 - # via - # fastapi - # feast (setup.py) + # via fastapi pydantic-core==2.18.2 # via pydantic pygments==2.17.2 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via pandas python-dotenv==1.0.1 @@ -128,14 +99,12 @@ pytz==2024.1 pyyaml==6.0.1 # via # dask - # feast (setup.py) # uvicorn referencing==0.35.0 # via # jsonschema # jsonschema-specifications requests==2.31.0 - # via feast (setup.py) rpds-py==0.18.0 # via # jsonschema @@ -145,46 +114,32 @@ six==1.16.0 sniffio==1.3.1 # via anyio sqlalchemy[mypy]==2.0.29 - # via - # feast (setup.py) - # sqlalchemy starlette==0.37.2 # via fastapi tabulate==0.9.0 - # via feast (setup.py) tenacity==8.2.3 - # via feast (setup.py) toml==0.10.2 - # via feast (setup.py) -tomli==2.0.1 - # via mypy toolz==0.12.1 # via # dask # partd tqdm==4.66.2 - # via feast (setup.py) typeguard==4.2.1 - # via feast (setup.py) types-protobuf==5.26.0.20240422 # via mypy-protobuf typing-extensions==4.11.0 # via - # anyio # fastapi # mypy # pydantic # pydantic-core # sqlalchemy - # starlette # typeguard - # uvicorn tzdata==2024.1 # via pandas urllib3==2.2.1 # via requests uvicorn[standard]==0.29.0 - # via feast (setup.py) uvloop==0.19.0 # via uvicorn volatile==2.1.0 diff --git a/sdk/python/requirements/py3.9-ci-requirements.txt b/sdk/python/requirements/py3.9-ci-requirements.txt index 8de9151e4e3..0353c5ddbd2 100644 --- a/sdk/python/requirements/py3.9-ci-requirements.txt +++ b/sdk/python/requirements/py3.9-ci-requirements.txt @@ -1,9 +1,5 @@ -# -# This file is autogenerated by pip-compile with Python 3.9 -# by the following command: -# -# pip-compile --extra=ci --output-file=sdk/python/requirements/py3.9-ci-requirements.txt -# +# 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 alabaster==0.7.16 # via sphinx altair==4.2.2 @@ -27,7 +23,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 @@ -46,9 +41,7 @@ azure-core==1.30.1 # azure-identity # azure-storage-blob azure-identity==1.16.0 - # via feast (setup.py) azure-storage-blob==12.19.1 - # via feast (setup.py) babel==2.14.0 # via # jupyterlab-server @@ -60,26 +53,20 @@ bidict==0.23.1 bleach==6.1.0 # via nbconvert boto3==1.34.88 - # via - # feast (setup.py) - # moto + # via moto botocore==1.34.88 # via # boto3 # moto # s3transfer bowler==0.9.0 - # via feast (setup.py) build==1.2.1 - # via - # feast (setup.py) - # pip-tools + # via pip-tools cachecontrol==0.14.0 # via firebase-admin cachetools==5.3.3 # via google-auth cassandra-driver==3.29.1 - # via feast (setup.py) certifi==2024.2.2 # via # httpcore @@ -103,7 +90,6 @@ click==8.1.7 # via # bowler # dask - # feast (setup.py) # geomet # great-expectations # moreorless @@ -112,9 +98,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 @@ -125,7 +109,6 @@ cryptography==42.0.5 # via # azure-identity # azure-storage-blob - # feast (setup.py) # great-expectations # moto # msal @@ -134,10 +117,8 @@ cryptography==42.0.5 # snowflake-connector-python # types-pyopenssl # types-redis -dask[array,dataframe]==2024.4.2 - # via - # dask-expr - # feast (setup.py) +dask[dataframe]==2024.4.2 + # via dask-expr dask-expr==1.0.12 # via dask db-dtypes==1.2.0 @@ -149,15 +130,11 @@ decorator==5.1.1 defusedxml==0.7.1 # via nbconvert deltalake==0.16.4 - # via feast (setup.py) dill==0.3.8 - # via feast (setup.py) distlib==0.3.8 # via virtualenv docker==7.0.0 - # via - # feast (setup.py) - # testcontainers + # via testcontainers docutils==0.19 # via sphinx duckdb==0.10.2 @@ -178,7 +155,6 @@ execnet==2.1.1 executing==2.0.1 # via stack-data fastapi==0.110.2 - # via feast (setup.py) fastjsonschema==2.19.1 # via nbformat filelock==3.13.4 @@ -186,22 +162,18 @@ filelock==3.13.4 # snowflake-connector-python # virtualenv firebase-admin==5.4.0 - # via feast (setup.py) fissix==21.11.13 # via bowler fqdn==1.5.1 # via jsonschema fsspec==2023.12.2 - # via - # dask - # feast (setup.py) + # via dask geojson==2.5.0 # via rockset geomet==0.2.1.post1 # via cassandra-driver google-api-core[grpc]==2.18.0 # via - # feast (setup.py) # firebase-admin # google-api-python-client # google-cloud-bigquery @@ -225,11 +197,8 @@ google-auth==2.29.0 google-auth-httplib2==0.2.0 # via google-api-python-client google-cloud-bigquery[pandas]==3.12.0 - # via feast (setup.py) google-cloud-bigquery-storage==2.24.0 - # via feast (setup.py) google-cloud-bigtable==2.23.1 - # via feast (setup.py) google-cloud-core==2.4.1 # via # google-cloud-bigquery @@ -238,13 +207,10 @@ google-cloud-core==2.4.1 # google-cloud-firestore # google-cloud-storage google-cloud-datastore==2.19.0 - # via feast (setup.py) google-cloud-firestore==2.16.0 # via firebase-admin google-cloud-storage==2.16.0 - # via - # feast (setup.py) - # firebase-admin + # via firebase-admin google-crc32c==1.5.0 # via # google-cloud-storage @@ -255,19 +221,16 @@ google-resumable-media==2.7.0 # google-cloud-storage googleapis-common-protos[grpc]==1.63.0 # via - # feast (setup.py) # google-api-core # grpc-google-iam-v1 # grpcio-status great-expectations==0.18.12 - # via feast (setup.py) greenlet==3.0.3 # via sqlalchemy grpc-google-iam-v1==0.13.0 # via google-cloud-bigtable grpcio==1.62.2 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery # googleapis-common-protos @@ -278,27 +241,19 @@ grpcio==1.62.2 # grpcio-testing # grpcio-tools grpcio-health-checking==1.62.2 - # via feast (setup.py) grpcio-reflection==1.62.2 - # via feast (setup.py) grpcio-status==1.62.2 # via google-api-core grpcio-testing==1.62.2 - # via feast (setup.py) grpcio-tools==1.62.2 - # via feast (setup.py) -gunicorn==22.0.0 ; platform_system != "Windows" - # via feast (setup.py) +gunicorn==22.0.0 h11==0.14.0 # via # httpcore # uvicorn happybase==1.2.0 - # via feast (setup.py) hazelcast-python-client==5.3.0 - # via feast (setup.py) hiredis==2.3.2 - # via feast (setup.py) httpcore==1.0.5 # via httpx httplib2==0.22.0 @@ -308,15 +263,10 @@ httplib2==0.22.0 httptools==0.6.1 # via uvicorn httpx==0.27.0 - # via - # feast (setup.py) - # jupyterlab + # via jupyterlab ibis-framework[duckdb]==8.0.0 - # via - # feast (setup.py) - # ibis-substrait + # via ibis-substrait ibis-substrait==3.2.0 - # via feast (setup.py) identify==2.5.35 # via pre-commit idna==3.7 @@ -359,7 +309,6 @@ jedi==0.19.1 jinja2==3.1.3 # via # altair - # feast (setup.py) # great-expectations # jupyter-server # jupyterlab @@ -382,7 +331,6 @@ jsonpointer==2.4 jsonschema[format-nongpl]==4.21.1 # via # altair - # feast (setup.py) # great-expectations # jupyter-events # jupyterlab-server @@ -427,7 +375,6 @@ jupyterlab-server==2.26.0 jupyterlab-widgets==3.0.10 # via ipywidgets kubernetes==20.13.0 - # via feast (setup.py) locket==1.0.0 # via partd makefun==1.15.2 @@ -448,19 +395,15 @@ 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) moreorless==0.4.0 # via bowler moto==4.2.14 - # via feast (setup.py) msal==1.28.0 # via # azure-identity @@ -472,13 +415,10 @@ msgpack==1.0.8 multipledispatch==1.0.0 # via ibis-framework mypy==1.9.0 - # 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.3 @@ -504,7 +444,6 @@ numpy==1.26.4 # altair # dask # db-dtypes - # feast (setup.py) # great-expectations # ibis-framework # pandas @@ -541,7 +480,6 @@ pandas==2.2.2 # dask # dask-expr # db-dtypes - # feast (setup.py) # google-cloud-bigquery # great-expectations # ibis-framework @@ -558,8 +496,9 @@ pbr==6.0.0 # via mock pexpect==4.9.0 # via ipython +pip==24.0 + # via pip-tools pip-tools==7.4.1 - # via feast (setup.py) platformdirs==3.11.0 # via # jupyter-core @@ -572,7 +511,6 @@ ply==3.11 portalocker==2.8.2 # via msal-extensions pre-commit==3.3.1 - # via feast (setup.py) prometheus-client==0.20.0 # via jupyter-server prompt-toolkit==3.0.43 @@ -587,7 +525,6 @@ proto-plus==1.23.0 # google-cloud-firestore protobuf==4.25.3 # via - # feast (setup.py) # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage @@ -605,11 +542,8 @@ protobuf==4.25.3 # proto-plus # substrait psutil==5.9.0 - # via - # feast (setup.py) - # ipykernel + # via ipykernel psycopg2-binary==2.9.9 - # via feast (setup.py) ptyprocess==0.7.0 # via # pexpect @@ -617,7 +551,6 @@ ptyprocess==0.7.0 pure-eval==0.2.2 # via stack-data py==1.11.0 - # via feast (setup.py) py-cpuinfo==9.0.0 # via pytest-benchmark py4j==0.10.9.7 @@ -627,7 +560,6 @@ pyarrow==15.0.2 # dask-expr # db-dtypes # deltalake - # feast (setup.py) # google-cloud-bigquery # ibis-framework # snowflake-connector-python @@ -642,19 +574,16 @@ pyasn1==0.6.0 pyasn1-modules==0.4.0 # via google-auth pybindgen==0.22.1 - # via feast (setup.py) pycparser==2.22 # via cffi pydantic==2.7.0 # via # fastapi - # feast (setup.py) # great-expectations pydantic-core==2.18.1 # via pydantic pygments==2.17.2 # via - # feast (setup.py) # ipython # nbconvert # rich @@ -664,11 +593,8 @@ pyjwt[crypto]==2.8.0 # msal # snowflake-connector-python pymssql==2.3.0 - # via feast (setup.py) pymysql==1.1.0 - # via feast (setup.py) pyodbc==5.1.0 - # via feast (setup.py) pyopenssl==24.1.0 # via snowflake-connector-python pyparsing==3.1.2 @@ -680,10 +606,8 @@ pyproject-hooks==1.0.0 # build # pip-tools pyspark==3.5.1 - # via feast (setup.py) pytest==7.4.4 # via - # feast (setup.py) # pytest-benchmark # pytest-cov # pytest-env @@ -693,21 +617,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.0 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via # arrow @@ -735,7 +651,6 @@ pytz==2024.1 pyyaml==6.0.1 # via # dask - # feast (setup.py) # ibis-substrait # jupyter-events # kubernetes @@ -748,20 +663,17 @@ pyzmq==26.0.2 # jupyter-client # jupyter-server redis==4.6.0 - # via feast (setup.py) referencing==0.34.0 # via # jsonschema # jsonschema-specifications # jupyter-events regex==2024.4.16 - # via feast (setup.py) requests==2.31.0 # via # azure-core # cachecontrol # docker - # feast (setup.py) # google-api-core # google-cloud-bigquery # google-cloud-storage @@ -790,7 +702,6 @@ rfc3986-validator==0.1.1 rich==13.7.1 # via ibis-framework rockset==2.1.1 - # via feast (setup.py) rpds-py==0.18.0 # via # jsonschema @@ -802,13 +713,18 @@ ruamel-yaml==0.17.17 ruamel-yaml-clib==0.2.8 # via ruamel-yaml ruff==0.4.1 - # via feast (setup.py) s3transfer==0.10.1 # via boto3 scipy==1.13.0 # via great-expectations send2trash==1.8.3 # via jupyter-server +setuptools==69.5.1 + # via + # grpcio-tools + # kubernetes + # nodeenv + # pip-tools six==1.16.0 # via # asttokens @@ -829,13 +745,11 @@ sniffio==1.3.1 snowballstemmer==2.2.0 # via sphinx snowflake-connector-python[pandas]==3.9.0 - # via feast (setup.py) sortedcontainers==2.4.0 # via snowflake-connector-python soupsieve==2.5 # via beautifulsoup4 sphinx==6.2.1 - # via feast (setup.py) sphinxcontrib-applehelp==1.0.8 # via sphinx sphinxcontrib-devhelp==1.0.6 @@ -851,9 +765,7 @@ sphinxcontrib-serializinghtml==1.1.10 sqlalchemy[mypy]==2.0.29 # via # duckdb-engine - # feast (setup.py) # ibis-framework - # sqlalchemy # sqlalchemy-views sqlalchemy-views==0.3.2 # via ibis-framework @@ -866,21 +778,17 @@ starlette==0.37.2 substrait==0.16.0 # via ibis-substrait tabulate==0.9.0 - # via feast (setup.py) tenacity==8.2.3 - # via feast (setup.py) terminado==0.18.1 # via # jupyter-server # jupyter-server-terminals -testcontainers==4.3.3 - # via feast (setup.py) +testcontainers==4.4.0 thriftpy2==0.4.20 # via happybase tinycss2==1.2.1 # via nbconvert toml==0.10.2 - # via feast (setup.py) tomli==2.0.1 # via # build @@ -908,9 +816,7 @@ tornado==6.4 # notebook # terminado tqdm==4.66.2 - # via - # feast (setup.py) - # great-expectations + # via great-expectations traitlets==5.14.3 # via # comm @@ -927,37 +833,23 @@ traitlets==5.14.3 # nbconvert # nbformat trino==0.328.0 - # via feast (setup.py) typeguard==4.2.1 - # 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.1 - # via feast (setup.py) types-pyopenssl==24.0.0.20240417 # via types-redis types-python-dateutil==2.9.0.20240316 - # via - # arrow - # feast (setup.py) + # via arrow types-pytz==2024.1.0.20240417 - # via feast (setup.py) types-pyyaml==6.0.12.20240311 - # via feast (setup.py) types-redis==4.6.0.20240417 - # via feast (setup.py) types-requests==2.30.0.0 - # via feast (setup.py) types-setuptools==69.5.0.20240415 - # 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.11.0 @@ -993,7 +885,6 @@ urllib3==1.26.18 # via # botocore # docker - # feast (setup.py) # great-expectations # kubernetes # minio @@ -1003,13 +894,10 @@ urllib3==1.26.18 # snowflake-connector-python # testcontainers uvicorn[standard]==0.29.0 - # via feast (setup.py) uvloop==0.19.0 # via uvicorn virtualenv==20.23.0 - # via - # feast (setup.py) - # pre-commit + # via pre-commit volatile==2.1.0 # via bowler watchfiles==0.21.0 @@ -1040,7 +928,3 @@ xmltodict==0.13.0 # via moto zipp==3.18.1 # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools diff --git a/sdk/python/requirements/py3.9-requirements.txt b/sdk/python/requirements/py3.9-requirements.txt index 472f3e90b99..1d1a9627933 100644 --- a/sdk/python/requirements/py3.9-requirements.txt +++ b/sdk/python/requirements/py3.9-requirements.txt @@ -1,9 +1,5 @@ -# -# This file is autogenerated by pip-compile with Python 3.9 -# by the following command: -# -# pip-compile --output-file=sdk/python/requirements/py3.9-requirements.txt -# +# This file was autogenerated by uv via the following command: +# uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.9-requirements.txt annotated-types==0.6.0 # via pydantic anyio==4.3.0 @@ -18,7 +14,6 @@ attrs==23.2.0 # jsonschema # referencing bowler==0.9.0 - # via feast (setup.py) certifi==2024.2.2 # via requests charset-normalizer==3.3.2 @@ -27,33 +22,26 @@ click==8.1.7 # via # bowler # dask - # feast (setup.py) # moreorless # uvicorn cloudpickle==3.0.0 # via dask colorama==0.4.6 - # via feast (setup.py) -dask[array,dataframe]==2024.4.2 - # via - # dask-expr - # feast (setup.py) +dask[dataframe]==2024.4.2 + # via dask-expr dask-expr==1.0.12 # via dask dill==0.3.8 - # via feast (setup.py) exceptiongroup==1.2.1 # via anyio fastapi==0.110.2 - # via feast (setup.py) fissix==21.11.13 # via bowler fsspec==2024.3.1 # via dask greenlet==3.0.3 # via sqlalchemy -gunicorn==22.0.0 ; platform_system != "Windows" - # via feast (setup.py) +gunicorn==22.0.0 h11==0.14.0 # via uvicorn httptools==0.6.1 @@ -67,9 +55,7 @@ importlib-metadata==7.1.0 # dask # typeguard jinja2==3.1.3 - # via feast (setup.py) jsonschema==4.21.1 - # via feast (setup.py) jsonschema-specifications==2023.12.1 # via jsonschema locket==1.0.0 @@ -77,7 +63,6 @@ locket==1.0.0 markupsafe==2.1.5 # via jinja2 mmh3==4.1.0 - # via feast (setup.py) moreorless==0.4.0 # via bowler mypy==1.9.0 @@ -85,11 +70,9 @@ mypy==1.9.0 mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.6.0 - # via feast (setup.py) numpy==1.26.4 # via # dask - # feast (setup.py) # pandas # pyarrow packaging==24.0 @@ -100,25 +83,17 @@ pandas==2.2.2 # via # dask # dask-expr - # feast (setup.py) partd==1.4.1 # via dask protobuf==4.25.3 - # via - # feast (setup.py) - # mypy-protobuf + # via mypy-protobuf pyarrow==15.0.2 - # via - # dask-expr - # feast (setup.py) + # via dask-expr pydantic==2.7.0 - # via - # fastapi - # feast (setup.py) + # via fastapi pydantic-core==2.18.1 # via pydantic pygments==2.17.2 - # via feast (setup.py) python-dateutil==2.9.0.post0 # via pandas python-dotenv==1.0.1 @@ -128,14 +103,12 @@ pytz==2024.1 pyyaml==6.0.1 # via # dask - # feast (setup.py) # uvicorn referencing==0.34.0 # via # jsonschema # jsonschema-specifications requests==2.31.0 - # via feast (setup.py) rpds-py==0.18.0 # via # jsonschema @@ -145,17 +118,11 @@ six==1.16.0 sniffio==1.3.1 # via anyio sqlalchemy[mypy]==2.0.29 - # via - # feast (setup.py) - # sqlalchemy starlette==0.37.2 # via fastapi tabulate==0.9.0 - # via feast (setup.py) tenacity==8.2.3 - # via feast (setup.py) toml==0.10.2 - # via feast (setup.py) tomli==2.0.1 # via mypy toolz==0.12.1 @@ -163,9 +130,7 @@ toolz==0.12.1 # dask # partd tqdm==4.66.2 - # via feast (setup.py) typeguard==4.2.1 - # via feast (setup.py) types-protobuf==5.26.0.20240420 # via mypy-protobuf typing-extensions==4.11.0 @@ -184,7 +149,6 @@ tzdata==2024.1 urllib3==2.2.1 # via requests uvicorn[standard]==0.29.0 - # via feast (setup.py) uvloop==0.19.0 # via uvicorn volatile==2.1.0