semvec/pypi-packages huggingface dataset:
crisk 0.1.0
Change Risk Analysis CLI - Find impacted files and notify owners
Requires Python: >=3.8

# Blame Router

Two CLI tools that reduce the social friction of asking questions about code.

## The Problem

The pain isn't finding "Dave." The pain is that Dave is busy, the code is old, and you—the new engineer—don't know what to ask. These tools automate the **transaction cost of context**.

## Tools

### `ask.py` - The Blame Router

Point at a confusing line of code. Get a smart question auto-generated and routed to the author.

```bash
python ask.py <file_path> <line_number>
```

**Example:**
```bash
python ask.py src/billing.py 42
```

**Output:**
```
📧 Author: dave@company.com
💬 Commit: "tax rate update"

✨ Magic Question:
"Hey, I'm reviewing `billing.py`. I see a 5% tax rate hardcoded on line 42.
Is this derived from the 2023 CA Regulatory update, or is it a placeholder?"

📨 SLACK MESSAGE (simulated)
TO: dave@company.com
```

### `crisk.py` - Change Risk Checker

Before you push, find files semantically related to your changes and identify their owners.

```bash
python crisk.py check [--draft]
```

**Example:**
```bash
git add src/client.py
python crisk.py check --draft
```

**Output:**
```
⚠️  Your changes may impact:

1. __init__.py (relevance: 0.82)
   → Owner: jonathan@company.com

2. auth.py (relevance: 0.78)
   → Owner: jonathan@company.com

DRAFT MESSAGE:
"Hey, I'm updating client.py to support new API key formats.
This might impact auth.py and __init__.py. Any concerns?"

📬 Recipients:
   • jonathan@company.com (8 files)
```

## Quick Start (Cloud Version)

### Install

```bash
pip install git+https://github.com/rohankatakam/fasho.ski.git
```

Or with uv:
```bash
uv pip install git+https://github.com/rohankatakam/fasho.ski.git
```

### Login

```bash
crisk login
```

