bci-mvp / src /env_compat_check.py
WilliamK112
feat: add environment compatibility checker for robust local setup
4b22898
Raw
History Blame Contribute Delete
1.51 kB
"""
Environment compatibility check for reliable local setup.
Focus: Python version and scientific stack installability constraints.
"""
from pathlib import Path
import platform
from datetime import datetime, timezone
def main():
py = platform.python_version()
major_minor = tuple(map(int, py.split('.')[:2]))
issues = []
recs = []
if major_minor >= (3, 14):
issues.append('Python 3.14 may fail building scipy from source on some macOS setups (Fortran toolchain missing).')
recs.append('Use Python 3.11/3.12 for smoother scientific package installation.')
else:
recs.append('Python version is compatible with common scipy wheels.')
recs.append('Prefer virtualenv: `python3 -m venv .venv && source .venv/bin/activate`')
recs.append('Install base test deps for lightweight checks: `pip install numpy joblib`')
ts = datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M UTC')
lines = [
'# Environment Compatibility Check',
'',
f'Generated: {ts}',
f'- Python: `{py}`',
f'- Platform: `{platform.platform()}`',
'',
'## Issues',
]
if issues:
lines += [f'- {x}' for x in issues]
else:
lines += ['- None detected.']
lines += ['', '## Recommendations']
lines += [f'- {x}' for x in recs]
out = Path('docs/ENV_COMPAT.md')
out.write_text('\n'.join(lines) + '\n', encoding='utf-8')
print(f'Generated {out}')
if __name__ == '__main__':
main()