Skip to content

Commit 381d1de

Browse files
author
Tomas Babej
committed
Permeate the rename flag throughout the framework
1 parent 9d9fe8e commit 381d1de

4 files changed

Lines changed: 18 additions & 1 deletion

File tree

datafiles/config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class Meta:
1515
datafile_manual: bool = False
1616
datafile_defaults: bool = False
1717
datafile_infer: bool = False
18+
datafile_rename: bool = False
1819

1920

2021
def load(obj) -> Meta:
@@ -30,5 +31,7 @@ def load(obj) -> Meta:
3031
meta.datafile_defaults = obj.Meta.datafile_defaults
3132
with suppress(AttributeError):
3233
meta.datafile_infer = obj.Meta.datafile_infer
34+
with suppress(AttributeError):
35+
meta.datafile_rename = obj.Meta.datafile_rename
3336

3437
return meta

datafiles/decorators.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def datafile(
1313
manual: bool = Meta.datafile_manual,
1414
defaults: bool = Meta.datafile_defaults,
1515
infer: bool = Meta.datafile_infer,
16+
rename: bool = Meta.datafile_rename,
1617
**kwargs,
1718
):
1819
"""Synchronize a data class to the specified path."""
@@ -36,6 +37,7 @@ def decorator(cls=None):
3637
manual=manual,
3738
defaults=defaults,
3839
infer=infer,
40+
rename=rename,
3941
)
4042

4143
return decorator

datafiles/mapper.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def __init__(
2828
manual: bool,
2929
defaults: bool,
3030
infer: bool,
31+
rename: bool,
3132
root: Optional[Mapper] = None,
3233
) -> None:
3334
assert manual is not None
@@ -40,6 +41,7 @@ def __init__(
4041
self.attrs = attrs
4142
self._pattern = pattern
4243
self._manual = manual
44+
self._rename = rename
4345
self.defaults = defaults
4446
self._infer = infer
4547
self._last_load = 0.0
@@ -319,6 +321,7 @@ def create_mapper(obj, root=None) -> Mapper:
319321
attrs=attrs or {},
320322
pattern=pattern,
321323
manual=meta.datafile_manual,
324+
rename=meta.datafile_rename,
322325
defaults=meta.datafile_defaults,
323326
infer=meta.datafile_infer,
324327
root=root,

datafiles/model.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,14 @@ def objects(cls) -> Manager: # pylint: disable=no-self-argument
4545

4646

4747
def create_model(
48-
cls, *, attrs=None, manual=None, pattern=None, defaults=None, infer=None
48+
cls,
49+
*,
50+
attrs=None,
51+
manual=None,
52+
pattern=None,
53+
defaults=None,
54+
infer=None,
55+
rename=None,
4956
):
5057
"""Patch model attributes on to an existing dataclass."""
5158
log.debug(f"Converting {cls} to a datafile model")
@@ -68,6 +75,8 @@ def create_model(
6875
m.datafile_defaults = defaults
6976
if not hasattr(cls, "Meta") and infer is not None:
7077
m.datafile_infer = infer
78+
if not hasattr(cls, "Meta") and rename is not None:
79+
m.datafile_rename = rename
7180

7281
cls.Meta = m
7382

0 commit comments

Comments
 (0)