X7ROOT File Manager
Current Path:
/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/utils
opt
/
imunify360
/
venv
/
lib
/
python3.11
/
site-packages
/
defence360agent
/
utils
/
📁
..
📄
__init__.py
(52.55 KB)
📁
__pycache__
📄
_shutil.py
(795 B)
📄
antivirus_mode.py
(497 B)
📄
async_utils.py
(718 B)
📄
benchmark.py
(538 B)
📄
buffer.py
(1.24 KB)
📄
check_db.py
(7.35 KB)
📄
check_lock.py
(636 B)
📄
cli.py
(7.08 KB)
📄
common.py
(14.41 KB)
📄
config.py
(999 B)
📄
cronjob.py
(902 B)
📄
doctor.py
(1 KB)
📄
hyperscan.py
(149 B)
📄
importer.py
(2.67 KB)
📄
ipecho.py
(1.9 KB)
📄
json.py
(953 B)
📄
kwconfig.py
(1.56 KB)
📄
parsers.py
(11.12 KB)
📄
resource_limits.py
(2.29 KB)
📄
safe_fileops.py
(7.99 KB)
📄
safe_sequence.py
(363 B)
📄
serialization.py
(1.72 KB)
📄
sshutil.py
(7.94 KB)
📄
subprocess.py
(1.53 KB)
📄
support.py
(5.2 KB)
📄
threads.py
(1005 B)
📄
validate.py
(4.27 KB)
📄
whmcs.py
(7.6 KB)
📄
wordpress_mu_plugin.py
(1.41 KB)
Editing: serialization.py
import functools import logging import pickle from asyncio import iscoroutinefunction from typing import Union, Callable logger = logging.getLogger(__name__) def _dump(path, obj): # separate function to mock in tests with open(path, "wb") as w: pickle.dump(obj, w) def serialize_attr(*, path: str, attr: str): """ Make decorator to serialize an object or object's attribute :param path: path to file to serialize into :param attr: attribute name to serialize """ def decorator(f): @functools.wraps(f) def wrapper(self, *args, **kwargs): result = f(self, *args, **kwargs) obj = getattr(self, attr) logger.debug("Write %r to %r", obj, path) _dump(path, obj) return result @functools.wraps(f) async def async_wrapper(self, *args, **kwargs): result = await f(self, *args, **kwargs) obj = getattr(self, attr) logger.debug("Write %r to %r", obj, path) _dump(path, obj) return result if iscoroutinefunction(f): return async_wrapper return wrapper return decorator def unserialize(*, path: str, fallback: Union[Callable, object] = None): """ Restore an object from file :param path: path to read from :param fallback: return or call it if unserialization fails :return: """ try: with open(path, "rb") as r: return pickle.load(r) except FileNotFoundError: logger.warning("Can't find %s to unserialize", path) except Exception as e: logger.error("Unserialize failed with %r. Returning an fallback", e) return fallback() if callable(fallback) else fallback
Upload File
Create Folder