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
Serhiy Storchaka
dbb101909d
Issue #6815 : os.path.expandvars() now supports non-ASCII environment
...
variables names and values.
2014-02-13 10:13:53 +02:00
Brian Curtin
a3852ff33a
Add in a comment that was removed in 240adc564539 (requested by Victor Stinner)
2013-07-22 19:05:48 -05:00
Brian Curtin
06f6fbffd4
Fix #18530 . Remove extra stat call from posixpath.ismount
2013-07-22 13:07:52 -05:00
Serhiy Storchaka
2a47954895
Fix posixpath.realpath() for multiple pardirs (fixes issue #6975 ).
2013-02-18 12:22:05 +02:00