semvec/pypi-packages huggingface dataset:
flash-eeg 0.3.2
GPU-accelerated EEG preprocessing transforms
Requires Python: >=3.9
Keywords: eeg, gpu, pytorch, spectrogram, connectivity, neuroscience

# flash-eeg

GPU-accelerated electrophysiology (EEG, iEEG, LFP) transforms for large batch jobs.

Built on PyTorch and CUDA (cuFFT) under the hood.

## Install

```bash
pip install flash-eeg
```

## Usage

```python
import flash_eeg as feeg
import torch

x = torch.randn(32, 8, 7500, device="cuda")  # [batch, channels, samples]

# Functional API
spec = feeg.spectrogram(x)     # STFT spectrogram
morlet = feeg.morlet(x)        # Morlet wavelet
conn = feeg.connectivity(x)    # WPLI connectivity
img = feeg.reshape(x)          # Signal to image
filt = feeg.bandpass(x)        # FFT bandpass filter

# Raw spectral output (no normalization / resize)
raw_spec = feeg.spectrogram(x, output="raw")  # [B, C, n_freqs, T_frames]
raw_morlet = feeg.morlet(x, output="raw")     # [B, C, n_freqs, T_decimated]

# Class API (nn.Module, for training loops)
spec_fn = feeg.Spectrogram(device="cuda")
for batch in dataloader:
    out = spec_fn(batch)

# Both APIs have identical performance after first call.
# Functional API uses lru_cache internally - same params reuse the compiled module.
```

## Options

```python
# Output size
feeg.spectrogram(x, output_size=128)

# FFT parameters
feeg.spectrogram(x, n_fft=512, hop_length=64, freq_min=1.0, freq_max=50.0)
feeg.morlet(x, n_freqs=30, freq_min=1.0, freq_max=100.0)
feeg.connectivity(x, n_fft=1024, num_tapers=5)

# Bandpass filter
feeg.bandpass(x, sfreq=250.0, low=0.5, high=45.0)

# Force compile on/off (auto-detects A100/H100/H200 by default)
feeg.spectrogram(x, compile=True)
```

## Benchmarks

Tested on NVIDIA H200 vs CPU baselines (MNE/Scipy with full parallelization).

| Transform | CPU | GPU (compiled) | Speedup |
|-----------|-----|----------------|---------|
| STFT Spectrogram | 7.17s | 6.3ms | **1,147x** |
| Morlet Wavelet | 59.2s | 41.1ms | **1,440x** |
| WPLI Connectivity | 72.1s | 1.1ms | **66,731x** |
| Reshape | 6.96s | 0.86ms | **8,085x** |

*Batch size 1024, 8 channels, 7500 samples (30s @ 250Hz). H200 GPU vs parallelized CPU (MNE/Scipy).*

## Requirements

- PyTorch >= 2.0
- CUDA GPU (for acceleration)

## License

MIT
uniserver-client 0.1.0
Official Python client for the UniServer API
Requires Python: >=3.10
Keywords: uniserver, api, database, sdk, client

# UniServer Python Client

`uniserver-client` is the Python package for calling the UniServer API.

## Install

```bash
pip install uniserver-client
```

## Quick Start

```python
from uniserver import UniServerClient

client = UniServerClient(
    base_url="https://uniserver-hyco.onrender.com",
    account_api_key="uacc_your_account_key"
)

# Create a project (client automatically remembers its first project API key)
project = client.create_project("my-project")
project_id = project["id"]

# KV operations
client.put_kv(project_id, "hello", {"message": "world"})
item = client.get_kv(project_id, "hello")
print(item)

# Object operations
client.put_object(
    project_id,
    item_key="model_cache",
    object_type="CacheBlob",
    serialized={"tokens": [1, 2, 3]},
    encoding="json",
)
print(client.list_objects(project_id))
```

Or with direct package-level functions:

