[Python-checkins] cpython: Issue #28325: Remove vestigal MacOS 9 macurl2path module and its tests.

ned.deily python-checkins at python.org
Sat Oct 1 22:06:06 EDT 2016


https://hg.python.org/cpython/rev/07c593845994
changeset:   104222:07c593845994
user:        Ned Deily <nad at python.org>
date:        Sat Oct 01 22:05:07 2016 -0400
summary:
  Issue #28325: Remove vestigal MacOS 9 macurl2path module and its tests.

files:
  Lib/macurl2path.py           |  77 ------------------------
  Lib/test/test_macurl2path.py |  31 ---------
  Misc/NEWS                    |   2 +
  3 files changed, 2 insertions(+), 108 deletions(-)


diff --git a/Lib/macurl2path.py b/Lib/macurl2path.py
deleted file mode 100644
--- a/Lib/macurl2path.py
+++ /dev/null
@@ -1,77 +0,0 @@
-"""Macintosh-specific module for conversion between pathnames and URLs.
-
-Do not import directly; use urllib instead."""
-
-import urllib.parse
-import os
-
-__all__ = ["url2pathname","pathname2url"]
-
-def url2pathname(pathname):
-    """OS-specific conversion from a relative URL of the 'file' scheme
-    to a file system path; not recommended for general use."""
-    #
-    # XXXX The .. handling should be fixed...
-    #
-    tp = urllib.parse.splittype(pathname)[0]
-    if tp and tp != 'file':
-        raise RuntimeError('Cannot convert non-local URL to pathname')
-    # Turn starting /// into /, an empty hostname means current host
-    if pathname[:3] == '///':
-        pathname = pathname[2:]
-    elif pathname[:2] == '//':
-        raise RuntimeError('Cannot convert non-local URL to pathname')
-    components = pathname.split('/')
-    # Remove . and embedded ..
-    i = 0
-    while i < len(components):
-        if components[i] == '.':
-            del components[i]
-        elif components[i] == '..' and i > 0 and \
-                                  components[i-1] not in ('', '..'):
-            del components[i-1:i+1]
-            i = i-1
-        elif components[i] == '' and i > 0 and components[i-1] != '':
-            del components[i]
-        else:
-            i = i+1
-    if not components[0]:
-        # Absolute unix path, don't start with colon
-        rv = ':'.join(components[1:])
-    else:
-        # relative unix path, start with colon. First replace
-        # leading .. by empty strings (giving ::file)
-        i = 0
-        while i < len(components) and components[i] == '..':
-            components[i] = ''
-            i = i + 1
-        rv = ':' + ':'.join(components)
-    # and finally unquote slashes and other funny characters
-    return urllib.parse.unquote(rv)
-
-def pathname2url(pathname):
-    """OS-specific conversion from a file system path to a relative URL
-    of the 'file' scheme; not recommended for general use."""
-    if '/' in pathname:
-        raise RuntimeError("Cannot convert pathname containing slashes")
-    components = pathname.split(':')
-    # Remove empty first and/or last component
-    if components[0] == '':
-        del components[0]
-    if components[-1] == '':
-        del components[-1]
-    # Replace empty string ('::') by .. (will result in '/../' later)
-    for i in range(len(components)):
-        if components[i] == '':
-            components[i] = '..'
-    # Truncate names longer than 31 bytes
-    components = map(_pncomp2url, components)
-
-    if os.path.isabs(pathname):
-        return '/' + '/'.join(components)
-    else:
-        return '/'.join(components)
-
-def _pncomp2url(component):
-    # We want to quote slashes
-    return urllib.parse.quote(component[:31], safe='')
diff --git a/Lib/test/test_macurl2path.py b/Lib/test/test_macurl2path.py
deleted file mode 100644
--- a/Lib/test/test_macurl2path.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import macurl2path
-import unittest
-
-class MacUrl2PathTestCase(unittest.TestCase):
-    def test_url2pathname(self):
-        self.assertEqual(":index.html", macurl2path.url2pathname("index.html"))
-        self.assertEqual(":bar:index.html", macurl2path.url2pathname("bar/index.html"))
-        self.assertEqual("foo:bar:index.html", macurl2path.url2pathname("/foo/bar/index.html"))
-        self.assertEqual("foo:bar", macurl2path.url2pathname("/foo/bar/"))
-        self.assertEqual("", macurl2path.url2pathname("/"))
-        self.assertRaises(RuntimeError, macurl2path.url2pathname, "http://foo.com")
-        self.assertEqual("index.html", macurl2path.url2pathname("///index.html"))
-        self.assertRaises(RuntimeError, macurl2path.url2pathname, "//index.html")
-        self.assertEqual(":index.html", macurl2path.url2pathname("./index.html"))
-        self.assertEqual(":index.html", macurl2path.url2pathname("foo/../index.html"))
-        self.assertEqual("::index.html", macurl2path.url2pathname("../index.html"))
-
-    def test_pathname2url(self):
-        self.assertEqual("drive", macurl2path.pathname2url("drive:"))
-        self.assertEqual("drive/dir", macurl2path.pathname2url("drive:dir:"))
-        self.assertEqual("drive/dir/file", macurl2path.pathname2url("drive:dir:file"))
-        self.assertEqual("drive/file", macurl2path.pathname2url("drive:file"))
-        self.assertEqual("file", macurl2path.pathname2url("file"))
-        self.assertEqual("file", macurl2path.pathname2url(":file"))
-        self.assertEqual("dir", macurl2path.pathname2url(":dir:"))
-        self.assertEqual("dir/file", macurl2path.pathname2url(":dir:file"))
-        self.assertRaises(RuntimeError, macurl2path.pathname2url, "/")
-        self.assertEqual("dir/../file", macurl2path.pathname2url("dir::file"))
-
-if __name__ == "__main__":
-    unittest.main()
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -148,6 +148,8 @@
 - Issue #27759: Fix selectors incorrectly retain invalid file descriptors.
   Patch by Mark Williams.
 
+- Issue #28325: Remove vestigal MacOS 9 macurl2path module and its tests.
+
 Windows
 -------
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list