aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/pythonjsonlogger/utils.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/pythonjsonlogger/utils.py')
-rw-r--r--.venv/lib/python3.12/site-packages/pythonjsonlogger/utils.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pythonjsonlogger/utils.py b/.venv/lib/python3.12/site-packages/pythonjsonlogger/utils.py
new file mode 100644
index 00000000..d810a130
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pythonjsonlogger/utils.py
@@ -0,0 +1,40 @@
+"""Utilities for Python JSON Logger"""
+
+### IMPORTS
+### ============================================================================
+## Future
+from __future__ import annotations
+
+## Standard Library
+import importlib.util
+
+## Installed
+
+## Application
+from .exception import MissingPackageError
+
+
+### FUNCTIONS
+### ============================================================================
+def package_is_available(
+ name: str, *, throw_error: bool = False, extras_name: str | None = None
+) -> bool:
+ """Determine if the given package is available for import.
+
+ Args:
+ name: Import name of the package to check.
+ throw_error: Throw an error if the package is unavailable.
+ extras_name: Extra dependency name to use in `throw_error`'s message.
+
+ Raises:
+ MissingPackageError: When `throw_error` is `True` and the return value would be `False`
+
+ Returns:
+ If the package is available for import.
+ """
+ available = importlib.util.find_spec(name) is not None
+
+ if not available and throw_error:
+ raise MissingPackageError(name, extras_name)
+
+ return available