From 362ed2b9120be56868c4be46e8bf9f18cc3ebf71 Mon Sep 17 00:00:00 2001 From: LeDocteurDesBits <77270859+LeDocteurDesBits@users.noreply.github.com> Date: Wed, 3 Mar 2021 17:52:11 +0100 Subject: [PATCH] Fixed a bug on old Python versions (< 3.8) --- models.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/models.py b/models.py index 6c6f2c7..fa81c4f 100644 --- a/models.py +++ b/models.py @@ -1,7 +1,7 @@ import copy from abc import ABC from dataclasses import dataclass, fields, field -from typing import List, Optional, Union, get_type_hints, get_args, get_origin +from typing import List, Optional, Union, get_type_hints from dataclasses_json import dataclass_json from pydantic.typing import NoneType @@ -11,6 +11,19 @@ from utils.case import camel_case +# HACK: This is a ugly fix for old Python versions +import sys + +if sys.version_info < (3, 8): + def get_args(field): + return field.__args__ + + def get_origin(field): + return field.__origin__ +else: + from typing import get_args, get_origin + + def default_field(obj): return field(default_factory=lambda: copy.copy(obj))