selfprivacy-rest-api/selfprivacy_api/services/generic_size_counter.py
dettlaff 848befe3f1 feat: Use proper logging (#154)
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/154
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-10-23 14:38:01 +03:00

26 lines
635 B
Python

"""Generic size counter using pathlib"""
import pathlib
import logging
logger = logging.getLogger(__name__)
def get_storage_usage(path: str) -> int:
"""
Calculate the real storage usage of path and all subdirectories.
Calculate using pathlib.
Do not follow symlinks.
"""
storage_usage = 0
for iter_path in pathlib.Path(path).rglob("**/*"):
if iter_path.is_dir():
continue
try:
storage_usage += iter_path.stat().st_size
except FileNotFoundError:
pass
except Exception as error:
logging.error(error)
return storage_usage