semvec/pypi-packages huggingface dataset:
gaya 0.1.1
Simple data quality checks that just work.
License: MIT
Requires Python: >=3.10

# Gaya

**Simple data quality checks that just work.**

Gaya helps you catch data issues early with sensible defaults and zero ceremony.

```bash
pip install gaya
gaya init
gaya run
```

---

## What Gaya Checks

Out of the box, Gaya runs common, practical data quality checks with clear thresholds.

| Check | Default Behavior |
|---|---|
| Null rate per column | Warn > 10%, fail > 25% |
| Required columns | Zero nulls allowed |
| Primary key uniqueness | Zero duplicates |
| Row count change | Warn > 20%, fail > 40% |
| Schema drift | Warn on column add, fail on removal |

All thresholds are configurable in `gaya.yml`.

---

## Quick Configuration

Define your data sources and tables in a simple YAML file.

```yaml
datasources:
  main_db:
    type: postgres
    host: localhost
    database: app_db
    user: app_user
    password: env:DB_PASSWORD

tables:
  orders:
    source: main_db
    layer: staging
    primary_key: order_id
    not_null:
      - order_id
      - customer_id
```

---

## Example Output

Clear, readable output that explains what failed and why it matters.

```
  ──────────────────────────────────────────────────────
  ✖  staging.orders  FAILED
     ✖  row count dropped 38% (1.2M → 740K)
          → A drop this large usually means a failed upstream load.

  ──────────────────────────────────────────────────────
  1 table(s) · 1 failed · 7 passed
  Finished in 2.3s
  ──────────────────────────────────────────────────────
```

---

## Exit Codes

Designed to integrate cleanly with CI/CD pipelines.

| Code | Meaning |
|---|---|
| 0 | All checks passed |
| 1 | Warnings only |
| 2 | One or more checks failed |
| 3 | Gaya error (config or connection) |

---

## CI Integration

```yaml
# GitHub Actions
- name: Run data quality checks
  run: gaya run --quiet
```

---

## Supported Sources

- Postgres

Additional connectors are planned.

---

## Project Status

Gaya is an early-stage project. The core check logic, Postgres adapter, and CLI are
working. The API and configuration format may evolve, but the goal will always be the
same: simple, predictable, easy to reason about.

Feedback and contributions are welcome.
homeassistant-stubs 2026.2.3
PEP 484 typing stubs for Home Assistant Core
License: MIT
Requires Python: >=3.13.2
Keywords: homeassistant, pep484, typing

[![CI](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml/badge.svg)](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml)
[![PyPI version](https://img.shields.io/pypi/v/homeassistant-stubs)](https://pypi.org/project/homeassistant-stubs/)

# PEP 484 stubs for Home Assistant Core

This is unofficial stub-only package generated from [Home Assistant Core](https://github.com/home-assistant/core) sources.
You can use it to enable type checks against Home Assistant code in your custom component or AppDaemon app.

## How to use

Add it to dev dependencies of your project.
I recommend to use [uv](https://docs.astral.sh/uv/) for managing dependencies:

```shell
uv add --dev homeassistant-stubs
```

Please note that only stubs from strictly typed modules are added in this package.
This includes all core modules and some components.
Generic components like `sensor`, `light` or `media_player` are already typed.

If your project imports not yet typed components, `mypy` will be unable to find that module.
The best thing you can do to fix this is to submit PR to HA Core which adds type hints for these components.
After that stubs for these components will become available in this package.

## Motivation

Home Assistant maintainers don't want to distribute typing information with `homeassistant` package
([[1]](https://github.com/home-assistant/core/pull/28866),
[[2]](https://github.com/home-assistant/core/pull/47796)).
The reason is that [PEP 561](https://www.python.org/dev/peps/pep-0561/#packaging-type-information)
says that `py.typed` marker is applied recursively and the whole package must support type checking.
But many of the Home Assistant components are currently not type checked.

## How it works

- `update_stubs.py` script extracts list of strictly typed modules from Home Assistant configs.
- Then it runs `stubgen` which is shipped with `mypy` to generate typing stubs.
- New versions are generated and published automatically every 12 hours.