|
|
@ -1,6 +1,7 @@ |
|
|
|
#!/usr/bin/env python |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
|
|
|
import errno |
|
|
|
import gzip |
|
|
|
import io |
|
|
|
import json |
|
|
@ -334,12 +335,20 @@ def sanitize_open(filename, open_mode): |
|
|
|
stream = open(encodeFilename(filename), open_mode) |
|
|
|
return (stream, filename) |
|
|
|
except (IOError, OSError) as err: |
|
|
|
# In case of error, try to remove win32 forbidden chars |
|
|
|
filename = re.sub(u'[/<>:"\\|\\\\?\\*]', u'#', filename) |
|
|
|
if err.errno in (errno.EACCES,): |
|
|
|
raise |
|
|
|
|
|
|
|
# An exception here should be caught in the caller |
|
|
|
stream = open(encodeFilename(filename), open_mode) |
|
|
|
return (stream, filename) |
|
|
|
# In case of error, try to remove win32 forbidden chars |
|
|
|
alt_filename = os.path.join( |
|
|
|
re.sub(u'[/<>:"\\|\\\\?\\*]', u'#', path_part) |
|
|
|
for path_part in os.path.split(filename) |
|
|
|
) |
|
|
|
if alt_filename == filename: |
|
|
|
raise |
|
|
|
else: |
|
|
|
# An exception here should be caught in the caller |
|
|
|
stream = open(encodeFilename(filename), open_mode) |
|
|
|
return (stream, alt_filename) |
|
|
|
|
|
|
|
|
|
|
|
def timeconvert(timestr): |
|
|
|