mirror of
https://github.com/hanzoai/python-sdk.git
synced 2026-10-23 20:23:00 +00:00
61 lines
2.2 KiB
Makefile
61 lines
2.2 KiB
Makefile
SHELL = /usr/bin/env bash
|
|
|
|
# Variables
|
|
PYTHON_VERSION = 3.12
|
|
VENV_DIR = .venv
|
|
PRE_COMMIT_CONFIG = "./dev_config/python/.pre-commit-config.yaml"
|
|
|
|
# ANSI Color Codes
|
|
GREEN := $(shell tput setaf 2)
|
|
YELLOW := $(shell tput setaf 3)
|
|
RED := $(shell tput setaf 1)
|
|
BLUE := $(shell tput setaf 6)
|
|
RESET := $(shell tput sgr0)
|
|
|
|
# Setup: Install Python (if needed), create virtualenv, and install project in editable mode.
|
|
setup:
|
|
@echo "$(YELLOW)Setting up environment...$(RESET)"
|
|
@if ! command -v python$(PYTHON_VERSION) &>/dev/null; then \
|
|
echo "$(BLUE)Installing Python $(PYTHON_VERSION) with uv...$(RESET)"; \
|
|
uv python install $(PYTHON_VERSION); \
|
|
fi
|
|
@if [ ! -d "$(VENV_DIR)" ]; then \
|
|
echo "$(BLUE)Creating virtual environment...$(RESET)"; \
|
|
uv venv $(VENV_DIR) --python=$(PYTHON_VERSION); \
|
|
fi
|
|
@echo "$(BLUE)Installing project dependencies...$(RESET)"
|
|
@. $(VENV_DIR)/bin/activate && uv pip install -e .
|
|
@echo "$(GREEN)Setup complete.$(RESET)"
|
|
|
|
# Install pre-commit hooks
|
|
install-pre-commit-hooks:
|
|
@echo "$(YELLOW)Installing pre-commit hooks...$(RESET)"
|
|
@git config --unset-all core.hooksPath || true
|
|
@. $(VENV_DIR)/bin/activate && uv pip install pre-commit && pre-commit install --config $(PRE_COMMIT_CONFIG)
|
|
@echo "$(GREEN)Pre-commit hooks installed successfully.$(RESET)"
|
|
|
|
# Lint Python code using pre-commit hooks
|
|
lint-python:
|
|
@echo "$(YELLOW)Running linters...$(RESET)"
|
|
@. $(VENV_DIR)/bin/activate && pre-commit run --files dev_aci/**/* tests/**/* --show-diff-on-failure --config $(PRE_COMMIT_CONFIG)
|
|
|
|
lint: lint-python
|
|
|
|
# Build distribution packages using build (requires the 'build' package)
|
|
build:
|
|
@echo "$(YELLOW)Building distribution packages...$(RESET)"
|
|
@. $(VENV_DIR)/bin/activate && uv pip install build && python -m build
|
|
@echo "$(GREEN)Build complete. Distributions available in ./dist.$(RESET)"
|
|
|
|
# Publish packages to PyPI using twine
|
|
publish: build
|
|
@echo "$(YELLOW)Publishing packages to PyPI...$(RESET)"
|
|
@. $(VENV_DIR)/bin/activate && uv pip install twine && python -m twine upload dist/*
|
|
@echo "$(GREEN)Publish complete.$(RESET)"
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
@echo "$(YELLOW)Cleaning build artifacts...$(RESET)"
|
|
@rm -rf build dist *.egg-info
|
|
@echo "$(GREEN)Clean complete.$(RESET)"
|