| --- |
| language: en |
| license: mit |
| library_name: scikit-learn |
| tags: |
| - python |
| - package-compatibility |
| - prediction |
| - scikit-learn |
| - tabular-classification |
| metrics: |
| - accuracy |
| - f1 |
| model-index: |
| - name: pycompat-predictor |
| results: |
| - task: |
| type: tabular-classification |
| name: Package Compatibility Prediction |
| metrics: |
| - name: Accuracy |
| type: accuracy |
| value: 0.9708 |
| - name: F1 Score |
| type: f1 |
| value: 0.97 |
| --- |
| |
| # 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 |
|
|
| ```python |
| from pycompat_model import PyCompatModel |
| |
| # Load model |
| model = PyCompatModel.load("./model") |
| |
| # Single prediction |
| result = model.predict("boto3", "1.42.49", "3.12", "darwin_x86_64") |
| print(result) |
| # {'is_compatible': True, 'confidence': 0.9977, 'predicted_error_type': 'none', ...} |
| |
| # Get recommendations |
| 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%})") |
| |
| # Batch prediction |
| 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 |
|
|
| ```python |
| from pycompat_model import PyCompatModel |
| |
| model = PyCompatModel.train_from_data("data.json") |
| model.save("./model") |
| ``` |
|
|