PYTHON ?= .venv-pinn-swe/bin/python

.PHONY: setup run build test lint package

setup:
	uv venv .venv-pinn-swe
	uv --system-certs pip install --python $(PYTHON) -r requirements-pinn-swe.txt

run:
	$(PYTHON) src/pinn_swe/token_rules.py train --output-dir assets/pinn-for-swe/runs/tokens
	$(PYTHON) src/pinn_swe/decay_pinn.py --output-dir assets/pinn-for-swe/runs/decay

build: run
	PYTHONPATH=. $(PYTHON) scripts/build_pinn_swe.py

test: package
	$(PYTHON) -m unittest discover -s tests/pinn_swe -v
	node tests/pinn_swe/test_controls.cjs

lint:
	$(PYTHON) -m ruff check src/pinn_swe tests/pinn_swe scripts/build_pinn_swe.py scripts/package_pinn_swe.py scripts/install_pinn_swe_site.py
	$(PYTHON) -m ruff format --check src/pinn_swe tests/pinn_swe scripts/build_pinn_swe.py scripts/package_pinn_swe.py scripts/install_pinn_swe_site.py

package: build
	$(PYTHON) scripts/package_pinn_swe.py
