Updated doc strings and added type hints
This commit is contained in:
		| @@ -1,31 +1,33 @@ | ||||
| import os | ||||
| import numpy as np | ||||
| import functools | ||||
| import inspect | ||||
| from typing import Optional, Callable | ||||
|  | ||||
| import numpy as np | ||||
| from .checksum import checksum | ||||
| from .logging import logger | ||||
|  | ||||
| autosave_directory = None | ||||
| autosave_directory: Optional[str] = None | ||||
| load_autosave_data = False | ||||
| verbose_print = True | ||||
| user_autosave_directory = os.path.join(os.environ["HOME"], ".mdevaluate/autosave") | ||||
|  | ||||
|  | ||||
| def notify(msg): | ||||
| def notify(msg: str): | ||||
|     if verbose_print: | ||||
|         logger.info(msg) | ||||
|     else: | ||||
|         logger.debug(msg) | ||||
|  | ||||
|  | ||||
| def enable(dir, load_data=True, verbose=True): | ||||
| def enable(dir: str, load_data: bool = True, verbose: bool = True): | ||||
|     """ | ||||
|     Enable auto saving results of functions decorated with :func:`autosave_data`. | ||||
|     Enable auto saving results of functions decorated with: func: `autosave_data`. | ||||
|  | ||||
|     Args: | ||||
|         dir: Directory where the data should be saved. | ||||
|         load_data (opt., bool): If data should also be loaded. | ||||
|         verbose (opt., bool): If autosave should be verbose. | ||||
|     """ | ||||
|     global autosave_directory, load_autosave_data, verbose_print | ||||
|     verbose_print = verbose | ||||
| @@ -79,9 +81,8 @@ def get_directory(reader): | ||||
|     if not os.access(savedir, os.W_OK): | ||||
|         savedir = os.path.join(user_autosave_directory, savedir.lstrip("/")) | ||||
|         logger.info( | ||||
|             "Switched autosave directory to {}, since original location is not writeable.".format( | ||||
|                 savedir | ||||
|             ) | ||||
|             "Switched autosave directory to {}, " | ||||
|             "since original location is not writeable.".format(savedir) | ||||
|         ) | ||||
|     os.makedirs(savedir, exist_ok=True) | ||||
|     return savedir | ||||
| @@ -140,20 +141,24 @@ def load_data(filename): | ||||
|         return data | ||||
|  | ||||
|  | ||||
| def autosave_data(nargs, kwargs_keys=None, version=None): | ||||
| def autosave_data( | ||||
|     nargs: int, kwargs_keys: Optional[list[str]] = None, version: Optional[int] = None | ||||
| ) -> Callable: | ||||
|     """ | ||||
|     Enable autosaving of results for a function. | ||||
|  | ||||
|     Args: | ||||
|         nargs: Number of args which are relevant for the calculation. | ||||
|         kwargs_keys (opt.): List of keyword arguments which are relevant for the calculation. | ||||
|         kwargs_keys (opt.): | ||||
|             List of keyword arguments which are relevant for the calculation. | ||||
|         version (opt.): | ||||
|             An optional version number of the decorated function, which replaces the checksum of | ||||
|             the function code, hence the checksum does not depend on the function code. | ||||
|             An optional version number of the decorated function, which replaces the | ||||
|             checksum of the function code, hence the checksum does not depend on the | ||||
|             function code. | ||||
|     """ | ||||
|  | ||||
|     def decorator_function(function): | ||||
|         # make sure too include names of positional arguments in kwargs_keys, | ||||
|         # make sure to include names of positional arguments in kwargs_keys, | ||||
|         # sice otherwise they will be ignored if passed via keyword. | ||||
|         # nonlocal kwargs_keys | ||||
|         posargs_keys = list(inspect.signature(function).parameters)[:nargs] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user