Updated doc strings and added type hints

This commit is contained in:
Sebastian Kloth 2023-12-26 11:33:59 +01:00
parent aca9ba0723
commit 8bad2861fa

View File

@ -3,6 +3,7 @@ import hashlib
from .logging import logger from .logging import logger
from types import ModuleType, FunctionType from types import ModuleType, FunctionType
import inspect import inspect
from typing import Iterable
import numpy as np import numpy as np
@ -11,7 +12,7 @@ import numpy as np
SALT = 42 SALT = 42
def version(version_nr, calls=[]): def version(version_nr: int, calls: Iterable = ()):
"""Function decorator that assigns a custom checksum to a function.""" """Function decorator that assigns a custom checksum to a function."""
def decorator(func): def decorator(func):
@ -27,7 +28,7 @@ def version(version_nr, calls=[]):
return decorator return decorator
def strip_comments(s): def strip_comments(s: str):
"""Strips comment lines and docstring from Python source string.""" """Strips comment lines and docstring from Python source string."""
o = "" o = ""
in_docstring = False in_docstring = False
@ -43,14 +44,15 @@ def checksum(*args, csum=None):
""" """
Calculate a checksum of any object, by sha1 hash. Calculate a checksum of any object, by sha1 hash.
Input for the hash are some salt bytes and the byte encoding of a string Inputs for the hash are some salt bytes and the byte encoding of a string
that depends on the object and its type: that depends on the object and its type:
- If a method __checksum__ is available, it's return value is converted to bytes - If a method __checksum__ is available, its return value is converted to bytes
- str or bytes are used as sha1 input directly - str or bytes are used as sha1 input directly
- modules use the __name__ attribute - modules use the __name__ attribute
- functions use the function code and any closures of the function - functions use the function code and any closures of the function
- functools.partial uses the checksum of the function and any arguments, that were defined - functools.partial uses the checksum of the function and any arguments, that were
defined
- numpy.ndarray uses bytes representation of the array (arr.tobytes()) - numpy.ndarray uses bytes representation of the array (arr.tobytes())
- Anything else is converted to a str - Anything else is converted to a str
""" """