Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 0 additions & 50 deletions .github/actions/setup-pango-cairo/action.yaml

This file was deleted.

24 changes: 14 additions & 10 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,22 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pango-cairo
uses: ./.github/actions/setup-pango-cairo

- name: Setup uv
uses: astral-sh/setup-uv@v7
# conda-forge ships the latest Pango, cairo and PyGObject
- name: Setup rendering stack
uses: mamba-org/setup-micromamba@v3
with:
python-version: "3.12"
enable-cache: true
activate-environment: true
environment-name: pixel
create-args: -c conda-forge python=3.12 pango pycairo pygobject
cache-downloads: true

- name: Install dependencies
run: uv pip install ".[dev,pangocairo]" "transformers${{ matrix.transformers }}"
shell: bash -el {0}
run: pip install ".[dev,pangocairo]" "transformers${{ matrix.transformers }}"

- name: Rendering stack versions
shell: bash -el {0}
run: micromamba list -n pixel "^(pango|cairo|harfbuzz|pygobject|pycairo)$"

- name: Test code
run: uv run pytest -n auto --dist loadscope
shell: bash -el {0}
run: pytest -n auto --dist loadscope
19 changes: 8 additions & 11 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
FROM python:3.14-slim
FROM mambaorg/micromamba:2.9.0-debian13

