semvec/pypi-packages huggingface dataset:
conversion-unit 1.0.3
A powerful unit conversion library with CLI and API support
Requires Python: >=3.6

# Conversion Unit Library

### CLI Usage Demo

![Unit Conversion CLI](https://raw.githubusercontent.com/Minkeez/conversion_unit/main/CLI.png)

### REST API Usage Demo

![Unit Conversion REST API](https://raw.githubusercontent.com/Minkeez/conversion_unit/main/API.png)

### 📌 Overview

A powerful Python library for unit conversion, supporting **CLI and REST API**. Convert units effortlessly for length, weight, volume, time, speed, and more!

### 🔥 Features

- ✅ **CLI Support**: Run conversions from the command line
- ✅ **FastAPI REST API**: Convert units via HTTP requests
- ✅ **Live API on Render**: Hosted API accessible online
- ✅ **Comprehensive Units**: Includes length, mass, volume, temperature, energy, and more
- ✅ **Custom Units**: Add your own conversions dynamically

### 🚀 Installation

```sh
pip install conversion_unit
```

### 🔧 Usage

#### **1️⃣ CLI Mode**

```sh
convert 5 km to m
# Output: 5000.0
```

#### **2️⃣ Python Library**

```python
from conversion_unit import convert
result = convert(5, "km", "m")
print(result)  # 5000.0
```

#### **3️⃣ Local REST API Mode**

Run the API server:

```sh
python -m conversion_unit
```

Then access:

```http
GET http://localhost:8000/convert?value=5&from_unit=km&to_unit=m
```

Response:

```json
{ "result": 5000.0 }
```

#### **4️⃣ Live API on Render**

Your API is hosted on **Render**! You can access it directly:

```http
GET https://conversion-unit-api.onrender.com/convert?value=5&from_unit=km&to_unit=m
```

Example Response:

```json
{ "result": 5000.0 }
```

### 📜 License

This project is licensed under the **[MIT License](./LICENSE)**.

### 🌍 Contribute

Pull requests are welcome! Open an issue to suggest features or improvements.

### ⭐ Support the Project

If you find this project useful, give it a ⭐ on [GitHub](https://github.com/Minkeez/conversion_unit)!
nonebot-plugin-add-friends 0.1.5
处理好友申请和群邀请，支持查看申请、手动同意/拒绝申请、同意/拒绝全部申请。
Requires Python: >=3.9
Keywords: nonebot, nonebot2, plugin

<div align="center">
  <a href="https://v2.nonebot.dev/store"><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/nbp_logo.png" width="180" height="180" alt="NoneBotPluginLogo"></a>
  <br>
  <p><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/NoneBotPlugin.svg" width="240" alt="NoneBotPluginText"></p>
</div>

<div align="center">

# nonebot-plugin-add-friends

_✨ 处理好友申请和群邀请，支持查看申请、手动同意/拒绝申请、同意/拒绝全部申请。 ✨_


<a href="https://github.com/hakunomiko/nonebot-plugin-add-friends/stargazers">
        <img alt="GitHub stars" src="https://img.shields.io/github/stars/hakunomiko/nonebot-plugin-add-friends" alt="stars">
</a>
<a href="./LICENSE">
    <img src="https://img.shields.io/github/license/hakunomiko/nonebot-plugin-add-friends.svg" alt="license">
</a>
<a href="https://pypi.python.org/pypi/nonebot-plugin-add-friends">
    <img src="https://img.shields.io/pypi/v/nonebot-plugin-add-friends.svg" alt="pypi">
</a>
<img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="python">

</div>

## 📖 介绍

此插件用于远程处理好友申请和加群邀请，支持查看申请、手动同意/拒绝申请、同意/拒绝全部申请。

## 💿 安装

<details open>
<summary>使用 nb-cli 安装</summary>
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装

    nb plugin install nonebot-plugin-add-friends

</details>

<details>
<summary>使用包管理器安装</summary>
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令

<details>
<summary>pip</summary>

    pip install nonebot-plugin-add-friends
</details>
<details>
<summary>pdm</summary>

    pdm add nonebot-plugin-add-friends
</details>
<details>
<summary>poetry</summary>

    poetry add nonebot-plugin-add-friends
</details>
<details>
<summary>conda</summary>

    conda install nonebot-plugin-add-friends
</details>

打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入

    plugins = ["nonebot_plugin_add_friends"]

</details>

## ⚙️ 配置

在 nonebot2 项目的`.env`文件中添加下表中的必填配置

| 配置项 | 必填 | 默认值 | 说明 |
|:-----:|:----:|:----:|:----:|
| SUPERUSERS | 是 | 无 | Bot的超级用户，用于接收、同意/拒绝好友申请及群邀请信息。 |

## 🕹️ 使用
### 指令表
| 指令 | 权限 | 需要@ | 范围 | 说明 |
|:-----:|:----:|:----:|:----:|:----:|
| 查看申请 | 主人 | 否 | 私聊 | 查看待处理申请 |
| 同意/拒绝申请 <QQ号/群号> | 主人 | 否 | 私聊 | 同意/拒绝申请 |
| 同意/拒绝全部申请 | 主人 | 否 | 私聊 | 同意/拒绝全部申请 |

## 🎉 鸣谢
感谢以下开发者对本插件作出的贡献：
[Agnes4m](https://github.com/Agnes4m/nonebot_plugin_friends)
capitolscraper 0.1
Web scraper for capitoltrades.com
Requires Python: >=3.9

# CapitolScraper
A web scraper for [capitoltrades](https://www.capitoltrades.com/), a website dedicated to tracking
Congress stock trades.

## Quickstart
Install from [PyPi](https://pypi.org/project/capitolscraper/) using `pip install capitolscraper`

```python
from capitolscraper import Trades

scraper = Trades()
print(scraper.trades)
```

## Authors
* [TonyGrif](https://github.com/TonyGrif) - Creator and Maintainer
easy_oidc_flow 1.0.1
a Flask wrapper which handles OIDC authentication, authorization, and the OAuth flow for a given Identity Provider.
Requires Python: >=3.12

# Easy OIDC Flow

This python library is designed to be an easy drop in which handles OIDC authentication,
authorization, and the OAuth flow.

## Example Implementation

```python
from flask import Flask, request
from easy_oidc_flow import EasyOIDCFlow

app = EasyOIDCFlow(Flask(__name__))

@app.route("/")
def main():
  return f"hello {request.user_data["email"]}!"

if __name__ in "__main__":
  app.run(host="0.0.0.0", port=8000, debug=True)
```


## Quickstart

1) Create a .env file using the .env.template file as a template. Populate with your OAuth Client details (see below)

2) Run the example server implementation with the following:

```bash

uv run --env-file=.env .\example_server.py
```

3) Navigate to `http://localhost:8000/`
4) Follow through the OAuth flow
5) Congrats! You are now successfully authorized.

## IDP Configuration

### Google Cloud Platform
0) Create a GCP Project
1) Navigate to https://console.cloud.google.com/auth/clients/
2) Create a Web Application OAuth Client ID
3) Download the OAuth client id .json file
4) Copy .env to .env.template and fill out the client id and client secret from the downloaded OAuth .json file
5) Delete the .json file from your system

