Issue #7512: shutil.copystat() could raise an OSError when the filesystem

didn't support chflags() (for example ZFS under FreeBSD).  The error is
now silenced.
This commit is contained in:
Antoine Pitrou 2010-03-22 19:59:46 +00:00
parent 0805e6eed9
commit 513d9aeadb
2 changed files with 10 additions and 2 deletions

View file

@ -11,6 +11,7 @@ from os.path import abspath
import fnmatch
from warnings import warn
import collections
import errno
try:
from pwd import getpwnam
@ -105,8 +106,11 @@ def copystat(src, dst):
if hasattr(os, 'chmod'):
os.chmod(dst, mode)
if hasattr(os, 'chflags') and hasattr(st, 'st_flags'):
os.chflags(dst, st.st_flags)
try:
os.chflags(dst, st.st_flags)
except OSError, why:
if not hasattr(errno, 'EOPNOTSUPP') or why.errno != errno.EOPNOTSUPP:
raise
def copy(src, dst):
"""Copy data and mode bits ("cp src dst").