- Add convert_to_parquet.py one-time conversion script
- Convert 4 large xlsx files (~42 MB total) to parquet (~11 MB total):
qrf/db-D-interp-allT-semiclean: 12MB -> 2.4MB
qrf/mordred-descriptors: 9.8MB -> 6.7MB
quantity_module/data/db-D-interp-allT-clean: 10MB -> 2.0MB
quantity_module/data/data-descriptors-mordred-numconfs51: 9.8MB -> 23KB
quantity_module/data/solvent-viscosity, vrentas-duda-params (both sheets)
- Update qrf/functions.py and quantity_module/functions.py to use parquet
- In qrf/functions.py: replace mordred Calculator init for column names with
direct column lookup from df_desc; share a single _calc_all/_desc_by_name
at module level instead of re-creating Calculator per request in QRF_Apply
- Add pyarrow<16 to requirements.txt
Co-Authored-By: Claude Code <noreply@anthropic.com>
- Cache QRF model bundle loading with lru_cache: models are now loaded
from disk once per temperature and reused across requests instead of
re-reading the pickle file on every POST
- Reduce Monte Carlo sample size from 1e6 to 1e5: 10x faster per
request with statistically indistinguishable results
Co-Authored-By: Claude Code <noreply@anthropic.com>
streamlining ceramic detection logic, again
Robert Elder
e97c3c4
updated quantity module to use category-based sampling where possible