Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
3460198f
Commit
3460198f
authored
Jan 07, 2018
by
Serhiy Storchaka
Committed by
GitHub
Jan 07, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-31802: Fix importing native path module before importing os. (#4017)
parent
e46a8af4
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
42 additions
and
32 deletions
+42
-32
Lib/macpath.py
Lib/macpath.py
+12
-11
Lib/ntpath.py
Lib/ntpath.py
+12
-11
Lib/posixpath.py
Lib/posixpath.py
+12
-10
Lib/test/test_genericpath.py
Lib/test/test_genericpath.py
+4
-0
Misc/NEWS.d/next/Library/2017-10-17-14-52-14.bpo-31802.sYj2Zv.rst
...S.d/next/Library/2017-10-17-14-52-14.bpo-31802.sYj2Zv.rst
+2
-0
No files found.
Lib/macpath.py
View file @
3460198f
"""Pathname and path-related operations for the Macintosh."""
# strings representing various path-related bits and pieces
# These are primarily for export; internally, they are hardcoded.
# Should be set before imports for resolving cyclic dependency.
curdir
=
':'
pardir
=
'::'
extsep
=
'.'
sep
=
':'
pathsep
=
'
\
n
'
defpath
=
':'
altsep
=
None
devnull
=
'Dev:Null'
import
os
from
stat
import
*
import
genericpath
...
...
@@ -16,17 +28,6 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
"curdir"
,
"pardir"
,
"sep"
,
"pathsep"
,
"defpath"
,
"altsep"
,
"extsep"
,
"devnull"
,
"realpath"
,
"supports_unicode_filenames"
]
# strings representing various path-related bits and pieces
# These are primarily for export; internally, they are hardcoded.
curdir
=
':'
pardir
=
'::'
extsep
=
'.'
sep
=
':'
pathsep
=
'
\
n
'
defpath
=
':'
altsep
=
None
devnull
=
'Dev:Null'
def
_get_colon
(
path
):
if
isinstance
(
path
,
bytes
):
return
b':'
...
...
Lib/ntpath.py
View file @
3460198f
...
...
@@ -5,6 +5,18 @@ Instead of importing this module directly, import os and refer to this
module as os.path.
"""
# strings representing various path-related bits and pieces
# These are primarily for export; internally, they are hardcoded.
# Should be set before imports for resolving cyclic dependency.
curdir
=
'.'
pardir
=
'..'
extsep
=
'.'
sep
=
'
\
\
'
pathsep
=
';'
altsep
=
'/'
defpath
=
'.;C:
\
\
bin'
devnull
=
'nul'
import
os
import
sys
import
stat
...
...
@@ -19,17 +31,6 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
"extsep"
,
"devnull"
,
"realpath"
,
"supports_unicode_filenames"
,
"relpath"
,
"samefile"
,
"sameopenfile"
,
"samestat"
,
"commonpath"
]
# strings representing various path-related bits and pieces
# These are primarily for export; internally, they are hardcoded.
curdir
=
'.'
pardir
=
'..'
extsep
=
'.'
sep
=
'
\
\
'
pathsep
=
';'
altsep
=
'/'
defpath
=
'.;C:
\
\
bin'
devnull
=
'nul'
def
_get_bothseps
(
path
):
if
isinstance
(
path
,
bytes
):
return
b'
\
\
/'
...
...
Lib/posixpath.py
View file @
3460198f
...
...
@@ -10,6 +10,18 @@ Some of this can actually be useful on non-Posix systems too, e.g.
for manipulation of the pathname component of URLs.
"""
# Strings representing various path-related bits and pieces.
# These are primarily for export; internally, they are hardcoded.
# Should be set before imports for resolving cyclic dependency.
curdir
=
'.'
pardir
=
'..'
extsep
=
'.'
sep
=
'/'
pathsep
=
':'
defpath
=
':/bin:/usr/bin'
altsep
=
None
devnull
=
'/dev/null'
import
os
import
sys
import
stat
...
...
@@ -25,16 +37,6 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
"devnull"
,
"realpath"
,
"supports_unicode_filenames"
,
"relpath"
,
"commonpath"
]
# Strings representing various path-related bits and pieces.
# These are primarily for export; internally, they are hardcoded.
curdir
=
'.'
pardir
=
'..'
extsep
=
'.'
sep
=
'/'
pathsep
=
':'
defpath
=
':/bin:/usr/bin'
altsep
=
None
devnull
=
'/dev/null'
def
_get_sep
(
path
):
if
isinstance
(
path
,
bytes
):
...
...
Lib/test/test_genericpath.py
View file @
3460198f
...
...
@@ -8,6 +8,7 @@ import sys
import
unittest
import
warnings
from
test
import
support
from
test.support.script_helper
import
assert_python_ok
def
create_file
(
filename
,
data
=
b'foo'
):
...
...
@@ -486,6 +487,9 @@ class CommonTest(GenericTest):
with
self
.
assertRaisesRegex
(
TypeError
,
'bytearray'
):
self
.
pathmodule
.
relpath
(
bytearray
(
b'foo'
),
bytearray
(
b'bar'
))
def
test_import
(
self
):
assert_python_ok
(
'-S'
,
'-c'
,
'import '
+
self
.
pathmodule
.
__name__
)
class
PathLikeTests
(
unittest
.
TestCase
):
...
...
Misc/NEWS.d/next/Library/2017-10-17-14-52-14.bpo-31802.sYj2Zv.rst
0 → 100644
View file @
3460198f
Importing native path module (``posixpath``, ``ntpath``) now works even if
the ``os`` module still is not imported.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment