Skip to content

Commit f75483a

Browse files
committed
chore(anthias-viewer): migrate dependency management from pip to uv
1 parent e588951 commit f75483a

File tree

5 files changed

+104
-17
lines changed

5 files changed

+104
-17
lines changed

bin/start_viewer.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ chown -f viewer /data/.screenly/latest_anthias_sha
1212
mkdir -p /data/.local/share/ScreenlyWebview/QtWebEngine \
1313
/data/hotspot \
1414
/data/.cache/ScreenlyWebview \
15+
/data/.cache/uv \
1516
/data/.pki
1617

1718
chown -Rf viewer /data/.local/share/ScreenlyWebview
1819
chown -Rf viewer /data/.cache/ScreenlyWebview/
20+
chown -Rf viewer /data/.cache/uv
1921
chown -Rf viewer /data/.pki
2022
chown -Rf viewer /data/hotspot
2123

@@ -39,7 +41,7 @@ trap '' 16
3941
echo 0 > /sys/fs/cgroup/memory/memory.swappiness
4042

4143
# Start viewer
42-
sudo -E -u viewer dbus-run-session python -m viewer &
44+
sudo -E -u viewer dbus-run-session uv run python -m viewer &
4345

4446
# Wait for the viewer
4547
while true; do

docker-compose.yml.tmpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ services:
6060
- PORT=80
6161
- NOREFRESH=1
6262
- LISTEN=anthias-nginx
63+
- UV_PROJECT_ENVIRONMENT=/tmp/.venv
6364
extra_hosts:
6465
- "host.docker.internal:host-gateway"
6566
privileged: true

docker/Dockerfile.viewer.j2

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33

44
FROM {{ base_image }}:{{ base_image_tag }}
55

6-
# This list needs to be trimmed back later
6+
{% include 'Dockerfile.base.j2' %}
7+
78
{% if disable_cache_mounts %}
89
RUN \
910
{% else %}
@@ -19,25 +20,15 @@ RUN --mount=type=cache,target=/var/cache/apt \
1920
{% endif %}
2021
{% endfor %}
2122

22-
# We need this to ensure that the wheels can be built.
23-
# Otherwise we get "invalid command 'bdist_wheel'"
24-
{% if disable_cache_mounts %}
25-
RUN \
26-
{% else %}
27-
RUN --mount=type=cache,target=/root/.cache/pip \
28-
{% endif %}
29-
pip3 install --upgrade pip --break-system-packages && \
30-
pip3 install wheel --break-system-packages
31-
32-
# Install Python requirements
33-
COPY requirements/requirements.viewer.txt /tmp/requirements.txt
34-
23+
COPY pyproject.toml uv.lock /tmp/
3524
{% if disable_cache_mounts %}
3625
RUN \
3726
{% else %}
38-
RUN --mount=type=cache,target=/root/.cache/pip \
27+
RUN --mount=type=cache,target=/root/.cache/uv \
3928
{% endif %}
40-
pip3 install -r /tmp/requirements.txt --break-system-packages
29+
cd /tmp && \
30+
uv venv --system-site-packages && \
31+
uv sync --frozen --no-dev --group viewer
4132

4233
# Works around issue with `curl`
4334
# https://github.com/balena-io-library/base-images/issues/562

pyproject.toml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,29 @@ server = [
5757
"wheel==0.38.1",
5858
"yt-dlp==2025.10.22",
5959
]
60+
viewer = [
61+
"cec==0.2.8",
62+
"certifi==2025.10.5",
63+
"configparser==7.2.0",
64+
"cryptography==3.3.2",
65+
"Cython==3.2.3",
66+
"Django==4.2.27",
67+
"django-dbbackup==4.2.1",
68+
"drf-spectacular==0.29.0",
69+
"future==1.0.0",
70+
"idna==3.11",
71+
"Jinja2==3.1.6",
72+
"jsonschema==4.25.1",
73+
"netifaces==0.11.0",
74+
"pydbus==0.6.0",
75+
"python-dateutil==2.9.0.post0",
76+
"python-vlc==3.0.20123",
77+
"pytz==2025.2",
78+
"pyzmq==23.2.1",
79+
"redis==7.1.0",
80+
"requests[security]==2.32.5",
81+
"tenacity==9.1.2",
82+
"sh==1.8",
83+
"uptime==3.0.1",
84+
"urllib3==2.6.0",
85+
]

uv.lock

Lines changed: 67 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)