.PHONY: build clean install dev test publish proto

build:
	python -m build

# Regenerate gRPC stubs from the repo proto (requires `pip install grpcio-tools`)
proto:
	python -m grpc_tools.protoc -I ../../protos \
		--python_out=eddytor_sdk/proto \
		--pyi_out=eddytor_sdk/proto \
		--grpc_python_out=eddytor_sdk/proto \
		../../protos/EddytorGRPC.proto
	python -c "import pathlib; p = pathlib.Path('eddytor_sdk/proto/EddytorGRPC_pb2_grpc.py'); \
		p.write_text(p.read_text().replace('\nimport EddytorGRPC_pb2 as', '\nfrom . import EddytorGRPC_pb2 as'))"

clean:
	rm -rf dist/ build/ *.egg-info/

install:
	pip install .

dev:
	pip install -e ".[dev]"

test:
	pytest

publish: clean build
	python -m twine upload dist/*

publish-test: clean build
	python -m twine upload --repository testpypi dist/*
