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
3 changes: 3 additions & 0 deletions .github/workflows/build-common-expression-language.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,10 @@ jobs:
path: python-wheels
persist-credentials: false

# <= 0.9.0 need the typing.Annotated backport; 0.10.0 ships it (upstream
# 212cf00), so later versions may have no patches/ directory at all.
- name: Patch common-expression-language source
if: hashFiles(format('python-wheels/patches/common-expression-language/{0}/*.patch', env.CEL_VERSION)) != ''
run: git apply python-wheels/patches/common-expression-language/${{ env.CEL_VERSION }}/*.patch

- name: Build and test wheel
Expand Down
2 changes: 2 additions & 0 deletions docs/packages/common-expression-language.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,5 @@ versions:
- filename: common_expression_language-0.8.0-cp315-cp315t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl
sha256: 665d9cfc86311ce26d1d1790f0a70c0aba5122d96294bc2f3e88064874376073
requires-python: '>=3.11'
- version: 0.9.0
- version: 0.10.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ludovic Henry <git@ludovic.dev>
Date: Sun, 4 Oct 2026 11:30:00 +0000
Subject: [PATCH] cli: import Annotated from typing, not typing_extensions

Upstream-Status: Backport [https://github.com/hardbyte/python-common-expression-language/commit/212cf00c48b6dd1a7fe35ae092eee414b1825f01]

cel/__init__.py imports cel.cli, which imports Annotated from
typing_extensions. typing_extensions is not a declared dependency; it
used to arrive transitively through typer, but typer 0.21.2 dropped it,
so `import cel` fails with "No module named 'typing_extensions'" in any
clean environment. This reproduces on every architecture, not just
riscv64.

Upstream fixed it in 212cf00 ("Fix `import cel` failing in a clean
install", #44, released in 0.10.0) by importing Annotated from the
standard library's typing module (Python >= 3.9; the package requires
>= 3.11). This backports the python/cel/cli.py hunk of that commit.

Signed-off-by: Ludovic Henry <git@ludovic.dev>
---
python/cel/cli.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/python/cel/cli.py b/python/cel/cli.py
index 22ea1e1..216cc38 100644
--- a/python/cel/cli.py
+++ b/python/cel/cli.py
@@ -16,7 +16,7 @@ import sys
import time
from importlib.metadata import PackageNotFoundError, version
from pathlib import Path
-from typing import Any, Dict, Optional, Tuple
+from typing import Annotated, Any, Dict, Optional, Tuple

import typer

@@ -35,7 +35,6 @@ from rich.console import Console
from rich.panel import Panel
from rich.syntax import Syntax
from rich.table import Table
-from typing_extensions import Annotated

# Import directly from relative modules to avoid circular imports
from .cel import Context, evaluate
--
2.43.0
Loading