semvec/pypi-packages huggingface dataset:
gitlab-mcp 0.1.7
一个用于Cursor IDE的GitLab操作服务
Requires Python: >=3.6

# GitLab MCP 服务

这是一个基于Python实现的GitLab MCP（Model Control Protocol）服务，用于在Cursor IDE中提供GitLab操作支持。

## 项目目标

- 提供自然语言到Git操作的转换
- 支持内网GitLab的代码管理
- 实现安全的Git操作控制
- 提供可扩展的CI/CD集成能力

## 系统架构

```
用户指令 → Cursor客户端 → MCP服务端 → GitLab API → 执行Git操作
```

### 核心模块

1. **环境配置模块**
   - 虚拟环境管理
   - 依赖包管理
   - 配置文件管理

2. **GitLab连接模块**
   - GitLab API封装
   - 认证管理
   - 错误处理

3. **MCP服务端**
   - 命令解析
   - 操作执行
   - 结果返回

4. **自然语言处理层**
   - 指令映射
   - 参数解析
   - 默认行为

### 安全控制

- 访问控制：基于白名单的路径控制
- 操作审计：完整的操作日志记录
- 环境隔离：Docker容器化部署
- 权限管理：基于角色的命令限制

## 快速开始

### 安装步骤

1. 在Cursor IDE中打开设置
2. 找到MCP配置部分
3. 将以下配置复制到配置文件中：
```json
{
  "mcpServers": {
    "gitlab": {
      "command": "mcp-gitlab",
      "env": {
        "GITLAB_API_BASE": "http://your-gitlab-server.com",
        "GITLAB_ACCESS_TOKEN": "your-access-token"
      }
    }
  }
}
```

4. 修改配置中的`GITLAB_API_BASE`和`GITLAB_ACCESS_TOKEN`为你的GitLab信息

## 支持的命令

### 基础Git操作
- `查看状态` - 查看当前仓库状态
- `更新代码` - 拉取最新代码
- `提交修改` - 提交代码修改
- `推送代码` - 推送代码到远程
- `创建分支` - 创建并切换到新分支
- `切换分支` - 切换到指定分支
- `删除分支` - 删除本地分支
- `删除远程分支` - 删除远程分支
- `查看日志` - 查看提交历史
- `查看文件历史` - 查看指定文件的修改历史
- `查看差异` - 查看工作区和暂存区的差异
- `暂存修改` - 将修改添加到暂存区
- `撤销修改` - 撤销工作区的修改

### GitLab操作
- `查看项目提交记录` - 查看指定项目的提交记录
- `列出项目分支` - 查看项目分支
- `创建合并请求` - 创建合并请求
- `查看合并请求` - 查看项目的合并请求列表
- `查看项目成员` - 查看项目成员列表
- `查看项目标签` - 查看项目标签列表
- `创建项目标签` - 创建项目标签
- `查看项目文件` - 查看项目文件列表
- `查看文件内容` - 查看项目文件内容
- `搜索项目` - 搜索GitLab项目
- `查看项目统计` - 查看项目统计信息
- `查看分支保护` - 查看分支保护设置
- `设置分支保护` - 设置分支保护规则

## 获取帮助

如果遇到问题，请检查：
1. GitLab服务器地址是否正确
2. 访问令牌是否有足够权限

## 开发指南

### 发布新版本

1. 更新版本号
   - 在`setup.py`中更新`version`
   - 在`CHANGELOG.md`中添加新版本说明

2. 构建发布包
```bash
# 安装构建工具（使用国内镜像源）
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple twine wheel

# 运行发布脚本
./release.sh
```

3. 发布到PyPI
   - 确保已安装twine
   - 运行发布脚本
   - 输入PyPI账号密码

### 开发环境设置

1. 克隆项目
```bash
git clone https://github.com/yourusername/gitlab-mcp.git
cd gitlab-mcp
```

2. 创建虚拟环境
```bash
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
```

3. 安装开发依赖（使用国内镜像源）
```bash
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .
```

## 国内镜像源

如果遇到网络问题，可以使用以下国内镜像源：

1. 清华大学镜像源（推荐）
```
https://pypi.tuna.tsinghua.edu.cn/simple
```

2. 阿里云镜像源
```
https://mirrors.aliyun.com/pypi/simple/
```

3. 中国科技大学镜像源
```
https://pypi.mirrors.ustc.edu.cn/simple/
```

4. 豆瓣镜像源
```
https://pypi.douban.com/simple/
```

使用方法：
```bash
# 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name

# 永久配置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
```

## 许可证

MIT License
py-screen-grab 1.5.0
A simple screen recording tool
Requires Python: >=3.6

# PyScreenGrab

A simple and efficient screen recording and streaming tool written in Python.

