Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								9d3b53c47f 
								
							 
						 
						
							
							
								
								gh-71189: Support all-but-last mode in os.path.realpath() (GH-117562)  
							
							
							
						 
						
							2025-07-30 10:19:19 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									sobolevn 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								99cdf1deb6 
								
							 
						 
						
							
							
								
								gh-136437: Make several functions in os.path pos-only ( #136949 )  
							
							
							
						 
						
							2025-07-23 14:56:02 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Łukasz Langa 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3612d8f517 
								
							 
						 
						
							
							
								
								gh-135034: Normalize link targets in tarfile, add os.path.realpath(strict='allow_missing') ( #135037 )  
							
							... 
							
							
							
							Addresses CVEs 2024-12718, 2025-4138, 2025-4330, and 2025-4517.
Signed-off-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> 
							
						 
						
							2025-06-03 12:42:11 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Barney Gale 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								fd4b5453df 
								
							 
						 
						
							
							
								
								GH-118289: Fix handling of non-directories in posixpath.realpath() ( #120127 )  
							
							... 
							
							
							
							In strict mode, raise `NotADirectoryError` if we encounter a non-directory
while we still have path parts left to process.
We use a `part_count` variable rather than `len(rest)` because the `rest`
stack also contains markers for unresolved symlinks. 
							
						 
						
							2024-11-13 22:59:32 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Barney Gale 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e83ce850f4 
								
							 
						 
						
							
							
								
								pathlib ABCs: remove duplicate realpath() implementation. ( #119178 )  
							
							... 
							
							
							
							Add private `posixpath._realpath()` function, which is a generic version of `realpath()` that can be parameterised with string tokens (`sep`, `curdir`, `pardir`) and query functions (`getcwd`, `lstat`, `readlink`). Also add support for limiting the number of symlink traversals.
In the private `pathlib._abc.PathBase` class, call `posixpath._realpath()` and remove our re-implementation of the same algorithm.
No change to any public APIs, either in `posixpath` or `pathlib`.
Co-authored-by: Nice Zombies <nineteendo19d0@gmail.com> 
							
						 
						
							2024-06-05 18:54:50 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								96b392df30 
								
							 
						 
						
							
							
								
								gh-118263: Add additional arguments to path_t (Argument Clinic type) in posixmodule (GH-118355)  
							
							
							
						 
						
							2024-05-24 19:04:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Barney Gale 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								caf6064a1b 
								
							 
						 
						
							
							
								
								GH-118447: Fix handling of unreadable symlinks in os.path.realpath() ( #118489 )  
							
							... 
							
							
							
							Co-authored-by: Nice Zombies <nineteendo19d0@gmail.com> 
							
						 
						
							2024-05-18 22:40:51 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								6f768b71ba 
								
							 
						 
						
							
							
								
								gh-118119: Re-use sep in posixpath.expanduser() (GH-118120)  
							
							
							
						 
						
							2024-05-07 12:50:40 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a7711a2a4e 
								
							 
						 
						
							
							
								
								gh-117607: Speedup os.path.relpath() (GH-117608)  
							
							
							
						 
						
							2024-05-01 22:44:55 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								10bb90ed49 
								
							 
						 
						
							
							
								
								gh-102511: Speed up os.path.splitroot() with native helpers (GH-118089)  
							
							
							
						 
						
							2024-04-25 10:07:38 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								b848b944bb 
								
							 
						 
						
							
							
								
								gh-117641: Improve the perfornance of posixpath.commonpath() ( #117652 )  
							
							
							
						 
						
							2024-04-18 09:26:34 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4e502a4997 
								
							 
						 
						
							
							
								
								gh-117394: Speed up os.path.ismount() on Posix (GH-117447)  
							
							... 
							
							
							
							It is now 2-3 times faster if the user has permissions. 
							
						 
						
							2024-04-17 12:58:19 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								51132da0c4 
								
							 
						 
						
							
							
								
								gh-117503: Fix support of non-ASCII user names in posixpath.expanduser() (GH-117504)  
							
							... 
							
							
							
							They are now supported in bytes paths as well as in string paths. 
							
						 
						
							2024-04-17 12:53:40 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								9ee94d1391 
								
							 
						 
						
							
							
								
								gh-117636: Remove redundant type check in os.path.join() ( #117638 )  
							
							
							
						 
						
							2024-04-14 14:04:14 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Barney Gale 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								630df37116 
								
							 
						 
						
							
							
								
								GH-117546: Fix symlink resolution in os.path.realpath('loop/../link') ( #117568 )  
							
							... 
							
							
							
							Continue resolving symlink targets after encountering a symlink loop, which
matches coreutils `realpath` behaviour. 
							
						 
						
							2024-04-10 18:17:18 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								99852d9e65 
								
							 
						 
						
							
							
								
								gh-117648: Improve performance of os.join ( #117654 )  
							
							... 
							
							
							
							Replace map() with a method call in the loop body.
Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com> 
							
						 
						
							2024-04-09 10:27:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								733e56ef96 
								
							 
						 
						
							
							
								
								gh-117584: Raise TypeError for non-paths in posixpath.relpath() (GH-117585)  
							
							
							
						 
						
							2024-04-07 12:00:08 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Barney Gale 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								abfa16b44b 
								
							 
						 
						
							
							
								
								GH-114847: Speed up posixpath.realpath() ( #114848 )  
							
							... 
							
							
							
							Apply the following optimizations to `posixpath.realpath()`:
- Remove use of recursion
- Construct child paths directly rather than using `join()`
- Use `os.getcwd[b]()` rather than `abspath()`
- Use `startswith(sep)` rather than `isabs()`
- Use slicing rather than `split()`
Co-authored-by: Petr Viktorin <encukou@gmail.com> 
							
						 
						
							2024-04-05 12:35:01 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								cae4cdd07d 
								
							 
						 
						
							
							
								
								gh-117349: Micro-optimize a few os.path functions ( #117350 )  
							
							... 
							
							
							
							Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Barney Gale <barney.gale@gmail.com>
Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com> 
							
						 
						
							2024-04-02 21:32:35 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nice Zombies 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0821923aa9 
								
							 
						 
						
							
							
								
								gh-117114: Make os.path.isdevdrive available on all platforms (GH-117115)  
							
							
							
						 
						
							2024-03-25 22:55:11 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sebastian Rittau 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								371c970886 
								
							 
						 
						
							
							
								
								gh-114709: Fix exceptions raised by posixpath.commonpath ( #114710 )  
							
							... 
							
							
							
							Fix the exceptions raised by posixpath.commonpath
Raise ValueError, not IndexError when passed an empty iterable. Raise
TypeError, not ValueError when passed None. 
							
						 
						
							2024-02-18 00:24:58 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Michael Droettboom 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								86ebd5c3fa 
								
							 
						 
						
							
							
								
								gh-101196: Make isdir/isfile/exists faster on Windows (GH-101324)  
							
							... 
							
							
							
							Co-authored-by: Eryk Sun <eryksun@gmail.com> 
							
						 
						
							2023-02-08 14:34:24 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Barney Gale 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e5b08ddddf 
								
							 
						 
						
							
							
								
								gh-101000: Add os.path.splitroot() ( #101002 )  
							
							... 
							
							
							
							Co-authored-by: Eryk Sun <eryksun@gmail.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> 
							
						 
						
							2023-01-27 00:28:27 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Charles Machalow 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								1b2de89bce 
								
							 
						 
						
							
							
								
								gh-99547: Add isjunction methods for checking if a path is a junction (GH-99548)  
							
							
							
						 
						
							2022-11-22 17:19:34 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Christoph Anton Mitterer 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								367f552129 
								
							 
						 
						
							
							
								
								gh-96192: fix os.ismount() to use a path that is str or bytes ( #96194 )  
							
							... 
							
							
							
							Signed-off-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.name>
Co-authored-by: Eryk Sun <eryksun@gmail.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> 
							
						 
						
							2022-11-13 20:12:32 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								cc9160a29b 
								
							 
						 
						
							
							
								
								gh-91838: Resolve more HTTP links which redirect to HTTPS (GH-95650)  
							
							
							
						 
						
							2022-08-08 14:00:17 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Christian Heimes 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ca9689f8da 
								
							 
						 
						
							
							
								
								bpo-46933: Make pwd module optional (GH-31700)  
							
							... 
							
							
							
							Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no> 
							
						 
						
							2022-03-07 13:36:47 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Steve Dower 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								99fcf15052 
								
							 
						 
						
							
							
								
								bpo-45582: Port getpath[p].c to Python (GH-29041)  
							
							... 
							
							
							
							The getpath.py file is frozen at build time and executed as code over a namespace. It is never imported, nor is it meant to be importable or reusable. However, it should be easier to read, modify, and patch than the previous code.
This commit attempts to preserve every previously tested quirk, but these may be changed in the future to better align platforms. 
							
						 
						
							2021-12-03 00:08:42 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Furkan Onder 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								66c5853406 
								
							 
						 
						
							
							
								
								bpo-26329: update os.path.normpath documentation (GH-20138)  
							
							... 
							
							
							
							* bpo-26329: update os.path.normpath documentation
* Update os.path.rst
* Update posixpath.py
* update Pathname Resolution note 
							
						 
						
							2021-07-12 09:48:01 -03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Barney Gale 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								baecfbd849 
								
							 
						 
						
							
							
								
								bpo-43757: Make pathlib use os.path.realpath() to resolve symlinks in a path (GH-25264)  
							
							... 
							
							
							
							Also adds a new "strict" argument to realpath() to avoid changing the default behaviour of pathlib while sharing the implementation. 
							
						 
						
							2021-04-28 16:50:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									pxinwr 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								75dabfe7a8 
								
							 
						 
						
							
							
								
								bpo-31904: posixpath.expanduser() handles None user home on VxWorks (GH-23530)  
							
							
							
						 
						
							2020-12-17 20:22:29 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Victor Stinner 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2c4c02f8a8 
								
							 
						 
						
							
							
								
								bpo-35755: Remove current directory from posixpath.defpath (GH-11586)  
							
							... 
							
							
							
							Document the change in a NEWS entry of the Security category. 
							
						 
						
							2019-04-17 17:05:30 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Wolfgang Maier 
								
							 
						 
						
							
							
							
							
								
							
							
								74510e2a57 
								
							 
						 
						
							
							
								
								bpo-30427: eliminate redundant type checks in os.path.normcase() (GH-1712)  
							
							... 
							
							
							
							https://bugs.python.org/issue30427  
						
							2019-03-28 14:47:18 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Victor Stinner 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								d7538dd5e3 
								
							 
						 
						
							
							
								
								bpo-35471: Remove the macpath module (GH-11129)  
							
							... 
							
							
							
							Python 2.4 dropped MacOS 9 support. The macpath module was deprecated
in Python 3.7. This change removes it. 
							
						 
						
							2018-12-14 13:37:26 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Victor Stinner 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f2f4555d82 
								
							 
						 
						
							
							
								
								bpo-10496: posixpath.expanduser() catchs pwd.getpwuid() error (GH-10919)  
							
							... 
							
							
							
							* posixpath.expanduser() now returns the input path unchanged if
  the HOME environment variable is not set and pwd.getpwuid() raises
  KeyError (the current user identifier doesn't exist in the password
  database).
* Add test_no_home_directory() to test_site. 
							
						 
						
							2018-12-05 16:49:35 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0185f34ddc 
								
							 
						 
						
							
							
								
								bpo-33721: Make some os.path functions and pathlib.Path methods be tolerant to invalid paths.  ( #7695 )  
							
							... 
							
							
							
							Such functions as os.path.exists(), os.path.lexists(), os.path.isdir(),
os.path.isfile(), os.path.islink(), and os.path.ismount() now return False
instead of raising ValueError or its subclasses UnicodeEncodeError
and UnicodeDecodeError for paths that contain characters or bytes
unrepresentative at the OS level. 
							
						 
						
							2018-09-18 11:28:51 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3460198f6b 
								
							 
						 
						
							
							
								
								bpo-31802: Fix importing native path module before importing os. ( #4017 )  
							
							
							
						 
						
							2018-01-07 17:54:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brett Cannon 
								
							 
						 
						
							
							
							
							
								
							
							
								3f9183b5ac 
								
							 
						 
						
							
							
								
								Issue  #26027 ,  #27524 : Add PEP 519/__fspath__() support to os and  
							
							... 
							
							
							
							os.path.
Thanks to Jelle Zijlstra for the initial patch against posixmodule.c. 
							
						 
						
							2016-08-26 14:44:48 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									R David Murray 
								
							 
						 
						
							
							
							
							
								
							
							
								750018b91a 
								
							 
						 
						
							
							
								
								#2466 : ismount now recognizes mount points user can't access.  
							
							... 
							
							
							
							Patch by Robin Roth, reviewed by Serhiy Storchaka, comment wording
tweaked by me. 
							
						 
						
							2016-08-18 21:27:48 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Panter 
								
							 
						 
						
							
							
							
							
								
							
							
								119e502277 
								
							 
						 
						
							
							
								
								Fix typos in code comments and documentation  
							
							
							
						 
						
							2016-04-16 09:28:57 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								5bfc03f430 
								
							 
						 
						
							
							
								
								Issue  #23780 : Improved error message in os.path.join() with single argument.  
							
							... 
							
							
							
							Idea by R. David Murray. 
							
						 
						
							2015-05-19 11:00:07 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								3822093143 
								
							 
						 
						
							
							
								
								Issue  #10395 : Added os.path.commonpath().  Implemented in posixpath and ntpath.  
							
							... 
							
							
							
							Based on patch by Rafik Draoui. 
							
						 
						
							2015-03-31 15:31:53 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								e4f47088af 
								
							 
						 
						
							
							
								
								Fixed tests on Windows for issue  #21883 .  
							
							
							
						 
						
							2014-10-04 16:09:02 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								3deeeb0c39 
								
							 
						 
						
							
							
								
								Issue  #21883 : os.path.join() and os.path.relpath() now raise a TypeError with  
							
							... 
							
							
							
							more helpful error message for unsupported or mismatched types of arguments. 
							
						 
						
							2014-10-04 14:58:43 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								1fa36268cf 
								
							 
						 
						
							
							
								
								Issue  #22034 : Improve handling of wrong argument types in posixpath.join().  
							
							
							
						 
						
							2014-08-24 12:23:36 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								549c1972f2 
								
							 
						 
						
							
							
								
								Issue  #22034 : Got rid of misleading error message for bytearray arguments in  
							
							... 
							
							
							
							posixpath.join(). 
							
						 
						
							2014-08-24 12:18:09 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ned Deily 
								
							 
						 
						
							
							
							
							
								
							
							
								845fd9aa44 
								
							 
						 
						
							
							
								
								Issue  #3485 : remove misleading comment  
							
							
							
						 
						
							2014-06-18 13:09:40 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								1392f68e0e 
								
							 
						 
						
							
							
								
								Fixed typo in previous commit (issue  #6815 ).  
							
							
							
						 
						
							2014-02-13 10:45:48 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								ffadbb7ee7 
								
							 
						 
						
							
							
								
								Fixed typo in previous commit (issue  #6815 ).  
							
							
							
						 
						
							2014-02-13 10:45:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								7dfaa27fdd 
								
							 
						 
						
							
							
								
								Issue  #6815 : os.path.expandvars() now supports non-ASCII environment  
							
							... 
							
							
							
							variables names and values. 
							
						 
						
							2014-02-13 10:14:48 +02:00