From 6c8c97d0bf3e63ab170226dd2361df85a0c1df8a Mon Sep 17 00:00:00 2001 From: Oliver Davey Date: Mon, 12 May 2025 11:34:24 +0000 Subject: [PATCH 1/3] Sanitise project path on windows for doc build --- tests/scrape_images.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/scrape_images.py b/tests/scrape_images.py index 1f57b6aa..62edfe41 100644 --- a/tests/scrape_images.py +++ b/tests/scrape_images.py @@ -13,7 +13,8 @@ class MachineScraper: def __init__(self, project_root): self.project_root = project_root - self.re_machine_module_name = re.compile(f"{self.project_root}/(.*).py$") + sanitized_path = self.project_root.replace("\\", "\\\\") + self.re_machine_module_name = re.compile(f"{sanitized_path}/(.*).py$") self.seen = set() def __repr__(self): From aa9290e538046fcac79c5e4487c4725016bc1b1a Mon Sep 17 00:00:00 2001 From: Oliver Davey Date: Mon, 30 Jun 2025 16:10:58 +0000 Subject: [PATCH 2/3] MachineScraper now uses regex escape function for robustness --- tests/scrape_images.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/scrape_images.py b/tests/scrape_images.py index 62edfe41..5438334f 100644 --- a/tests/scrape_images.py +++ b/tests/scrape_images.py @@ -1,3 +1,4 @@ +import os import re from statemachine.contrib.diagram import DotGraphMachine @@ -13,8 +14,8 @@ class MachineScraper: def __init__(self, project_root): self.project_root = project_root - sanitized_path = self.project_root.replace("\\", "\\\\") - self.re_machine_module_name = re.compile(f"{sanitized_path}/(.*).py$") + sanitized_path = re.escape(os.path.abspath(self.project_root)) + self.re_machine_module_name = re.compile(f"{sanitized_path}[\\/](.*)\\.py$") self.seen = set() def __repr__(self): From 430a6cbeb29f870a5f11d2db3e8511d973eabc86 Mon Sep 17 00:00:00 2001 From: Oliver Davey Date: Tue, 1 Jul 2025 08:01:41 +0000 Subject: [PATCH 3/3] don't escape the forward slash --- tests/scrape_images.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scrape_images.py b/tests/scrape_images.py index 5438334f..2547b536 100644 --- a/tests/scrape_images.py +++ b/tests/scrape_images.py @@ -15,7 +15,7 @@ class MachineScraper: def __init__(self, project_root): self.project_root = project_root sanitized_path = re.escape(os.path.abspath(self.project_root)) - self.re_machine_module_name = re.compile(f"{sanitized_path}[\\/](.*)\\.py$") + self.re_machine_module_name = re.compile(f"{sanitized_path}/(.*)\\.py$") self.seen = set() def __repr__(self):