```python
import uniserver

uniserver.configure(
    base_url="https://uniserver-hyco.onrender.com",
    account_api_key="uacc_your_account_key",
)

project = uniserver.create_project("my-project")
project_id = project["id"]

# The first project key is remembered automatically
uniserver.put_kv(project_id, "hello", "world")
print(uniserver.get_kv(project_id, "hello"))
```

## Auth Model

UniServer has two key types:

- Account API key (`X-Uniserver-Account-Key`) for account/project operations.
- Project API key (`X-Project-Api-Key`) for project data operations.

This package stores both in memory:

- Account key: `client.set_account_api_key(...)`
- Project key: `client.set_project_api_key(project_id, ...)`

You can still override per call:

```python
client.list_kv(project_id=4, project_api_key="unis_project_key")
```

## Environment Variables

If you do not pass values in code, the client can read:

- `UNISERVER_BASE_URL`
- `UNISERVER_ACCOUNT_KEY`

## Main Methods

- Health: `health()`
- Accounts: `create_account()`, `get_account()`, `create_account_api_key()`, `delete_account_api_key()`
- Projects: `create_project()`, `list_projects()`, `get_project()`, `update_project()`, `delete_project()`
- Project keys: `create_project_api_key()`, `delete_project_api_key()`
- KV: `list_kv()`, `get_kv()`, `put_kv()`, `delete_kv()`
- Objects: `list_objects()`, `get_object()`, `put_object()`, `delete_object()`

## Build a distributable package

```bash
python -m pip install build
python -m build
```

Built artifacts will be in `dist/`.
tui-notes 0.1.0
A terminal-based post-it notes application with a 3x3 grid layout
Requires Python: >=3.9
Keywords: notes, post-it, terminal, textual, tui

# TUI Notes 📝

A terminal-based post-it notes application — organize your thoughts in a 3×3 grid, right from the command line.

![Python](https://img.shields.io/badge/Python-3.9%2B-blue)
![License](https://img.shields.io/badge/License-MIT-green)

## Features

- **3×3 Post-it Grid** — Up to 9 notes displayed simultaneously
- **6 Colors** — Yellow, Green, Blue, Pink, Orange, Purple (press `c` to change)
- **Persistent Storage** — Auto-saves to `~/.config/tui-notes/notes.json`
- **Move Mode** — Rearrange notes freely, even to empty slots
- **Export** — Export all notes to Markdown (`Ctrl+E`)
- **Keyboard-driven** — Full operation without mouse

## Installation

```bash
# Clone and install
git clone https://github.com/douglas/tui-notes.git
cd tui-notes
pip install -e .

# Or with pipx (recommended for CLI tools)
pipx install .
```

## Usage

```bash
tui-notes
```

## Keyboard Shortcuts

| Key | Action |
|-----|--------|
| `a` | Add note at selected position |
| `e` / `Enter` | Edit selected note |
| `d` | Delete selected note (with confirmation) |
| `c` | Change note color |
| `m` | Enter Move mode (swap/reorder) |
| `←` `↑` `↓` `→` | Navigate between slots |
| `Ctrl+S` | Save notes manually |
| `Ctrl+R` | Reload notes from disk |
| `Ctrl+E` | Export to `~/tui-notes-export.md` |
| `?` | Show help screen |
| `Escape` | Cancel move mode |
| `q` | Quit |

## Data Storage

Notes are stored as JSON in the platform-specific config directory:

| Platform | Path |
|----------|------|
| Linux | `~/.config/tui-notes/notes.json` |
| macOS | `~/Library/Application Support/tui-notes/notes.json` |
| Windows | `%APPDATA%/tui-notes/notes.json` |

## Development

```bash
# Setup
python -m venv venv
source venv/bin/activate
pip install -e .
pip install -r requirements-dev.txt

# Run
python -m tui_notes

# Tests
pytest

# Linting
black tui_notes/ tests/
isort tui_notes/ tests/
pylint tui_notes/
```

## Requirements

- Python 3.9+
- Terminal with color support

## License

MIT — see [LICENSE](LICENSE) file.