-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
105 lines (82 loc) · 2.06 KB
/
justfile
File metadata and controls
105 lines (82 loc) · 2.06 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# FileShift Development Tasks
# Default task - show available commands
default:
@just --list
# Install project with uv
install:
uv pip install -e ".[dev]"
# Run all tests
test:
uv run pytest -v
# Run tests with coverage
test-cov:
uv run pytest --cov --cov-report=html --cov-report=term
# Run specific test file
test-file FILE:
uv run pytest -v {{FILE}}
# Run tests and watch for changes
test-watch:
uv run pytest-watch
# Format code with black and isort
format:
uv run black .
uv run isort .
uv run ruff --fix .
# Check code formatting
check:
uv run black --check .
uv run isort --check-only .
uv run ruff check .
uv run mypy src
# Run type checking
typecheck:
uv run mypy src
# Clean build artifacts
clean:
rm -rf build dist *.egg-info
rm -rf .coverage htmlcov .pytest_cache
rm -rf .mypy_cache .ruff_cache
find . -type d -name __pycache__ -exec rm -rf {} +
find . -type f -name "*.pyc" -delete
# Build standalone app
build:
uv run pyinstaller --clean packaging/fileshift.spec
# Run the GUI app
run:
uv run python -m src
# Run the CLI
run-cli *ARGS:
uv run python -m src.cli {{ARGS}}
# Generate sample data
generate-samples:
uv run python packaging/scripts/generate_sample_data.py
# Run pre-commit hooks
pre-commit:
uv run pre-commit run --all-files
# Set up pre-commit hooks
pre-commit-install:
uv run pre-commit install
# Create a new release
release VERSION:
git tag -a v{{VERSION}} -m "Release version {{VERSION}}"
git push origin v{{VERSION}}
# Run benchmarks
benchmark:
uv run pytest -v tests/benchmarks --benchmark-only
# Profile the application
profile FILE:
uv run python -m cProfile -o profile.stats -m src {{FILE}}
uv run python -m pstats profile.stats
# Update dependencies
update-deps:
uv pip compile pyproject.toml -o requirements.txt --upgrade
# Create virtual environment with uv
venv:
uv venv
uv pip install -e ".[dev]"
# Serve documentation
docs-serve:
uv run mkdocs serve
# Build documentation
docs-build:
uv run mkdocs build