Smart Floorplan Predictor
A Python package for classifying images as EPCs, floorplans, property photos, or exterior shots using a pre-trained ONNX model.
Prerequisites
- Python 3.7 or higher
Installation
pip install smart-floorplan-predictor
Usage
import os
from smart_floorplan_predictor import FloorplanPredictor, FloorplanPredictorError
# --- Configuration for Private Repositories ---
# If the model is hosted in a private GitHub repository,
# you MUST provide a GitHub Personal Access Token (PAT).
# Set it as an environment variable:
# export GITHUB_TOKEN="your_github_pat_here"
# Ensure the token has the 'repo' scope to access private repository content.
github_token = os.environ.get("GITHUB_TOKEN")
try:
# Initialize the predictor
# If using a private repo, the token will be read from the environment variable
# or you can pass it directly: FloorplanPredictor(github_token="your_token")
predictor = FloorplanPredictor(github_token=github_token)
# Make a prediction using the path to an image file
image_path = "path/to/your/image.jpg"
predicted_class, confidence = predictor.predict_with_confidence(image_path)
print(f"Predicted Class: {predicted_class}")
print(f"Confidence: {confidence:.2%}")
# Or just get the class name directly
# predicted_class_only = predictor.predict(image_path)
# print(f"Predicted Class (direct): {predicted_class_only}")
except FloorplanPredictorError as e:
print(f"An error occurred: {e}")
# Handle specific errors, e.g., ModelDownloadError
Model Downloading
- The package automatically attempts to download the
model.onnxfile using the GitHub API if it's not found locally within the package directory (src/smart_floorplan_predictor/). This works even for files stored using Git LFS. - Private Repositories: Downloading from private GitHub repositories requires a
GITHUB_TOKENenvironment variable containing a valid Personal Access Token with thereposcope.
Common Errors & Troubleshooting
ModelDownloadError: ... 404 Not Found ...:- Check if the
GITHUB_TOKENenvironment variable is set correctly (if accessing a private repo). - Verify the token is valid, not expired, and has the
reposcope enabled in your GitHub Developer settings. - Confirm the repository owner, name, and model file path (
REPO_OWNER,REPO_NAME,MODEL_FILE_PATHconstants inpredictor.py) are correct.
- Check if the
ModelDownloadError: ... 403 Forbidden ...:- Usually indicates the provided
GITHUB_TOKENlacks the necessary permissions (reposcope) for a private repository.
- Usually indicates the provided
FloorplanPredictorError: GITHUB_TOKEN is required...:- You are trying to download from the default private repository location without providing a token. Set the
GITHUB_TOKENenvironment variable.
- You are trying to download from the default private repository location without providing a token. Set the
FileNotFoundErrororImageLoadError:- Ensure the image path passed to
predictorpredict_with_confidenceis correct and the file exists.
- Ensure the image path passed to
- ONNX Runtime Issues:
- Ensure
onnxruntimeis installed correctly for your OS and architecture.
- Ensure
Running Tests (Development)
- Clone the repository.
- Install development dependencies:
pip install -r requirements.txt(if available) orpip install pytest requests tqdm Pillow numpy onnxruntime. - Set the
GITHUB_TOKENenvironment variable if testing against the private repo. - Place test images (like
test_image.png) in the root directory. - Run the test script:
python test.py
Requirements
- Python >= 3.7
- requests
- numpy
- Pillow
- onnxruntime
- tqdm
License
MIT License
Author
Oliver Brown
Metadata
Release files for smart-floorplan-predictor 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| smart_floorplan_predictor-1.0.0.tar.gz | 8.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| smart_floorplan_predictor-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.7 kB
Release files / smart_floorplan_predictor-1.0.0.tar.gz
| Download URL | smart_floorplan_predictor-1.0.0.tar.gz |
|---|---|
| Size | 8.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
249e5cf96378d2e851930dea8a94d9c86a966f7747bbdefe747aa8b40db54221
|
|
BLAKE2b-256 checksum How to use checksums |
95430e682404d740b4cf2b8e6d44bb10409dea02460c4c45d2b81c9d802e9c51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|
Release files / smart_floorplan_predictor-1.0.0-py3-none-any.whl
| Download URL | smart_floorplan_predictor-1.0.0-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
22aa68a95a791038c8d129e5560c4a88431db7660498c88a3a92e584eef1a1cd
|
|
BLAKE2b-256 checksum How to use checksums |
0ba09caf27060303ece70dc6f893f640183aea9fd239e80258f22872d532de07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|