File tree 2 files changed +28
-1
lines changed
2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -1566,6 +1566,7 @@ def parameters(self) -> Parameters:
1566
1566
* [
1567
1567
Parameter (attr .name , annotation = attr .annotation , default = attr .value )
1568
1568
for attr in self .attributes .values ()
1569
+ if "property" not in attr .labels
1569
1570
],
1570
1571
)
1571
1572
return Parameters ()
Original file line number Diff line number Diff line change 7
7
import griffe
8
8
from griffe .dataclasses import Docstring , Module
9
9
from griffe .loader import GriffeLoader
10
- from griffe .tests import module_vtree , temporary_pypackage
10
+ from griffe .tests import module_vtree , temporary_pypackage , temporary_visited_module
11
11
12
12
13
13
def test_submodule_exports () -> None :
@@ -86,3 +86,29 @@ def test_alias_proxies() -> None:
86
86
for name in cls .all_members :
87
87
if not name .startswith ("_" ) or name .startswith ("__" ):
88
88
assert name in alias_members
89
+
90
+
91
+ def test_dataclass_parameters () -> None :
92
+ """Don't return properties as parameters of dataclasses."""
93
+ with temporary_visited_module (
94
+ """
95
+ from dataclasses import dataclass
96
+ from functools import cached_property
97
+
98
+ @dataclass
99
+ class Point:
100
+ x: float
101
+ y: float
102
+
103
+ @property
104
+ def a(self):
105
+ return 0
106
+
107
+ @cached_property
108
+ def b(self):
109
+ return 0
110
+ """ ,
111
+ ) as module :
112
+ params = module ["Point" ].parameters
113
+ assert "a" not in params
114
+ assert "b" not in params
You can’t perform that action at this time.
0 commit comments