Oven logo

Oven

Published

Like `typing._eval_type`, but lets older Python versions use newer typing features.

pip install eval-type-backport

Package Downloads

Weekly DownloadsMonthly Downloads

Project URLs

Requires Python

>=3.8

eval_type_backport

Build Status Coverage Status Supports Python versions 3.8+, including PyPy Anaconda's conda-forge channel

This is a tiny package providing a replacement for typing._eval_type to support newer typing features in older Python versions.

Yes, that's very specific, and yes, typing._eval_type is a protected function that you shouldn't normally be using. Really this package is specifically made for https://github.com/pydantic/pydantic/issues/7873.

Specifically, this transforms X | Y into typing.Union[X, Y] and list[X] into typing.List[X] etc. (for all the types made generic in PEP 585) if the original syntax is not supported in the current Python version.

Install

From PyPI:

pip install eval-type-backport

or with Conda:

conda install -c conda-forge eval-type-backport