diff options
author | Eric V. Smith <ericvsmith@users.noreply.github.com> | 2018-01-06 22:09:58 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-06 22:09:58 (GMT) |
commit | d80b443f02e087dd289ffefd04179c675304d76d (patch) | |
tree | 7bb88766e76f10fc71713037c5615a5bd84cecb8 /Lib/dataclasses.py | |
parent | ed7d429ebb591f65cef558760fb4ebdc4fc8f8b0 (diff) | |
download | cpython-d80b443f02e087dd289ffefd04179c675304d76d.zip cpython-d80b443f02e087dd289ffefd04179c675304d76d.tar.gz cpython-d80b443f02e087dd289ffefd04179c675304d76d.tar.bz2 |
bpo-32279: Add additional params to make_dataclass(), pass through to dataclass(). (gh-5117)
Diffstat (limited to 'Lib/dataclasses.py')
-rw-r--r-- | Lib/dataclasses.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py index c4e94b8..62b7c5e 100644 --- a/Lib/dataclasses.py +++ b/Lib/dataclasses.py @@ -705,7 +705,8 @@ def _astuple_inner(obj, tuple_factory): return deepcopy(obj) -def make_dataclass(cls_name, fields, *, bases=(), namespace=None): +def make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, + repr=True, eq=True, order=False, hash=None, frozen=False): """Return a new dynamically created dataclass. The dataclass name will be 'cls_name'. 'fields' is an iterable @@ -723,6 +724,9 @@ def make_dataclass(cls_name, fields, *, bases=(), namespace=None): b: int = field(init=False) For the bases and namespace paremeters, see the builtin type() function. + + The parameters init, repr, eq, order, hash, and frozen are passed to + dataclass(). """ if namespace is None: @@ -745,8 +749,8 @@ def make_dataclass(cls_name, fields, *, bases=(), namespace=None): namespace['__annotations__'] = anns cls = type(cls_name, bases, namespace) - return dataclass(cls) - + return dataclass(cls, init=init, repr=repr, eq=eq, order=order, + hash=hash, frozen=frozen) def replace(obj, **changes): """Return a new object replacing specified fields with new values. |