![PyPI](https://img.shields.io/pypi/v/py-screen-grab)
[![PyPI Downloads](https://static.pepy.tech/badge/py-screen-grab)](https://pepy.tech/projects/py-screen-grab)
![License](https://img.shields.io/pypi/l/py-screen-grab)

<br/>
<br/>

## ✨ Features

- Multiple capture modes(Full Screen/Custom Region/Window)
- Local video recording
- Preview mode
- Adjustable FPS (1-60)
- Timed recording option
- Simple command-line interface
- Reactive streaming support

- 🔴 **Note**: Window capture may not work properly with virtual monitors. use a physical monitor for best results

<br/>
<br/>

## 📦 Installation

```bash
pip install py-screen-grab
```

<br/>
<br/>

## 🚀 Usage

### Command Line Interface

Simply run:

```bash
screengrab
```

Follow the interactive prompts to:

1. Select capture mode (Full Screen/Custom Region/Window)
2. Choose monitor or set region
3. Set FPS
4. Choose recording mode (Preview/Record)
5. Set recording duration (optional)

### Python API

#### 1. Custom Region Capture

```python
from py_screen_grab import ScreenGrabber

# Capture a specific region
grabber = ScreenGrabber()
    .set_roi(x=100, y=100, width=800, height=600)
    .set_fps(30)

# Record with preview
grabber.record()
```

#### 2. Window Capture

```python
from py_screen_grab import ScreenGrabber

# Capture a specific window
# The ROI is automatically set based on the window's position and size
grabber = ScreenGrabber()
    .set_window("Window Title")
    .set_fps(30)

# Record with preview
grabber.record()
```

#### 3. Streaming

```python
from py_screen_grab import ScreenGrabber

grabber = ScreenGrabber()
    .set_roi(x=0, y=0, width=1920, height=1080)
    .set_fps(30)

# Start streaming
grabber.start_streaming()
```

<br/>
<br/>

## 📋 Requirements

- wmctrl (required for window management on Linux, especially 🐧**Ubuntu**)
- Python 3.6 or higher
- OpenCV
- NumPy
- MSS (screen capture library)
- aiortc (for WebRTC streaming)
- rx (for reactive streaming)

<br/>
<br/>

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

<br/>
<br/>

## 🤝 Contributing

We welcome contributions to this project! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to get started.
payler-sdk 1.0.1
Python SDK for integration with the Payler payment system
Requires Python: >=3.8
Keywords: payler, payment, api, sdk

# Payler SDK

Python SDK for integration with the Payler payment system.

## Installation

```bash
pip install payler-sdk
```

## Features

- Card saving and management
- Customer registration
- Processing payments with saved cards
- Transaction status handling
- Get payment status
- Recurrent template management
- Saved card status verification

## Quick Start

```python
from payler_sdk import PaylerClient

# Initialize the client
client = PaylerClient(
    base_url="sandbox.payler.com",
    auth_key="your_auth_key",
)

# Save card and process payment
response = client.initialize_save_card_session(
    customer_id="customer123",
    currency="RUB",
    return_url_success="https://your-website.com/payment/sync-cards"
)

# Get the redirect URL for card saving
redirect_url = response.save_card_url

# After card saving, process payment with saved card
payment = client.charge_saved_card(
    amount=100.50,
    order_id="order_12345",
    currency="RUB",
    recurrent_template_id="template_id_from_saved_card"
)

# Get payment status
status = client.get_payment_status(order_id="order_12345")
```

## Usage Examples

### Register a New Customer

```python
from payler_sdk.models import PaylerCustomerUpdateOrCreateRequest

customer = PaylerCustomerUpdateOrCreateRequest(
    name="Erlich Bachman",
    email="erlich.bachman@gmail.com",
    phone="+79001234567"
)
response = client.register_new_customer(customer)
customer_id = response.customer_id
```

### Get Card Status After Saving

```python
from payler_sdk.models import PaylerGetStatusSaveCardRequest

request = PaylerGetStatusSaveCardRequest(session_id="your_session_id")
response = client.get_status_save_card(request)
print(f"Card status: {response.card_status}")
print(f"Template ID: {response.recurrent_template_id}")
```

### Get Template Information

```python
from payler_sdk.models import PaylerTemplateRequest

request = PaylerTemplateRequest(recurrent_template_id="your_template_id")
template = client.get_template(request)
print(f"Card holder: {template.card_holder}")
print(f"Card number: {template.card_number}")
print(f"Is active: {template.active}")
```

### Error Handling

```python
from payler_sdk.exceptions import PaylerApiError

try:
    payment = client.charge_saved_card(...)
except PaylerApiError as e:
    # Handle any API error from Payler
    print(f"API error: {e}, status code: {e.status_code}")
    # You can check the specific type if needed:
    # if isinstance(e, PaylerSpecificError):
    #     handle_specific_error(e)
```

## Requirements

- Python 3.8+
- requests library

## Contributing

Contributions are welcome! Feel free to submit issues or pull requests.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
dfcleaner 0.1.3
Automating DF and CSV Data Cleaning
Requires Python: >=3.7

# `dfcleaner` Documentation

dfcleaner is a lightweight Python utility for cleaning, parsing, and preparing time series and tabular datasets.
It streamlines common DataFrame operations such as timezone normalization, date parsing, frequency inference, BOM removal, and value cleaning.

## Installation

```bash
pip install dfcleaner
```

Or clone locally for development:

```bash
git clone https://github.com/BrandynHamilton/dfcleaner
cd dfcleaner
pip install -e .
```

## Usage Example

```python
from dfcleaner import DFCleaner

cleaner = DFCleaner(timezone="UTC")
df = cleaner.to_df("my_data.csv")
df, freq = cleaner.to_time(df)
df = cleaner.cleaning_values(df)
df = cleaner.clean_dates(df, time_freq=freq)
```

## Core Methods

### `__init(timezone=None)`

Accepts a string like 'UTC', 'US/Eastern', or any other valid IANA timezone string.  If None, it removes timezone awareness from datetime index.

### `to_df(file, delimiter=',')`

Load a CSV or Excel file into a clean pandas DataFrame.

- Handles BOM characters and whitespace.
- Removes rows that contain only invisible characters or whitespace.

### `apply_timezone(df)`

Applies or removes timezone from the DataFrame index depending on the initialized setting.

### `detect_time_col(df, custom_col=None)`

Scans DataFrame for common time-related column names. You can optionally pass a custom override.

### `to_time(df, time_col=None, dayfirst=False)`

- Converts a detected or specified datetime column to the index.
- Infers the frequency of the datetime index.
- Returns the DataFrame with datetime index as well as the estimated frequency ('D','M','Q')

### `clean_dates(df, time_freq)`

Drops incomplete periods based on inferred time frequency:

- `W`: drops current week if incomplete
- `M`: drops current month
- `Q`: drops current quarter

### `cleaning_values(df)`

Cleans numeric object columns by:

- Removing symbols like `%`, `$`, `,`
- Replacing Excel artifacts like `#DIV/0!` with `NaN`
- Converting to proper numeric dtype

### `open_json(file_name)`

Loads a JSON file and parses into a Python dictionary.

## Project Structure

```
dfcleaner/
â”œâ”€â”€ __init__.py
â””â”€â”€ core.py
```

## License

MIT License

## Questions or Issues?
If you encounter any problems, have feature requests, or want to contribute improvements, feel free to reach out.

Email: [brandynham1120@gmail.com]
pyrestfile 0.2.1
Parse VS Code-style .rest files into request objects

# pyrestfile

*Parse VS Code REST‑Client **`.rest`** files into plain Python objects you can feed to any HTTP client — perfect for load‑testing, fixtures, and scripting.*

---

## Why?

The VS Code REST‑Client extension is fantastic for ad‑hoc API calls, but its request files aren’t machine‑readable out of the box. **pyrestfile** lets you keep those same files in your repository and programmatically use them or validate them within Python.

## Features

- ✅  Parse multiple requests per file (separated by `###`).
- ✅  Preserve method, URL, headers, and body exactly as written.
- ✅  Ignore full‑line comments (`#` or `//`) in the same places VS Code does.
- ✅  Validate JSON bodies when `Content‑Type: application/json` is set.
- ✅  Zero runtime dependencies.

---

## Installation

```bash
# library only
pip install pyrestfile

# with dev / test tooling (pytest, coverage, pre‑commit)
pip install ".[dev]"
```

---

## Quick‑start

```python
from pyrestfile import parse_rest_file

with open("api.rest") as f:
    requests = parse_rest_file(f.read())

for req in requests:
    print(req.method, req.url)
```

`HTTPRequest` instances expose:

| attribute      | type             | example                                |
| -------------- | ---------------- | -------------------------------------- |
| `method`       | `str`            | `"POST"`                               |
| `url`          | `str`            | `"https://api.example.com/v1/users"`   |
| `http_version` | `str`            | `"HTTP/1.1"` (optional)                |
| `headers`      | `dict[str, str]` | `{"Content-Type": "application/json"}` |
| `body`         | `str` or None    | `"raw body text"`                      |

---

### Using with **Locust**

```python
# locustfile.py
import random
from locust import HttpUser, task, between
from pyrestfile import parse_rest_file

REQUESTS = parse_rest_file(open("api.rest").read())

class APIUser(HttpUser):
    wait_time = between(1, 3)

    @task
    def random_call(self):
        r = random.choice(REQUESTS)
        self.client.request(
            method=r.method,
            url=r.url,
            headers=r.headers,
            data=r.body,
        )
```

Run with `locust -f locustfile.py`.

---

## Development & Testing

```bash
# create virtual env of your choice, then
pip install -e ".[dev]"
pre-commit install          # lint on every commit
pytest -q                   # run unit tests
```

### CI

A ready‑made GitHub Actions workflow (`.github/workflows/unit_tests_and_code_checks.yaml`) runs pre‑commit and pytest on every push.

---

## Roadmap

- File includes (`@file=./payload.json`).
- JavaScript test scripts (low priority).
- CLI (`pyrest run api.rest`).

PRs welcome!

---

## License

MIT © 2025 Abel Castillo