aboutsummaryrefslogtreecommitdiff
path: root/venv/lib/python3.8/site-packages/dash/fingerprint.py
diff options
context:
space:
mode:
Diffstat (limited to 'venv/lib/python3.8/site-packages/dash/fingerprint.py')
-rw-r--r--venv/lib/python3.8/site-packages/dash/fingerprint.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/venv/lib/python3.8/site-packages/dash/fingerprint.py b/venv/lib/python3.8/site-packages/dash/fingerprint.py
new file mode 100644
index 0000000..c384e0e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/dash/fingerprint.py
@@ -0,0 +1,25 @@
+import re
+
+cache_regex = re.compile(r"^v[\w-]+m[0-9a-fA-F]+$")
+version_clean = re.compile(r"[^\w-]")
+
+
+def build_fingerprint(path, version, hash_value):
+ path_parts = path.split("/")
+ filename, extension = path_parts[-1].split(".", 1)
+ file_path = "/".join(path_parts[:-1] + [filename])
+ v_str = re.sub(version_clean, "_", str(version))
+
+ return f"{file_path}.v{v_str}m{hash_value}.{extension}"
+
+
+def check_fingerprint(path):
+ path_parts = path.split("/")
+ name_parts = path_parts[-1].split(".")
+
+ # Check if the resource has a fingerprint
+ if len(name_parts) > 2 and cache_regex.match(name_parts[1]):
+ original_name = ".".join([name_parts[0]] + name_parts[2:])
+ return "/".join(path_parts[:-1] + [original_name]), True
+
+ return path, False