featuresmith
  • Docs
  • SDK
  • CLI
  • Examples
  • Roadmap
v0.1.0
Documentation

Getting Started

  • Introduction
  • Installation
  • Quick Start
  • Benchmarks
  • Development Setup
  • Contributing

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine

Python SDK

  • load()
  • profile()
  • analyze()
  • Data Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
DocsGuide

Getting Started

  • Introduction
  • Installation
  • Quick Start
  • Benchmarks
  • Development Setup
  • Contributing

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine

Python SDK

  • load()
  • profile()
  • analyze()
  • Data Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
HomeDocsDevelopment Setup

Getting Started

Development Setup

Setting up your environment to develop and test Featuresmith

Featuresmith uses a monorepo structure managed by uv workspaces. Follow this guide to set up a clean, isolated local development environment.

Prerequisites

  • Python 3.11 or higher installed on your system.
  • Astral uv installed (see uv docs).
  • Git for source control.

1. Clone and Sync Workspace

Clone the repository and run uv sync to automatically create a virtual environment and link all local packages:

bash
1git clone https://github.com/adityagangwani30/FeatureSmith.git
2cd FeatureSmith
3uv sync

2. Install Pre-commit Hooks

We use pre-commit hooks to enforce formatting (Ruff) and static typing (Mypy) before code is committed:

bash
1uv run pre-commit install

3. Running Checks and Tests

Ensure your configuration is correct by running the test suite and linters:

bash
1# Run formatting checks
2uv run ruff format . --check
3
4# Run linter checks
5uv run ruff check .
6
7# Run type checks
8uv run mypy .
9
10# Run import boundary constraints
11uv run lint-imports
12
13# Run test suite
14uv run pytest
Windows Environment Note: If pytest encounters permissions or lockout issues with standard system temp directories, point the temp folders directly inside the workspace:$env:TMP=".pytest_tmp"; $env:TEMP=".pytest_tmp"; uv run pytest

Explore

  • Quick Start
  • Python SDK
  • CLI Reference
  • Examples
featuresmith

Open-source data profiling and validation for Python engineers.

Documentation

  • Introduction
  • Quick Start
  • Python SDK
  • CLI Reference

Community

  • GitHub
  • Discussions
  • Issues
  • Contributing

Project

  • Roadmap
  • Release status
  • Benchmarks
  • Changelog
  • Examples

Legal

  • Apache 2.0 License
  • Code of Conduct
  • Security

© 2026 Featuresmith Contributors. Released under the Apache 2.0 License.

Built in the open — contributions welcome.