tools.py
Some utility functions.
Style
¶
Common color styles.
Source code in copier/tools.py
30 31 32 33 34 35 36 37 |
|
TemporaryDirectory
¶
Bases: tempfile.TemporaryDirectory
A custom version of tempfile.TemporaryDirectory
that handles read-only files better.
On Windows, before Python 3.8, shutil.rmtree
does not handle read-only files very well.
This custom class makes use of a special error handler
to make sure that a temporary directory containing read-only files (typically created
when git-cloning a repository) is properly cleaned-up (i.e. removed) after using it
in a context manager.
Source code in copier/tools.py
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
|
cleanup()
¶
Remove directory safely.
Source code in copier/tools.py
173 174 175 176 |
|
cast_str_to_bool(value)
¶
Parse anything to bool.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
Any
|
Anything to be casted to a bool. Tries to be as smart as possible.
|
required |
Source code in copier/tools.py
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
|
copier_version()
¶
Get closest match for the installed copier version.
Source code in copier/tools.py
46 47 48 49 50 51 52 53 54 55 56 57 |
|
copy_file(src_path, dst_path, follow_symlinks=True)
¶
Copy one file to another place.
Source code in copier/tools.py
120 121 122 |
|
force_str_end(original_str, end='\n')
¶
Make sure a original_str
ends with end
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
original_str |
str
|
String that you want to ensure ending. |
required |
end |
str
|
String that must exist at the end of |
'\n'
|
Source code in copier/tools.py
125 126 127 128 129 130 131 132 133 134 |
|
handle_remove_readonly(func, path, exc)
¶
Handle errors when trying to remove read-only files through shutil.rmtree
.
This handler makes sure the given file is writable, then re-execute the given removal function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func |
Callable
|
An OS-dependant function used to remove a file. |
required |
path |
str
|
The path to the file to remove. |
required |
exc |
Tuple[BaseException, OSError, TracebackType]
|
A |
required |
Source code in copier/tools.py
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
|
printf(action, msg='', style=None, indent=10, quiet=False, file_=sys.stdout)
¶
Print string with common format.
Source code in copier/tools.py
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
|
printf_exception(e, action, msg='', indent=0, quiet=False)
¶
Print exception with common format.
Source code in copier/tools.py
81 82 83 84 85 86 87 88 89 90 |
|
readlink(link)
¶
A custom version of os.readlink/pathlib.Path.readlink.
pathlib.Path.readlink is what we ideally would want to use, but it is only available on python>=3.9. os.readlink doesn't support Path and bytes on Windows for python<3.8
Source code in copier/tools.py
183 184 185 186 187 188 189 190 191 192 193 194 |
|