semvec/pypi-packages huggingface dataset:
sqlite-cache-storage 1.0.2
SQLite cache storage for botasaurus.
License: MIT
Requires Python: >=3.7
Keywords: sqlite, sqlite-cache-storage, cache, botasaurus, sqlite3

# sqlite-cache-storage

SQLite cache storage backend for botasaurus.

## Installation

```bash
pip install sqlite-cache-storage
```

## Usage

### With decorators like `@task`, `@request`, `@browser`

```python
from sqlite_cache_storage import SqliteCacheStorage
from botasaurus.task import task
from datetime import timedelta

# Create storage instance
sqlite_storage = SqliteCacheStorage(
    db_path="cache.db"
)

@task(cache=True, expires_in=timedelta(days=1), cache_storage=sqlite_storage)
def my_scraper(data):
    # scraping logic
    return result
```

### With `@cache` decorator

```python
from sqlite_cache_storage import SqliteCacheStorage
from botasaurus.decorator_helpers import cache
from datetime import timedelta

# Create storage instance
sqlite_storage = SqliteCacheStorage(
    db_path="cache.db"
)

# Use the decorator
@cache(expires_in=timedelta(days=1), cache_storage=sqlite_storage)
def my_function(data):
    # time-consuming operation
    return result
```


## API

### SqliteCacheStorage

```python
SqliteCacheStorage(
    db_path: str = 'cache.db',
    table_name: str = 'botasaurus_cache'
)
```

#### Methods

- `get(func_name, key_data, expires_in=None)` - Get cached value. Returns `{"data": value}` or `None`
- `put(func_name, key_data, data)` - Store value in cache
- `delete(func_name, key_data)` - Delete cached value

## License

MIT
pg-cache-storage 1.0.4
PostgreSQL cache storage for botasaurus.
License: MIT
Requires Python: >=3.7
Keywords: postgresql, pg-cache-storage, cache, botasaurus, psycopg3

# pg-cache-storage

PostgreSQL cache storage backend for botasaurus.

## Installation

```bash
pip install pg-cache-storage
```

## Usage

### With decorators like `@task`, `@request`, `@browser`

```python
from pg_cache_storage import PostgresCacheStorage
from botasaurus.task import task
from datetime import timedelta

# Create storage instance
pg_storage = PostgresCacheStorage(
    host="localhost",
    port=5432,
    username="postgres",
    password="postgres",
    db_name="cache"
)

@task(cache=True, expires_in=timedelta(days=1), cache_storage=pg_storage)
def my_scraper(data):
    # scraping logic
    return result
```

### With `@cache` decorator

```python
from pg_cache_storage import PostgresCacheStorage
from botasaurus.decorator_helpers import cache
from datetime import timedelta

# Create storage instance
pg_storage = PostgresCacheStorage(
    host="localhost",
    port=5432,
    username="postgres",
    password="postgres",
    db_name="cache"
)

# Use the decorator
@cache(expires_in=timedelta(days=1), cache_storage=pg_storage)
def my_function(data):
    # time-consuming operation
    return result
```


## API

### PostgresCacheStorage

```python
PostgresCacheStorage(
    host: str = 'localhost',
    port: int = 5432,
    username: str = 'postgres',
    password: str = 'postgres',
    db_name: str = 'cache',
    table_name: str = 'botasaurus_cache'
)
```

#### Methods

- `get(func_name, key_data, expires_in=None)` - Get cached value. Returns `{"data": value}` or `None`
- `put(func_name, key_data, data)` - Store value in cache
- `delete(func_name, key_data)` - Delete cached value

## License

MIT
sift-dqe 0.1.1
An adaptive data quality engine that detects anomalies and suggests fixes.
License: MIT
Requires Python: <3.12,>=3.10

# Sift: Adaptive Data Quality Engine (DQE)

**Sift** is a deterministic, explainable engine designed to detect, rank, and suggest fixes for data quality issues in tabular datasets.

Unlike "black box" AI tools that hallucinate fixes, Sift uses a transparent **3-Layer Architecture** to provide statistically backed remediation strategies without requiring labeled training data.

### 🚀 Key Capabilities

