@@ -89,18 +89,17 @@ class Overloads:
89
89
)
90
90
"""
91
91
92
+ import dataclasses as dc
92
93
from dataclasses import (
93
94
MISSING ,
94
95
asdict ,
95
96
astuple ,
96
97
dataclass ,
97
- field as _field ,
98
98
fields ,
99
- make_dataclass as _make_dataclass ,
100
99
replace ,
101
100
)
102
- import functools
103
- from functools import cached_property
101
+ from functools import cached_property , partial , wraps
102
+
104
103
import xmod
105
104
106
105
__all__ = (
@@ -125,24 +124,24 @@ class Overloads:
125
124
_DFLT_ERR = 'Just one of default, default_factory and default_value may be set'
126
125
127
126
128
- @functools . wraps (dataclass )
127
+ @wraps (dataclass )
129
128
def mutable (cls = None , ** kwargs ):
130
129
if not cls :
131
- return functools . partial (mutable , ** kwargs )
130
+ return partial (mutable , ** kwargs )
132
131
133
132
return add_methods (dataclass (cls , ** kwargs ))
134
133
135
134
136
- @functools . wraps (_field )
135
+ @wraps (dc . field )
137
136
def field (default_factory = MISSING , ** kwargs ):
138
- return _field (default_factory = default_factory , ** kwargs )
137
+ return dc . field (default_factory = default_factory , ** kwargs )
139
138
140
139
141
140
def add_methods (dcls ):
142
141
"""Adds dataclasses functions as methods to a dataclass.
143
142
144
- Adds three new instance methods: `asdict()`, `astuple()`, `replace()`
145
- and one new class method, `fields()`
143
+ Adds three new instance methods: `asdict()`, `astuple()`, `replace()`
144
+ and one new class method, `fields()`
146
145
"""
147
146
methods = (m for m in _METHODS if not hasattr (dcls , m ))
148
147
for m in methods :
@@ -153,17 +152,16 @@ def add_methods(dcls):
153
152
return dcls
154
153
155
154
156
- @functools . wraps (_make_dataclass )
155
+ @wraps (dc . make_dataclass )
157
156
def make_dataclass (* a , ** ka ):
158
- return add_methods (_make_dataclass (* a , ** ka ))
157
+ return add_methods (dc . make_dataclass (* a , ** ka ))
159
158
160
159
161
- hidden = functools . partial (field , compare = False , init = False , repr = False )
162
- immutable = functools . partial (mutable , frozen = True )
160
+ hidden = partial (field , compare = False , init = False , repr = False )
161
+ immutable = partial (mutable , frozen = True )
163
162
dtyper = None
164
163
165
164
166
-
167
165
class Datacls :
168
166
__call__ = staticmethod (immutable )
169
167
0 commit comments