Metadata-Version: 2.4
Name: featureform-enterprise
Version: 0.22.1
Summary: Package for the Featureform Enterprise Feature Store
Author-email: "FeatureForm, Inc." <hello@featureform.com>
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=7.1.2
Requires-Dist: protobuf>=3.20.0
Requires-Dist: typeguard<3.0.0
Requires-Dist: grpcio>=1.62.2
Requires-Dist: googleapis-common-protos
Requires-Dist: numpy<2.0,>=1.21.6
Requires-Dist: pandas<2.2.0,>=1.3.5
Requires-Dist: typing_extensions>=4.10.0
Requires-Dist: Flask>=2.2.5
Requires-Dist: Flask-Cors>=4.0.1
Requires-Dist: validators>=0.20.0
Requires-Dist: dill>=0.3.7
Requires-Dist: sqlalchemy<2.0.0
Requires-Dist: requests>=2.32.2
Requires-Dist: rich>=13.5.2
Requires-Dist: pyarrow<21.0.0
Requires-Dist: pyyaml
Requires-Dist: fastparquet
Requires-Dist: pinecone-client>=2.2.2
Requires-Dist: weaviate-client
Requires-Dist: docker>=6.1.3
Requires-Dist: okta-jwt-verifier
Requires-Dist: importlib-metadata
Requires-Dist: pyiceberg[glue]>=0.9.0
Requires-Dist: astor
Requires-Dist: pydantic>=2.0.0
Requires-Dist: cloudpickle>=3.1.2
Requires-Dist: ipywidgets>=8.1.7
Dynamic: license-file

# Featureform Python Client

## Overview

Featureform’s Python client is a SDK for defining, managing and serving resources (e.g. infrastructure providers, data sources, transformations, etc.). At a high level, the API is divided into two parts:

* Registration: register data stores (e.g. PostgreSQL), data sources (e.g. tables or CSV files) as resources or get and/or list previously registered resources
* Serving: retrieve training sets and features for offline training or online inference

## Requirements

* Python 3.9-3.12

## Setting Up Your Local Development Environment

### Step 1: Install gRPC and Protocol Buffer Tooling

See grpc.io for instructions on installing the [protocol buffer compiler](https://grpc.io/docs/protoc-installation/) for your OS and language-specific plugins for [Golang](https://grpc.io/docs/languages/go/quickstart/#prerequisites) (**NOTE**: the Golang dependencies can also be installed via [Homebrew](https://brew.sh/).)

### Step 2: Install uv and Sync Dependencies

Install [uv](https://docs.astral.sh/uv/getting-started/installation/) if you haven't already. Then sync the project dependencies:

```shell
> uv sync --group dev
```

This creates a virtual environment and installs all required dependencies, including the `featureform` client in editable mode.

### Step 3: Compile API Protocol Buffers and Python Stub

The shell script `gen_grpc.sh` has been provided for convenience. Change the file access permissions to make it executable and run it:

```shell
> chmod +x gen_grpc.sh
> ./gen_grpc.sh
```

### Step 4: Optionally Run Client Test Suite

To ensure your changes haven’t broken the client, run the test suite with the following make target:

```shell
> make pytest
```

## Outcome

With the steps above successfully completed, you should have the `featureform` CLI command accessible via `uv run`:

```shell
> uv run featureform -h
```

To further verify that your setup is complete and correct, you may optionally walk through the [Quickstart](https://docs.featureform.com/quickstart-local) tutorial. You may put the `definitions.py` file at the root of the project, which won’t be ignored by Git, or use a URL to a file (e.g. hosted on GitHub).