# Setup package manager
RUN sed -i 's|http://|https://|g' /etc/apt/sources.list.d/*.sources
RUN apt-get update -q
# Rendering stack from conda-forge, which ships the latest Pango, cairo and PyGObject
RUN micromamba install -y -n base -c conda-forge python=3.12 pango pycairo pygobject && \
micromamba clean -a -y

# Install rendering system dependencies
# (pycairo and PyGObject have no Linux wheels, so they are compiled from source)
RUN apt-get install -y gcc libcairo2 gir1.2-pango-1.0 pkg-config libcairo2-dev libgirepository-2.0-dev

COPY . /pixel-renderer
ARG MAMBA_DOCKERFILE_ACTIVATE=1
COPY --chown=$MAMBA_USER:$MAMBA_USER . /pixel-renderer
WORKDIR /pixel-renderer
RUN pip install ".[pangocairo]"
RUN pip install --no-cache-dir ".[pangocairo]"

CMD ["python", "-c", "from pixel_renderer import render_text; print(render_text('test', 16, 12).shape); print('✅')"]

# docker build -t renderer .
# docker run -it --rm renderer
# docker run -it --rm renderer
Binary file modified tests/pixel_renderer/regression/assets/ace_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/ace_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/acm_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/acq_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/aeb_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/afr_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/ajp_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/aka_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/als_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/amh_Ethi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/apc_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/arb_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/arb_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/ars_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/ary_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/arz_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/asm_Beng.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/ast_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/awa_Deva.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/ayr_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/azb_Arab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/azj_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/bak_Cyrl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/bam_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/ban_Latn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/pixel_renderer/regression/assets/bel_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/bem_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ben_Beng.png
Binary file modified tests/pixel_renderer/regression/assets/bho_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/bjn_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/bjn_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/bod_Tibt.png
Binary file modified tests/pixel_renderer/regression/assets/bos_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/bug_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/bul_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/cat_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ceb_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ces_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/cjk_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ckb_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/crh_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/cym_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/dan_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/deu_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/dik_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/dyu_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/dzo_Tibt.png
Binary file modified tests/pixel_renderer/regression/assets/ell_Grek.png
Binary file modified tests/pixel_renderer/regression/assets/eng_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/epo_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/est_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/eus_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ewe_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/fao_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/fij_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/fin_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/fon_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/fra_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/fur_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/fuv_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/gaz_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/gla_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/gle_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/glg_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/grn_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/guj_Gujr.png
Binary file modified tests/pixel_renderer/regression/assets/hat_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/hau_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/heb_Hebr.png
Binary file modified tests/pixel_renderer/regression/assets/hin_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/hne_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/hrv_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/hun_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/hye_Armn.png
Binary file modified tests/pixel_renderer/regression/assets/ibo_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ilo_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ind_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/isl_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ita_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/jav_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/jpn_Jpan.png
Binary file modified tests/pixel_renderer/regression/assets/kab_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kac_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kam_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kan_Knda.png
Binary file modified tests/pixel_renderer/regression/assets/kas_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/kas_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/kat_Geor.png
Binary file modified tests/pixel_renderer/regression/assets/kaz_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/kbp_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kea_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/khk_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/khm_Khmr.png
Binary file modified tests/pixel_renderer/regression/assets/kik_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kin_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kir_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/kmb_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kmr_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/knc_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/knc_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kon_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/kor_Hang.png
Binary file modified tests/pixel_renderer/regression/assets/lao_Laoo.png
Binary file modified tests/pixel_renderer/regression/assets/lij_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/lim_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/lin_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/lit_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/lmo_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ltg_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ltz_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/lua_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/lug_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/luo_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/lus_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/lvs_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/mag_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/mai_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/mal_Mlym.png
Binary file modified tests/pixel_renderer/regression/assets/mar_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/min_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/min_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/mkd_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/mlt_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/mni_Beng.png
Binary file modified tests/pixel_renderer/regression/assets/mos_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/mri_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/mya_Mymr.png
Binary file modified tests/pixel_renderer/regression/assets/nld_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/nno_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/nob_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/npi_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/nqo_Nkoo.png
Binary file modified tests/pixel_renderer/regression/assets/nso_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/nus_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/nya_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/oci_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ory_Orya.png
Binary file modified tests/pixel_renderer/regression/assets/pag_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/pan_Guru.png
Binary file modified tests/pixel_renderer/regression/assets/pap_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/pbt_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/pes_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/plt_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/pol_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/por_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/prs_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/quy_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ron_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/run_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/rus_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/sag_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/san_Deva.png
Binary file modified tests/pixel_renderer/regression/assets/sat_Olck.png
Binary file modified tests/pixel_renderer/regression/assets/scn_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/shn_Mymr.png
Binary file modified tests/pixel_renderer/regression/assets/sin_Sinh.png
Binary file modified tests/pixel_renderer/regression/assets/slk_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/slv_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/smo_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/sna_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/snd_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/som_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/sot_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/spa_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/srd_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/srp_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/ssw_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/sun_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/swe_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/swh_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/szl_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/tam_Taml.png
Binary file modified tests/pixel_renderer/regression/assets/taq_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/taq_Tfng.png
Binary file modified tests/pixel_renderer/regression/assets/tat_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/tel_Telu.png
Binary file modified tests/pixel_renderer/regression/assets/tgk_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/tgl_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/tha_Thai.png
Binary file modified tests/pixel_renderer/regression/assets/tir_Ethi.png
Binary file modified tests/pixel_renderer/regression/assets/tpi_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/tsn_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/tso_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/tuk_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/tum_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/tur_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/twi_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/tzm_Tfng.png
Binary file modified tests/pixel_renderer/regression/assets/uig_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/ukr_Cyrl.png
Binary file modified tests/pixel_renderer/regression/assets/umb_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/urd_Arab.png
Binary file modified tests/pixel_renderer/regression/assets/uzn_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/vec_Latn.png
10 changes: 5 additions & 5 deletions tests/pixel_renderer/regression/assets/versions.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"pixel_renderer": "0.1.4",
"pycairo": "1.29.0",
"pygobject": "3.50.2",
"gi": "3.50.2",
"cairo": "1.18.0",
"pango": "1.52.1"
"pycairo": "1.29.2",
"pygobject": "3.58.0",
"gi": "3.58.0",
"cairo": "1.18.6",
"pango": "1.58.2"
}
Binary file modified tests/pixel_renderer/regression/assets/vie_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/war_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/wol_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/xho_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/ydd_Hebr.png
Binary file modified tests/pixel_renderer/regression/assets/yor_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/yue_Hant.png
Binary file modified tests/pixel_renderer/regression/assets/zho_Hans.png
Binary file modified tests/pixel_renderer/regression/assets/zho_Hant.png
Binary file modified tests/pixel_renderer/regression/assets/zsm_Latn.png
Binary file modified tests/pixel_renderer/regression/assets/zul_Latn.png
Loading