-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (59 loc) · 2.15 KB
/
Makefile
File metadata and controls
68 lines (59 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Variables
SCHEMA_SRC_DIR := ../../schemas/digital-letters/2025-10-draft/events
OUTPUT_DIR := ../digital-letters-events/digital_letters_events/models
SRC_DIR := src
SCHEMAS_DIR := $(SRC_DIR)/schemas
# Default target
.PHONY: all clean generate install install-dev test coverage help
all: generate
# Install production dependencies
install:
@echo "Installing Python production dependencies..."
@pip install -r requirements.txt
@echo "Production dependencies installed!"
# Install development dependencies
install-dev:
@echo "Installing development dependencies..."
@pip install -r requirements-dev.txt
@echo "Development dependencies installed!"
# Generate Pydantic models from JSON schemas
generate: install
@echo "Generating Pydantic models from JSON schemas..."
@mkdir -p $(OUTPUT_DIR)
@npm run merge
@python $(SRC_DIR)/generate_models.py \
--input-dir $(SCHEMAS_DIR) \
--output-dir $(OUTPUT_DIR)
@echo "Pydantic models generated in $(OUTPUT_DIR)/"
# Run tests
test: install-dev
@echo "Running tests..."
@pytest tests/
# Generate coverage report
coverage: install-dev
@echo "Generating coverage report..."
@cd ../.. && pytest src/python-schema-generator/tests/ \
--cov=src/python-schema-generator \
--cov-config=src/python-schema-generator/pytest.ini \
--cov-report=html:src/python-schema-generator/htmlcov \
--cov-report=term-missing \
--cov-report=xml:src/python-schema-generator/coverage.xml \
--cov-branch
@echo "Coverage report generated in src/python-schema-generator/htmlcov/"
# Clean output directory and generated files
clean:
@echo "Cleaning generated models..."
@rm -rf $(OUTPUT_DIR) htmlcov .pytest_cache coverage.xml
@rm -rf $(SCHEMAS_DIR)
@echo "Clean complete!"
# Show help
help:
@echo "Available targets:"
@echo " all - Generate Pydantic models (default)"
@echo " install - Install production dependencies"
@echo " install-dev - Install development dependencies"
@echo " generate - Generate Pydantic models from JSON schemas"
@echo " test - Run tests"
@echo " coverage - Generate coverage report"
@echo " clean - Clean output directories"
@echo " help - Show this help message"