semvec/pypi-packages huggingface dataset:
power-attention-cuda 0.1.0
CUDA implementation of power attention
Requires Python: >=3.11

This is the legacy CUDA kernel for Power Attention, refer to https://github.com/m-a-n-i-f-e-s-t/power-attention instead.


## Build

Build a single wheel

```bash
./build_wheels.sh -t <torch version> -p <python version>
```

Build all wheels 

```bash
./build_all_wheels.sh
```
stackclient 0.2.4
Python library to interact with Stackspot Agents API
Requires Python: >=3.13

# stackclient

[![PyPI version](https://badge.fury.io/py/stackclient.svg)](https://pypi.org/project/stackclient/)

A simple Python client for interacting with [StackSpot](https://stackspot.com/) public Agents API.  
Handles authentication (OAuth2 client credentials) and allows you to send prompts to StackSpot agents.

---

## Features

- Authenticate with StackSpot using OAuth2 client credentials.
- Send prompts to any StackSpot agent and receive responses.
- Minimal dependencies (`urllib3`).

---

## Installation

Install from PyPI:

```bash
pip install stackclient
```

---

## Usage

### 1. Import and Initialize

You can provide credentials directly or via environment variables:

- `STACKSPOT_CLIENT_ID`
- `STACKSPOT_CLIENT_SECRET`
- `STACKSPOT_REALM`
- `STACKSPOT_AGENT_ID` (optional, can be set per call)

```python
from stackclient.client import StackSpotAgentClient

# Option 1: Pass credentials directly
client = StackSpotAgentClient(
    realm="your-realm",
    client_id="your-client-id",
    client_secret="your-client-secret",
    agent_id="your-agent-id"  # optional, can be set per call
)

# Option 2: Use environment variables
# export STACKSPOT_CLIENT_ID=your-client-id
# export STACKSPOT_CLIENT_SECRET=your-client-secret
# export STACKSPOT_REALM=your-realm
# export STACKSPOT_AGENT_ID=your-agent-id
client = StackSpotAgentClient()
```

### 2. Call an Agent

```python
try:
    response = client.call_agent("Hello, StackSpot agent!")
    print(response)
except Exception as e:
    print(f"Error: {e}")
```

You can override the default agent ID per call:

```python
response = client.call_agent("Prompt for another agent", agent_id="another-agent-id")
```

---

## Exception Handling

- `AuthenticationError`: Raised if authentication fails.
- `AgentCallError`: Raised if the agent call fails.
- `MissingCredentialsError`: Raised if required credentials are missing.
- `MissingAgentIDError`: Raised if no agent ID is provided.

---

## Requirements

- Python 3.7+
- `urllib3>=2.5.0`

---

## License

MIT

---

## Example

```python
from stackclient.client import StackSpotAgentClient

client = StackSpotAgentClient(
    realm="myrealm",
    client_id="myclientid",
    client_secret="mysecret",
    agent_id="myagentid"
)
result = client.call_agent("What is StackSpot?")
print(result)
```
streamlit-ext 0.1.19
Small handy widgets for streamlit, e.g. download button which won't cause rerun, set page width
Requires Python: >=3.8
Keywords: streamlit, widgets

# streamlit-ext

[![PyPI Latest Release](https://img.shields.io/pypi/v/streamlit-ext.svg)](https://pypi.org/project/streamlit-ext/)
[![streamlit-ext-demo](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://paleneutron-streamlit-ext-testse2etest-sync-widget-orfpyh.streamlitapp.com/)

A small handy extension for streamlit, keep your widget values in url, and share it with your friends.

Use widget from `stramlit-ext` just as `streamlit` and pass a unique `key` to it!

![example gif](https://raw.githubusercontent.com/PaleNeutron/streamlit-ext/master/docs/examples.gif)

```python
import numpy as np
import pandas as pd

import streamlit as st
import streamlit_ext as ste

df = pd.DataFrame(np.random.rand(10, 5))


option = ste.selectbox(
    "A form will show up if you select less than 10",
    range(100),
    key="selectbox",
)

st.write("You selected:", option)

age = ste.slider("How old are you?", 0, 130, 25, key="slider1")
st.write("I'm ", age, "years old")

ste.download_button("Click to download data!", df, "YOUR_DF.xlsx")
ste.download_button("Click to download text!", b"text content", "YOUR_STRING.txt")
```



## installation

```bash
pip install streamlit-ext
```

## Usage

### sync widgets' value with urls

When widgets value changes, the url synced and if you open the url in new tab, every value keeped.

Just import widgets from streamlit_ext, and give a specific `key` argument to it!

```python
import streamlit as st
import streamlit_ext as ste

from datetime import time, datetime, date

option = ste.selectbox(
    "How would you like to be contacted?",
    range(100),
    key="selectbox",
)

st.write("You selected:", option)

d = ste.date_input("When's your birthday", date(2019, 7, 6), key="date_input")
st.write("Your birthday is:", d)

t = ste.time_input("Set an alarm for", time(8, 45), key="time_input")
st.write("Alarm is set for", t)
```

### Download button which won't cause rerun

```python
import streamlit as st
import streamlit_ext as ste

st.title('streamlit-ext')

ste.set_page_width("60em")

ste.download_button("Download", "Hello World".encode(), "hello.txt")
```

### Set page width

```python
import streamlit as st
import streamlit_ext as ste

st.title('streamlit-ext')

ste.set_page_width("60em")

st.write("a quick fox jump..."*100)
```
pyut2xml 1.0.0
Pyut compressor and decompressor
Keywords: git, issue management, markdown, python

[![CircleCI](https://dl.circleci.com/status-badge/img/gh/hasii2011/pyut2xml/tree/master.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/hasii2011/pyut2xml/tree/master)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)


# Introduction

A simple python console script to let me convert [Pyut](https://github.com/hasii2011/PyUt) files to XML.

# Overview

The basic command structure is:

```
Usage: pyut2xml [OPTIONS]

Options:
  --version               Show the version and exit.
  -i, --input-file TEXT   The input .put file to decompress.  [required]
  -o, --output-file TEXT  The output xml file.
  --help                  Show this message and exit.
```

By default, pyut2xml assumes that the input file has a `.put` suffix and the output file has a `.xml` suffix. 

However, pyut2xml is flexible and can deduce file names and suffixes.  The best option is if you do not specify the output file.  Then, pyut2xml deduces that the output file is the same as the input file name with the .xml suffix.  For example:

```pyut2xml -i TestFileV10.put```

causes pyut2xml to write to a file named TestFileV10.xml

The command line:

```pyut2xml -i TestFileV10 -o TestFileV10```

reads from TestFileV10.put and writes to TestFileV10.xml


Another simple example:

```pyut2xml -i TestFileV10```

causes pyut2xml to reads from a file named TestFileV10.put and write to a file named TestFileV10.xml

# Installation

```pip install pyut2xml```


___

Written by <a href="mailto:email@humberto.a.sanchez.ii@gmail.com?subject=Hello Humberto">Humberto A. Sanchez II</a>  (C) 2025

 

 
## Note
For all kind of problems, requests, enhancements, bug reports, etc.,
please drop me an e-mail.
pydlltoolkit 0.1.1
Python DLL Injection Toolkit
Requires Python: >=3.13

# pydlltoolkit

## Installation

You can install the package via pip:

```bash
pip install pydlltoolkit
```

Example:

```python

import os
from pydlltoolkit import DllInjector

if __name__ == "__main__":
    pid = 888

    base_dir = os.path.dirname(__file__)

    dll_path = os.path.join(base_dir, "simple.dll")
    dll_name = os.path.basename(dll_path)

    d = DllInjector()

    # Inject DLL
    d.inject(pid, dll_path)

    # # Uninject DLL (Unload)
    d.uninject(pid, dll_name)


```
keybind-vault 1.0.4
Text User Interface (TUI) that allows users to manage keybindings
Requires Python: >=3.13

# Keybind Vault

A TUI (Text-based User Interface) app built with [Textual](https://github.com/Textualize/textual) for managing your keyboard shortcuts. Organize, search, add, edit, and delete keybinds in a sleek terminal interface.

---

## Features

- **Dark Mode** toggle
- **Search** keybinds by keys, name, or description
- **Add**, **Edit**, **Delete** keybinds
- Organize keybinds into categories
- Uses a lightweight sqlite3 database for storage

---
![Demo](gif/demo.gif)
---

## Getting Started

### For Contributors / Developers

If you want to clone the repo, modify code, and work on the project locally:

#### 1. Clone the repository

```bash
git clone https://github.com/thompsonrm/Keybind-Vault.git
cd Keybind-Vault
```

#### 2. Set up a virtual environment

```bash
# With Python's built-in venv
python -m venv .venv

# Or with uv
uv venv

# Activate the environment (Windows)
.venv\Scripts\activate

# Or on Unix/macOS
source .venv/bin/activate
```

#### 3. Install dependencies and set up in editable mode

```bash
# Sync dependencies (using uv)
uv sync

# Install package in editable mode
uv pip install -e .
```

This allows you to edit the code and test changes without reinstalling.

#### 4. (Optional) Install development dependencies

```bash
# With pip
pip install .[dev]

# Or with uv
uv pip install .[dev]
```

Installs tools like `ruff` for linting and formatting.

---

### 👤 For Users

If you just want to install and use **Keybind Vault** from PyPI:

#### 1. Install via pip

```bash
pip install keybind-vault
```

Or, using `uv`:

```bash
uv pip install keybind-vault
```

#### 2. Use the CLI

```bash
keybind-vault
```

This runs the TUI to manage your keybindings.

#### 3. Uninstall if needed

```bash
pip uninstall keybind-vault
```

---

## 🛠️ Development Commands

```bash
# Format code
uv run ruff format .

# Run linter
uv run ruff check .
```
---

## Project Structure

```text
keybind_vault/
│
├── db/                    # SQLite database logic
│   ├── __init__.py
│   └── sqlite_db.py
│
├── modals/                # Textual modal screens for Add, Edit, Delete, etc.
│   ├── styles/            # Textual CSS for the modal screens
│   ├── add_modal.py
│   ├── delete_modal.py
│   ├── edit_modal.py
│   ├── search_modal.py
│   ├── vault_types.py
│   └── __init__.py
│
├── styles/
│   └── styles.tcss        # Textual CSS for the main file
│
├── main.py                # Main Textual app logic
└── __init__.py
```

---

## Technologies Used

- Python 3.13+
- [Textual](https://textual.textualize.io/) — modern TUI framework for Python
- [Uv](https://docs.astral.sh/uv/) An extremely fast Python package and project manager, written in Rust.
- [Ruff](https://docs.astral.sh/ruff/) An extremely fast Python linter and code formatter, written in Rust.
- SQLite (via `sqlite3` module)

## Issues
- Opening the search modal before other screen modals will result in visual issues.
pydll-toolkit 0.1.0
python dll injection toolkit
Requires Python: >=3.13

# pydlltoolkit

## Installation

You can install the package via pip:

```bash
pip install pydlltoolkit
```

Example:

```python

import os
from pydlltoolkit import DllInjector

if __name__ == "__main__":
    pid = 888

    base_dir = os.path.dirname(__file__)

    dll_path = os.path.join(base_dir, "simple.dll")
    dll_name = os.path.basename(dll_path)

    d = DllInjector()

    # Inject DLL
    d.inject(pid, dll_path)

    # # Uninject DLL (Unload)
    d.uninject(pid, dll_name)


```
miarchive 0.0.3
Self-hosted internet archive
Requires Python: >=3.10
Keywords: archival, web archiving, internet archiving, web, browser, download, preservation

# MIArchive

Small internet archive for self-hosted, private archival.

For more comprehensive information about MIArchive, see the [full README on Codeberg](https://codeberg.org/LunarWatcher/MIArchive#readme). This README is a special PyPI README, because PyPI does not support the markdown features used in the main README.

## Requirements

* Linux-based server
* PostgreSQL
* Python 3.10+


## Installation

You can either do it manually:
```bash
# Set up directory
cd /opt
sudo mkdir miarchive
sudo chown $USER miarchive
cd miarchive

# Set up venv
python3 -m venv env
source env/bin/activate

# Install MIA
pip3 install miarchive

# Set up environment
miarchive setup
```
Or using an install script featuring the exact same commands:
```bash
bash <(curl -L https://codeberg.org/LunarWatcher/MIArchive/raw/branch/master/scripts/install.sh)
```

The bulk of the setup systems are scripted in Python for everyone's convenience.
moomoolah 0.3.0
MooMoolah - Personal Budget Planner
Requires Python: >=3.11
Keywords: budget, personal-finance, textual, tui

# MooMoolah

A terminal-based personal budget planning application built with Python and Textual.

Your data is stored locally in a JSON file, keeping your financial information
private and accessible offline.

## Features

- **12-month forecast view** - Shows projected expenses, income, and balance for the next 12 months
- **Expense and Income management** - Add, edit, and delete expense/income entries
    - **Recurring entries** - Support for one-time, monthly, and yearly recurring transactions
    - **Category tracking** - Organize entries by categories

## Screenshots

Main screen:

[![Main Screen](./demo_main_screen.svg)](./demo_main_screen.svg)

Adding an expense:

[![Add Expense](./demo_add_expense.svg)](./demo_add_expense.svg)

## Installation

Install MooMoolah using pip:

```bash
pip install moomoolah
```

## Usage

Run the application with an optional state file:

```bash
moomoolah [state_file.json]
```

If no state file is provided, MooMoolah will use a default location following the XDG Base Directory specification:
- `$XDG_DATA_HOME/moomoolah/state.json` (if `XDG_DATA_HOME` is set)
- `~/.local/share/moomoolah/state.json` (default on Linux/Unix)

The state file will be created if it doesn't exist. State files are stored with restricted permissions (600) for security.

## Usage

### Navigation
- **Main screen**: `e` (manage expenses), `i` (manage income)
- **Entry screens**: `Insert` (add entry), `Delete` (remove entry), click row to edit
- **Global shortcuts**: `Ctrl+S` (save), `Ctrl+Q` (quit), `Escape`/`Backspace` (back)

### Entry Management

Each entry includes:

- Description and amount
- Category for organization
- Recurrence type (once, monthly, yearly)
- Start date and optional end date
- Frequency interval (e.g., every 2 months)

## Development

See [plan.md](plan.md) for current development roadmap and planned features.

This project uses [uv](https://docs.astral.sh/uv/) for dependency management.

### Setup

1. Install uv if you haven't already:
   ```bash
   curl -LsSf https://astral.sh/uv/install.sh | sh
   ```

2. Install dependencies:
   ```bash
   uv sync
   ```

3. Run the application:
   ```bash
   # With default state file location
   uv run moomoolah

   # Or with a specific state file
   uv run moomoolah <state_file.json>
   ```

### Running Tests
```bash
uv run pytest
```
aipproto 0.0.4
AIP proto generator
Requires Python: >=3.10

# aipproto
__TL;DR - Helper for generating [AIP](https://aip.dev) proto files.__

The AIPs are a wonderful style guide for building APIs. However, AIP compliant proto files are a bit cumbersome to create and maintain. This python package makes it easy to define hierarchies of AIP resources and then generate the corresponding proto files that define the AIP APIs for those resources.

## Installation
```sh
pip install aipproto
```

## Usage
```py
import aipproto

# Define the resource hierarchy for your API.
namespace = aipproto.Namespace("api.domain.com")
foo = namespace.resource("Foo")
bar = foo.nest("Bar")

# Generate the proto content.
content = aipproto.generate_file_content(
    package="domain.api.v1",
    service_name="TestService",
    resource_types=[foo, bar],
)

# Save it to a file.
with open("domain/api/v1/service.autogen.proto", "w") as f:
    f.write(content)
```
If this documentation is out of date, check out `tests/test_generate.py` or other tests in the `tests/` directory. 

## Conformance testing
To ensure that this package generates protos that conform to the AIP definitions, we run the [api-linter](https://linter.aip.dev/) on the generated proto files.

The following command is used to run the tests:
```
pytest && \
bazel build tests/testdata/v1:golden_proto_descriptor_set && \
api-linter --descriptor-set-in bazel-bin/tests/testdata/v1/golden_proto_descriptor_set.pb tests/testdata/v1/golden.proto --output-format github
```