kkpyutil 1.50.0__py3-none-any.whl → 1.51.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kkpyutil-1.50.0.dist-info → kkpyutil-1.51.0.dist-info}/METADATA +1 -1
- kkpyutil-1.51.0.dist-info/RECORD +7 -0
- kkpyutil.py +12 -1
- kkpyutil-1.50.0.dist-info/RECORD +0 -7
- {kkpyutil-1.50.0.dist-info → kkpyutil-1.51.0.dist-info}/LICENSE +0 -0
- {kkpyutil-1.50.0.dist-info → kkpyutil-1.51.0.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
kkpyutil.py,sha256=-ZQ-paLBQaADoO2HGKnuYK456bczu8dV8koxTOgZnAs,122735
|
|
2
|
+
kkpyutil_helper/windows/kkttssave.ps1,sha256=xa3-WzqNh2rGYlOx_I4ewOuCE94gkTO5cEwYH0M67_0,446
|
|
3
|
+
kkpyutil_helper/windows/kkttsspeak.ps1,sha256=7WUUHMmjTQroUWA2Mvdt4JtSt475nZUHQx-qP-7rS6o,305
|
|
4
|
+
kkpyutil-1.51.0.dist-info/LICENSE,sha256=uISevGnCxB5QOU0ftbofN75_yUtd6E2h_MWE1zqagC8,1065
|
|
5
|
+
kkpyutil-1.51.0.dist-info/METADATA,sha256=Eq-whzlPyrN0Sj_rf9sDCnzKk8V98HiTkYief8qimZk,1136
|
|
6
|
+
kkpyutil-1.51.0.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
|
|
7
|
+
kkpyutil-1.51.0.dist-info/RECORD,,
|
kkpyutil.py
CHANGED
|
@@ -2116,7 +2116,7 @@ def sync_dirs(src_root, dst_root, logger=glogger, sudo=False, excludes=()):
|
|
|
2116
2116
|
if os.path.isdir(src_path):
|
|
2117
2117
|
# copytree with dirs_exist_ok=True will overwrite existing files
|
|
2118
2118
|
# and merge directories without warning.
|
|
2119
|
-
shutil.copytree(src_path, dst_path, dirs_exist_ok=True, ignore=shutil.ignore_patterns(*excludes) if excludes else None)
|
|
2119
|
+
shutil.copytree(src_path, dst_path, dirs_exist_ok=True, copy_function=shutil.copy, ignore=shutil.ignore_patterns(*excludes) if excludes else None)
|
|
2120
2120
|
logger.info(f"Merged directory: {src_path} -> {dst_path}")
|
|
2121
2121
|
else:
|
|
2122
2122
|
# For individual files at the root of my_src_dir
|
|
@@ -3238,6 +3238,17 @@ def prompt_macos_admin_password(action="Your operation"):
|
|
|
3238
3238
|
return None
|
|
3239
3239
|
|
|
3240
3240
|
|
|
3241
|
+
def join_unc_paths(*paths):
|
|
3242
|
+
# 1. Standardize all inputs to use backslashes and filter out empty strings
|
|
3243
|
+
segments = [str(p).replace('/', '\\').strip('\\') for p in paths if p]
|
|
3244
|
+
|
|
3245
|
+
# 2. Handle the leading slash: if the first input started with \, preserve it
|
|
3246
|
+
prefix = '\\' if paths[0].startswith(('\\', '/')) else ''
|
|
3247
|
+
|
|
3248
|
+
# 3. Join everything with single backslashes
|
|
3249
|
+
return prefix + '\\'.join(segments)
|
|
3250
|
+
|
|
3251
|
+
|
|
3241
3252
|
# endregion
|
|
3242
3253
|
|
|
3243
3254
|
|
kkpyutil-1.50.0.dist-info/RECORD
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
kkpyutil.py,sha256=pfq97OSJnXhrMpCB8rl1RYkhGH-Lo5dBLhWBHVduZQI,122288
|
|
2
|
-
kkpyutil_helper/windows/kkttssave.ps1,sha256=xa3-WzqNh2rGYlOx_I4ewOuCE94gkTO5cEwYH0M67_0,446
|
|
3
|
-
kkpyutil_helper/windows/kkttsspeak.ps1,sha256=7WUUHMmjTQroUWA2Mvdt4JtSt475nZUHQx-qP-7rS6o,305
|
|
4
|
-
kkpyutil-1.50.0.dist-info/LICENSE,sha256=uISevGnCxB5QOU0ftbofN75_yUtd6E2h_MWE1zqagC8,1065
|
|
5
|
-
kkpyutil-1.50.0.dist-info/METADATA,sha256=-3bgtnAYNhCkf2swRJUh4lDfSWl-oM-CFz2yG1IdCWY,1136
|
|
6
|
-
kkpyutil-1.50.0.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
|
|
7
|
-
kkpyutil-1.50.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|