# Copyright 2019 The Feast Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import glob
import os
import pathlib
import re
import shutil
import subprocess
from subprocess import CalledProcessError
import sys
from pathlib import Path
from setuptools import find_packages, setup, Command
NAME = "feast"
DESCRIPTION = "Python SDK for Feast"
URL = "https://github.com/feast-dev/feast"
AUTHOR = "Feast"
REQUIRES_PYTHON = ">=3.10.0"
REQUIRED = [
"click>=7.0.0,=0.3.9,=4.24.0",
"Jinja2>=2,=2.0.0,=1.4.3,=2.12.0,=5.4.0,1",
"tabulate>=0.8.0,=7,=0.10.0,=4,=4.0.0",
"fastapi>=0.68.0",
"uvicorn[standard]>=0.30.6,=2024.2.1",
"prometheus_client",
"psutil",
"bigtree>=0.19.2",
"pyjwt",
]
GCP_REQUIRED = [
"google-api-core>=1.23.0,=1.52.0,=2,= 2.0.0,=2.16.0,=1.34.0,=2.11.0,=1.6.1",
"SQLAlchemy>=1.4.19",
"pyodbc>=4.0.30",
"pymssql",
]
IKV_REQUIRED = [
"ikvpy>=0.0.36",
]
HAZELCAST_REQUIRED = [
"hazelcast-python-client>=5.1",
]
IBIS_REQUIRED = [
"ibis-framework>=9.0.0,=4.0.0",
"substrait=1.56.2,=1.56.2,=1.56.2,=9.0.0,=8.13.0"]
SINGLESTORE_REQUIRED = ["singlestoredb=9.0.0,=1.7.0,=1.12.0"]
GO_REQUIRED = ["cffi>=1.15.0"]
MILVUS_REQUIRED = ["pymilvus==2.4.15", "milvus-lite==2.4.12", "setuptools>=60,=2.7.0",
"torchvision>=0.22.1",
]
CLICKHOUSE_REQUIRED = ["clickhouse-connect>=0.7.19"]
MCP_REQUIRED = ["fastapi_mcp"]
RAG_REQUIRED = [
"transformers>=4.36.0",
"datasets>=3.6.0",
]
IMAGE_REQUIRED = [
"timm>=0.6.0",
"Pillow>=8.0.0",
"scikit-learn>=1.0.0",
] + TORCH_REQUIRED
RAY_REQUIRED = [
"ray>=2.47.0; python_version == '3.10'",
'codeflare-sdk>=0.31.1; python_version != "3.10"',
]
CI_REQUIRED = (
[
"build",
"virtualenv==20.23.0",
"cryptography>=43.0,=0.8.0",
"mypy-protobuf>=3.1",
"grpcio-tools>=1.56.2,=1.56.2,=1.4.1,=1.25.4,=1.11.0", # https://github.com/pytest-dev/pytest/issues/10420
"pytest>=6.0.0,