Python stat.S_IWRITE Examples
The following are 30
code examples of stat.S_IWRITE().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
stat
, or try the search function
.
Example #1
Source File: file_system_helpers.py From funfuzz with Mozilla Public License 2.0 | 6 votes |
def handle_rm_readonly_files(_func, path, exc): """Handle read-only files on Windows. Adapted from https://stackoverflow.com/a/21263493. Args: _func (function): Function which raised the exception path (str): Path name passed to function exc (exception): Exception information returned by sys.exc_info() Raises: OSError: Raised if the read-only files are unable to be handled """ assert platform.system() == "Windows" path = Path(path) if exc[1].errno == errno.EACCES: Path.chmod(path, stat.S_IWRITE) assert path.is_file() path.unlink() else: raise OSError("Unable to handle read-only files.")
Example #2
Source File: install.py From arnold-usd with Apache License 2.0 | 6 votes |
def copyFunc(dest, source, env): """Install a source file or directory into a destination by copying, (including copying permission/mode bits).""" if os.path.isdir(source): if os.path.exists(dest): if not os.path.isdir(dest): raise SCons.Errors.UserError("cannot overwrite non-directory `%s' with a directory `%s'" % (str(dest), str(source))) else: parent = os.path.split(dest)[0] if not os.path.exists(parent): os.makedirs(parent) scons_copytree(source, dest) else: shutil.copy2(source, dest) st = os.stat(source) os.chmod(dest, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE) return 0 # # Functions doing the actual work of the InstallVersionedLib Builder. #
Example #3
Source File: install.py From pivy with ISC License | 6 votes |
def copyFunc(dest, source, env): """Install a source file or directory into a destination by copying, (including copying permission/mode bits).""" if os.path.isdir(source): if os.path.exists(dest): if not os.path.isdir(dest): raise SCons.Errors.UserError("cannot overwrite non-directory `%s' with a directory `%s'" % (str(dest), str(source))) else: parent = os.path.split(dest)[0] if not os.path.exists(parent): os.makedirs(parent) shutil.copytree(source, dest) else: shutil.copy2(source, dest) st = os.stat(source) os.chmod(dest, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE) return 0
Example #4
Source File: CacheDir.py From pivy with ISC License | 6 votes |
def CacheRetrieveFunc(target, source, env): t = target[0] fs = t.fs cd = env.get_CacheDir() cachedir, cachefile = cd.cachepath(t) if not fs.exists(cachefile): cd.CacheDebug('CacheRetrieve(%s): %s not in cache\n', t, cachefile) return 1 cd.CacheDebug('CacheRetrieve(%s): retrieving from %s\n', t, cachefile) if SCons.Action.execute_actions: if fs.islink(cachefile): fs.symlink(fs.readlink(cachefile), t.path) else: env.copy_from_cache(cachefile, t.path) st = fs.stat(cachefile) fs.chmod(t.path, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE) return 0
Example #5
Source File: wallet.py From torba with MIT License | 6 votes |
def write(self, json_dict): json_data = json.dumps(json_dict, indent=4, sort_keys=True) if self.path is None: return json_data temp_path = "%s.tmp.%s" % (self.path, os.getpid()) with open(temp_path, "w") as f: f.write(json_data) f.flush() os.fsync(f.fileno()) if os.path.exists(self.path): mode = os.stat(self.path).st_mode else: mode = stat.S_IREAD | stat.S_IWRITE try: os.rename(temp_path, self.path) except Exception: # pylint: disable=broad-except os.remove(self.path) os.rename(temp_path, self.path) os.chmod(self.path, mode)
Example #6
Source File: _os.py From GTDWeb with GNU General Public License v2.0 | 6 votes |
def rmtree_errorhandler(func, path, exc_info): """ On Windows, some files are read-only (e.g. in in .svn dirs), so when rmtree() tries to remove them, an exception is thrown. We catch that here, remove the read-only attribute, and hopefully continue without problems. """ exctype, value = exc_info[:2] # looking for a windows error if exctype is not WindowsError or 'Access is denied' not in str(value): raise # file type should currently be read only if ((os.stat(path).st_mode & stat.S_IREAD) != stat.S_IREAD): raise # convert to read/write os.chmod(path, stat.S_IWRITE) # use the original function to repeat the operation func(path)
Example #7
Source File: utils.py From bob with GNU General Public License v3.0 | 6 votes |
def removePath(path): if sys.platform == "win32": def onerror(func, path, exc): os.chmod(path, stat.S_IWRITE) os.unlink(path) else: onerror = None try: if os.path.lexists(path): if os.path.isdir(path) and not os.path.islink(path): shutil.rmtree(path, onerror=onerror) else: os.unlink(path) except OSError as e: raise BuildError("Error removing '"+path+"': " + str(e))
Example #8
Source File: install.py From arnold-usd with Apache License 2.0 | 6 votes |
def copyFuncVersionedLib(dest, source, env): """Install a versioned library into a destination by copying, (including copying permission/mode bits) and then creating required symlinks.""" if os.path.isdir(source): raise SCons.Errors.UserError("cannot install directory `%s' as a version library" % str(source) ) else: # remove the link if it is already there try: os.remove(dest) except: pass shutil.copy2(source, dest) st = os.stat(source) os.chmod(dest, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE) installShlibLinks(dest, source, env) return 0
Example #9
Source File: mp3.py From mp3-tagger with MIT License | 6 votes |
def open(self): """Reads file. :return: byte string. """ if self.path.endswith('.mp3'): try: stream = open(self.path, 'r+b') except PermissionError: os.chmod(self.path, S_IWRITE) stream = open(self.path, 'r+b') else: raise MP3OpenFileError('File must be MP3 format') data = stream.read() stream.close() return data
Example #10
Source File: test_nt.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_remove_negative(self): import stat self.assertRaisesNumber(WindowsError, errno.ENOENT, lambda : nt.remove('some_file_that_does_not_exist')) try: file('some_test_file.txt', 'w').close() nt.chmod('some_test_file.txt', stat.S_IREAD) self.assertRaisesNumber(WindowsError, errno.EACCES, lambda : nt.remove('some_test_file.txt')) nt.chmod('some_test_file.txt', stat.S_IWRITE) f = file('some_test_file.txt', 'w+') self.assertRaisesNumber(WindowsError, errno.EACCES, lambda : nt.remove('some_test_file.txt')) f.close() finally: nt.chmod('some_test_file.txt', stat.S_IWRITE) nt.unlink('some_test_file.txt') # rename tests
Example #11
Source File: test_nt.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_access(self): f = file('new_file_name', 'w') f.close() self.assertEqual(nt.access('new_file_name', nt.F_OK), True) self.assertEqual(nt.access('new_file_name', nt.R_OK), True) self.assertEqual(nt.access('does_not_exist.py', nt.F_OK), False) self.assertEqual(nt.access('does_not_exist.py', nt.R_OK), False) nt.chmod('new_file_name', 0x100) # S_IREAD self.assertEqual(nt.access('new_file_name', nt.W_OK), False) nt.chmod('new_file_name', 0x80) # S_IWRITE nt.unlink('new_file_name') nt.mkdir('new_dir_name') self.assertEqual(nt.access('new_dir_name', nt.R_OK), True) nt.rmdir('new_dir_name') self.assertRaises(TypeError, nt.access, None, 1)
Example #12
Source File: CacheDir.py From web2board with GNU Lesser General Public License v3.0 | 6 votes |
def CacheRetrieveFunc(target, source, env): t = target[0] fs = t.fs cd = env.get_CacheDir() cachedir, cachefile = cd.cachepath(t) if not fs.exists(cachefile): cd.CacheDebug('CacheRetrieve(%s): %s not in cache\n', t, cachefile) return 1 cd.CacheDebug('CacheRetrieve(%s): retrieving from %s\n', t, cachefile) if SCons.Action.execute_actions: if fs.islink(cachefile): fs.symlink(fs.readlink(cachefile), t.get_internal_path()) else: env.copy_from_cache(cachefile, t.get_internal_path()) st = fs.stat(cachefile) fs.chmod(t.get_internal_path(), stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE) return 0
Example #13
Source File: test_regression.py From gphotos-sync with MIT License | 6 votes |
def ___test_folder_not_writeable(self): # make sure we get permissions error and not 'database is locked' s = ts.SetupDbAndCredentials() s.test_setup("test_folder_not_writeable", trash_files=True, trash_db=True) try: if os.name == "nt": os.chmod(str(s.root), stat.S_IREAD) else: s.root.chmod(0o444) with self.assertRaises(PermissionError): s.gp.main([str(s.root), "--skip-shared-albums"]) finally: if os.name == "nt": os.chmod(str(s.root), stat.S_IWRITE | stat.S_IREAD) else: os.chmod(str(s.root), 0o777) shutil.rmtree(str(s.root))
Example #14
Source File: shutil.py From smbprotocol with MIT License | 6 votes |
def copymode(src, dst, follow_symlinks=True, **kwargs): """ Copy the permission bits from src to dst. The file contents, owner, and group are unaffected. Due to the limitations of Windows, this function only sets/unsets the dst's FILE_ATTRIBUTE_READ_ONLY flag based on what src's attribute is set to. If follow_symlinks is 'False', and both src and dst are symbolic links, copymode() will attempt to modify the mode of dst itself (rather than the file it points to). This function supports src and dst being either a local or UNC path. A relative path will be resolved based on the current working directory. :param src: The src file or directory to copy the read only flag from. :param dst: The dst file or directory to copy the read only flag to. :param follow_symlinks: Whether to copy the read only flag on the symlink or the target of the symlink. :param kwargs: Common arguments used to build the SMB Session for any UNC paths. """ src_mode = stat.S_IMODE(_get_file_stat(src, follow_symlinks, **kwargs).st_mode) norm_dst = ntpath.normpath(dst) if norm_dst.startswith('\\\\'): read_only = not (src_mode & stat.S_IWRITE == stat.S_IWRITE and src_mode & stat.S_IREAD == stat.S_IREAD) _set_file_basic_info(dst, follow_symlinks, read_only=read_only, **kwargs) else: _local_chmod(dst, src_mode, follow_symlinks)
Example #15
Source File: misc.py From pex with Apache License 2.0 | 6 votes |
def rmtree_errorhandler(func, path, exc_info): """On Windows, the files in .svn are read-only, so when rmtree() tries to remove them, an exception is thrown. We catch that here, remove the read-only attribute, and hopefully continue without problems.""" try: has_attr_readonly = not (os.stat(path).st_mode & stat.S_IWRITE) except (IOError, OSError): # it's equivalent to os.path.exists return if has_attr_readonly: # convert to read/write os.chmod(path, stat.S_IWRITE) # use the original function to repeat the operation func(path) return else: raise
Example #16
Source File: install.py From web2board with GNU Lesser General Public License v3.0 | 6 votes |
def copyFuncVersionedLib(dest, source, env): """Install a versioned library into a destination by copying, (including copying permission/mode bits) and then creating required symlinks.""" if os.path.isdir(source): raise SCons.Errors.UserError("cannot install directory `%s' as a version library" % str(source) ) else: # remove the link if it is already there try: os.remove(dest) except: pass shutil.copy2(source, dest) st = os.stat(source) os.chmod(dest, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE) installShlibLinks(dest, source, env) return 0
Example #17
Source File: config.py From is-service-up with Apache License 2.0 | 6 votes |
def ensure_private_ssh_key(): global PRIVATE_SSH_KEY if PRIVATE_SSH_KEY: key_path = os.path.expanduser('~/.ssh') key_file = os.path.join(key_path, 'id_rsa') try: if not os.path.isdir(key_path): os.mkdir(key_path) if not os.path.isfile(key_file): shutil.copyfile(PRIVATE_SSH_KEY, key_file) os.chmod(key_file, stat.S_IWRITE | stat.S_IREAD) except (IOError, OSError) as error: PRIVATE_SSH_KEY = '' print(error) else: return True return False # TODO: unify with frontend config
Example #18
Source File: install.py From web2board with GNU Lesser General Public License v3.0 | 6 votes |
def copyFunc(dest, source, env): """Install a source file or directory into a destination by copying, (including copying permission/mode bits).""" if os.path.isdir(source): if os.path.exists(dest): if not os.path.isdir(dest): raise SCons.Errors.UserError("cannot overwrite non-directory `%s' with a directory `%s'" % (str(dest), str(source))) else: parent = os.path.split(dest)[0] if not os.path.exists(parent): os.makedirs(parent) scons_copytree(source, dest) else: shutil.copy2(source, dest) st = os.stat(source) os.chmod(dest, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE) return 0 # # Functions doing the actual work of the InstallVersionedLib Builder. #
Example #19
Source File: test_smbclient_shutil.py From smbprotocol with MIT License | 6 votes |
def test_copymode_remote_to_local(smb_share, tmpdir): test_dir = tmpdir.mkdir("test") src_filename = "%s\\source.txt" % smb_share dst_filename = "%s\\target.txt" % test_dir with open_file(src_filename, mode='w', file_attributes=FileAttributes.FILE_ATTRIBUTE_READONLY) as fd: fd.write(u"content") with open(dst_filename, mode='w') as fd: fd.write(u"content") copymode(src_filename, dst_filename) actual = os.stat(dst_filename).st_mode assert stat.S_IMODE(actual) & stat.S_IWRITE == 0 remove(src_filename) with open_file(src_filename, mode='w') as fd: fd.write(u"content") copymode(src_filename, dst_filename) actual = os.stat(dst_filename).st_mode assert stat.S_IMODE(actual) & stat.S_IWRITE == stat.S_IWRITE
Example #20
Source File: util.py From oss-ftp with MIT License | 6 votes |
def rmtree_errorhandler(func, path, exc_info): """On Windows, the files in .svn are read-only, so when rmtree() tries to remove them, an exception is thrown. We catch that here, remove the read-only attribute, and hopefully continue without problems.""" exctype, value = exc_info[:2] if not ((exctype is WindowsError and value.args[0] == 5) or #others (exctype is OSError and value.args[0] == 13) or #python2.4 (exctype is PermissionError and value.args[3] == 5) #python3.3 ): raise # file type should currently be read only if ((os.stat(path).st_mode & stat.S_IREAD) != stat.S_IREAD): raise # convert to read/write os.chmod(path, stat.S_IWRITE) # use the original function to repeat the operation func(path)
Example #21
Source File: misc.py From FuYiSpider with Apache License 2.0 | 5 votes |
def rmtree_errorhandler(func, path, exc_info): """On Windows, the files in .svn are read-only, so when rmtree() tries to remove them, an exception is thrown. We catch that here, remove the read-only attribute, and hopefully continue without problems.""" # if file type currently read only if os.stat(path).st_mode & stat.S_IREAD: # convert to read/write os.chmod(path, stat.S_IWRITE) # use the original function to repeat the operation func(path) return else: raise
Example #22
Source File: setup.py From textext with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __exit__(self, exc_type, exc_val, exc_tb): def retry_with_chmod(func, path, exec_info): os.chmod(path, stat.S_IWRITE) func(path) if self.dir_name: shutil.rmtree(self.dir_name, onerror=retry_with_chmod)
Example #23
Source File: easy_install.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def auto_chmod(func, arg, exc): if func in [os.unlink, os.remove] and os.name == 'nt': chmod(arg, stat.S_IWRITE) return func(arg) et, ev, _ = sys.exc_info() six.reraise(et, (ev[0], ev[1] + (" %s %s" % (func, arg))))
Example #24
Source File: utility.py From textext with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __exit__(self, exc_type, exc_val, exc_tb): def retry_with_chmod(func, path, exec_info): os.chmod(path, stat.S_IWRITE) func(path) if self.dir_name: shutil.rmtree(self.dir_name, onerror=retry_with_chmod)
Example #25
Source File: vpn_utils.py From neutron-vpnaas with Apache License 2.0 | 5 votes |
def write_key_to_local_path(keypair, local_key_file): """Write the private key of the nova instance to a temp file :param keypair: nova keypair :param local_key_file: path to private key file :return: """ with open(local_key_file, 'w') as f: os.chmod(local_key_file, stat.S_IREAD | stat.S_IWRITE) f.write(keypair.private_key)
Example #26
Source File: misc.py From FuYiSpider with Apache License 2.0 | 5 votes |
def rmtree_errorhandler(func, path, exc_info): """On Windows, the files in .svn are read-only, so when rmtree() tries to remove them, an exception is thrown. We catch that here, remove the read-only attribute, and hopefully continue without problems.""" # if file type currently read only if os.stat(path).st_mode & stat.S_IREAD: # convert to read/write os.chmod(path, stat.S_IWRITE) # use the original function to repeat the operation func(path) return else: raise
Example #27
Source File: FS.py From pivy with ISC License | 5 votes |
def _copy_func(fs, src, dest): shutil.copy2(src, dest) st = fs.stat(src) fs.chmod(dest, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE)
Example #28
Source File: __init__.py From vnpy_crypto with MIT License | 5 votes |
def rmtree_errorhandler(func, path, exc_info): """On Windows, the files in .svn are read-only, so when rmtree() tries to remove them, an exception is thrown. We catch that here, remove the read-only attribute, and hopefully continue without problems.""" # if file type currently read only if os.stat(path).st_mode & stat.S_IREAD: # convert to read/write os.chmod(path, stat.S_IWRITE) # use the original function to repeat the operation func(path) return else: raise
Example #29
Source File: FS.py From web2board with GNU Lesser General Public License v3.0 | 5 votes |
def _copy_func(fs, src, dest): shutil.copy2(src, dest) st = fs.stat(src) fs.chmod(dest, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE)
Example #30
Source File: ci.py From web2board with GNU Lesser General Public License v3.0 | 5 votes |
def cli(ctx, src, lib, exclude, board, # pylint: disable=R0913 build_dir, keep_build_dir, project_conf, verbose): if not src: src = getenv("PLATFORMIO_CI_SRC", "").split(":") if not src: raise click.BadParameter("Missing argument 'src'") try: app.set_session_var("force_option", True) _clean_dir(build_dir) for dir_name, patterns in dict(lib=lib, src=src).iteritems(): if not patterns: continue contents = [] for p in patterns: contents += glob(p) _copy_contents(join(build_dir, dir_name), contents) if project_conf and isfile(project_conf): copyfile(project_conf, join(build_dir, "platformio.ini")) elif not board: raise CIBuildEnvsEmpty() if exclude: _exclude_contents(build_dir, exclude) # initialise project ctx.invoke(cmd_init, project_dir=build_dir, board=board) # process project ctx.invoke(cmd_run, project_dir=build_dir, verbose=verbose) finally: if not keep_build_dir: rmtree( build_dir, onerror=lambda action, name, exc: (chmod(name, stat.S_IWRITE), remove(name)) )