posix -> os

This commit is contained in:
Guido van Rossum 1992-03-31 18:55:40 +00:00
parent a05026b38d
commit c96207abb3
3 changed files with 35 additions and 39 deletions

View File

@ -1,11 +1,10 @@
# Module 'dircache'
#
# Return a sorted list of the files in a POSIX directory, using a cache
# Return a sorted list of the files in a directory, using a cache
# to avoid reading the directory more often than necessary.
# Also contains a subroutine to append slashes to directories.
import posix
import path
import os
cache = {}
@ -16,13 +15,13 @@ def listdir(path): # List directory contents, using cache
except KeyError:
cached_mtime, list = -1, []
try:
mtime = posix.stat(path)[8]
except posix.error:
mtime = os.stat(path)[8]
except os.error:
return []
if mtime <> cached_mtime:
try:
list = posix.listdir(path)
except posix.error:
list = os.listdir(path)
except os.error:
return []
list.sort()
cache[path] = mtime, list
@ -32,5 +31,5 @@ opendir = listdir # XXX backward compatibility
def annotate(head, list): # Add '/' suffixes to directories
for i in range(len(list)):
if path.isdir(path.join(head, list[i])):
if os.path.isdir(os.path.join(head, list[i])):
list[i] = list[i] + '/'

View File

@ -2,9 +2,7 @@
#
# Defines a class to build directory diff tools on.
import posix
import path
import os
import dircache
import cmpcache
@ -19,7 +17,7 @@ class dircmp:
dd.a = a
dd.b = b
# Properties that caller may change before calling dd.run():
dd.hide = ['.', '..'] # Names never to be shown
dd.hide = [os.curdir, os.pardir] # Names never to be shown
dd.ignore = ['RCS', 'tags'] # Names ignored in comparison
#
return dd
@ -53,18 +51,18 @@ class dircmp:
dd.common_funny = []
#
for x in dd.common:
a_path = path.join(dd.a, x)
b_path = path.join(dd.b, x)
a_path = os.path.join(dd.a, x)
b_path = os.path.join(dd.b, x)
#
ok = 1
try:
a_stat = statcache.stat(a_path)
except posix.error, why:
except os.error, why:
# print 'Can\'t stat', a_path, ':', why[1]
ok = 0
try:
b_stat = statcache.stat(b_path)
except posix.error, why:
except os.error, why:
# print 'Can\'t stat', b_path, ':', why[1]
ok = 0
#
@ -92,8 +90,8 @@ class dircmp:
# The hide and ignore properties are inherited from the parent
dd.subdirs = {}
for x in dd.common_dirs:
a_x = path.join(dd.a, x)
b_x = path.join(dd.b, x)
a_x = os.path.join(dd.a, x)
b_x = os.path.join(dd.b, x)
dd.subdirs[x] = newdd = dircmp().new(a_x, b_x)
newdd.hide = dd.hide
newdd.ignore = dd.ignore
@ -151,7 +149,7 @@ class dircmp:
def cmpfiles(a, b, common):
res = ([], [], [])
for x in common:
res[cmp(path.join(a, x), path.join(b, x))].append(x)
res[cmp(os.path.join(a, x), os.path.join(b, x))].append(x)
return res
@ -165,7 +163,7 @@ def cmp(a, b):
try:
if cmpcache.cmp(a, b): return 0
return 1
except posix.error:
except os.error:
return 2

View File

@ -1,7 +1,6 @@
# Module 'shutil' -- utility functions usable in a shell-like program
import posix
import path
import os
MODEBITS = 010000 # Lower 12 mode bits
# Change this to 01000 (9 mode bits) to avoid copying setuid etc.
@ -19,17 +18,17 @@ def copyfile(src, dst):
# Copy mode bits from src to dst
#
def copymode(src, dst):
st = posix.stat(src)
st = os.stat(src)
mode = divmod(st[0], MODEBITS)[1]
posix.chmod(dst, mode)
os.chmod(dst, mode)
# Copy all stat info (mode bits, atime and mtime) from src to dst
#
def copystat(src, dst):
st = posix.stat(src)
st = os.stat(src)
mode = divmod(st[0], MODEBITS)[1]
posix.chmod(dst, mode)
posix.utimes(dst, st[7:9])
os.chmod(dst, mode)
os.utime(dst, st[7:9])
# Copy data and mode bits ("cp src dst")
#
@ -47,24 +46,24 @@ def copy2(src, dst):
# The destination must not already exist.
#
def copytree(src, dst):
names = posix.listdir(src)
posix.mkdir(dst, 0777)
dot_dotdot = '.', '..'
names = os.listdir(src)
os.mkdir(dst, 0777)
dot_dotdot = (os.curdir, os.pardir)
for name in names:
if name not in dot_dotdot:
srcname = path.join(src, name)
dstname = path.join(dst, name)
srcname = os.path.join(src, name)
dstname = os.path.join(dst, name)
#print 'Copying', srcname, 'to', dstname
try:
#if path.islink(srcname):
# linkto = posix.readlink(srcname)
# posix.symlink(linkto, dstname)
#elif path.isdir(srcname):
if path.isdir(srcname):
#if os.path.islink(srcname):
# linkto = os.readlink(srcname)
# os.symlink(linkto, dstname)
#elif os.path.isdir(srcname):
if os.path.isdir(srcname):
copytree(srcname, dstname)
else:
copy2(srcname, dstname)
# XXX What about devices, sockets etc.?
except posix.error, why:
except os.error, why:
print 'Could not copy', srcname, 'to', dstname,
print '(', why[1], ')'