summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSkip Montanaro <skip@pobox.com>2003-02-14 19:35:31 +0000
committerSkip Montanaro <skip@pobox.com>2003-02-14 19:35:31 +0000
commit379f9b34e26c5e6898ab214459625edfe685ac5a (patch)
treeccb4a8f5738b0911f819c9260e719cd95ddb932b
parentb3586740e25dae9aacf63ff0016c59f7045e658c (diff)
downloadcpython-379f9b34e26c5e6898ab214459625edfe685ac5a.tar.gz
Migrate definitions of several platform-dependent path-related variables
into the relevant path modules. See patch #686397.
-rw-r--r--Doc/lib/libos.tex7
-rw-r--r--Lib/macpath.py10
-rw-r--r--Lib/ntpath.py16
-rw-r--r--Lib/os.py73
-rw-r--r--Lib/os2emxpath.py10
-rw-r--r--Lib/plat-riscos/riscospath.py8
-rw-r--r--Lib/posixpath.py10
7 files changed, 77 insertions, 57 deletions
diff --git a/Doc/lib/libos.tex b/Doc/lib/libos.tex
index 8f13e0e65c..b2c10f7365 100644
--- a/Doc/lib/libos.tex
+++ b/Doc/lib/libos.tex
@@ -1620,12 +1620,14 @@ Higher-level operations on pathnames are defined in the
The constant string used by the operating system to refer to the current
directory.
For example: \code{'.'} for \POSIX{} or \code{':'} for the Macintosh.
+Also available via \module{os.path}.
\end{datadesc}
\begin{datadesc}{pardir}
The constant string used by the operating system to refer to the parent
directory.
For example: \code{'..'} for \POSIX{} or \code{'::'} for the Macintosh.
+Also available via \module{os.path}.
\end{datadesc}
\begin{datadesc}{sep}
@@ -1634,6 +1636,7 @@ for example, \character{/} for \POSIX{} or \character{:} for the
Macintosh. Note that knowing this is not sufficient to be able to
parse or concatenate pathnames --- use \function{os.path.split()} and
\function{os.path.join()} --- but it is occasionally useful.
+Also available via \module{os.path}.
\end{datadesc}
\begin{datadesc}{altsep}
@@ -1641,11 +1644,13 @@ An alternative character used by the operating system to separate pathname
components, or \code{None} if only one separator character exists. This is
set to \character{/} on Windows systems where \code{sep} is a
backslash.
+Also available via \module{os.path}.
\end{datadesc}
\begin{datadesc}{extsep}
The character which separates the base filename from the extension;
for example, the \character{.} in \file{os.py}.
+Also available via \module{os.path}.
\versionadded{2.2}
\end{datadesc}
@@ -1653,12 +1658,14 @@ for example, the \character{.} in \file{os.py}.
The character conventionally used by the operating system to separate
search patch components (as in \envvar{PATH}), such as \character{:} for
\POSIX{} or \character{;} for Windows.
+Also available via \module{os.path}.
\end{datadesc}
\begin{datadesc}{defpath}
The default search path used by \function{exec*p*()} and
\function{spawn*p*()} if the environment doesn't have a \code{'PATH'}
key.
+Also available via \module{os.path}.
\end{datadesc}
\begin{datadesc}{linesep}
diff --git a/Lib/macpath.py b/Lib/macpath.py
index e8ac467a24..8277d41b17 100644
--- a/Lib/macpath.py
+++ b/Lib/macpath.py
@@ -7,8 +7,18 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
"basename","dirname","commonprefix","getsize","getmtime",
"getatime","getctime", "islink","exists","isdir","isfile",
"walk","expanduser","expandvars","normpath","abspath",
+ "curdir","pardir","sep","pathsep","defpath","altsep","extsep",
"realpath","supports_unicode_filenames"]
+# strings representing various path-related bits and pieces
+curdir = ':'
+pardir = '::'
+extsep = '.'
+sep = ':'
+pathsep = '\n'
+defpath = ':'
+altsep = None
+
# Normalize the case of a pathname. Dummy in Posix, but <s>.lower() here.
def normcase(path):
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index b82051424e..e39266bf21 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -13,8 +13,24 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
"basename","dirname","commonprefix","getsize","getmtime",
"getatime","getctime", "islink","exists","isdir","isfile","ismount",
"walk","expanduser","expandvars","normpath","abspath","splitunc",
+ "curdir","pardir","sep","pathsep","defpath","altsep","extsep",
"realpath","supports_unicode_filenames"]
+# strings representing various path-related bits and pieces
+curdir = '.'
+pardir = '..'
+extsep = '.'
+sep = '\\'
+pathsep = ';'
+altsep = None
+if 'ce' in sys.builtin_module_names:
+ defpath = '\\Windows'
+elif 'os2' in sys.builtin_module_names:
+ # OS/2 w/ EMX
+ altsep = '/'
+else:
+ defpath = '.;C:\\bin'
+
# Normalize the case of a pathname and map slashes to backslashes.
# Other normalizations (such as optimizing '../' away) are not done
# (this is done by normpath).
diff --git a/Lib/os.py b/Lib/os.py
index e3b77616fd..d3078d6c6f 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -26,10 +26,8 @@ import sys
_names = sys.builtin_module_names
-altsep = None
-
__all__ = ["altsep", "curdir", "pardir", "sep", "pathsep", "linesep",
- "defpath", "name"]
+ "defpath", "name", "path"]
def _get_exports_list(module):
try:
@@ -40,17 +38,13 @@ def _get_exports_list(module):
if 'posix' in _names:
name = 'posix'
linesep = '\n'
- curdir = '.'; pardir = '..'; sep = '/'; pathsep = ':'
- defpath = ':/bin:/usr/bin'
from posix import *
try:
from posix import _exit
except ImportError:
pass
- import posixpath
- path = posixpath
- del posixpath
-
+ import posixpath as path
+
import posix
__all__.extend(_get_exports_list(posix))
del posix
@@ -58,17 +52,13 @@ if 'posix' in _names:
elif 'nt' in _names:
name = 'nt'
linesep = '\r\n'
- curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';'
- defpath = '.;C:\\bin'
from nt import *
try:
from nt import _exit
except ImportError:
pass
- import ntpath
- path = ntpath
- del ntpath
-
+ import ntpath as path
+
import nt
__all__.extend(_get_exports_list(nt))
del nt
@@ -76,28 +66,16 @@ elif 'nt' in _names:
elif 'os2' in _names:
name = 'os2'
linesep = '\r\n'
- curdir = '.'; pardir = '..'; pathsep = ';'
- if sys.version.find('EMX GCC') == -1:
- # standard OS/2 compiler (VACPP or Watcom?)
- sep = '\\'; altsep = '/'
- else:
- # EMX
- sep = '/'; altsep = '\\'
- defpath = '.;C:\\bin'
from os2 import *
try:
from os2 import _exit
except ImportError:
pass
if sys.version.find('EMX GCC') == -1:
- import ntpath
- path = ntpath
- del ntpath
+ import ntpath as path
else:
- import os2emxpath
- path = os2emxpath
- del os2emxpath
-
+ import os2emxpath as path
+
import os2
__all__.extend(_get_exports_list(os2))
del os2
@@ -105,17 +83,13 @@ elif 'os2' in _names:
elif 'mac' in _names:
name = 'mac'
linesep = '\r'
- curdir = ':'; pardir = '::'; sep = ':'; pathsep = '\n'
- defpath = ':'
from mac import *
try:
from mac import _exit
except ImportError:
pass
- import macpath
- path = macpath
- del macpath
-
+ import macpath as path
+
import mac
__all__.extend(_get_exports_list(mac))
del mac
@@ -123,18 +97,14 @@ elif 'mac' in _names:
elif 'ce' in _names:
name = 'ce'
linesep = '\r\n'
- curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';'
- defpath = '\\Windows'
from ce import *
try:
from ce import _exit
except ImportError:
pass
# We can use the standard Windows path.
- import ntpath
- path = ntpath
- del ntpath
-
+ import ntpath as path
+
import ce
__all__.extend(_get_exports_list(ce))
del ce
@@ -142,17 +112,13 @@ elif 'ce' in _names:
elif 'riscos' in _names:
name = 'riscos'
linesep = '\n'
- curdir = '@'; pardir = '^'; sep = '.'; pathsep = ','
- defpath = '<Run$Dir>'
from riscos import *
try:
from riscos import _exit
except ImportError:
pass
- import riscospath
- path = riscospath
- del riscospath
-
+ import riscospath as path
+
import riscos
__all__.extend(_get_exports_list(riscos))
del riscos
@@ -160,18 +126,11 @@ elif 'riscos' in _names:
else:
raise ImportError, 'no os specific module found'
-
-if sep=='.':
- extsep = '/'
-else:
- extsep = '.'
-
-__all__.append("path")
+sys.modules['os.path'] = path
+from os.path import curdir, pardir, sep, pathsep, defpath, extsep, altsep
del _names
-sys.modules['os.path'] = path
-
#'
# Super directory utilities.
diff --git a/Lib/os2emxpath.py b/Lib/os2emxpath.py
index f92841fd5f..67f00df10c 100644
--- a/Lib/os2emxpath.py
+++ b/Lib/os2emxpath.py
@@ -12,8 +12,18 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
"basename","dirname","commonprefix","getsize","getmtime",
"getatime","getctime", "islink","exists","isdir","isfile","ismount",
"walk","expanduser","expandvars","normpath","abspath","splitunc",
+ "curdir","pardir","sep","pathsep","defpath","altsep","extsep",
"realpath","supports_unicode_filenames"]
+# strings representing various path-related bits and pieces
+curdir = '.'
+pardir = '..'
+extsep = '.'
+sep = '/'
+altsep = '\\'
+pathsep = ';'
+defpath = '.;C:\\bin'
+
# Normalize the case of a pathname and map slashes to backslashes.
# Other normalizations (such as optimizing '../' away) are not done
# (this is done by normpath).
diff --git a/Lib/plat-riscos/riscospath.py b/Lib/plat-riscos/riscospath.py
index 30c0c9fe51..c875a4f162 100644
--- a/Lib/plat-riscos/riscospath.py
+++ b/Lib/plat-riscos/riscospath.py
@@ -12,6 +12,14 @@ Instead of importing this module directly, import os and refer to this module
as os.path.
"""
+# strings representing various path-related bits and pieces
+curdir = '@'
+pardir = '^'
+extsep = '.'
+sep = '.'
+pathsep = ','
+defpath = '<Run$Dir>'
+altsep = None
# Imports - make an error-generating swi object if the swi module is not
# available (ie. we are not running on RISC OS Python)
diff --git a/Lib/posixpath.py b/Lib/posixpath.py
index d0179f112c..50073dc99d 100644
--- a/Lib/posixpath.py
+++ b/Lib/posixpath.py
@@ -18,8 +18,18 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
"getatime","getctime","islink","exists","isdir","isfile","ismount",
"walk","expanduser","expandvars","normpath","abspath",
"samefile","sameopenfile","samestat",
+ "curdir","pardir","sep","pathsep","defpath","altsep","extsep",
"realpath","supports_unicode_filenames"]
+# strings representing various path-related bits and pieces
+curdir = '.'
+pardir = '..'
+extsep = '.'
+sep = '/'
+pathsep = ':'
+defpath = ':/bin:/usr/bin'
+altsep = None
+
# Normalize the case of a pathname. Trivial in Posix, string.lower on Mac.
# On MS-DOS this may also turn slashes into backslashes; however, other
# normalizations (such as optimizing '../' away) are not allowed