summaryrefslogtreecommitdiffstats
path: root/Lib/posixpath.py
Commit message (Collapse)AuthorAgeFilesLines
* GH-118289: Fix handling of non-directories in `posixpath.realpath()` (#120127)Barney Gale2024-11-131-4/+14
| | | | | | | 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.
* pathlib ABCs: remove duplicate `realpath()` implementation. (#119178)Barney Gale2024-06-051-11/+29
| | | | | | | | | 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>
* gh-118263: Add additional arguments to path_t (Argument Clinic type) in ↵Nice Zombies2024-05-241-36/+5
| | | | posixmodule (GH-118355)
* GH-118447: Fix handling of unreadable symlinks in `os.path.realpath()` (#118489)Barney Gale2024-05-181-13/+13
| | | Co-authored-by: Nice Zombies <nineteendo19d0@gmail.com>
* gh-118119: Re-use `sep` in `posixpath.expanduser()` (GH-118120)Nice Zombies2024-05-071-5/+2
|
* gh-117607: Speedup os.path.relpath() (GH-117608)Nice Zombies2024-05-011-3/+5
|
* gh-102511: Speed up os.path.splitroot() with native helpers (GH-118089)Nice Zombies2024-04-251-27/+47
|
* gh-117641: Improve the perfornance of posixpath.commonpath() (#117652)Nice Zombies2024-04-181-1/+1
|
* gh-117394: Speed up os.path.ismount() on Posix (GH-117447)Serhiy Storchaka2024-04-171-3/+6
| | | | It is now 2-3 times faster if the user has permissions.
* gh-117503: Fix support of non-ASCII user names in posixpath.expanduser() ↵Serhiy Storchaka2024-04-171-1/+1
| | | | | (GH-117504) They are now supported in bytes paths as well as in string paths.
* gh-117636: Remove redundant type check in `os.path.join()` (#117638)Nice Zombies2024-04-141-4/+2
|
* GH-117546: Fix symlink resolution in `os.path.realpath('loop/../link')` ↵Barney Gale2024-04-101-13/+2
| | | | | | (#117568) Continue resolving symlink targets after encountering a symlink loop, which matches coreutils `realpath` behaviour.
* gh-117648: Improve performance of os.join (#117654)Nice Zombies2024-04-091-1/+2
| | | | | Replace map() with a method call in the loop body. Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com>
* gh-117584: Raise TypeError for non-paths in posixpath.relpath() (GH-117585)Nice Zombies2024-04-071-1/+1
|
* GH-114847: Speed up `posixpath.realpath()` (#114848)Barney Gale2024-04-051-34/+54
| | | | | | | | | | | 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>
* gh-117349: Micro-optimize a few `os.path` functions (#117350)Nice Zombies2024-04-021-23/+20
| | | | | 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>
* gh-117114: Make os.path.isdevdrive available on all platforms (GH-117115)Nice Zombies2024-03-251-21/+1
|
* gh-114709: Fix exceptions raised by posixpath.commonpath (#114710)Sebastian Rittau2024-02-181-1/+2
| | | | | | Fix the exceptions raised by posixpath.commonpath Raise ValueError, not IndexError when passed an empty iterable. Raise TypeError, not ValueError when passed None.
* gh-101196: Make isdir/isfile/exists faster on Windows (GH-101324)Michael Droettboom2023-02-081-12/+0
| | | Co-authored-by: Eryk Sun <eryksun@gmail.com>
* gh-101000: Add os.path.splitroot() (#101002)Barney Gale2023-01-271-11/+32
| | | | Co-authored-by: Eryk Sun <eryksun@gmail.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-99547: Add isjunction methods for checking if a path is a junction (GH-99548)Charles Machalow2022-11-221-1/+11
|
* gh-96192: fix os.ismount() to use a path that is str or bytes (#96194)Christoph Anton Mitterer2022-11-141-0/+1
| | | | | 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>
* gh-91838: Resolve more HTTP links which redirect to HTTPS (GH-95650)Serhiy Storchaka2022-08-081-1/+1
|
* bpo-46933: Make pwd module optional (GH-31700)Christian Heimes2022-03-071-2/+10
| | | Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
* bpo-45582: Port getpath[p].c to Python (GH-29041)Steve Dower2021-12-031-37/+49
| | | | | 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.
* bpo-26329: update os.path.normpath documentation (GH-20138)Furkan Onder2021-07-121-0/+1
| | | | | | | | | * bpo-26329: update os.path.normpath documentation * Update os.path.rst * Update posixpath.py * update Pathname Resolution note
* bpo-43757: Make pathlib use os.path.realpath() to resolve symlinks in a path ↵Barney Gale2021-04-281-7/+19
| | | | | (GH-25264) Also adds a new "strict" argument to realpath() to avoid changing the default behaviour of pathlib while sharing the implementation.
* bpo-31904: posixpath.expanduser() handles None user home on VxWorks (GH-23530)pxinwr2020-12-171-0/+3
|
* bpo-35755: Remove current directory from posixpath.defpath (GH-11586)Victor Stinner2019-04-171-1/+1
| | | Document the change in a NEWS entry of the Security category.
* bpo-30427: eliminate redundant type checks in os.path.normcase() (GH-1712)Wolfgang Maier2019-03-281-5/+1
| | | https://bugs.python.org/issue30427
* bpo-35471: Remove the macpath module (GH-11129)Victor Stinner2018-12-141-2/+2
| | | | Python 2.4 dropped MacOS 9 support. The macpath module was deprecated in Python 3.7. This change removes it.
* bpo-10496: posixpath.expanduser() catchs pwd.getpwuid() error (GH-10919)Victor Stinner2018-12-051-1/+8
| | | | | | | * 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.
* bpo-33721: Make some os.path functions and pathlib.Path methods be tolerant ↵Serhiy Storchaka2018-09-181-4/+4
| | | | | | | | | | 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.
* bpo-31802: Fix importing native path module before importing os. (#4017)Serhiy Storchaka2018-01-071-10/+12
|
* Issue #26027, #27524: Add PEP 519/__fspath__() support to os andBrett Cannon2016-08-261-1/+18
| | | | | | os.path. Thanks to Jelle Zijlstra for the initial patch against posixmodule.c.
* #2466: ismount now recognizes mount points user can't access.R David Murray2016-08-191-0/+1
| | | | | Patch by Robin Roth, reviewed by Serhiy Storchaka, comment wording tweaked by me.
* Fix typos in code comments and documentationMartin Panter2016-04-161-1/+1
|
* Issue #23780: Improved error message in os.path.join() with single argument.Serhiy Storchaka2015-05-191-0/+2
| | | | Idea by R. David Murray.
* Issue #10395: Added os.path.commonpath(). Implemented in posixpath and ntpath.Serhiy Storchaka2015-03-311-1/+44
| | | | Based on patch by Rafik Draoui.
* Fixed tests on Windows for issue #21883.Serhiy Storchaka2014-10-041-1/+1
|
* Issue #21883: os.path.join() and os.path.relpath() now raise a TypeError withSerhiy Storchaka2014-10-041-17/+16
| | | | more helpful error message for unsupported or mismatched types of arguments.
* Issue #22034: Improve handling of wrong argument types in posixpath.join().Serhiy Storchaka2014-08-241-8/+7
|\
| * Issue #22034: Got rid of misleading error message for bytearray arguments inSerhiy Storchaka2014-08-241-4/+2
|/ | | | posixpath.join().
* Issue #3485: remove misleading commentNed Deily2014-06-181-1/+0
|
* Fixed typo in previous commit (issue #6815).Serhiy Storchaka2014-02-131-1/+1
|\
| * Fixed typo in previous commit (issue #6815).Serhiy Storchaka2014-02-131-1/+1
| |
* | Issue #6815: os.path.expandvars() now supports non-ASCII environmentSerhiy Storchaka2014-02-131-8/+10
|\ \ | |/ | | | | variables names and values.
| * Issue #6815: os.path.expandvars() now supports non-ASCII environmentSerhiy Storchaka2014-02-131-8/+10
| | | | | | | | variables names and values.
* | Add in a comment that was removed in 240adc564539 (requested by Victor Stinner)Brian Curtin2013-07-231-0/+1
| |
* | Fix #18530. Remove extra stat call from posixpath.ismountBrian Curtin2013-07-221-8/+14
| |