Source code for saveable_objects.checkpointing._checkpointing
1from typing import Tuple
2
3from .. import SaveableObject
4
[docs]
5def failed(load_attempt: SaveableObject | bool | Tuple[SaveableObject, bool]) -> bool:
6 """Determines if a :class:`SaveableObject <saveable_objects.SaveableObject>`
7 :meth:`.load() <saveable_objects.SaveableObject.load>`,
8 :meth:`.tryload() <saveable_objects.SaveableObject.tryload>`,
9 :meth:`.loadif() <saveable_objects.SaveableObject.loadif>`, or
10 :meth:`.loadifparams() <saveable_objects.SaveableObject.loadifparams>`
11 attempt fails.
12
13 Parameters
14 ----------
15 load_attempt : SaveableObject | bool | (SaveableObject, bool)
16 The output of :meth:`load() <saveable_objects.SaveableObject.load>`,
17 :meth:`tryload() <saveable_objects.SaveableObject.tryload>`,
18 :meth:`loadif() <saveable_objects.SaveableObject.loadif>`, or
19 :meth:`loadifparams() <saveable_objects.SaveableObject.loadifparams>`.
20
21 Returns
22 -------
23 bool
24 Returns ``True`` is the the `load_attempt` failed, else ``False``.
25
26 Notes
27 -----
28 Example use:
29
30 .. code-block:: python
31
32 if failed(obj := SaveableObject.loadif(*args, path="filename.pkl", **kwargs)):
33 ... # code that generates obj
34 ... # code that uses obj
35 """
36 try:
37 return not load_attempt[1]
38 except:
39 return not load_attempt
40
[docs]
41def succeeded(load_attempt: SaveableObject | bool | Tuple[SaveableObject, bool]) -> bool:
42 """Determines if a :class:`SaveableObject <saveable_objects.SaveableObject>`
43 :meth:`.load() <saveable_objects.SaveableObject.load>`,
44 :meth:`.tryload() <saveable_objects.SaveableObject.tryload>`,
45 :meth:`.loadif() <saveable_objects.SaveableObject.loadif>`, or
46 :meth:`.loadifparams() <saveable_objects.SaveableObject.loadifparams>`
47 attempt succeeds.
48
49 Parameters
50 ----------
51 load_attempt : SaveableObject | bool | (SaveableObject, bool)
52 The output of :meth:`load() <saveable_objects.SaveableObject.load>`,
53 :meth:`tryload() <saveable_objects.SaveableObject.tryload>`,
54 :meth:`loadif() <saveable_objects.SaveableObject.loadif>`, or
55 :meth:`loadifparams() <saveable_objects.SaveableObject.loadifparams>`.
56
57 Returns
58 -------
59 bool
60 Returns ``True`` is the the `load_attempt` succeeded, else ``False``.
61
62 Notes
63 -----
64 Example use:
65
66 .. code-block:: python
67
68 if succeeded(obj := SaveableObject.loadif(*args, path="filename.pkl", **kwargs)):
69 ... # code that uses a successfully loaded obj
70 else:
71 ... # code to run if obj failed to load
72 """
73 return not failed(load_attempt)