1+ [project ]
2+ name = " feast"
3+ description = " Python SDK for Feast"
4+ readme = " README.md"
5+ requires-python = " >=3.9.0"
6+ license = {file = " LICENSE" }
7+ classifiers = [
8+ " License :: OSI Approved :: Apache Software License" ,
9+ " Programming Language :: Python" ,
10+ " Programming Language :: Python :: 3" ,
11+ " Programming Language :: Python :: 3.9"
12+ ]
13+ dynamic = [
14+ " version" ,
15+ ]
16+ dependencies = [
17+ " click>=7.0.0,<9.0.0" ,
18+ " colorama>=0.3.9,<1" ,
19+ " dill~=0.3.0" ,
20+ " protobuf>=4.24.0" ,
21+ " Jinja2>=2,<4" ,
22+ " jsonschema" ,
23+ " mmh3" ,
24+ " numpy>=1.22,<2" ,
25+ " pandas>=1.4.3,<3" ,
26+ " pyarrow<18.1.0" ,
27+ " pydantic>=2.0.0" ,
28+ " pygments>=2.12.0,<3" ,
29+ " PyYAML>=5.4.0,<7" ,
30+ " requests" ,
31+ " SQLAlchemy[mypy]>1" ,
32+ " tabulate>=0.8.0,<1" ,
33+ " tenacity>=7,<9" ,
34+ " toml>=0.10.0,<1" ,
35+ " tqdm>=4,<5" ,
36+ " typeguard>=4.0.0" ,
37+ " fastapi>=0.68.0" ,
38+ " uvicorn[standard]>=0.14.0,<1" ,
39+ " uvicorn-worker" ,
40+ " gunicorn; platform_system != 'Windows'" ,
41+ " dask[dataframe]>=2024.2.1" ,
42+ " prometheus_client" ,
43+ " psutil" ,
44+ " bigtree>=0.19.2" ,
45+ " pyjwt" ,
46+ ]
47+
48+ [project .optional-dependencies ]
49+ aws = [" boto3>=1.17.0,<2" , " fsspec<=2024.9.0" , " aiobotocore>2,<3" ]
50+ azure = [
51+ " azure-storage-blob>=0.37.0" ,
52+ " azure-identity>=1.6.1" ,
53+ " SQLAlchemy>=1.4.19" ,
54+ " pyodbc>=4.0.30" ,
55+ " pymssql"
56+ ]
57+ cassandra = [" cassandra-driver>=3.24.0,<4" ]
58+ couchbase = [" couchbase==4.3.2" ]
59+ delta = [" deltalake" ]
60+ duckdb = [" ibis-framework[duckdb]>=9.0.0,<10" ]
61+ elasticsearch = [" elasticsearch>=8.13.0" ]
62+ faiss = [" faiss-cpu>=1.7.0,<2" ]
63+ gcp = [
64+ " google-api-core>=1.23.0,<3" ,
65+ " googleapis-common-protos>=1.52.0,<2" ,
66+ " google-cloud-bigquery[pandas]>=2,<4" ,
67+ " google-cloud-bigquery-storage >= 2.0.0,<3" ,
68+ " google-cloud-datastore>=2.16.0,<3" ,
69+ " google-cloud-storage>=1.34.0,<3" ,
70+ " google-cloud-bigtable>=2.11.0,<3" ,
71+ " fsspec<=2024.9.0" ,
72+ ]
73+ ge = [" great_expectations>=0.15.41" ]
74+ go = [" cffi~=1.15.0" ]
75+ grpcio = [
76+ " grpcio>=1.56.2,<2" ,
77+ " grpcio-reflection>=1.56.2,<2" ,
78+ " grpcio-health-checking>=1.56.2,<2" ,
79+ ]
80+ hazelcast = [" hazelcast-python-client>=5.1" ]
81+ hbase = [" happybase>=1.2.0,<3" ]
82+ ibis = [
83+ " ibis-framework>=9.0.0,<10" ,
84+ " ibis-substrait>=4.0.0" ,
85+ ]
86+ ikv = [
87+ " ikvpy>=0.0.36" ,
88+ ]
89+ k8s = [" kubernetes<=20.13.0" ]
90+ milvus = [" pymilvus" ]
91+ mssql = [" ibis-framework[mssql]>=9.0.0,<10" ]
92+ mysql = [" pymysql" , " types-PyMySQL" ]
93+ opentelemetry = [" prometheus_client" , " psutil" ]
94+ spark = [" pyspark>=3.0.0,<4" ]
95+ trino = [" trino>=0.305.0,<0.400.0" , " regex" ]
96+ postgres = [" psycopg[binary,pool]>=3.0.0,<4" ]
97+ qdrant = [" qdrant-client>=1.12.0" ]
98+ redis = [
99+ " redis>=4.2.2,<5" ,
100+ " hiredis>=2.0.0,<3" ,
101+ ]
102+ singlestore = [" singlestoredb<1.8.0" ]
103+ snowflake = [
104+ " snowflake-connector-python[pandas]>=3.7,<4" ,
105+ ]
106+ sqlite_vec = [" sqlite-vec==v0.1.6" ]
107+
108+ ci = [
109+ " build" ,
110+ " virtualenv==20.23.0" ,
111+ " cryptography>=43.0,<44" ,
112+ " ruff>=0.8.0" ,
113+ " mypy-protobuf>=3.1" ,
114+ " grpcio-tools>=1.56.2,<2" ,
115+ " grpcio-testing>=1.56.2,<2" ,
116+ # FastAPI does not correctly pull starlette dependency on httpx see thread(https://github.com/tiangolo/fastapi/issues/5656).
117+ " httpx==0.27.2" ,
118+ " minio==7.2.11" ,
119+ " mock==2.0.0" ,
120+ " moto<5" ,
121+ " mypy>=1.4.1,<1.11.3" ,
122+ " urllib3>=1.25.4,<3" ,
123+ " psutil==5.9.0" ,
124+ " py>=1.11.0" , # https://github.com/pytest-dev/pytest/issues/10420
125+ " pytest>=6.0.0,<8" ,
126+ " pytest-asyncio<=0.24.0" ,
127+ " pytest-cov" ,
128+ " pytest-xdist" ,
129+ " pytest-benchmark>=3.4.1,<4" ,
130+ " pytest-lazy-fixture==0.6.3" ,
131+ " pytest-timeout==1.4.2" ,
132+ " pytest-ordering~=0.6.0" ,
133+ " pytest-mock==1.10.4" ,
134+ " pytest-env" ,
135+ " Sphinx>4.0.0,<7" ,
136+ " testcontainers==4.8.2" ,
137+ " python-keycloak==4.2.2" ,
138+ " pre-commit<3.3.2" ,
139+ " assertpy==1.1" ,
140+ " pip-tools" ,
141+ " pybindgen" ,
142+ " types-protobuf~=3.19.22" ,
143+ " types-python-dateutil" ,
144+ " types-pytz" ,
145+ " types-PyYAML" ,
146+ " types-redis" ,
147+ " types-requests<2.31.0" ,
148+ " types-setuptools" ,
149+ " types-tabulate" ,
150+ " virtualenv<20.24.2" ,
151+ " feast[aws, azure, cassandra, couchbase, delta, duckdb, elasticsearch, faiss, gcp, ge, go, grpcio, hazelcast, hbase, ibis, ikv, k8s, milvus, mssql, mysql, opentelemetry, spark, trino, postgres, qdrant, redis, singlestore, snowflake, sqlite_vec]"
152+ ]
153+ dev = [" feast[ci]" ]
154+ docs = [" feast[ci]" ]
155+
156+ [project .urls ]
157+ Homepage = " https://github.com/feast-dev/feast"
158+
159+ [[project .authors ]]
160+ name = " Feast"
161+
162+ [project .scripts ]
163+ feast = " feast.cli:cli"
164+
1165[build-system ]
2166requires = [
3167 " pybindgen==0.22.0" ,
@@ -7,8 +171,15 @@ requires = [
7171 " wheel" ,
8172]
9173
174+ [tool .setuptools ]
175+ packages = {find = {where = [" sdk/python" ], exclude = [" java" , " infra" , " sdk/python/tests" , " ui" ]}}
176+
10177[tool .setuptools_scm ]
11- # Including this section is comparable to supplying use_scm_version=True in setup.py.
178+ # Add Support for parsing tags that have a prefix containing '/' (ie 'sdk/go') to setuptools_scm.
179+ # Regex modified from default tag regex in:
180+ # https://github.com/pypa/setuptools_scm/blob/2a1b46d38fb2b8aeac09853e660bcd0d7c1bc7be/src/setuptools_scm/config.py#L9
181+ tag_regex = " ^(?:[\\ /\\ w-]+)?(?P<version>[vV]?\\ d+(?:\\ .\\ d+){0,2}[^\\ +]*)(?:\\ +.*)?$"
182+
12183
13184[tool .ruff ]
14185line-length = 88
0 commit comments