* **Layer 1: Structural Profiling** - Infers types, cardinality, and missingness patterns using **Polars**.
* **Layer 2: Semantic Inference** - Uses **Isolation Forest** (Anomaly Detection) and **String Clustering** to find logic errors and fuzzy duplicates.
* **Layer 3: Impact Ranking** - Prioritizes issues by severity (0-1 score) so you fix system-breaking errors first.

---

## 📦 Installation

```bash
pip install sift-dqe

```

---

## ⚡ Quick Start

Sift installs a global CLI tool that you can use immediately.

### 1. Run the Demo

See Sift in action against an internally generated dataset. The engine will spin up, inject random errors (via Chaos Monkey), and attempt to detect them live.

```bash
sift demo

```

### 2. Verify Reliability (The Benchmark)

Don't trust the tool? Audit it. Run the **Reliability Scorecard** to stress-test the engine against 20 cycles of synthetic data corruption.

```bash
sift benchmark

```

### 3. Analyze Your Own Data

Sift supports CSV and Parquet files out of the box.

```bash
sift analyze path/to/your/file.csv

```

---

## 🧠 How It Works

Sift operates on the **Bounded Intelligence** principle—it avoids guessing semantics and instead measures statistical deviation.

1. **Ingest:** Loads data into Polars for high-performance processing.
2. **Profile:** Calculates column statistics (Mode, Mean, Null%).
3. **Infer:** Runs unsupervised ML (Isolation Forest) to detect row-level anomalies.
4. **Rank:** Synthesizes all findings into a prioritized JSON report or Terminal Dashboard.

---

## 🛡️ Known Limitations

Sift is a statistical engine, not a semantic oracle.

* **Small Data:** Datasets with <50 rows may trigger false positives in anomaly detection due to sparse density.
* **Context:** Sift detects *outliers* (e.g., Age=150), but cannot verify if they are *impossible* (e.g., humans don't live to 150).

For a full list of failure modes, please visit the [GitHub Repository](https://github.com/PranavKndpl/Sift).
arcade-generator 0.12.0
A static site generator
License: MIT
Requires Python: >=3.12

# arcade

![](assets/hartmut-tobies-O9TEKuI1Icw-unsplash-min.jpg)

Yet another static site generator. 

## Features

- Theme customization (templates use `jinja2`)
- Live reload while editing
- Customizable paths

## Installation

```
uv tool install arcade-generator
arcade --help
```

If you prefer a project install:

```
uv pip install arcade-generator
```

## Commands

- Create a new site
```
arcade init
```

- Compile your site
```
arcade build
```   
- Watch local project
```
arcade watch
```

## Development

Install dev dependencies and run tests:

```
uv sync --group dev
uv run pytest
```

Lint and type-check:

```
uv run ruff check .
uv run ty check .
```


## How to use

1. Create a new project

```
arcade init
```

2. Modify the `arcade.toml` configuration file. An example is 

```
author_name = "Yabir Garcia Benchakhtir"
base_path = "http://localhost:5500"
page_name = "Yabir Garcia's Blog"
theme = "themes/baseline"

[social]
email = { icon = "fa-envelope", url = "mailto:yabirg@protonmail.com" }
github = { icon = "fa-github", url = "https://github.com/yabirgb" }
linkedin = { icon = "fa-linkedin-square", url = "https://www.linkedin.com/in/yabirgb/" }
mastodon = { icon = "fa-mastodon", url = "https://mstdn.io/@yabirgb" }
twitter = { icon = "fa-twitter", url = "https://twitter.com/yabirgb" }
```

Notes:
- `base_path` is used to build absolute URLs in the Atom feed.
- `theme` should point to a theme directory that contains the templates and `static/` assets.

3. Create a index file

Go to the `content` and create an file called `index.md`. This will
be the entry point to your blog

4. Build or watch your project

```
arcade build
arcade watch
```

## Themes

Currently only the baseline theme is available. You can download it [here](https://github.com/yabirgb/arcade/releases/download/0.0.5/baseline.zip)

Made with :heart: and :snake: by Yábir Benchakhtir

## Credit

Photo by [@hartmuttobies](https://unsplash.com/@hartmuttobies)