Open
Conversation
…ls.py - Add .gitignore for Python/Jupyter/IDE artifacts - Fix Y property docstring: correct variable name (X -> Y) and GWP/strength order - Fix gwp_data property docstring: 'strength' -> 'GWP' model and variances - Make time column detection case-insensitive (X_columns[-1].lower() != 'time')
d18903f to
8c2bf23
Compare
BREAKING: Import paths have changed. Update your code: - import models -> from boxcrete import models - from utils import ... -> from boxcrete.utils import ... - Install with: pip install -e . - Move models.py and utils.py into boxcrete/ package directory - Add boxcrete/__init__.py with public API exports - Add REPO_DIR / DEFAULT_DATA_PATH for robust data path resolution - Add pyproject.toml with build config, dependencies, and optional extras - Add .flake8 with line-length=88 matching BoTorch convention - Add comprehensive test suite (68 tests, 100% coverage, ~17s) - Update notebook imports to use boxcrete.* namespace - Rename '[Concrete] Strength Curve Prediction Plots Demo.ipynb' to 'strength_curve_prediction_demo.ipynb' - Fix notebook strength calibration plots (use model.strength_model.posterior) - Uncomment plt.legend() in Pareto frontier plots - Replace print-based verbose output with Python logging - Fix FixedFeatureModel dtype mismatch, subset_output bugs - Fix SustainableConcreteModel.__init__ ignoring constructor args - Fix load_concrete_strength Ystd in-place division with integer tensors - Fix ModelListGP -> ModelList (FixedFeatureModel is Model, not GPyTorchModel) - Modernize type annotations, remove dead code, apply black formatting
- Add GitHub Actions tests workflow: pytest on Python 3.10-3.12, nightly runs, coverage reporting (100% threshold), black/flake8 linting - Add GitHub Actions notebooks workflow: notebook execution on Python 3.10, path-filtered triggers, format validation, nightly runs - Add Installation section to README with pip install -e . instructions - Update README import examples to use boxcrete.* namespace - Fix README typo (responsbile -> responsible)
8c2bf23 to
dc70732
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restructure the repository into a proper installable Python package (boxcrete/) and add GitHub Actions CI with 100% test coverage.
Changes
Package restructure:
pip install -e ...pyproject.tomlwith build config, dependencies, and optional extras ([dev], [notebooks]).boxcrete/__init__.pywith public API exports.REPO_DIR / DEFAULT_DATA_PATHconstants for robust data path resolution — notebooks and user code no longer depend on the working directory.Bug fixes uncovered during testing:
FixedFeatureModel._add_fixed_features:dtypemismatch when input dtype != value dtype._value→_valuestypo.SustainableConcreteModel.__init__: silently ignoredstrength_model/gwp_modelconstructor arguments.load_concrete_strength: in-place/=failed on integer-typedYstdtensors.ModelListGP→ModelList:FixedFeatureModelis aModel, not aGPyTorchModel, soModelListGPcannot be used.CI & testing:
README:
git+https://...andpip install -e .instructions.BREAKING: Import paths have changed:
import models→from boxcrete import modelsfrom utils import ...→from boxcrete.utils import ...pip install -e .