mirror of https://github.com/python/cpython
parent
a045f191b4
commit
94f25283c9
|
@ -23,12 +23,7 @@ from stat import *
|
|||
import time
|
||||
import fnmatch
|
||||
|
||||
if os.name == 'mac':
|
||||
import macfs
|
||||
maxnamelen = 31
|
||||
else:
|
||||
macfs = None
|
||||
maxnamelen = 255
|
||||
maxnamelen = 255
|
||||
|
||||
skipnames = (os.curdir, os.pardir)
|
||||
|
||||
|
@ -63,16 +58,10 @@ class FSProxyLocal:
|
|||
return ignore
|
||||
|
||||
def _hidden(self, name):
|
||||
if os.name == 'mac':
|
||||
return name[0] == '(' and name[-1] == ')'
|
||||
else:
|
||||
return name[0] == '.'
|
||||
return name[0] == '.'
|
||||
|
||||
def _hide(self, name):
|
||||
if os.name == 'mac':
|
||||
return '(%s)' % name
|
||||
else:
|
||||
return '.%s' % name
|
||||
return '.%s' % name
|
||||
|
||||
def visible(self, name):
|
||||
if len(name) > maxnamelen: return 0
|
||||
|
@ -81,18 +70,8 @@ class FSProxyLocal:
|
|||
if self._hidden(name): return 0
|
||||
head, tail = os.path.split(name)
|
||||
if head or not tail: return 0
|
||||
if macfs:
|
||||
if os.path.exists(name) and not os.path.isdir(name):
|
||||
try:
|
||||
fs = macfs.FSSpec(name)
|
||||
c, t = fs.GetCreatorType()
|
||||
if t != 'TEXT': return 0
|
||||
except macfs.error as msg:
|
||||
print("***", name, msg)
|
||||
return 0
|
||||
else:
|
||||
if os.path.islink(name): return 0
|
||||
if '\0' in open(name, 'rb').read(512): return 0
|
||||
if os.path.islink(name): return 0
|
||||
if '\0' in open(name, 'rb').read(512): return 0
|
||||
for ign in self._ignore:
|
||||
if fnmatch.fnmatch(name, ign): return 0
|
||||
return 1
|
||||
|
|
|
@ -65,20 +65,6 @@ INSTALL_SCHEMES = {
|
|||
'scripts': '$userbase/Scripts',
|
||||
'data' : '$userbase',
|
||||
},
|
||||
'mac': {
|
||||
'purelib': '$base/Lib/site-packages',
|
||||
'platlib': '$base/Lib/site-packages',
|
||||
'headers': '$base/Include/$dist_name',
|
||||
'scripts': '$base/Scripts',
|
||||
'data' : '$base',
|
||||
},
|
||||
'mac_user': {
|
||||
'purelib': '$usersite',
|
||||
'platlib': '$usersite',
|
||||
'headers': '$userbase/$py_version_short/include/$dist_name',
|
||||
'scripts': '$userbase/bin',
|
||||
'data' : '$userbase',
|
||||
},
|
||||
'os2': {
|
||||
'purelib': '$base/Lib/site-packages',
|
||||
'platlib': '$base/Lib/site-packages',
|
||||
|
|
|
@ -132,15 +132,6 @@ def copy_file(src, dst, preserve_mode=1, preserve_times=1, update=0,
|
|||
if dry_run:
|
||||
return (dst, 1)
|
||||
|
||||
# On Mac OS, use the native file copy routine
|
||||
if os.name == 'mac':
|
||||
import macostools
|
||||
try:
|
||||
macostools.copy(src, dst, 0, preserve_times)
|
||||
except os.error as exc:
|
||||
raise DistutilsFileError(
|
||||
"could not copy '%s' to '%s': %s" % (src, dst, exc.args[-1]))
|
||||
|
||||
# If linking (hard or symbolic), use the appropriate system call
|
||||
# (Unix only, of course, but that's the caller's responsibility)
|
||||
elif link == 'hard':
|
||||
|
|
|
@ -91,15 +91,6 @@ def change_root(new_root, pathname):
|
|||
path = path[1:]
|
||||
return os.path.join(new_root, path)
|
||||
|
||||
elif os.name == 'mac':
|
||||
if not os.path.isabs(pathname):
|
||||
return os.path.join(new_root, pathname)
|
||||
else:
|
||||
# Chop off volume name from start of path
|
||||
elements = pathname.split(":", 1)
|
||||
pathname = ":" + elements[1]
|
||||
return os.path.join(new_root, pathname)
|
||||
|
||||
else:
|
||||
raise DistutilsPlatformError("nothing known about "
|
||||
"platform '%s'" % os.name)
|
||||
|
|
|
@ -1147,10 +1147,6 @@ def uname():
|
|||
if not version:
|
||||
version = vendor
|
||||
|
||||
elif os.name == 'mac':
|
||||
release,(version,stage,nonrel),machine = mac_ver()
|
||||
system = 'MacOS'
|
||||
|
||||
# System specific extensions
|
||||
if system == 'OpenVMS':
|
||||
# OpenVMS seems to have release and version mixed up
|
||||
|
|
|
@ -92,11 +92,6 @@ def runctx(statement, globals, locals, filename=None):
|
|||
else:
|
||||
return prof.print_stats()
|
||||
|
||||
if os.name == "mac":
|
||||
import MacOS
|
||||
def _get_time_mac(timer=MacOS.GetTicks):
|
||||
return timer() / 60.0
|
||||
|
||||
if hasattr(os, "times"):
|
||||
def _get_time_times(timer=os.times):
|
||||
t = timer()
|
||||
|
@ -173,10 +168,6 @@ class Profile:
|
|||
self.timer = resgetrusage
|
||||
self.dispatcher = self.trace_dispatch
|
||||
self.get_time = _get_time_resource
|
||||
elif os.name == 'mac':
|
||||
self.timer = MacOS.GetTicks
|
||||
self.dispatcher = self.trace_dispatch_mac
|
||||
self.get_time = _get_time_mac
|
||||
elif hasattr(time, 'clock'):
|
||||
self.timer = self.get_time = time.clock
|
||||
self.dispatcher = self.trace_dispatch_i
|
||||
|
|
|
@ -2024,7 +2024,7 @@ pydoc</strong> by Ka-Ping Yee <ping@lfw.org></font>'''
|
|||
|
||||
class DocServer(http.server.HTTPServer):
|
||||
def __init__(self, port, callback):
|
||||
host = (sys.platform == 'mac') and '127.0.0.1' or 'localhost'
|
||||
host = 'localhost'
|
||||
self.address = ('', port)
|
||||
self.url = 'http://%s:%d/' % (host, port)
|
||||
self.callback = callback
|
||||
|
@ -2141,10 +2141,6 @@ def gui():
|
|||
except ImportError: # pre-webbrowser.py compatibility
|
||||
if sys.platform == 'win32':
|
||||
os.system('start "%s"' % url)
|
||||
elif sys.platform == 'mac':
|
||||
try: import ic
|
||||
except ImportError: pass
|
||||
else: ic.launchurl(url)
|
||||
else:
|
||||
rc = os.system('netscape -remote "openURL(%s)" &' % url)
|
||||
if rc: os.system('netscape "%s" &' % url)
|
||||
|
|
|
@ -50,13 +50,6 @@ import struct
|
|||
import copy
|
||||
import re
|
||||
|
||||
if sys.platform == 'mac':
|
||||
# This module needs work for MacOS9, especially in the area of pathname
|
||||
# handling. In many places it is assumed a simple substitution of / by the
|
||||
# local os.path.sep is good enough to convert pathnames, but this does not
|
||||
# work with the mac rooted:path:name versus :nonrooted:path:name syntax
|
||||
raise ImportError("tarfile does not work for platform==mac")
|
||||
|
||||
try:
|
||||
import grp, pwd
|
||||
except ImportError:
|
||||
|
|
|
@ -1209,34 +1209,6 @@ _expectations = {
|
|||
test_kqueue
|
||||
test_ossaudiodev
|
||||
""",
|
||||
'mac':
|
||||
"""
|
||||
test_atexit
|
||||
test_bz2
|
||||
test_crypt
|
||||
test_curses
|
||||
test_dbm
|
||||
test_fcntl
|
||||
test_fork1
|
||||
test_epoll
|
||||
test_grp
|
||||
test_ioctl
|
||||
test_largefile
|
||||
test_locale
|
||||
test_kqueue
|
||||
test_mmap
|
||||
test_openpty
|
||||
test_ossaudiodev
|
||||
test_poll
|
||||
test_popen
|
||||
test_posix
|
||||
test_pty
|
||||
test_pwd
|
||||
test_resource
|
||||
test_signal
|
||||
test_sundry
|
||||
test_tarfile
|
||||
""",
|
||||
'unixware7':
|
||||
"""
|
||||
test_epoll
|
||||
|
|
|
@ -39,13 +39,12 @@ class FrozenTests(unittest.TestCase):
|
|||
else:
|
||||
self.fail("import __phello__.foo should have failed")
|
||||
|
||||
if sys.platform != "mac": # On the Mac this import does succeed.
|
||||
try:
|
||||
import __phello__.foo
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
self.fail("import __phello__.foo should have failed")
|
||||
try:
|
||||
import __phello__.foo
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
self.fail("import __phello__.foo should have failed")
|
||||
|
||||
del sys.modules['__hello__']
|
||||
del sys.modules['__phello__']
|
||||
|
|
|
@ -304,8 +304,7 @@ class ClassWithFailingRepr:
|
|||
|
||||
def test_main():
|
||||
run_unittest(ReprTests)
|
||||
if os.name != 'mac':
|
||||
run_unittest(LongReprTest)
|
||||
run_unittest(LongReprTest)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -4,7 +4,7 @@ import select
|
|||
import os
|
||||
import sys
|
||||
|
||||
@unittest.skipIf(sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'),
|
||||
@unittest.skipIf(sys.platform[:3] in ('win', 'os2', 'riscos'),
|
||||
"can't easily test on this system")
|
||||
class SelectTestCase(unittest.TestCase):
|
||||
|
||||
|
|
|
@ -1465,9 +1465,7 @@ class TIPCThreadableTest (unittest.TestCase, ThreadableTest):
|
|||
|
||||
def test_main():
|
||||
tests = [GeneralModuleTests, BasicTCPTest, TCPCloserTest, TCPTimeoutTest,
|
||||
TestExceptions, BufferIOTest, BasicTCPTest2]
|
||||
if sys.platform != 'mac':
|
||||
tests.extend([ BasicUDPTest, UDPTimeoutTest ])
|
||||
TestExceptions, BufferIOTest, BasicTCPTest2, BasicUDPTest, UDPTimeoutTest ]
|
||||
|
||||
tests.extend([
|
||||
NonBlockingTCPTests,
|
||||
|
|
|
@ -298,9 +298,6 @@ class StrptimeTests(unittest.TestCase):
|
|||
self.assertEqual(strp_output.tm_isdst, 0)
|
||||
strp_output = _strptime._strptime_time("GMT", "%Z")
|
||||
self.assertEqual(strp_output.tm_isdst, 0)
|
||||
if sys.platform == "mac":
|
||||
# Timezones don't really work on MacOS9
|
||||
return
|
||||
time_tuple = time.localtime()
|
||||
strf_output = time.strftime("%Z") #UTC does not have a timezone
|
||||
strp_output = _strptime._strptime_time(strf_output, "%Z")
|
||||
|
@ -317,8 +314,6 @@ class StrptimeTests(unittest.TestCase):
|
|||
def test_bad_timezone(self):
|
||||
# Explicitly test possibility of bad timezone;
|
||||
# when time.tzname[0] == time.tzname[1] and time.daylight
|
||||
if sys.platform == "mac":
|
||||
return #MacOS9 has severely broken timezone support.
|
||||
tz_name = time.tzname[0]
|
||||
if tz_name.upper() in ("UTC", "GMT"):
|
||||
return
|
||||
|
|
|
@ -20,9 +20,7 @@ has_spawnl = hasattr(os, 'spawnl')
|
|||
|
||||
# TEST_FILES may need to be tweaked for systems depending on the maximum
|
||||
# number of files that can be opened at one time (see ulimit -n)
|
||||
if sys.platform == 'mac':
|
||||
TEST_FILES = 32
|
||||
elif sys.platform in ('openbsd3', 'openbsd4'):
|
||||
if sys.platform in ('openbsd3', 'openbsd4'):
|
||||
TEST_FILES = 48
|
||||
else:
|
||||
TEST_FILES = 100
|
||||
|
@ -265,7 +263,7 @@ class test__mkstemp_inner(TC):
|
|||
file = self.do_create()
|
||||
mode = stat.S_IMODE(os.stat(file.name).st_mode)
|
||||
expected = 0o600
|
||||
if sys.platform in ('win32', 'os2emx', 'mac'):
|
||||
if sys.platform in ('win32', 'os2emx'):
|
||||
# There's no distinction among 'user', 'group' and 'world';
|
||||
# replicate the 'user' bits.
|
||||
user = expected >> 6
|
||||
|
@ -488,7 +486,7 @@ class test_mkdtemp(TC):
|
|||
mode = stat.S_IMODE(os.stat(dir).st_mode)
|
||||
mode &= 0o777 # Mask off sticky bits inherited from /tmp
|
||||
expected = 0o700
|
||||
if sys.platform in ('win32', 'os2emx', 'mac'):
|
||||
if sys.platform in ('win32', 'os2emx'):
|
||||
# There's no distinction among 'user', 'group' and 'world';
|
||||
# replicate the 'user' bits.
|
||||
user = expected >> 6
|
||||
|
|
|
@ -22,11 +22,6 @@ class TrivialTests(unittest.TestCase):
|
|||
# XXX Name hacking to get this to work on Windows.
|
||||
fname = os.path.abspath(urllib.request.__file__).replace('\\', '/')
|
||||
|
||||
# And more hacking to get it to work on MacOS. This assumes
|
||||
# urllib.pathname2url works, unfortunately...
|
||||
if os.name == 'mac':
|
||||
fname = '/' + fname.replace(':', '/')
|
||||
|
||||
if os.name == 'nt':
|
||||
file_url = "file:///%s" % fname
|
||||
else:
|
||||
|
|
|
@ -1338,9 +1338,7 @@ class CacheFTPHandler(FTPHandler):
|
|||
MAXFTPCACHE = 10 # Trim the ftp cache beyond this size
|
||||
|
||||
# Helper for non-unix systems
|
||||
if os.name == 'mac':
|
||||
from macurl2path import url2pathname, pathname2url
|
||||
elif os.name == 'nt':
|
||||
if os.name == 'nt':
|
||||
from nturl2path import url2pathname, pathname2url
|
||||
else:
|
||||
def url2pathname(pathname):
|
||||
|
|
|
@ -64,12 +64,6 @@ from Tkinter import *
|
|||
import tktools
|
||||
import webchecker
|
||||
|
||||
# Override some for a weaker platform
|
||||
if sys.platform == 'mac':
|
||||
webchecker.DEFROOT = "http://grail.cnri.reston.va.us/"
|
||||
webchecker.MAXPAGE = 50000
|
||||
webchecker.verbose = 4
|
||||
|
||||
def main():
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], 't:m:qva')
|
||||
|
|
|
@ -97,8 +97,6 @@ class Sucker(webchecker.Checker):
|
|||
path = path + "index.html"
|
||||
if os.sep != "/":
|
||||
path = os.sep.join(path.split("/"))
|
||||
if os.name == "mac":
|
||||
path = os.sep + path
|
||||
path = os.path.join(host, path)
|
||||
return path
|
||||
|
||||
|
|
79
setup.py
79
setup.py
|
@ -150,22 +150,21 @@ class PyBuildExt(build_ext):
|
|||
if ext.name in sys.builtin_module_names:
|
||||
self.extensions.remove(ext)
|
||||
|
||||
if platform != 'mac':
|
||||
# Parse Modules/Setup and Modules/Setup.local to figure out which
|
||||
# modules are turned on in the file.
|
||||
remove_modules = []
|
||||
for filename in ('Modules/Setup', 'Modules/Setup.local'):
|
||||
input = text_file.TextFile(filename, join_lines=1)
|
||||
while 1:
|
||||
line = input.readline()
|
||||
if not line: break
|
||||
line = line.split()
|
||||
remove_modules.append(line[0])
|
||||
input.close()
|
||||
# Parse Modules/Setup and Modules/Setup.local to figure out which
|
||||
# modules are turned on in the file.
|
||||
remove_modules = []
|
||||
for filename in ('Modules/Setup', 'Modules/Setup.local'):
|
||||
input = text_file.TextFile(filename, join_lines=1)
|
||||
while 1:
|
||||
line = input.readline()
|
||||
if not line: break
|
||||
line = line.split()
|
||||
remove_modules.append(line[0])
|
||||
input.close()
|
||||
|
||||
for ext in self.extensions[:]:
|
||||
if ext.name in remove_modules:
|
||||
self.extensions.remove(ext)
|
||||
for ext in self.extensions[:]:
|
||||
if ext.name in remove_modules:
|
||||
self.extensions.remove(ext)
|
||||
|
||||
# When you run "make CC=altcc" or something similar, you really want
|
||||
# those environment variables passed into the setup.py phase. Here's
|
||||
|
@ -381,7 +380,7 @@ class PyBuildExt(build_ext):
|
|||
|
||||
# Check for MacOS X, which doesn't need libm.a at all
|
||||
math_libs = ['m']
|
||||
if platform in ['darwin', 'mac']:
|
||||
if platform == 'darwin':
|
||||
math_libs = []
|
||||
|
||||
# XXX Omitted modules: gl, pure, dl, SGI-specific modules
|
||||
|
@ -441,19 +440,16 @@ class PyBuildExt(build_ext):
|
|||
|
||||
# fcntl(2) and ioctl(2)
|
||||
exts.append( Extension('fcntl', ['fcntlmodule.c']) )
|
||||
if platform not in ['mac']:
|
||||
# pwd(3)
|
||||
exts.append( Extension('pwd', ['pwdmodule.c']) )
|
||||
# grp(3)
|
||||
exts.append( Extension('grp', ['grpmodule.c']) )
|
||||
# spwd, shadow passwords
|
||||
if (config_h_vars.get('HAVE_GETSPNAM', False) or
|
||||
config_h_vars.get('HAVE_GETSPENT', False)):
|
||||
exts.append( Extension('spwd', ['spwdmodule.c']) )
|
||||
else:
|
||||
missing.append('spwd')
|
||||
# pwd(3)
|
||||
exts.append( Extension('pwd', ['pwdmodule.c']) )
|
||||
# grp(3)
|
||||
exts.append( Extension('grp', ['grpmodule.c']) )
|
||||
# spwd, shadow passwords
|
||||
if (config_h_vars.get('HAVE_GETSPNAM', False) or
|
||||
config_h_vars.get('HAVE_GETSPENT', False)):
|
||||
exts.append( Extension('spwd', ['spwdmodule.c']) )
|
||||
else:
|
||||
missing.extend(['pwd', 'grp', 'spwd'])
|
||||
missing.append('spwd')
|
||||
|
||||
# select(2); not on ancient System V
|
||||
exts.append( Extension('select', ['selectmodule.c']) )
|
||||
|
@ -462,17 +458,11 @@ class PyBuildExt(build_ext):
|
|||
exts.append( Extension('parser', ['parsermodule.c']) )
|
||||
|
||||
# Memory-mapped files (also works on Win32).
|
||||
if platform not in ['mac']:
|
||||
exts.append( Extension('mmap', ['mmapmodule.c']) )
|
||||
else:
|
||||
missing.append('mmap')
|
||||
exts.append( Extension('mmap', ['mmapmodule.c']) )
|
||||
|
||||
# Lance Ellinghaus's syslog module
|
||||
if platform not in ['mac']:
|
||||
# syslog daemon interface
|
||||
exts.append( Extension('syslog', ['syslogmodule.c']) )
|
||||
else:
|
||||
missing.append('syslog')
|
||||
# syslog daemon interface
|
||||
exts.append( Extension('syslog', ['syslogmodule.c']) )
|
||||
|
||||
#
|
||||
# Here ends the simple stuff. From here on, modules need certain
|
||||
|
@ -532,16 +522,13 @@ class PyBuildExt(build_ext):
|
|||
else:
|
||||
missing.append('readline')
|
||||
|
||||
if platform not in ['mac']:
|
||||
# crypt module.
|
||||
# crypt module.
|
||||
|
||||
if self.compiler_obj.find_library_file(lib_dirs, 'crypt'):
|
||||
libs = ['crypt']
|
||||
else:
|
||||
libs = []
|
||||
exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) )
|
||||
if self.compiler_obj.find_library_file(lib_dirs, 'crypt'):
|
||||
libs = ['crypt']
|
||||
else:
|
||||
missing.append('crypt')
|
||||
libs = []
|
||||
exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) )
|
||||
|
||||
# CSV files
|
||||
exts.append( Extension('_csv', ['_csv.c']) )
|
||||
|
@ -986,7 +973,7 @@ class PyBuildExt(build_ext):
|
|||
missing.append('_gdbm')
|
||||
|
||||
# Unix-only modules
|
||||
if platform not in ['mac', 'win32']:
|
||||
if platform != 'win32':
|
||||
# Steen Lumholt's termios module
|
||||
exts.append( Extension('termios', ['termios.c']) )
|
||||
# Jeremy Hylton's rlimit interface
|
||||
|
|
Loading…
Reference in New Issue