Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Releases: cel-expr/cel-python

Release 0.1.2

29 May 03:52

Choose a tag to compare

Release notes for CEL Python (cel-expr-python) version 0.1.2

Key Highlights

  • Platform Compatibility Expansion: Initial support for Microsoft Windows and macOS environments, complete with dedicated CI/CD presubmit pipelines and automated wheel releases using cibuildwheel.
  • Expression Container Aliases & Abbreviations: Added support for namespace resolution in the environment via the new cel.ExpressionContainer class.
  • Simplified User-defined Functions: Enabled registration of custom functions written in Python directly via cel.NewEnv(functions=[...]).
  • Type Stub Annotations (.pyi): Added robust inline type stubs for improved IDE auto-completion and static type checking.

Detailed Change Log

1. Multi-Platform & Build Infrastructure Support

  • Windows Support: Added Microsoft Windows build support. Configured modern C++ standards compilation (/std:c++20) for MSVC compiler.
  • macOS Support: Configured Apple macOS build pipeline.
  • cibuildwheel Optimization: Updated release scripts to support Python 3.11, 3.12, 3.13, and 3.14 wheel compiles.

2. Namespace Resolution (cel.ExpressionContainer)

  • Container Aliases: Added cel.ExpressionContainer class to pass to cel.NewEnv(container=...). Allows binding aliases to fully qualified names (e.g., aliases={"abc": "x.y.bar"}) and defining namespace abbreviations.

3. Custom Functions Declarations

  • cel.FunctionDecl & cel.Overload: Added dedicated classes for custom function binding. You can now define custom behaviors and overload resolutions in Python:
    cel_env = cel.NewEnv(
        functions=[
            cel.FunctionDecl("hello", [
                cel.Overload("hello(string)", cel.Type.STRING, [cel.Type.STRING], impl=lambda x: f"Hello {x}!")
            ])
        ]
    )
  • Separate Implementation Binding: Supported binding overloads dynamically using NewEnv(functions=[...], function_impls={"overload_id": handler}).

4. Extension Changes & Refactoring

  • ext_strings Renaming: Renamed Python strings extension from ext_string to ext_strings to align with internal conventions.
  • Compiler Library Migration: Refactored C++ extension interface from using ConfigureCompiler to returning cel::CompilerLibrary via GetCompilerLibrary(), harmonizing between standard and custom extension definitions.

Full Changelog: v0.1.1...0.1.2---

Initial release of CEL-expr-python

13 Feb 00:43

Choose a tag to compare

Pre-release

Initial release of CEL-expr-python, wrapper over CEL-C++

Features:

  • Compilation
  • Evaluation of a type-checked expression
  • Support for Protobuf
  • Standard extensions: math, strings, optional, bindings etc
  • Support for custom extensions, written in Python or C++
Morty Proxy This is a proxified and sanitized view of the page, visit original site.