File: pydantic_patch.py

package info (click to toggle)
python-datamodel-code-generator 0.26.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 712 kB
  • sloc: python: 9,525; makefile: 14
file content (22 lines) | stat: -rw-r--r-- 570 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sys

import pydantic.typing


def patched_evaluate_forwardref(
    forward_ref, globalns, localns=None
):  # pragma: no cover
    try:
        return forward_ref._evaluate(
            globalns, localns or None, set()
        )  # pragma: no cover
    except TypeError:
        # Fallback for Python 3.12 compatibility
        return forward_ref._evaluate(
            globalns, localns or None, set(), recursive_guard=set()
        )


# Patch only Python3.12
if sys.version_info >= (3, 12):
    pydantic.typing.evaluate_forwardref = patched_evaluate_forwardref