This opens your browser to authenticate with [coderisk.dev](https://coderisk.dev). Once logged in, you're ready to go.

### Use

```bash
git add src/client.py
crisk check --draft
```

---

## Local Setup (Self-hosted)

If you want to run everything locally with your own API keys:

### 1. Install dependencies

```bash
pip install google-genai python-dotenv requests
```

### 2. Create `.env` file

```bash
cp .env.example .env
```

Add your API keys:
```
GEMINI_API_KEY=your_gemini_api_key
RELACE_API_KEY=your_relace_api_key
```

### 3. Run from a git repository

Both tools require being run from within a git repository.

## How It Works

### ask.py
1. **Archaeologist**: Runs `git blame` to find who wrote the line and their commit message
2. **Investigator**: Sends context to Gemini to generate a hypothesis-driven question
3. **Router**: Outputs the message (Slack integration simulated)

### crisk.py
1. Gets your staged diff (`git diff --cached`)
2. Sends codebase to Relace semantic search API
3. Finds files semantically related to your changes
4. Runs `git blame` to identify owners of related files
5. Uses Gemini to draft a notification message

## The Pitch

> "Everyone else is building tools to *search* code. I built a tool that *talks* to the people who wrote it. It turns a 30-minute 'Zoom?' interruption into a 30-second Slack reply."

## License

MIT
edbb 0.2.1
EDBB Python Package
Requires Python: >=3.0

# edbb-python-library
EDBBのPythonライブラリ実装。

## 概要
- dependenciesにdiscord.pyやdotenvを含むことでpip installの手間を軽減する
- バージョンチェック (古いコードだったりすると動作しない旨をエラー表示する)
- エラー時にEDBBに関する情報と公式サポートへの案内を表示

## How to build and publish?
(参考： https://qiita.com/c60evaporator/items/e1ecccab07a607487dcf )
```sh
# ビルド
python setup.py sdist
python setup.py bdist_wheel

# テスト環境
twine upload --repository testpypi dist/*
# 動作確認用
pip install --index-url https://test.pypi.org/simple/ edbb

# 本番環境へのアップロード
twine upload --repository pypi dist/*
```
acl-access-control 1.0.0
Extensible ACL (Access Control List) and permission evaluation library for FastAPI / SQLAlchemy
Requires Python: >=3.10
Keywords: ACL, permissions, RBAC, FastAPI, SQLAlchemy

# ACL Access Control Library

ACL Access Control is a lightweight but powerful Access Control List (ACL) and dynamic permission evaluation library designed for **FastAPI** and **SQLAlchemy** applications.  
It supports:

- Role → Permission relationship
- User → Roles membership
- ACL entity filtering by:
  - User level
  - Group level
  - Account level
- Dynamic SQL ACL repository
- Custom permission handlers
- Pluggable and DB-agnostic architecture

---

## 🚀 Installation

```bash
pip install acl-access-control
video-compress 0.3.1
Compress video by 90% without losing much quality, similar to what Pied Piper achieves.
Requires Python: >=3.6.0
Keywords: compress, ffmpeg, videos

# Video-compress

[![](https://img.shields.io/pypi/v/video-compress.svg)](https://pypi.org/project/video-compress)
[![](https://github.com/jiacai2050/my-works/actions/workflows/vc-ci.yml/badge.svg)](https://github.com/jiacai2050/video-compress/actions/workflows/ci.yml)

Compress video by 90% without losing much quality, similar to what [Pied
Piper](https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series))
achieves.

![](pied-piper.jpg)

> Inspired by <https://x.com/mortenjust/status/1818027566932136062>

# Install

First install [ffmpeg](https://www.ffmpeg.org/download.html), then

``` bash
pip3 install -U video-compress
```

Or install latest nightly version

``` bash
pip3 install --force-reinstall -U git+https://github.com/jiacai2050/video-compress.git
```

This will install two commands: `vc`{.verbatim},
`video-compress`{.verbatim}, which are identical.

If you prefer to use
[uvtool](https://docs.astral.sh/uv/concepts/tools/):

``` bash
uv tool install Video-compress
```

# Usage

``` example
usage: vc [-h] [-v] [--verbose] [-t THREADS] [--crf CRF] [--delete]
          [<video path> ...]

Compress video by 90% without losing much quality, similar to what Pied Piper
achieves.

positional arguments:
  <video path>

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  --verbose             show verbose log
  -t THREADS, --threads THREADS
                        max threads to use for compression. (default: 6)
  --crf CRF             constant rate factor, range from 0-51. Higher values
                        mean more compression, smaller file size, but lower
                        quality. (default: 30)
  --delete              delete input video after compress successfully
```

Positional arguments can be either video files or directories.

For each directory, `vc`{.verbatim} will iteratively walk the dir to
search for all videos to compress, the compressed video will be named
after `${input}-compressed.mp4`{.verbatim}.
sangreal-calendar 0.1.5
Trade day handling utilities for A-share market
Requires Python: >=3.7
Keywords: trading, calendar, financial, stock-market, china, a-share, trade-dates

# sangreal-calendar
由于开源数据不稳定，现改为需要自行注入

## 安装

```pip install sangreal-calendar```

## 交易日处理函数

```python
from sangreal_calenadr import *
# 获取历史交易日
tmp_series = get_xxx() -> pd.Series
CALENDAR.inject(tmp_series)

# 获取交易日列表
get_trade_dts(begin_dt='20180101', end_dt='20180201')
['20180102', '20180103', ..., '20180201']
```

```python
# 获取交易日DataFrame
get_trade_dts(begin_dt='20180101', end_dt='20180201', astype='pd')
      trade_dt
6613  20180102
6614  20180103
6615  20180104
6616  20180105
6617  20180108
```

```python
# 调整非交易日至之前的最近一个交易日
adjust_trade_dt('20180101')
'20171229'
```

```python
# 调整非交易日至之前的最后一个交易日
adjust_trade_dt('20180101', 'next')
'20180102'
```

```python
# 往后step 1个交易日
# 注意，对于非交易日的输入，会自动将其adjust至之后的最近一个交易日
# 本质上是 step_trade_dt('20180102', 1)
step_trade_dt('20180101', 1)
'20180103'
```

```python
# 往后step 1个交易日
step_trade_dt('20180101', -1)
'20171229'
```

```python
# 计算两个日期间的交易日长度
delta_trade_dt('20180101', '20180305')
40
```

## 时间频率处理函数

支持weekly biweekly monthly quarterly reportly halfyearly yearly

以weekly为例

```python
# 返回每周的第一个交易日
# 格式为Series 及 datetime
Weekly(1).get('20180101', '20190101')
6613   20180102
6617   20180108
6622   20180115
6627   20180122
6632   20180129
6637   20180205

# 返回每周的最后一个交易日
Weekly(-1).get('20180101', '20190101')
6621   20180112
6626   20180119
6631   20180126
6636   20180202
6641   20180209
6644   20180214

# 返回每周的第一个及最后一个交易日
Weekly(1, -1).get('20180101', '20190101')
6613   20180102
6617   20180108
6621   20180112
6622   20180115
6626   20180119
6627   20180122

Monthly() BiWeekly() Quarterly() ....
```
askandyz-mcp-server-demo 0.2.0
Add your description here
Requires Python: >=3.13

##Upload stdio MCP to PyPI##

- uv init . --package -p 3.13
- uv add "mcp[cli]"
- uv build
- uv publish --token {APIKey}



## MCP Configuration for Cherry Studio ##
```json
{
  "mcpServers": {
    "fYp3yK95P0s2MAcpRuXEI": {
      "name": "MCP Server Stdio PyPi",
      "description": "",
      "baseUrl": "",
      "command": "uvx",
      "args": [
        "askandyz-mcp-server-demo"
      ],
      "env": {},
      "isActive": true,
      "type": "stdio",
      "registryUrl": ""
    },
    "9jzTuaGxtb9d6CuPBL_lj": {
      "name": "MCP Server SSE",
      "description": "",
      "baseUrl": "http://127.0.0.1:8000/sse",
      "command": "",
      "args": [],
      "env": {},
      "isActive": false,
      "type": "sse"
    },
    "-a4zp-fOr5Juj3lYoa-fP": {
      "isActive": false,
      "name": "MCP Server StreamableHttp",
      "type": "streamableHttp",
      "description": "",
      "baseUrl": "http://127.0.0.1:8000/mcp",
      "command": "",
      "args": [],
      "env": {},
      "installSource": "unknown"
    },
    "oG9xnqZyTYsTNtPcCzH_3": {
      "isActive": false,
      "name": "MCP Server Stdio",
      "type": "stdio",
      "description": "",
      "baseUrl": "",
      "command": "uv",
      "registryUrl": "",
      "args": [
        "--directory",
        "E:\\Workspaces\\AI\\MCP\\mcp-server-demo",
        "run",
        "stdio.py"
      ],
      "env": {},
      "installSource": "unknown"
    }
  }
}
```