Add support for `os.chmod('script.sh', 'ug+x')` syntax style.
Project description
python-chmod-monkey
Add support for os.chmod('script.sh', 'ug+x')
syntax style.
Almost any expression supported by GNU Coreutils chmod should be supported by this module.
[ugoa]*([-+=]([rwx]*|[ugo]))+|[-+=][0-7]+
Xst
flags are not supported though.
Install
pip install chmod-monkey
Usage
There are two ways to use chmod-monkey
.
Using os.chmod MonkeyPatch
import os
import chmod_monkey
chmod_monkey.install() # Install monkeypatch because we are evil !
os.chmod('script.sh', 'ug+x') # Magic :)
Using to_mode converter
import os
from chmod_monkey import to_mode
os.chmod('script.sh', to_mode('script.sh', 'ug+x')) # For serious people.
Other features
Context manager
You may use the following syntax to temporary change a file mode.
from chmod_monkey import tmp_chmod
with tmp_chmod('script.sh', "+w"):
pass # File permissions are modified in this block only
# File permissions are restored here
History
1.1.1 (2020-05-12)
- Add
exception_in_context
option totmp_chmod
and more data in context manager.
1.1.0 (2020-05-12)
- Add
tmp_chmod
function to temporary apply a permission on a file in awith
statement.
1.0.0 (2020-05-11)
- First version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
chmod-monkey-1.1.1.tar.gz
(13.9 kB
view details)
File details
Details for the file chmod-monkey-1.1.1.tar.gz
.
File metadata
- Download URL: chmod-monkey-1.1.1.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21e62bec91f1d671867a8f7a35f577c73d34ec24b2e14a6f309f2a882633b647 |
|
MD5 | 13e2c041b56d39bfda5324638b7ad514 |
|
BLAKE2b-256 | c51deaab8765ea1c00676e0ad6e82ed5aa05b02e7a686f92f10211e981d3fcd1 |