Commit Graph

203 Commits

Author SHA1 Message Date
Victor Stinner 59c80889ff
Revert "bpo-38811: Check for presence of os.link method in pathlib. (GH-17170)" (#17219)
This reverts commit 111772fc27.
2019-11-18 12:26:37 +01:00
Toke Høiland-Jørgensen 111772fc27 bpo-38811: Check for presence of os.link method in pathlib. (GH-17170)
Fix also the Path.symplink() method implementation for the case when
symlinks are not supported.
2019-11-17 19:06:38 +02:00
Girts a01ba333af bpo-30618: add readlink to pathlib.Path (GH-8285)
This adds a "readlink" method to pathlib.Path objects that calls through
to os.readlink.


https://bugs.python.org/issue30618



Automerge-Triggered-By: @gpshead
2019-10-23 14:18:40 -07:00
Serhiy Storchaka 10ecbadb79
bpo-31202: Preserve case of literal parts in Path.glob() on Windows. (GH-16860) 2019-10-21 20:37:15 +03:00
Serhiy Storchaka f9dc2ad890 bpo-37935: Added tests for os.walk(), glob.iglob() and Path.glob() (GH-15956)
Test that they do not keep too many file descriptors open for the host OS in a reasonable test scenario.

See [bpo-37935](https://bugs.python.org/issue37935).
2019-09-12 13:54:48 +01:00
hui shang 088a09af4b bpo-31163: Added return values to pathlib.Path instance's rename and replace methods. (GH-13582)
* bpo-31163: Added return values to pathlib.Path instance's rename and replace methods.
2019-09-11 14:26:49 +01:00
Steve Dower 97d7906e30 bpo-38087: Fix case sensitivity in test_pathlib and test_ntpath (GH-15850) 2019-09-10 14:52:48 +01:00
Hai Shi 82642a052d bpo-37689: add Path.is_relative_to() method (GH-14982) 2019-08-13 21:54:02 +02:00
aiudirog 4c69be22df bpo-34775: Return NotImplemented in PurePath division. (GH-9509) 2019-08-08 08:41:10 +03:00
Jörg Stucke d5c120f7eb bpo-36035: fix Path.rglob for broken links (GH-11988)
Links creating an infinite symlink loop would raise an exception.
2019-05-21 19:44:40 +02:00
‮zlohhcuB treboR d9e006bcef bpo-33123: pathlib: Add missing_ok parameter to Path.unlink (GH-6191)
Similarly to how several pathlib file creation functions have an "exists_ok" parameter, we should introduce "missing_ok" that makes removal functions not raise an exception when a file or directory is already absent.  IMHO, this should cover Path.unlink and Path.rmdir.  Note, Path.resolve() has a "strict" parameter since 3.6 that does the same thing. Naming this of this new parameter tries to be consistent with the "exists_ok" parameter as that is more explicit about what it does (as opposed to "strict").


https://bugs.python.org/issue33123
2019-05-15 15:02:11 -07:00
Joannah Nanjekye 6b5b013bcc bpo-26978: Implement pathlib.Path.link_to (Using os.link) (GH-12990) 2019-05-04 17:27:10 +02:00
Anthony Shaw 83da926b89 bpo-35488: Add tests for ** glob matching in pathlib (GH-11171) 2019-01-06 12:31:29 -08:00
Steve Dower 0cd6391fd8
bpo-34977: Add Windows App Store package (GH-11027)
Also adds the PC/layout script for generating layouts on Windows.
2018-12-10 18:52:57 -08:00
Victor Stinner cb0b78a070
Revert "bpo-34977: Add Windows App Store package (GH-10245)" (GH-11019)
This reverts commit 468a15aaf9.
2018-12-07 12:57:43 +01:00
Steve Dower 468a15aaf9
bpo-34977: Add Windows App Store package (GH-10245) 2018-12-06 21:09:20 -08: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
Przemysław Spodymek 216b745eaf bpo-33635: Handling Bad file descriptor in Path.is_file and related. (GH-8542) 2018-08-27 14:33:45 -07:00
Berker Peksag 423d05f6f5
bpo-34333: Fix %-formatting in Path.with_suffix() (GH-8663) 2018-08-11 08:45:06 +03:00
Steve Dower e5f41d2f1e
bpo-33522: Enable CI builds on Visual Studio Team Services (#6865) 2018-05-16 17:50:29 -04:00
Anders Kaseorg 5c0d462689 bpo-32601: Let test_expanduser use the same user if no others found. (GH-5246)
This happens in the NixOS build sandbox, for example, where the only
other user is nobody with home directory /.
2018-05-14 17:00:37 +03:00
Serhiy Storchaka b21d155f57
bpo-32964: Reuse a testing implementation of the path protocol in tests. (#5930) 2018-03-02 11:53:51 +02:00
xdegaye 92c2ca7633
bpo-28759: Skip some tests on PermissionError raised by Android (GH-4350)
Access to mkfifo(), mknod() and hard link creation is controled
by SELinux on Android.
Also remove test.support.android_not_root.
2017-11-12 17:31:07 +01:00
Cooper Lees 173ff4a58a bpo-30897: Add is_mount() to pathlib.Path (#2669)
* Add in is_mount() call to pathlib.Path similiar to os.path.ismount(path)
* Add tests for is_mount()
2017-08-01 15:35:45 -07:00
Antoine Pietri add98eb4fe bpo-30177: pathlib: include the full path in resolve(strict=False) (#1893) 2017-06-07 08:29:17 -07:00
Serhiy Storchaka 2e576f5aec bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
Armin Rigo 22a594a004 bpo-29694: race condition in pathlib mkdir with flags parents=True (GH-1089) 2017-04-13 11:08:15 -07:00
Vajrasky Kok ec1f5df46e bpo-19791: Use functions from test support to check the symlink support. (GH-822) 2017-03-28 12:32:35 -07:00
Serhiy Storchaka af7b9ec5c8 bpo-25803: Avoid incorrect errors raised by Path.mkdir(exist_ok=True) (#805)
when the OS gives priority to errors such as EACCES over EEXIST.
2017-03-24 20:51:53 +02:00
Steve Dower 1add96f1b6 Issue #29416: Prevent infinite loop in pathlib.Path.mkdir 2017-02-04 14:55:16 -08:00
Steve Dower d3c4853b78 Issue #29416: Prevent infinite loop in pathlib.Path.mkdir 2017-02-04 14:54:56 -08:00
Xavier de Gaye e88ed05006 Issue #28683: Fix the tests that bind() a unix socket and raise PermissionError
on Android for a non-root user.
2016-12-14 11:52:28 +01:00
Xavier de Gaye 3a4e989324 Issue #28759: Fix the tests that fail with PermissionError when run as
a non-root user on Android where access rights are controled by SELinux MAC.
2016-12-13 10:00:01 +01:00
Xavier de Gaye fb24eead48 Issue #26856: Fix the tests assuming that the pwd module has getpwall() and
assuming some invariants about uids that are not valid for Android.
2016-12-13 09:11:38 +01:00
Steve Dower 98eb360531 Issue #19717: Makes Path.resolve() succeed on paths that do not exist (patch by Vajrasky Kok) 2016-11-09 12:58:17 -08:00
Brett Cannon 568be63248 Issue #27186: Add os.PathLike support to pathlib.
This adds support both to pathlib.PurePath's constructor as well as
implementing __fspath__(). This removes the provisional status for
pathlib.

Initial patch by Dusty Phillips.
2016-06-10 12:20:49 -07:00
Guido van Rossum 03e6061956 Back out pathlib.Path.path attr. (Merge 3.5->3.6) 2016-05-19 13:11:17 -07:00
Guido van Rossum 387e6e3817 Back out pathlib.Path.path attr. (Merge 3.4->3.5) 2016-05-19 13:10:20 -07:00
Guido van Rossum 3d4d01f614 Back out 7e9605697dfc, 2e3c31ab586a, 759b2cecc289.
These added a path attribute to pathlib.Path objects, and docs.
Instead, we're going to use PEP 519.

(Starting in the 3.4 branch and merging forward from there since that's what I did originally.)
2016-05-19 13:00:21 -07:00
Serhiy Storchaka 0e120525f0 Issue #24950: Fixed expanduser tests when the users home directory in pwd is "/".
Based on patch by SilentGhost.
2016-05-03 21:17:52 +03:00
Serhiy Storchaka a3fd0b26ba Issue #24950: Fixed expanduser tests when the users home directory in pwd is "/".
Based on patch by SilentGhost.
2016-05-03 21:17:03 +03:00
Serhiy Storchaka b6a9c9761c Issue #26778: Fixed "a/an/and" typos in code comment, documentation and error
messages.
2016-04-17 09:39:28 +03:00
Serhiy Storchaka 6a7b3a77b4 Issue #26778: Fixed "a/an/and" typos in code comment and documentation. 2016-04-17 08:32:47 +03:00
Victor Stinner 25caed546d Merge 3.5 2016-03-11 22:53:15 +01:00
Victor Stinner d7569637b5 Issue #20589: Fix test_pathlib 2016-03-11 22:53:00 +01:00
Berker Peksag d0e9b6919f Issue #20589: Invoking Path.owner() and Path.group() on Windows now raise
NotImplementedError instead of ImportError.
2016-03-11 23:08:11 +02:00
Berker Peksag 04d4229719 Issue #20589: Invoking Path.owner() and Path.group() on Windows now raise
NotImplementedError instead of ImportError.
2016-03-11 23:07:27 +02:00
Berker Peksag 396cbd6dfd Issue #23076: Path.glob() now raises a ValueError if it's called with an
invalid pattern.

Patch by Thomas Nyberg.
2016-01-30 17:51:35 +02:00
Berker Peksag 4a208e448e Issue #23076: Path.glob() now raises a ValueError if it's called with an
invalid pattern.

Patch by Thomas Nyberg.
2016-01-30 17:50:48 +02:00
Guido van Rossum 2900995edd Hopeful fix for test_rglob_common on Windows without symlinks. (Merge 3.5->3.6) 2016-01-07 13:13:31 -08:00
Guido van Rossum 03abf6dd98 Hopeful fix for test_rglob_common on Windows without symlinks. (Merge 3.4->3.5) 2016-01-07 13:13:04 -08:00
Guido van Rossum 9c39b67ca5 Hopeful fix for test_rglob_common on Windows without symlinks. 2016-01-07 13:12:34 -08:00
Guido van Rossum 8355bd7f66 Add another try/except PermissionError to avoid depending on listdir order. Fix issues #24120 and #26012. (Merge 3.5->3.6) 2016-01-07 10:58:20 -08:00
Guido van Rossum c3a8272705 Add another try/except PermissionError to avoid depending on listdir order. Fix issues #24120 and #26012. (Merge 3.4->3.5) 2016-01-07 10:57:37 -08:00
Guido van Rossum bc9fddaf50 Add another try/except PermissionError to avoid depending on listdir order. Fix issues #24120 and #26012. 2016-01-07 10:56:36 -08:00
Guido van Rossum 483397a235 Issue #22570: Add 'path' attribute to pathlib.Path objects. (Merge 3.5->3.6) 2016-01-06 11:03:47 -08:00
Guido van Rossum 1a4afec0d6 Issue #22570: Add 'path' attribute to pathlib.Path objects. (Merge 3.4->3.5) 2016-01-06 11:03:15 -08:00
Guido van Rossum e428231539 Issue #22570: Add 'path' attribute to pathlib.Path objects. 2016-01-06 11:01:42 -08:00
Guido van Rossum e630b6818f Issue #26012: Don't traverse into symlinks for ** pattern in pathlib.Path.[r]glob(). (Merge 3.5->3.6) 2016-01-06 10:36:19 -08:00
Guido van Rossum 520f297eb4 Issue #26012: Don't traverse into symlinks for ** pattern in pathlib.Path.[r]glob(). (Merge 3.4->3.5) 2016-01-06 10:35:30 -08:00
Guido van Rossum 69bfb15bd8 Issue #26012: Don't traverse into symlinks for ** pattern in pathlib.Path.[r]glob(). 2016-01-06 10:31:33 -08:00
Guido van Rossum 080169c494 Issue #24120: Ignore PermissionError in pathlib.Path.[r]glob(). Ulrich Petri. (Merge 3.5->3.6) 2016-01-06 09:53:51 -08:00
Guido van Rossum d54377d2ca Issue #24120: Ignore PermissionError in pathlib.Path.[r]glob(). Ulrich Petri. (Merge 3.4->3.5) 2016-01-06 09:51:42 -08:00
Guido van Rossum 6c2d33a258 Issue #24120: Ignore PermissionError in pathlib.Path.[r]glob(). Ulrich Petri. 2016-01-06 09:42:07 -08:00
Ezio Melotti ac1e7f6983 Remove duplicate method in test_pathlib. Initial patch by Navneet Suman. 2015-12-28 23:50:19 +02:00
Antoine Pitrou 2d07b85585 Issue #23146: Fix mishandling of absolute Windows paths with forward slashes in pathlib.
Detected and fixed by Serhiy.
2015-02-15 18:06:54 +01:00
Antoine Pitrou 57fffd6f99 Issue #23146: Fix mishandling of absolute Windows paths with forward slashes in pathlib.
Detected and fixed by Serhiy.
2015-02-15 18:03:59 +01:00
Antoine Pitrou 17cba7daf5 Issue #19777: Provide a home() classmethod on Path objects.
Contributed by Victor Salgado and Mayank Tripathi.
2015-01-12 21:03:41 +01:00
Victor Stinner e969439862 Issue #19776: Fix test_pathlib.test_expanduser()
Skip users with an empty home directory.
2015-01-10 09:00:20 +01:00
Antoine Pitrou 8477ed6048 Issue #19776: Add a expanduser() method on Path objects.
Patch by Serhiy.
2014-12-30 20:54:45 +01:00
Antoine Pitrou c689101a5e Issue #22759: Query methods on pathlib.Path() (exists(), is_dir(), etc.) now return False when the underlying stat call raises NotADirectoryError. 2014-10-30 23:15:25 +01:00
Antoine Pitrou 2b2852b1b4 Issue #22759: Query methods on pathlib.Path() (exists(), is_dir(), etc.) now return False when the underlying stat call raises NotADirectoryError. 2014-10-30 23:14:03 +01:00
Georg Brandl ea68398355 Closes #20218: Added convenience methods read_text/write_text and read_bytes/
write_bytes to pathlib.Path objects.

Thanks to Christopher Welborn and Ram Rachum for original patches.
2014-10-01 19:12:33 +02:00
Barry Warsaw 7c549c4e64 - Issue #21539: Add a *exists_ok* argument to `Pathlib.mkdir()` to mimic
`mkdir -p` and `os.makedirs()` functionality.  When true, ignore
  FileExistsErrors.  Patch by Berker Peksag.

(With minor cleanups, additional tests, doc tweaks, etc. by Barry)

Also:

* Remove some unused imports in test_pathlib.py reported by pyflakes.
2014-08-05 11:28:12 -04:00
Victor Stinner 963b4bab52 Merge Python 3.4
* Issue #19811, #22022: test_pathlib uses support.rmtree() instead of
  shutil.rmtree() to remove the temporary directory.

* Issue #19629: Fix support.rmtree(), use os.lstat() to check if the file is a
  directory, not os.path.isdir()
2014-07-21 19:20:06 +02:00
Victor Stinner ec86469ca3 Issue #19811, #22022: test_pathlib uses support.rmtree() instead of
shutil.rmtree() to remove the temporary directory.
2014-07-21 19:19:05 +02:00
Antoine Pitrou 006c725426 Merge pathlib fixes 2014-07-06 21:38:35 -04:00
Antoine Pitrou e50dafcd63 Issue #20639: calling Path.with_suffix('') allows removing the suffix again.
Patch by July Tikhonov.
2014-07-06 21:37:15 -04:00
Antoine Pitrou 7084e736db Issue #21714: Disallow the construction of invalid paths using Path.with_name(). Original patch by Antony Lee. 2014-07-06 21:31:12 -04:00
Antoine Pitrou 43e3d9409d Issue #19775: Add a samefile() method to pathlib Path objects.
Initial patch by Vajrasky Kok.
2014-05-13 10:50:15 +02:00
Antoine Pitrou cb5ec77d33 Issue #21127: Path objects can now be instantiated from str subclass instances (such as numpy.str_).
Thanks to Antony Lee for the report and preliminary patch.
2014-04-23 00:34:15 +02:00
Gregory P. Smith b599c61179 Fix the unittest to run properly when the working directory has
additional bits set (such as the setgid or sticky bits).
2014-01-20 01:10:33 -08:00
Serhiy Storchaka 8f8ec92de8 Issue #19936: Added executable bits or shebang lines to Python scripts which
requires them.  Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface.  Fixed
shebang lines in the unittestgui and checkpip scripts.
2014-01-16 17:33:23 +02:00
Antoine Pitrou 1b02da95d2 Issue #20111: pathlib.Path.with_suffix() now sanity checks the given suffix. 2014-01-03 00:07:17 +01:00
Antoine Pitrou 156b3610b8 Issue #19918: Fix PurePath.relative_to() under Windows. 2013-12-28 19:49:04 +01:00
Antoine Pitrou 0048c98fef Issue #19921: When Path.mkdir() is called with parents=True, any missing parent is created with the default permissions, ignoring the mode argument (mimicking the POSIX "mkdir -p" command).
Patch by Serhiy.
2013-12-16 20:22:37 +01:00
Antoine Pitrou c274fd22ed Issue #19887: Improve the Path.resolve() algorithm to support certain symlink chains.
Original patch by Serhiy.
2013-12-16 19:57:41 +01:00
Serhiy Storchaka 010ff584bc Test same drive in different cases (issue #19908). 2013-12-06 17:25:51 +02:00
Serhiy Storchaka a993902a28 Issue #19908: pathlib now joins relative Windows paths correctly when a drive
is present.  Original patch by Antoine Pitrou.
2013-12-06 17:14:12 +02:00
Antoine Pitrou cc157516a9 Issue #19877: fix regression in test_pathlib when Windows has symlink support available (i.e. in administrator mode).
Patch by Vajrasky Kok.
2013-12-03 17:13:13 +01:00
Antoine Pitrou 51af82cc39 Add a test for complex symlinks. 2013-12-03 11:01:08 +01:00
Antoine Pitrou 2cf4b0f159 Issue #19742: fix a test_pathlib failure when a file owner or group isn't in the system database 2013-11-25 19:51:53 +01:00
Antoine Pitrou 2cf3917954 Issue #19715: try the utime(..., None) approach again, now that it should be more precise under Windows 2013-11-23 15:25:59 +01:00
Antoine Pitrou 8b78493d4f Issue #19716: add a test that Path.touch() doesn't change a file's contents.
Patch by Kushal Das.
2013-11-23 14:52:39 +01:00
Antoine Pitrou 12820c0d5d Revert utime(..., None) strategy (it has too poor resolution under Windows) and restore the previous test workaround
(issue #19715)
2013-11-23 02:11:02 +01:00
Antoine Pitrou c3055be5f3 Trying other strategy for #19715: use utime(..., None) 2013-11-23 01:54:27 +01:00
Antoine Pitrou bb6694de85 Try to fix issue #19715 (timestamp rounding inconsistencies under Windows?) 2013-11-23 01:32:53 +01:00
Antoine Pitrou 0f57564cac Try to debug issue #19715 2013-11-22 23:20:08 +01:00
Antoine Pitrou 2dd38fb238 Issue #19718: add one more globbing test under POSIX 2013-11-22 22:26:01 +01:00
Brett Cannon fe77f4ebb5 Issue #19718: Add a case-insensitive FS check to test.support to use
in test_pathlib.

Purposefully designed to work from a specified directory in case
multiple file systems are used on the system.
2013-11-22 16:14:10 -05:00
Antoine Pitrou 330ce596c2 Hopefully fix test_is_socket_true 2013-11-22 18:05:06 +01:00
Antoine Pitrou 29eac42f49 Fix test failure under systems with an incompatible locale 2013-11-22 17:57:03 +01:00
Antoine Pitrou 31119e4f10 Issue #19673: Add pathlib to the stdlib as a provisional module (PEP 428). 2013-11-22 17:38:12 +01:00