bag.pathlib_complement module
A subclass of Path from pathlib.
Python 3.4 introduces an object-oriented module for path manipulation
called pathlib
. But it is missing certain convenience methods.
-
class bag.pathlib_complement.Path(*args, **kwargs)[source]
Bases: pathlib.PosixPath
pathlib.Path subclass – has more methods.
-
chgrp(gid)[source]
Change the UNIX group of this path.
-
copy(dest, **kw)[source]
Copy to dest – supports leaf or directory tree.
- Return type
None
-
empty()[source]
Remove directory contents without removing the directory itself.
-
ensure_directory(parents=True)[source]
Create the directory only if it does not yet exist.
-
property mtime
-
recursive_chgrp(group, this=False)[source]
Change the UNIX group of the directory contents.
If this
, changes the directory itself, too.
-
recursive_chmod(file_perms, dir_perms=None)[source]
-
remove()[source]
Delete self, irrespective of whether it’s symlink, file or dir.
-
walk(filter=None, this=False)[source]
Recursively traverse this directory.
-
bag.pathlib_complement.corresponding_directory_perm(perm)[source]
Given 4, returns 5. Given 6, returns 7.
Based on desired file permissions, returns corresponding dir permissions.
-
bag.pathlib_complement.default_directory_perms(file_perms)[source]
Given file_perms
, return directory permissions.
Most people understand UNIX permissions for files, but not for
directories – if a file has 644 then usually its parent should be 754.
We automate this here.
-
bag.pathlib_complement.oct2int(number)[source]
Convert 3 numbers to be able to chmod.
Given a (string or int) representation of a file mode, such as “777”
– you have to realize that is actually an octal number –,
returns the corresponding integer to be able to chmod.