PyCompat β Python Package Compatibility Predictor
AI model that predicts whether a Python package version is compatible with a given system
(OS, Python version, platform) and recommends the best compatible versions.
Model Details
- Model Type: Random Forest (compatibility) + Gradient Boosting (error type)
- Training Data: 5484 compatibility test records
- Packages: 198 unique packages
- Python Versions: 3.10, 3.11, 3.12, 3.9
- Platforms: darwin_x86_64
Performance
| Model |
Accuracy |
F1 Score |
| Compatibility |
0.9708 |
0.97 |
| Error Type |
0.9836 |
0.9826 |
Usage
from pycompat_model import PyCompatModel
model = PyCompatModel.load("./model")
result = model.predict("boto3", "1.42.49", "3.12", "darwin_x86_64")
print(result)
recs = model.recommend("alembic", "3.9")
for r in recs:
status = "β
" if r["is_compatible"] else "β"
print(f" v{r['version']} {status} ({r['confidence']:.0%})")
results = model.predict_batch([
{"package": "boto3", "version": "1.42.49", "python_version": "3.12"},
{"package": "alembic", "version": "1.18.4", "python_version": "3.9"},
])
Error Types Predicted
| Error Type |
Description |
none |
Fully compatible |
no_wheel |
No compatible wheel/distribution found |
import_error |
Installs but fails to import |
abi_mismatch |
ABI incompatibility with dependencies |
build_error |
Failed to build from source |
timeout |
Network timeout during install |
Training
from pycompat_model import PyCompatModel
model = PyCompatModel.train_from_data("data.json")
model.save("./model")