✨ pathvalidate library is currently not able to shorten filenames. Implemented a hacky workaround for now. Fixes #91
This commit is contained in:
@@ -207,9 +207,17 @@ def path_file_sanitize(path_file: str, adapt: bool = False, uniquify: bool = Fal
|
|||||||
filename_sanitized = filename_sanitized[: -len(file_suffix)] + file_suffix
|
filename_sanitized = filename_sanitized[: -len(file_suffix)] + file_suffix
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
# TODO: Implement proper exception handling and logging.
|
# TODO: Implement proper exception handling and logging.
|
||||||
print(e)
|
# print(e)
|
||||||
|
# Hacky stuff, since the sanitizing function does not shorten the filename somehow (bug?)
|
||||||
raise
|
# Remove after pathvalidate update.
|
||||||
|
# If filename too long
|
||||||
|
if e.description.startswith("[PV1101]"):
|
||||||
|
byte_ct: int = len(filename.encode("utf-8")) - 255
|
||||||
|
filename_sanitized = (
|
||||||
|
filename[: -byte_ct - len(FILENAME_SANITIZE_PLACEHOLDER) - len(file_extension)]
|
||||||
|
+ FILENAME_SANITIZE_PLACEHOLDER
|
||||||
|
+ file_extension
|
||||||
|
)
|
||||||
|
|
||||||
# Join path and filename
|
# Join path and filename
|
||||||
result: str = os.path.join(pathname_sanitized, filename_sanitized)
|
result: str = os.path.join(pathname_sanitized, filename_sanitized)
|
||||||
|
|||||||
Reference in New Issue
Block a user