![Google Cloud Platform Identity Platform Client ID creation](gcp_oauth_client_id.png)

## Additional Details
This Flask context wrapper overrides the following REST routes:
`/login`
`/callback`

So make sure that your flask app doesn't define these routes, or an error will be thrown.

## References

https://developers.google.com/identity/openid-connect/openid-connect#discovery
echofire 0.1.18
Realistic Voice Agent Testing - Automate end-to-end evaluation of voice agents with human-like audio simulation
Requires Python: <4.0,>=3.9

# EchoFire 

**Realistic Voice Agent Testing**  

> Automate end-to-end evaluation of voice agents with human-like audio simulation.  

```mermaid
flowchart LR
    A[Record Session With Voice Agent] --> B[Write Tests w/ LLM Judge + Built-in Functions]
    B --> C{Parallel Test Execution}
    C -->|Multiple Iterations| D1[Run Test 1]
    C -->|Multiple Iterations| D2[Run Test 2]
    C -->|Multiple Iterations| D3[Run Test ...]
    D1 --> E[Share Results & Collaborate]
    D2 --> E
    D3 --> E
    E --> F[Build Datasets for Fine-Tuning]
    F --> G[Improve Models & Prompts]
    G --> A
```

### Why EchoFire?  
- 🚫 **Manual testing sucks**: Listening to every agent response isn't scalable.  
- 🤖 **Synthetic TTS isn't real**: Simulate *actual* human speech patterns, background noise, and ASR edge cases.  
- 🔥 **Test everything**: Validate ASR accuracy, intent logic, and agent responses in one flow.  
- 💻 **Works locally**: Run tests on your machine with a simple CLI - no cloud deployment needed.
- 🔄 **CI/CD ready**: Integrate voice agent testing into your continuous integration pipeline.
screenot 0.0.2
Code package for ScreeNOT: Exact MSE-Optimal Singular Value Thresholding in Correlated Noise

