]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Pick target depending on preconditions
authorjohnslavik <bartosz@ilikepython.com>
Sun, 7 Dec 2025 13:26:18 +0000 (14:26 +0100)
committerjohnslavik <bartosz@ilikepython.com>
Sun, 7 Dec 2025 13:26:46 +0000 (14:26 +0100)
Lib/pdb.py
Misc/NEWS.d/next/Library/2025-12-07-02-36-24.gh-issue-142315.02o5E_.rst [new file with mode: 0644]

index 1506e3d4709817011509326dd5dc5bcdd1731895..5729624ba139ed9307848b4514fb46e023e73bc6 100644 (file)
@@ -183,15 +183,17 @@ class _ExecutableTarget:
 
 class _ScriptTarget(_ExecutableTarget):
     def __init__(self, target):
-        self._target = os.path.realpath(target)
-
-        if not os.path.exists(self._target):
+        if not os.path.exists(target):
             print(f'Error: {target} does not exist')
             sys.exit(1)
-        if os.path.isdir(self._target):
+        if os.path.isdir(target):
             print(f'Error: {target} is a directory')
             sys.exit(1)
 
+        # Be careful with realpath to support pseudofilesystems (GH-142315).
+        realpath = os.path.realpath(target)
+        self._target = realpath if os.path.exists(realpath) else target
+
         # If safe_path(-P) is not set, sys.path[0] is the directory
         # of pdb, and we should replace it with the directory of the script
         if not sys.flags.safe_path:
diff --git a/Misc/NEWS.d/next/Library/2025-12-07-02-36-24.gh-issue-142315.02o5E_.rst b/Misc/NEWS.d/next/Library/2025-12-07-02-36-24.gh-issue-142315.02o5E_.rst
new file mode 100644 (file)
index 0000000..b3941fd
--- /dev/null
@@ -0,0 +1 @@
+Pdb can run scripts from pseudofiles. Patch by Bartosz SÅ‚awecki.