GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - PCART-tools/PCART: PCART: Automated repair of Python API parameter compatibility issues

BranchesTags
Open more actions menu

Latest commit

 

History

263 Commits
263 Commits

Folders and files

NameName
Last commit message
Last commit date
API
API
 
 
Change
Change
 
 
Configure
Configure
 
 
Example
Example
 
 
Extract
Extract
 
 
LibAPIExtraction
LibAPIExtraction
 
 
Load
Load
 
 
Map
Map
 
 
Path
Path
 
 
Preprocess
Preprocess
 
 
Repair
Repair
 
 
Report/runs
Report/runs
 
 
Script
Script
 
 
Tool
Tool
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
extractLibAPI.py
extractLibAPI.py
 
 
logo.svg
logo.svg
 
 
main.py
main.py
 
 
overview.png
overview.png
 
 
requirements.txt
requirements.txt
 
 

Repository files navigation

PCART

Automated Repair of Python API Parameter Compatibility Issues

Documentation · Configuration Guide · How It Works · Examples · API Docs · PCBench


News

  • 2026-07-24 - Released PCART v1.4, featuring isolated run workspaces, structured callsite identities, more flexible and safer cross-platform execution of Python scripts, modules, and tools such as pytest, and optional experimental PCResolve integration.

  • 2026-05-22 - Experimental PCResolve integration: cross-file symbol-tracing replaces single-file string-matching for API call identification. Opt-in via pcresolve>=1.0.4; falls back to existing extraction when not installed.


What is PCART?

PCART is an automated tool for detecting and repairing Python API parameter compatibility issues caused by library upgrades.

It supports common parameter compatibility changes, including addition, deletion, renaming, reordering, replacement, positional/keyword conversion, and partial type-change analysis. Default-value changes are not currently implemented.

Quick Start

python main.py -cfg your_config.json
# Optionally generate repair patches and a repaired project copy
python main.py -cfg your_config.json --write-patch

Patch output is disabled by default. With --write-patch, PCART exports repair patches and a project copy containing only Successful repairs to Report/runs/{run_id}/{command_id}/. The original project remains unchanged.

PCART keeps run workspaces in PCARTRuns/runs/ by default. For repeated runs on large projects, use --clean-workspace to prevent excessive disk usage:

# Optionally remove a successful run workspace after report export
python main.py -cfg your_config.json --clean-workspace

Successful workspaces are removed only after reports are exported. Failed workspaces and all outputs under Report/runs/ are retained.

Each run uses one tool environment and two configured project environments: currentEnv and targetEnv.

PCART includes pre-extracted library API definitions in LibAPIExtraction for static mapping. If definitions for either configured library version are missing, run the following from the PCART repository root before running PCART to extract both versions from currentEnv and targetEnv:

python extractLibAPI.py -cfg your_config.json

See the Quick Start and Configuration Guide for setup details.

Citation

If PCART supports your research or development work, please cite the following publication:

@article{PCART_TSE2025,
  author={Zhang, Shuai and Xiao, Guanping and Wang, Jun and Lei, Huashan and He, Gangqiang and Liu, Yepang and Zheng, Zheng},
  journal={IEEE Transactions on Software Engineering},
  title={PCART: Automated Repair of Python API Parameter Compatibility Issues},
  year={2026},
  volume={52},
  number={3},
  pages={723-753},
  doi={10.1109/TSE.2025.3646150}
}

License

PCART is licensed under the GNU Affero General Public License v3.0. See LICENSE for details.

About

PCART: Automated repair of Python API parameter compatibility issues

Topics

api-compatibilityapi-migrationautomated-repairbreaking-changescompatibility-testinglibrary-upgradeprogram-analysispythonruntime-analysissoftware-maintenance

Resources

Readme
AGPL-3.0 license
Activity

Stars

13 stars

Watchers

2 watching

Forks

8 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.