-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJustfile
More file actions
118 lines (94 loc) · 2.67 KB
/
Justfile
File metadata and controls
118 lines (94 loc) · 2.67 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
106
107
108
109
110
111
112
113
114
115
116
117
118
set dotenv-load := true
# ENVIRONMENT VARIABLES (`.env` or default)
# ====================================================
# PORT := env("PORT", "8080")
[default]
@_:
just --list
# ENVIRONMENT
# ====================================================
[doc("Install MicroPython stubs into `typings/` folder")]
[group("ENV")]
@stubs:
uv export --only-group dev --no-hashes --no-emit-project | \
grep "micropython" | \
uv pip install --target typings --requirements -
[doc("Update project environment")]
[group("ENV")]
sync: stubs
uv sync
[doc("Upgrade dependencies")]
[group("ENV")]
@upgrade:
uv lock --upgrade
[doc("Clean project environment")]
[group("ENV")]
clean:
rm -rf \
.venv .pytest_cache \
.mpy_cache .ruff_cache \
.coverage htmlcov
find . \
-type d \
-name "__pycache__" \
-exec rm -r {} +
[doc("Clean & update project environment")]
[group("ENV")]
resync: clean sync
# DEV & QA
# ====================================================
[doc("Format microcontroller [`mpremote`]")]
[group("DEV")]
@mpremote-format:
mpremote exec --no-follow "import os, machine, rp2; os.umount('/'); bdev = rp2.Flash(); os.VfsLfs2.mkfs(bdev, progsize=256); vfs = os.VfsLfs2(bdev, progsize=256); os.mount(vfs, '/'); machine.reset()"
[doc("Install `networkutils` onto a connected microcontroller [`mpremote`]")]
[group("DEV")]
@mpremote-install:
mpremote mip install "github:andyrids/micropython-networkutils/"
[doc("Run AP example on a connected microcontroller [`mpremote`]")]
[group("DEV")]
@mpremote-runap:
mpremote run "examples/ap_fsm.py"
[doc("Run STA example on a connected microcontroller [`mpremote`]")]
[group("DEV")]
@mpremote-runsta:
mpremote run "examples/sta_mode.py"
[doc("Git prune all unreachable objects immediately")]
[group("QA")]
@git-prune:
git gc --prune=now
[doc("Check static typing")]
[group("QA")]
@static-typing:
uv run mypy src tests
[doc("Install `prek` Git shims")]
[group("QA")]
@prek-install:
uv run -m prek install
[doc("Prepare `prek` hook environments")]
[group("QA")]
@prek-install-prepare:
uv run -m prek install --prepare-hooks
[doc("List `prek` Git hooks")]
[group("QA")]
@prek-list:
uv run -m prek list
[doc("Update `prek` pinned hook repository revisions")]
[group("QA")]
@prek-update:
uv run -m prek auto-update
_coverage *args:
uv run -m coverage {{ args }}
[doc("Generate test coverage")]
[group("QA")]
@coverage:
just _coverage erase
just _coverage run -m pytest
just _coverage combine
just _coverage report
just _coverage html
[doc("Format & lint")]
[group("QA")]
@format-lint:
- uv run -m ruff format .
- uv run -m ruff check --fix