mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	Back out pathlib.Path.path attr. (Merge 3.5->3.6)
This commit is contained in:
		
						commit
						03e6061956
					
				
					 4 changed files with 0 additions and 62 deletions
				
			
		| 
						 | 
					@ -365,28 +365,6 @@ Pure paths provide the following methods and properties:
 | 
				
			||||||
      ''
 | 
					      ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. data:: PurePath.path
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   A string representing the full path::
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      >>> PurePosixPath('my/library/setup.py').path
 | 
					 | 
				
			||||||
      'my/library/setup.py'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   This always returns the same value as ``str(p)``; it is included to
 | 
					 | 
				
			||||||
   serve as a one-off protocol.  Code that wants to support both
 | 
					 | 
				
			||||||
   strings and ``pathlib.Path`` objects as filenames can write
 | 
					 | 
				
			||||||
   ``arg = getattr(arg, 'path', arg)`` to get the path as a string.
 | 
					 | 
				
			||||||
   This can then be passed to various system calls or library
 | 
					 | 
				
			||||||
   functions that expect a string.  Unlike the alternative
 | 
					 | 
				
			||||||
   ``arg = str(arg)``, this will still raise an exception if an object
 | 
					 | 
				
			||||||
   of some other type is given by accident.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   A nice advantage is that this protocol is also supported by
 | 
					 | 
				
			||||||
   :class:`os.DirEntry` objects returned by :func:`os.scandir`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   .. versionadded:: 3.4.5
 | 
					 | 
				
			||||||
   .. versionadded:: 3.5.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.. data:: PurePath.suffix
 | 
					.. data:: PurePath.suffix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   The file extension of the final component, if any::
 | 
					   The file extension of the final component, if any::
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -693,13 +693,6 @@ def __str__(self):
 | 
				
			||||||
                                                  self._parts) or '.'
 | 
					                                                  self._parts) or '.'
 | 
				
			||||||
            return self._str
 | 
					            return self._str
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					 | 
				
			||||||
    def path(self):
 | 
					 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            return self._str
 | 
					 | 
				
			||||||
        except AttributeError:
 | 
					 | 
				
			||||||
            return str(self)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def as_posix(self):
 | 
					    def as_posix(self):
 | 
				
			||||||
        """Return the string representation of the path with forward (/)
 | 
					        """Return the string representation of the path with forward (/)
 | 
				
			||||||
        slashes."""
 | 
					        slashes."""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -477,22 +477,6 @@ def test_name_common(self):
 | 
				
			||||||
        self.assertEqual(P('a/b.py').name, 'b.py')
 | 
					        self.assertEqual(P('a/b.py').name, 'b.py')
 | 
				
			||||||
        self.assertEqual(P('/a/b.py').name, 'b.py')
 | 
					        self.assertEqual(P('/a/b.py').name, 'b.py')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_path_common(self):
 | 
					 | 
				
			||||||
        P = self.cls
 | 
					 | 
				
			||||||
        def check(arg, expected=None):
 | 
					 | 
				
			||||||
            if expected is None:
 | 
					 | 
				
			||||||
                expected = arg
 | 
					 | 
				
			||||||
            self.assertEqual(P(arg).path, expected.replace('/', self.sep))
 | 
					 | 
				
			||||||
        check('', '.')
 | 
					 | 
				
			||||||
        check('.')
 | 
					 | 
				
			||||||
        check('/')
 | 
					 | 
				
			||||||
        check('a/b')
 | 
					 | 
				
			||||||
        check('/a/b')
 | 
					 | 
				
			||||||
        check('/a/b/', '/a/b')
 | 
					 | 
				
			||||||
        check('/a/b/.', '/a/b')
 | 
					 | 
				
			||||||
        check('a/b.py')
 | 
					 | 
				
			||||||
        check('/a/b.py')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def test_suffix_common(self):
 | 
					    def test_suffix_common(self):
 | 
				
			||||||
        P = self.cls
 | 
					        P = self.cls
 | 
				
			||||||
        self.assertEqual(P('').suffix, '')
 | 
					        self.assertEqual(P('').suffix, '')
 | 
				
			||||||
| 
						 | 
					@ -915,17 +899,6 @@ def test_name(self):
 | 
				
			||||||
        self.assertEqual(P('//My.py/Share.php').name, '')
 | 
					        self.assertEqual(P('//My.py/Share.php').name, '')
 | 
				
			||||||
        self.assertEqual(P('//My.py/Share.php/a/b').name, 'b')
 | 
					        self.assertEqual(P('//My.py/Share.php/a/b').name, 'b')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_path(self):
 | 
					 | 
				
			||||||
        P = self.cls
 | 
					 | 
				
			||||||
        self.assertEqual(P('c:').path, 'c:')
 | 
					 | 
				
			||||||
        self.assertEqual(P('c:/').path, 'c:\\')
 | 
					 | 
				
			||||||
        self.assertEqual(P('c:a/b').path, 'c:a\\b')
 | 
					 | 
				
			||||||
        self.assertEqual(P('c:/a/b').path, 'c:\\a\\b')
 | 
					 | 
				
			||||||
        self.assertEqual(P('c:a/b.py').path, 'c:a\\b.py')
 | 
					 | 
				
			||||||
        self.assertEqual(P('c:/a/b.py').path, 'c:\\a\\b.py')
 | 
					 | 
				
			||||||
        self.assertEqual(P('//My.py/Share.php').path, '\\\\My.py\\Share.php\\')
 | 
					 | 
				
			||||||
        self.assertEqual(P('//My.py/Share.php/a/b').path, '\\\\My.py\\Share.php\\a\\b')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def test_suffix(self):
 | 
					    def test_suffix(self):
 | 
				
			||||||
        P = self.cls
 | 
					        P = self.cls
 | 
				
			||||||
        self.assertEqual(P('c:').suffix, '')
 | 
					        self.assertEqual(P('c:').suffix, '')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -682,12 +682,6 @@ Library
 | 
				
			||||||
- Issue #25672: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode
 | 
					- Issue #25672: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode
 | 
				
			||||||
  option if it is safe to do so.
 | 
					  option if it is safe to do so.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Issue #22570: Add 'path' attribute to pathlib.Path objects,
 | 
					 | 
				
			||||||
  returning the same as str(), to make it more similar to DirEntry.
 | 
					 | 
				
			||||||
  Library code can now write getattr(p, 'path', p) to get the path as
 | 
					 | 
				
			||||||
  a string from a Path, a DirEntry, or a plain string.  This is
 | 
					 | 
				
			||||||
  essentially a small one-off protocol.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- Issue #26012: Don't traverse into symlinks for ** pattern in
 | 
					- Issue #26012: Don't traverse into symlinks for ** pattern in
 | 
				
			||||||
  pathlib.Path.[r]glob().
 | 
					  pathlib.Path.[r]glob().
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue