semvec/pypi-packages huggingface dataset:
pygitops 0.17.0
Wrapper for low-level git logic. Useful for systems automating git operations.
License: MIT
Requires Python: >=3.10

# pygitops

[![CI pipeline status](https://github.com/wayfair-incubator/pygitops/workflows/CI/badge.svg?branch=main)][ci]
[![PyPI](https://img.shields.io/pypi/v/pygitops)][pypi]
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pygitops)][pypi]
[![codecov](https://codecov.io/gh/wayfair-incubator/pygitops/branch/main/graph/badge.svg)][codecov]
[![Checked with mypy](https://img.shields.io/badge/mypy-checked-blue)][mypy-home]
[![Code style: black](https://img.shields.io/badge/code%20style-black-black.svg)][black-home]

Pygitops is a wrapper around low-level GitPython logic, that makes it very simple to do basic git operations. This system is especially useful for systems that create automated pull requests, or otherwise operate on contents of repositories locally. 

For example, clone a repository, make some changes, and push those changes to a branch:

```python
from pathlib import Path

from pygitops.operations import feature_branch, stage_commit_push_changes, get_updated_repo, build_github_repo_url
from git import Actor, Repo

repo_name = 'some-repo'
repo_namespace = 'some-namespace'
branch_name = 'new-chores'
some_actor = Actor('some-service-account', 'some-service-account@some-enterprise.com')
commit_message = 'Add list of chores'

# Build the URL for cloning the repository 
repo_url = build_github_repo_url(
    "some-service-account_name",
    "some-access-token",
    repo_namespace,
    repo_name,
    "github.com",
)

# Clone the repository to the local filesystem (updating the repo if it is already present)
repo: Repo = get_updated_repo(
    repo_url, Path("some-clone-dir" / repo_name) 
)

# Make some changes on a feature branch, commit and push the changes
with feature_branch(repo, branch_name):
    Path('some-clone-dir' / repo_name / 'chores.txt').write_text('haircut\ngroceries\ndishes')

    stage_commit_push_changes(repo, branch_name, some_actor, commit_message)
```

### Features

* Clone repositories to your local filesystem from any remote git repository
* Create feature branches and add commits, without worrying about the underlying GitPython complexity

### Installation

```
pip install pygitops
```

### Usage

For more information, please see the [pygitops docs][pygitops-docs]

[ci]: https://github.com/wayfair-incubator/pygitops/actions
[pypi]: https://pypi.org/project/pygitops/
[codecov]: https://codecov.io/gh/wayfair-incubator/pygitops
[mypy-home]: http://mypy-lang.org/
[black-home]: https://github.com/psf/black
[pygitops-docs]: https://wayfair-incubator.github.io/pygitops/
meta-tooling-protocol 0.1.2
Lightweight Python runtime for Meta Tooling Protocol (MTP)
License: MIT
Requires Python: >=3.11
Keywords: mtp, tooling, mcp, openapi, sdk

# MTP (Meta Tooling Protocol)

**Python Is All You Need.**

MTP 是下一代 AI 交互方式，让 AI 通过 Python 解决所有问题，将交互效率提升 2 倍以上。

## 核心理念

传统的 MCP/Function Call 为每个功能定义独立工具：

```
AI: 我需要读取文件
→ 调用 read_file 工具
→ 等待响应
→ 我需要分析数据
→ 调用 analyze_data 工具
→ 等待响应
→ 我需要生成报告
→ 调用 generate_report 工具
```

MTP 只提供一个 `python_exec` 工具：

```
AI: 我需要读取文件、分析数据、生成报告
→ 写 Python 代码一次性完成
→ 返回结果
```

**结果**：交互次数减少 70%，Token 消耗减半，效率提升 2 倍。

## Quick Start

### 安装

```bash
pip install mtp
```

### 在 Claude Code 中使用

```bash
# 添加工具
mtp add playwright

# 配置 MCP 服务器
claude mcp add --transport stdio mtp -- 'mtp mcp'
```

现在可以直接对话：
- "用 Playwright 打开百度并截图"
- "分析这个 CSV 文件并生成报告"

MTP 只暴露一个 `python_exec` 工具，AI 会自动用 Python 调用所有能力。

### 在代码中使用

7 行代码构建一个完整的 Agent：

```python
import sys
from pydantic_ai import Agent
from mtp import PydanticAdapter

agent = Agent('openai:gpt-4', tools=[PydanticAdapter().tool()])
print(agent.run_sync(" ".join(sys.argv[1:])).data)
```

运行：
```bash
python agent.py "分析数据并导出 Excel"
```

AI 会在 `python_exec` 中使用工具：

```python
# 从 mtp.infra 导入工具
from mtp.infra import playwright, github
result = playwright.goto(url="https://example.com")
repos = github.list_repos(owner="anthropics")
```

### 工具管理

```bash
# 添加 MCP 服务器
mtp add github --env GITHUB_TOKEN=$GITHUB_TOKEN

# 添加 OpenAPI
mtp add myapi --openapi https://api.example.com/openapi.json

# 添加命令行工具
mtp add curl --cmd curl

# 列出所有工具
mtp list
```

MTP 是 Agent 时代的包管理器，统一管理所有工具。

## 使用场景

**安全测试**
- 自动化渗透测试（腾讯云 AI 渗透赛第四名）
- 漏洞扫描和分析
- 安全报告生成

**数据分析**
- CSV/Excel 数据处理
- 数据可视化
- 自动生成报告

**API 集成**
- 调用任意 OpenAPI 服务
- GitHub/GitLab 自动化
- 云服务管理

**自定义 Agent**
- 快速构建专属 Agent
- 集成到现有应用
- 支持 LangChain、Pydantic AI 等框架

## 核心特性

- **持久化执行**：基于 IPython，跨调用保持状态，内存即上下文，数据留在 Python 内存中
- **渐进发现**：极简的工具描述，通过 `help()` 和 `dir()` 逐步探索工具能力，避免上下文膨胀
- **装饰器 SDK**：简洁的 `@namespace`、`@toolset`、`@tool` 装饰器系统，快速注册自定义工具
- **多协议支持**：REST API、MCP、Function Call、LangChain、Pydantic AI
- **统一管理**：通过 `infra.yaml` 管理所有工具（MCP、OpenAPI、Python、CLI）
- **MCP 兼容**：支持 Anthropic 官方 MCP Registry，可透传和聚合 MCP 服务

## 文档

| 文档 | 描述 |
|------|------|
| [CLI 使用指南](./docs/CLI_GUIDE.md) | 命令行工具详细使用方法 |
| [SDK 使用指南](./docs/SDK_GUIDE.md) | Python SDK 完整 API 参考 |
| [最佳实践](./docs/BEST_PRACTICES.md) | AI 集成、项目组织、部署指南 |
| [核心设计](./docs/CORE_DESIGN.md) | 架构原理和设计理念 |

## License

MIT