# *ScreeNOT*: Optimal Singular Value Thresholding in Correlated Noise

ScreeNOT is a code library for hard thresholding of singular values. The procedure adaptively estimates the best singular value threshold under unknown noise characteristics. The threshold chosen by ScreeNOT is optimal (asymptotically, in the sense of minimum Frobenius error) under the the so-called "Spiked model" of a low-rank matrix observed in additive noise. In contrast to previous works, the noise is *not* assumed to be i.i.d. or white; it can have an essentially and **unknown** correlation structure, across either rows, columns or both. 
ScreeNOT is proposed to practitioners as a mathematically solid alternative to Cattell's ever-popular but vague Scree Plot heuristic from 1966.


Please refer to the project's homepage: https://github.com/eladromanov/ScreeNOT


## Usage

The main API for this package is the function

`adaptiveHardThresholding(Y, k, strategy='i')`

It receives as input a matrix `Y` (in Python: a `numpy` array); a non-negative integer `k`, an upper bound (potentially loose) on the low-rank signal to-be-recovered; (optional) a string `strategy`, which defines an estimation strategy for the noise bulk - valid options are `'i'` (imputation; this is the default, and should be best for most practical uses), `'0'` (transport to zero) or `'w'` (winsorization) - see paper for details.

The function returns three values:

`Xest`: a matrix with same dimensions as `Y`; an estimator for the low-rank signal (the result of performing thresholding on the singular values of `Y`).
`Topt`: the hard threshold which was used; computed adaptively from the singular values of `Y`.
`r`: the number of "relevant"/"strong" components of the signal: r=rank(Xest).
progress-watchdog 0.1.5
Progress Watchdog is a Python package that helps you avoid staying stuck or getting tunnel vision while time flows by.
Requires Python: >=3.13

# Progress Watchdog

![Cartoon Bulldog - CC
https://openverse.org/image/aedd8c62-ff3c-4365-9af1-147c1973440f?q=cartoon+bulldog&p=3](CartoonBulldog.png)

Progress Watchdog: A program to help avoid analysis paralysis and time dilation due to tunnel vision.

## External Resources

- Hat tip to [the author](https://pixabay.com/sound-effects/buzzer-or-wrong-answer-20582/) 
for the buzzer sound effect I use.

- I used [ChatGPT](https://chatgpt.com/) to help me prototype this tool. AI
haters please send your complaints, religious treatises, and assertions about
the implications this has on my character to /dev/null. I've heard them all
before and frankly I don't give a rat's posterior.

## Current Status

### What works, what doesn't.
Mac works great (tested on Sequoia.latest) - Windows works pretty well, though
the mechanism to detect hotkey presses needs more testing. Linux isn't working
yet. Natch :)

### Installation via uv

Right now you can check the project out from github and run `uv run
progress-watchdog'

If you want to run the program without installing, you can use uv for that as
well:

```
╭─cpatti at rocinante in ~ 25-03-09 - 21:06:30
╰─○ uv tool run progress-watchdog                                                    <region:us-east-1>
usage: progress-watchdog [-h] --buzzer BUZZER [--timeout TIMEOUT]
progress-watchdog: error: the following arguments are required: --buzzer
╭─cpatti at rocinante in ~ 25-03-09 - 21:06:36
╰─○ uv tool run progress-watchdog --help                                             <region:us-east-1>
usage: progress-watchdog [-h] --buzzer BUZZER [--timeout TIMEOUT]

options:
  -h, --help         show this help message and exit
  --buzzer BUZZER    Filename for the alert sound to play when no progress is detected
  --timeout TIMEOUT  Number of seconds to wait before alerting that no progress was detected.
╭─cpatti at rocinante in ~ 25-03-09 - 21:06:54
╰─○                                                                                  <region:us-east-1>

```

You'll also need to provide an MP3 file that the program will play to shock
you out of your tunnel vision :)

I used [this one](https://pixabay.com/sound-effects/buzzer-or-wrong-answer-20582/) but you can choose any you like!

## TODO

- Implement some cleaner way to exit than Ctrl-c with an exception :)
- Make configurables into args or a configuration file or something.
- Make the "I made Progress!" key chord not insert characters into the buffer.