Skip to content

Commit

Permalink
Remove auto load/save model options
Browse files Browse the repository at this point in the history
  • Loading branch information
jacebrowning committed May 22, 2021
1 parent 4110466 commit f12fd70
Show file tree
Hide file tree
Showing 9 changed files with 15 additions and 60 deletions.
6 changes: 5 additions & 1 deletion CHANGELOG.md
@@ -1,7 +1,11 @@
# 0.15 (alpha)

- Removed `auto_load`/`auto_save` model options.

# 0.14 (2021-05-21)

- Renamed model option `auto_attr` to `infer`.
- Deprecated `auto_load`/`auto_save` in favor of `manual`.
- Deprecated `auto_load`/`auto_save` model options in favor of `manual`.

# 0.13.3 (2021-05-20)

Expand Down
6 changes: 0 additions & 6 deletions datafiles/config.py
Expand Up @@ -18,8 +18,6 @@ class Meta:

datafile_manual: bool = False
datafile_defaults: bool = False
datafile_auto_load: bool = True
datafile_auto_save: bool = True
datafile_infer: bool = False


Expand All @@ -34,10 +32,6 @@ def load(obj) -> Meta:
meta.datafile_manual = obj.Meta.datafile_manual
with suppress(AttributeError):
meta.datafile_defaults = obj.Meta.datafile_defaults
with suppress(AttributeError):
meta.datafile_auto_load = obj.Meta.datafile_auto_load
with suppress(AttributeError):
meta.datafile_auto_save = obj.Meta.datafile_auto_save
with suppress(AttributeError):
meta.datafile_infer = obj.Meta.datafile_infer

Expand Down
4 changes: 0 additions & 4 deletions datafiles/decorators.py
Expand Up @@ -17,8 +17,6 @@ def datafile(
attrs: Optional[Dict[str, Converter]] = None,
manual: bool = Meta.datafile_manual,
defaults: bool = Meta.datafile_defaults,
auto_load: bool = Meta.datafile_auto_load,
auto_save: bool = Meta.datafile_auto_save,
infer: bool = Meta.datafile_infer,
**kwargs,
):
Expand All @@ -42,8 +40,6 @@ def decorator(cls=None):
pattern=pattern,
manual=manual,
defaults=defaults,
auto_load=auto_load,
auto_save=auto_save,
infer=infer,
)

Expand Down
25 changes: 7 additions & 18 deletions datafiles/hooks.py
@@ -1,4 +1,3 @@
import warnings
from contextlib import contextmanager, suppress
from dataclasses import is_dataclass
from functools import wraps
Expand All @@ -9,7 +8,11 @@
from .mapper import create_mapper


LOAD_BEFORE_METHODS = ['__getattribute__', '__getitem__', '__iter__']
LOAD_BEFORE_METHODS = [
'__getattribute__',
'__getitem__',
'__iter__',
]
SAVE_AFTER_METHODS = [
'__setattr__',
'__setitem__',
Expand Down Expand Up @@ -87,14 +90,7 @@ def wrapped(self, *args, **kwargs):
if mapper.exists and mapper.modified:
log.debug(f"Loading automatically before '{method.__name__}' call")
mapper.load()
if mapper.auto_save:
log.debug("Saving automatically after load")
mapper.save(_log=False)
else:
warnings.warn(
"'auto_save' is deprecated, use 'manual' instead",
DeprecationWarning,
)
mapper.save(_log=False)

return method(self, *args, **kwargs)

Expand Down Expand Up @@ -125,14 +121,7 @@ def wrapped(self, *args, **kwargs):
if enabled(mapper, args):
log.debug(f"Saving automatically after '{method.__name__}' call")
mapper.save()
if mapper.auto_load:
log.debug("Loading automatically after save")
mapper.load(_log=False)
else:
warnings.warn(
"'auto_load' is deprecated, use 'manual' instead",
DeprecationWarning,
)
mapper.load(_log=False)

return result

Expand Down
14 changes: 0 additions & 14 deletions datafiles/mapper.py
Expand Up @@ -26,8 +26,6 @@ def __init__(
pattern: Optional[str],
manual: bool,
defaults: bool,
auto_load: bool,
auto_save: bool,
infer: bool,
root: Optional[Mapper] = None,
) -> None:
Expand All @@ -38,8 +36,6 @@ def __init__(
self._pattern = pattern
self._manual = manual
self.defaults = defaults
self._auto_load = auto_load
self._auto_save = auto_save
self._infer = infer
self._last_load = 0.0
self._last_data: Dict = {}
Expand Down Expand Up @@ -96,14 +92,6 @@ def modified(self, modified: bool):
def manual(self) -> bool:
return self._root.manual if self._root else self._manual

@property
def auto_load(self) -> bool:
return self._root.auto_load if self._root else self._auto_load

@property
def auto_save(self) -> bool:
return self._root.auto_save if self._root else self._auto_save

@property
def infer(self) -> bool:
return self._root.infer if self._root else self._infer
Expand Down Expand Up @@ -298,8 +286,6 @@ def create_mapper(obj, root=None) -> Mapper:
pattern=pattern,
manual=meta.datafile_manual,
defaults=meta.datafile_defaults,
auto_load=meta.datafile_auto_load,
auto_save=meta.datafile_auto_save,
infer=meta.datafile_infer,
root=root,
)
14 changes: 1 addition & 13 deletions datafiles/model.py
Expand Up @@ -43,15 +43,7 @@ def objects(cls) -> Manager: # pylint: disable=no-self-argument


def create_model(
cls,
*,
attrs=None,
manual=None,
pattern=None,
defaults=None,
auto_load=None,
auto_save=None,
infer=None,
cls, *, attrs=None, manual=None, pattern=None, defaults=None, infer=None
):
"""Patch model attributes on to an existing dataclass."""
log.debug(f'Converting {cls} to a datafile model')
Expand All @@ -72,10 +64,6 @@ def create_model(
m.datafile_manual = manual
if not hasattr(cls, 'Meta') and defaults is not None:
m.datafile_defaults = defaults
if not hasattr(cls, 'Meta') and auto_load is not None:
m.datafile_auto_load = auto_load
if not hasattr(cls, 'Meta') and auto_save is not None:
m.datafile_auto_save = auto_save
if not hasattr(cls, 'Meta') and infer is not None:
m.datafile_infer = infer

Expand Down
2 changes: 0 additions & 2 deletions datafiles/tests/test_mapper.py
Expand Up @@ -30,8 +30,6 @@ def mapper():
pattern=None,
manual=Meta.datafile_manual,
defaults=Meta.datafile_defaults,
auto_load=Meta.datafile_auto_load,
auto_save=Meta.datafile_auto_save,
infer=Meta.datafile_infer,
)

Expand Down
2 changes: 1 addition & 1 deletion tests/test_automatic_attributes.py
Expand Up @@ -5,7 +5,7 @@
from datafiles.utils import logbreak


@datafile('../tmp/{self.name}.yml', infer=True, auto_save=False)
@datafile('../tmp/{self.name}.yml', infer=True)
class Sample:
name: str

Expand Down
2 changes: 1 addition & 1 deletion tests/test_loading.py
Expand Up @@ -271,7 +271,7 @@ class A:
level: int = 1
b: B = B()

@datafile('../tmp/sample.toml', defaults=True, auto_save=False)
@datafile('../tmp/sample.toml', defaults=True)
class Top:
level: int = 0
a: A = A()
Expand Down

0 comments on commit f12fd70

Please sign in to comment.