Name | patchai JSON |
Version |
0.1.5
JSON |
| download |
home_page | None |
Summary | AI-powered structured file editor with diff visualization |
upload_time | 2025-10-06 21:30:36 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
keywords |
ai
config
diff
editor
json
llm
yaml
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# PatchAI โจ
**AI-powered structured file editor with beautiful diff visualization**
PatchAI lets you edit JSON, YAML, and config files using natural language instructions. Perfect for fixing OCR errors, cleaning up data, or making bulk changes across structured documents.
## โจ Features
- **Natural Language Editing** - Just describe what you want to change
- **Visual Diff** - See exactly what changed with beautiful unified or side-by-side diffs
- **Image-Aware** - Compare JSON/YAML with original document images to fix OCR errors
- **Undo/Reset** - Full history tracking with easy undo
- **Rich CLI** - Beautiful terminal interface with colors and panels
- **Simple API** - 3 lines of code to get started
## ๐ Quick Start
### Installation
```bash
# Basic installation (no LLM provider)
pip install patchai
# With specific provider
pip install patchai[gemini] # Google Gemini
pip install patchai[openai] # OpenAI GPT
pip install patchai[anthropic] # Anthropic Claude
# With all providers
pip install patchai[all-providers]
# With Jupyter support
pip install patchai[jupyter,gemini]
```
### Basic Usage
**Python API:**
```python
from patchai import PatchAI
# Using Gemini (default)
editor = PatchAI("data.json", provider="gemini", api_key="your-key")
editor.edit("Fix all typos and remove extra newlines")
editor.save("fixed.json")
# Using OpenAI
editor = PatchAI("data.json", provider="openai", api_key="your-key", model="gpt-4o")
editor.edit("Fix all typos")
editor.save("fixed.json")
# Using Anthropic Claude
editor = PatchAI("data.json", provider="anthropic", api_key="your-key", model="claude-sonnet-4-20250514")
editor.edit("Fix all typos")
editor.save("fixed.json")
```
**Command Line:**
```bash
# Gemini (default)
export GEMINI_API_KEY="your-key"
patchai data.json -e "Fix all typos"
# OpenAI
export OPENAI_API_KEY="your-key"
patchai data.json --provider openai --model gpt-4o -e "Fix all typos"
# Anthropic
export ANTHROPIC_API_KEY="your-key"
patchai data.json --provider anthropic --model claude-sonnet-4-20250514 -e "Fix all typos"
```
## ๐ Examples
### Fix OCR Errors with Image Reference
```python
from patchai import PatchAI
# Load JSON with reference image
editor = PatchAI(
data="extracted.json",
image_path="original_document.jpg"
)
# AI compares JSON with image and fixes errors
editor.edit("Compare the JSON with the document image and correct any OCR errors")
# Show what changed
from patchai import print_diff
print_diff(editor.get_original(), editor.get_current())
# Save
editor.save("corrected.json")
```
### Edit YAML Config
```python
from patchai import PatchAI
editor = PatchAI("config.yaml", format="yaml")
editor.edit("Update database host to localhost and change port to 5432")
editor.save("config.yaml")
```
### Interactive Editing Session
```python
from patchai import PatchAI
editor = PatchAI("data.json")
# Make multiple edits
editor.edit("Remove all empty strings")
editor.edit("Add newlines after periods in the text field")
editor.edit("Fix capitalization in headers")
# Undo last change if needed
editor.undo()
# Check if anything changed
if editor.has_changes:
editor.save("cleaned.json")
```
### Batch Processing
```python
from patchai import PatchAI
from pathlib import Path
# Process multiple files
files = Path("data/").glob("*.json")
for file in files:
editor = PatchAI(file)
editor.edit("Standardize date format to YYYY-MM-DD")
editor.save(file)
print(f"โ Processed {file}")
```
## ๐จ CLI Examples
### Interactive Mode
```bash
patchai data.json
```
You'll see:
```
โโ PatchAI Interactive Mode โโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ Commands: โ
โ โข Type instruction to edit โ
โ โข 'undo' - undo last edit โ
โ โข 'reset' - reset to original โ
โ โข 'save' - save and exit โ
โ โข 'quit' - exit without saving โ
โ โข 'diff' - show current changes โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Instruction: Fix all typos in the header
```
### Single Edit Mode
```bash
# Basic edit
patchai data.json -e "Clean up formatting"
# With image reference
patchai extracted.json \
--image document.jpg \
-e "Compare with image and fix OCR errors"
# YAML file
patchai config.yaml \
--format yaml \
-e "Update production database credentials"
# Save to new file
patchai data.json \
-e "Remove all null values" \
-o cleaned.json
# Side-by-side diff
patchai data.json \
-e "Fix all dates" \
--diff side-by-side
```
## ๐ง Advanced Usage
### Custom Model
```python
from patchai import PatchAI
editor = PatchAI(
"data.json",
model="gemini-2.0-flash", # or gemini-2.0-flash-thinking-exp
api_key="your-api-key" # or set GEMINI_API_KEY env var
)
```
### Programmatic Diff Analysis
```python
from patchai import PatchAI, print_diff, print_summary, generate_unified_diff
editor = PatchAI("data.json")
original = editor.get_original()
editor.edit("Your instruction here")
modified = editor.get_current()
# Print colored diff
print_diff(original, modified, style="unified")
# Print summary of changes
print_summary(original, modified)
# Get diff as string
diff_text = generate_unified_diff(original, modified)
```
### History Tracking
```python
editor = PatchAI("data.json")
# Make multiple edits
editor.edit("Fix typos")
editor.edit("Remove newlines")
editor.edit("Update dates")
# Access edit history
for i, edit in enumerate(editor.edit_history):
print(f"{i+1}. {edit['instruction']}")
# Undo multiple times
editor.undo() # undo "Update dates"
editor.undo() # undo "Remove newlines"
# Reset to original
editor.reset()
```
## ๐ฏ Use Cases
### ๐ Document Processing
- Fix OCR extraction errors by comparing JSON output with original document images
- Clean up formatting in extracted data
- Standardize field values across documents
### โ๏ธ Configuration Management
- Update config files across multiple environments
- Fix formatting issues in YAML/JSON configs
- Bulk update values (URLs, API keys, ports)
### ๐ง Data Cleaning
- Remove null/empty values
- Standardize date formats
- Fix typos across structured data
- Normalize field values
### ๐ Data Transformation
- Restructure nested JSON
- Move values between fields
- Split/merge fields based on natural language instructions
## ๐งช Jupyter Notebook Support
```python
from patchai import PatchAI
editor = PatchAI("data.json", image_path="doc.jpg")
# Edit
editor.edit("Fix all OCR errors")
# Beautiful diff in notebook
from patchai import print_diff
print_diff(editor.get_original(), editor.get_current(), style="side-by-side")
```
## ๐ฌ Interactive Jupyter Editor (Widget UI)
PatchAI also includes a fully interactive **Jupyter/Colab editor** โ a beautiful, two-panel interface that lets you edit JSON or YAML files using natural language instructions, with live diffs and undo support.
```python
from patchai.jupyter import create_jupyter_editor
# Launch interactive editor
create_jupyter_editor("data.json", image_path="document.jpg")
```
## ๐ก๏ธ API Reference
### PatchAI
```python
PatchAI(
data: Union[Dict, str, Path],
format: str = "json",
image_path: Optional[Union[str, Path]] = None,
api_key: Optional[str] = None,
model: str = "gemini-2.0-flash-exp"
)
```
**Parameters:**
- `data`: Input data as dict, JSON/YAML string, or file path
- `format`: File format (`"json"` or `"yaml"`)
- `image_path`: Optional reference image for visual comparison
- `api_key`: Gemini API key (or set `GEMINI_API_KEY` env var)
- `model`: Gemini model to use
**Methods:**
- `edit(instruction: str, include_image: bool = True) -> Dict` - Apply edit instruction
- `undo() -> bool` - Undo last edit
- `reset()` - Reset to original data
- `save(path: Union[str, Path])` - Save to file
- `get_current() -> Dict` - Get current data
- `get_original() -> Dict` - Get original data
**Properties:**
- `has_changes: bool` - Check if data has been modified
- `history: List[Dict]` - Edit history
- `edit_history: List[Dict]` - Instruction history
## ๐ Environment Variables
```bash
# Set your Gemini API key
export GEMINI_API_KEY="your-api-key-here"
```
Get your free API key at: [https://ai.google.dev](https://ai.google.dev)
## ๐ฆ Project Structure
```
patchai/
โโโ src/patchai/
โ โโโ __init__.py # Main exports
โ โโโ editor.py # Core PatchAI class
โ โโโ diff.py # Diff utilities
โ โโโ cli.py # Command-line interface
โ โโโ jupyter.py
โโโ tests/ # Unit tests
โโโ examples/ # Example scripts
โโโ pyproject.toml # Package configuration
โโโ README.md
```
## ๐ค Contributing
Contributions welcome! Ideas for improvement:
- [ ] Support for more formats (TOML, XML, CSV)
- [ ] Web UI for non-technical users
- [ ] Batch operation commands
- [ ] Custom validation rules
- [ ] PDF form field editing
- [ ] Excel/DOCX simple edits
## ๐ License
MIT License - see [LICENSE](LICENSE) file
## ๐ Acknowledgments
Built with:
- [Google Gemini](https://ai.google.dev) - AI editing engine
- [Rich](https://github.com/Textualize/rich) - Beautiful terminal output
- [PyYAML](https://pyyaml.org) - YAML parsing
## ๐ก Tips
1. **Be specific**: "Fix typos in the 'description' field" works better than "fix everything"
2. **Use image reference**: When fixing OCR errors, always include the original image
3. **Check diffs**: Always review changes before saving
4. **Start small**: Test on a copy before editing important files
## ๐ More Examples
Check out the [examples/](examples/) directory for:
- OCR error correction workflow
- Batch config file updates
- Data cleaning pipelines
- YAML configuration management
## ๐ Links
- **Documentation**: [https://github.com/davidkjeremiah/patchai](https://github.com/davidkjeremiah/patchai)
- **Issues**: [https://github.com/davidkjeremiah/patchai/issues](https://github.com/davidkjeremiah/patchai/issues)
- **PyPI**: [https://pypi.org/project/patchai](https://pypi.org/project/patchai)
---
**Made with โค๏ธ by developers who hate manual data cleaning**
Raw data
{
"_id": null,
"home_page": null,
"name": "patchai",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ai, config, diff, editor, json, llm, yaml",
"author": null,
"author_email": "David Jeremiah <flasconnect@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/36/90/6ea216e6aa17a9f0e1bc97b227f8fdb43de7eb85921273596216f7c31d89/patchai-0.1.5.tar.gz",
"platform": null,
"description": "# PatchAI \u2728\n\n**AI-powered structured file editor with beautiful diff visualization**\n\nPatchAI lets you edit JSON, YAML, and config files using natural language instructions. Perfect for fixing OCR errors, cleaning up data, or making bulk changes across structured documents.\n\n## \u2728 Features\n\n- **Natural Language Editing** - Just describe what you want to change\n- **Visual Diff** - See exactly what changed with beautiful unified or side-by-side diffs\n- **Image-Aware** - Compare JSON/YAML with original document images to fix OCR errors\n- **Undo/Reset** - Full history tracking with easy undo\n- **Rich CLI** - Beautiful terminal interface with colors and panels\n- **Simple API** - 3 lines of code to get started\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\n# Basic installation (no LLM provider)\npip install patchai\n\n# With specific provider\npip install patchai[gemini] # Google Gemini\npip install patchai[openai] # OpenAI GPT\npip install patchai[anthropic] # Anthropic Claude\n\n# With all providers\npip install patchai[all-providers]\n\n# With Jupyter support\npip install patchai[jupyter,gemini]\n```\n\n### Basic Usage\n\n**Python API:**\n```python\nfrom patchai import PatchAI\n\n# Using Gemini (default)\neditor = PatchAI(\"data.json\", provider=\"gemini\", api_key=\"your-key\")\neditor.edit(\"Fix all typos and remove extra newlines\")\neditor.save(\"fixed.json\")\n\n# Using OpenAI\neditor = PatchAI(\"data.json\", provider=\"openai\", api_key=\"your-key\", model=\"gpt-4o\")\neditor.edit(\"Fix all typos\")\neditor.save(\"fixed.json\")\n\n# Using Anthropic Claude\neditor = PatchAI(\"data.json\", provider=\"anthropic\", api_key=\"your-key\", model=\"claude-sonnet-4-20250514\")\neditor.edit(\"Fix all typos\")\neditor.save(\"fixed.json\")\n```\n\n**Command Line:**\n```bash\n# Gemini (default)\nexport GEMINI_API_KEY=\"your-key\"\npatchai data.json -e \"Fix all typos\"\n\n# OpenAI\nexport OPENAI_API_KEY=\"your-key\"\npatchai data.json --provider openai --model gpt-4o -e \"Fix all typos\"\n\n# Anthropic\nexport ANTHROPIC_API_KEY=\"your-key\"\npatchai data.json --provider anthropic --model claude-sonnet-4-20250514 -e \"Fix all typos\"\n```\n\n## \ud83d\udcd6 Examples\n\n### Fix OCR Errors with Image Reference\n\n```python\nfrom patchai import PatchAI\n\n# Load JSON with reference image\neditor = PatchAI(\n data=\"extracted.json\",\n image_path=\"original_document.jpg\"\n)\n\n# AI compares JSON with image and fixes errors\neditor.edit(\"Compare the JSON with the document image and correct any OCR errors\")\n\n# Show what changed\nfrom patchai import print_diff\nprint_diff(editor.get_original(), editor.get_current())\n\n# Save\neditor.save(\"corrected.json\")\n```\n\n### Edit YAML Config\n\n```python\nfrom patchai import PatchAI\n\neditor = PatchAI(\"config.yaml\", format=\"yaml\")\neditor.edit(\"Update database host to localhost and change port to 5432\")\neditor.save(\"config.yaml\")\n```\n\n### Interactive Editing Session\n\n```python\nfrom patchai import PatchAI\n\neditor = PatchAI(\"data.json\")\n\n# Make multiple edits\neditor.edit(\"Remove all empty strings\")\neditor.edit(\"Add newlines after periods in the text field\")\neditor.edit(\"Fix capitalization in headers\")\n\n# Undo last change if needed\neditor.undo()\n\n# Check if anything changed\nif editor.has_changes:\n editor.save(\"cleaned.json\")\n```\n\n### Batch Processing\n\n```python\nfrom patchai import PatchAI\nfrom pathlib import Path\n\n# Process multiple files\nfiles = Path(\"data/\").glob(\"*.json\")\n\nfor file in files:\n editor = PatchAI(file)\n editor.edit(\"Standardize date format to YYYY-MM-DD\")\n editor.save(file)\n print(f\"\u2713 Processed {file}\")\n```\n\n## \ud83c\udfa8 CLI Examples\n\n### Interactive Mode\n\n```bash\npatchai data.json\n```\n\nYou'll see:\n```\n\u250c\u2500 PatchAI Interactive Mode \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 \u2502\n\u2502 Commands: \u2502\n\u2502 \u2022 Type instruction to edit \u2502\n\u2502 \u2022 'undo' - undo last edit \u2502\n\u2502 \u2022 'reset' - reset to original \u2502\n\u2502 \u2022 'save' - save and exit \u2502\n\u2502 \u2022 'quit' - exit without saving \u2502\n\u2502 \u2022 'diff' - show current changes \u2502\n\u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\nInstruction: Fix all typos in the header\n```\n\n### Single Edit Mode\n\n```bash\n# Basic edit\npatchai data.json -e \"Clean up formatting\"\n\n# With image reference\npatchai extracted.json \\\n --image document.jpg \\\n -e \"Compare with image and fix OCR errors\"\n\n# YAML file\npatchai config.yaml \\\n --format yaml \\\n -e \"Update production database credentials\"\n\n# Save to new file\npatchai data.json \\\n -e \"Remove all null values\" \\\n -o cleaned.json\n\n# Side-by-side diff\npatchai data.json \\\n -e \"Fix all dates\" \\\n --diff side-by-side\n```\n\n## \ud83d\udd27 Advanced Usage\n\n### Custom Model\n\n```python\nfrom patchai import PatchAI\n\neditor = PatchAI(\n \"data.json\",\n model=\"gemini-2.0-flash\", # or gemini-2.0-flash-thinking-exp\n api_key=\"your-api-key\" # or set GEMINI_API_KEY env var\n)\n```\n\n### Programmatic Diff Analysis\n\n```python\nfrom patchai import PatchAI, print_diff, print_summary, generate_unified_diff\n\neditor = PatchAI(\"data.json\")\noriginal = editor.get_original()\n\neditor.edit(\"Your instruction here\")\nmodified = editor.get_current()\n\n# Print colored diff\nprint_diff(original, modified, style=\"unified\")\n\n# Print summary of changes\nprint_summary(original, modified)\n\n# Get diff as string\ndiff_text = generate_unified_diff(original, modified)\n```\n\n### History Tracking\n\n```python\neditor = PatchAI(\"data.json\")\n\n# Make multiple edits\neditor.edit(\"Fix typos\")\neditor.edit(\"Remove newlines\")\neditor.edit(\"Update dates\")\n\n# Access edit history\nfor i, edit in enumerate(editor.edit_history):\n print(f\"{i+1}. {edit['instruction']}\")\n\n# Undo multiple times\neditor.undo() # undo \"Update dates\"\neditor.undo() # undo \"Remove newlines\"\n\n# Reset to original\neditor.reset()\n```\n\n## \ud83c\udfaf Use Cases\n\n### \ud83d\udcc4 Document Processing\n- Fix OCR extraction errors by comparing JSON output with original document images\n- Clean up formatting in extracted data\n- Standardize field values across documents\n\n### \u2699\ufe0f Configuration Management \n- Update config files across multiple environments\n- Fix formatting issues in YAML/JSON configs\n- Bulk update values (URLs, API keys, ports)\n\n### \ud83d\udd27 Data Cleaning\n- Remove null/empty values\n- Standardize date formats\n- Fix typos across structured data\n- Normalize field values\n\n### \ud83d\udcca Data Transformation\n- Restructure nested JSON\n- Move values between fields\n- Split/merge fields based on natural language instructions\n\n## \ud83e\uddea Jupyter Notebook Support\n\n```python\nfrom patchai import PatchAI\n\neditor = PatchAI(\"data.json\", image_path=\"doc.jpg\")\n\n# Edit\neditor.edit(\"Fix all OCR errors\")\n\n# Beautiful diff in notebook\nfrom patchai import print_diff\nprint_diff(editor.get_original(), editor.get_current(), style=\"side-by-side\")\n```\n\n## \ud83d\udcac Interactive Jupyter Editor (Widget UI)\nPatchAI also includes a fully interactive **Jupyter/Colab editor** \u2014 a beautiful, two-panel interface that lets you edit JSON or YAML files using natural language instructions, with live diffs and undo support.\n\n```python\nfrom patchai.jupyter import create_jupyter_editor\n\n# Launch interactive editor\ncreate_jupyter_editor(\"data.json\", image_path=\"document.jpg\")\n```\n\n## \ud83d\udee1\ufe0f API Reference\n\n### PatchAI\n\n```python\nPatchAI(\n data: Union[Dict, str, Path],\n format: str = \"json\",\n image_path: Optional[Union[str, Path]] = None,\n api_key: Optional[str] = None,\n model: str = \"gemini-2.0-flash-exp\"\n)\n```\n\n**Parameters:**\n- `data`: Input data as dict, JSON/YAML string, or file path\n- `format`: File format (`\"json\"` or `\"yaml\"`)\n- `image_path`: Optional reference image for visual comparison\n- `api_key`: Gemini API key (or set `GEMINI_API_KEY` env var)\n- `model`: Gemini model to use\n\n**Methods:**\n- `edit(instruction: str, include_image: bool = True) -> Dict` - Apply edit instruction\n- `undo() -> bool` - Undo last edit\n- `reset()` - Reset to original data\n- `save(path: Union[str, Path])` - Save to file\n- `get_current() -> Dict` - Get current data\n- `get_original() -> Dict` - Get original data\n\n**Properties:**\n- `has_changes: bool` - Check if data has been modified\n- `history: List[Dict]` - Edit history\n- `edit_history: List[Dict]` - Instruction history\n\n## \ud83d\udd10 Environment Variables\n\n```bash\n# Set your Gemini API key\nexport GEMINI_API_KEY=\"your-api-key-here\"\n```\n\nGet your free API key at: [https://ai.google.dev](https://ai.google.dev)\n\n## \ud83d\udce6 Project Structure\n\n```\npatchai/\n\u251c\u2500\u2500 src/patchai/\n\u2502 \u251c\u2500\u2500 __init__.py # Main exports\n\u2502 \u251c\u2500\u2500 editor.py # Core PatchAI class\n\u2502 \u251c\u2500\u2500 diff.py # Diff utilities\n\u2502 \u2514\u2500\u2500 cli.py # Command-line interface\n\u2502 \u2514\u2500\u2500 jupyter.py \n\u251c\u2500\u2500 tests/ # Unit tests\n\u251c\u2500\u2500 examples/ # Example scripts\n\u251c\u2500\u2500 pyproject.toml # Package configuration\n\u2514\u2500\u2500 README.md\n```\n\n## \ud83e\udd1d Contributing\n\nContributions welcome! Ideas for improvement:\n\n- [ ] Support for more formats (TOML, XML, CSV)\n- [ ] Web UI for non-technical users\n- [ ] Batch operation commands\n- [ ] Custom validation rules\n- [ ] PDF form field editing\n- [ ] Excel/DOCX simple edits\n\n## \ud83d\udcc4 License\n\nMIT License - see [LICENSE](LICENSE) file\n\n## \ud83d\ude4f Acknowledgments\n\nBuilt with:\n- [Google Gemini](https://ai.google.dev) - AI editing engine\n- [Rich](https://github.com/Textualize/rich) - Beautiful terminal output\n- [PyYAML](https://pyyaml.org) - YAML parsing\n\n## \ud83d\udca1 Tips\n\n1. **Be specific**: \"Fix typos in the 'description' field\" works better than \"fix everything\"\n2. **Use image reference**: When fixing OCR errors, always include the original image\n3. **Check diffs**: Always review changes before saving\n4. **Start small**: Test on a copy before editing important files\n\n## \ud83d\udcda More Examples\n\nCheck out the [examples/](examples/) directory for:\n- OCR error correction workflow\n- Batch config file updates\n- Data cleaning pipelines\n- YAML configuration management\n\n## \ud83d\udd17 Links\n\n- **Documentation**: [https://github.com/davidkjeremiah/patchai](https://github.com/davidkjeremiah/patchai)\n- **Issues**: [https://github.com/davidkjeremiah/patchai/issues](https://github.com/davidkjeremiah/patchai/issues)\n- **PyPI**: [https://pypi.org/project/patchai](https://pypi.org/project/patchai)\n\n---\n\n**Made with \u2764\ufe0f by developers who hate manual data cleaning**",
"bugtrack_url": null,
"license": "MIT",
"summary": "AI-powered structured file editor with diff visualization",
"version": "0.1.5",
"project_urls": {
"Documentation": "https://github.com/davidkjeremiah/patchai/blob/main/README.md",
"Homepage": "https://github.com/davidkjeremiah/patchai",
"Issues": "https://github.com/davidkjeremiah/patchai/issues",
"Repository": "https://github.com/davidkjeremiah/patchai"
},
"split_keywords": [
"ai",
" config",
" diff",
" editor",
" json",
" llm",
" yaml"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0535aeb1a42db8f9f8641f78e6dbe3d20e3d860efd787fcd8eebd3d179623f89",
"md5": "30ec0cd19fd3003addff3f1aaa8886b8",
"sha256": "3e766466726a2e8a79931df7a236a3cec13bfbdcad900ed1398798c0036c9acb"
},
"downloads": -1,
"filename": "patchai-0.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "30ec0cd19fd3003addff3f1aaa8886b8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 18213,
"upload_time": "2025-10-06T21:30:34",
"upload_time_iso_8601": "2025-10-06T21:30:34.411548Z",
"url": "https://files.pythonhosted.org/packages/05/35/aeb1a42db8f9f8641f78e6dbe3d20e3d860efd787fcd8eebd3d179623f89/patchai-0.1.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "36906ea216e6aa17a9f0e1bc97b227f8fdb43de7eb85921273596216f7c31d89",
"md5": "f38ec657bc17182dc61c5dbd4b1af27a",
"sha256": "8b304032af68fc86e9175519dcccd8c3160574fafee8e63af06fd07e1ed5bdd6"
},
"downloads": -1,
"filename": "patchai-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "f38ec657bc17182dc61c5dbd4b1af27a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 22116,
"upload_time": "2025-10-06T21:30:36",
"upload_time_iso_8601": "2025-10-06T21:30:36.124440Z",
"url": "https://files.pythonhosted.org/packages/36/90/6ea216e6aa17a9f0e1bc97b227f8fdb43de7eb85921273596216f7c31d89/patchai-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-06 21:30:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "davidkjeremiah",
"github_project": "patchai",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "patchai"
}