summaryrefslogtreecommitdiff
path: root/astroid/brain/brain_dataclasses.py
diff options
context:
space:
mode:
authorNicolas Noirbent <nicolas@noirbent.fr>2021-12-23 19:24:56 +0100
committerGitHub <noreply@github.com>2021-12-23 19:24:56 +0100
commit39c37c1fa944a577124f3482e3714f82f0c1b6dd (patch)
treeb084236a8f01c2993188c9a8549e19b678065097 /astroid/brain/brain_dataclasses.py
parent305961366577b04d332be22ff776803a20559ac1 (diff)
downloadastroid-git-39c37c1fa944a577124f3482e3714f82f0c1b6dd.tar.gz
Fix dataclass inference for marshmallow_dataclass (#1298)
Diffstat (limited to 'astroid/brain/brain_dataclasses.py')
-rw-r--r--astroid/brain/brain_dataclasses.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/astroid/brain/brain_dataclasses.py b/astroid/brain/brain_dataclasses.py
index 6ea14511..a05c46f9 100644
--- a/astroid/brain/brain_dataclasses.py
+++ b/astroid/brain/brain_dataclasses.py
@@ -3,9 +3,12 @@
"""
Astroid hook for the dataclasses library
-Support both built-in dataclasses and pydantic.dataclasses. References:
+Support built-in dataclasses, pydantic.dataclasses, and marshmallow_dataclass-annotated
+dataclasses. References:
- https://docs.python.org/3/library/dataclasses.html
- https://pydantic-docs.helpmanual.io/usage/dataclasses/
+- https://lovasoa.github.io/marshmallow_dataclass/
+
"""
from typing import FrozenSet, Generator, List, Optional, Tuple
@@ -35,7 +38,9 @@ from astroid.util import Uninferable
DATACLASSES_DECORATORS = frozenset(("dataclass",))
FIELD_NAME = "field"
-DATACLASS_MODULES = frozenset(("dataclasses", "pydantic.dataclasses"))
+DATACLASS_MODULES = frozenset(
+ ("dataclasses", "marshmallow_dataclass", "pydantic.dataclasses")
+)
DEFAULT_FACTORY = "_HAS_DEFAULT_FACTORY" # based on typing.py