Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pathvalidate for openSUSE:Factory checked in at 2026-03-05 17:29:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pathvalidate (Old) and /work/SRC/openSUSE:Factory/.python-pathvalidate.new.561 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pathvalidate" Thu Mar 5 17:29:46 2026 rev:12 rq:1336663 version:3.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pathvalidate/python-pathvalidate.changes 2025-06-11 16:27:26.518766091 +0200 +++ /work/SRC/openSUSE:Factory/.python-pathvalidate.new.561/python-pathvalidate.changes 2026-03-05 17:31:38.015650915 +0100 @@ -1,0 +2,7 @@ +Tue Mar 3 17:02:59 UTC 2026 - Andreas Schneider <[email protected]> + +- Update to version 3.3.1 + * Add value to the INVALID_LENGTH validation error + * Ensure that the invalids value of INVALID_CHARACTER is unique + +------------------------------------------------------------------- Old: ---- pathvalidate-3.2.3.tar.gz New: ---- pathvalidate-3.3.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pathvalidate.spec ++++++ --- /var/tmp/diff_new_pack.MR3qFj/_old 2026-03-05 17:31:39.331705651 +0100 +++ /var/tmp/diff_new_pack.MR3qFj/_new 2026-03-05 17:31:39.335705818 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-pathvalidate # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,14 +18,14 @@ %{?sle15_python_module_pythons} Name: python-pathvalidate -Version: 3.2.3 +Version: 3.3.1 Release: 0 Summary: Python library to sanitize/validate a string such as filenames License: MIT URL: https://github.com/thombashi/pathvalidate Source: https://files.pythonhosted.org/packages/source/p/pathvalidate/pathvalidate-%{version}.tar.gz BuildRequires: %{python_module pip} -BuildRequires: %{python_module setuptools >= 38.3.0} +BuildRequires: %{python_module setuptools >= 64} BuildRequires: %{python_module setuptools_scm >= 8} BuildRequires: %{python_module wheel} BuildRequires: fdupes @@ -45,7 +45,7 @@ filenames/file-paths/etc. %prep -%setup -q -n pathvalidate-%{version} +%autosetup -p1 -n pathvalidate-%{version} %build %pyproject_wheel ++++++ pathvalidate-3.2.3.tar.gz -> pathvalidate-3.3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/.github/ISSUE_TEMPLATE/bug_report.yml new/pathvalidate-3.3.1/.github/ISSUE_TEMPLATE/bug_report.yml --- old/pathvalidate-3.2.3/.github/ISSUE_TEMPLATE/bug_report.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/pathvalidate-3.3.1/.github/ISSUE_TEMPLATE/bug_report.yml 2025-06-15 11:06:34.000000000 +0200 @@ -0,0 +1,71 @@ +name: Bug Report +description: Report a bug +title: "[Bug]: " +labels: ["needs-triage"] +body: + - type: input + id: title + attributes: + label: Summary + description: "A brief summary of the bug" + placeholder: "e.g., xxx method raises an exception when yyy" + validations: + required: true + + - type: textarea + id: description + attributes: + label: Description + description: "Detailed description of the bug" + placeholder: "A clear and concise description of what the bug is in detail..." + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: "What you expected to happen" + placeholder: "A clear and concise description of what you expected to happen." + validations: + required: true + + - type: textarea + id: context + attributes: + label: Context + description: "How has this issue affected you? What are you trying to accomplish?" + placeholder: "Providing context helps us come up with a solution that is most useful in the real world" + validations: + required: false + + - type: textarea + id: possible-solution + attributes: + label: Possible Solution + description: "Optional: suggest a fix/reason for the bug or ideas on how to implement the addition or change" + validations: + required: false + + - type: textarea + id: code-to-reproduce + attributes: + label: Code to reproduce + description: "How to reproduce the bug with code" + placeholder: Paste the code that reproduces the bug + render: python + validations: + required: true + + - type: textarea + id: environment + attributes: + label: Your Environment + description: "Include as many relevant details about the environment you experienced the bug in" + placeholder: | + Please execute the following commands and past the output here: + + pip install envinfopy[markdown] + python -m envinfopy --format=markdown pathvalidate + validations: + required: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/.github/ISSUE_TEMPLATE/config.yml new/pathvalidate-3.3.1/.github/ISSUE_TEMPLATE/config.yml --- old/pathvalidate-3.2.3/.github/ISSUE_TEMPLATE/config.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/pathvalidate-3.3.1/.github/ISSUE_TEMPLATE/config.yml 2025-06-15 11:06:34.000000000 +0200 @@ -0,0 +1,7 @@ +contact_links: + - name: GitHub Discussions + url: https://github.com/thombashi/pathvalidate/discussions + about: Please ask and answer questions here. + - name: Documentation + url: https://pathvalidate.rtfd.io/ + about: Please check the documentation before creating an issue. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/.github/ISSUE_TEMPLATE/feature_request.yml new/pathvalidate-3.3.1/.github/ISSUE_TEMPLATE/feature_request.yml --- old/pathvalidate-3.2.3/.github/ISSUE_TEMPLATE/feature_request.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/pathvalidate-3.3.1/.github/ISSUE_TEMPLATE/feature_request.yml 2025-06-15 11:06:34.000000000 +0200 @@ -0,0 +1,42 @@ +name: Feature Request +description: Suggest an idea for this project +title: "[Feature Request]: " +labels: ["needs-triage"] +body: + - type: textarea + id: feature-description + attributes: + label: Feature Description + description: "Is your feature request related to a problem? Please describe." + placeholder: "A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]" + validations: + required: true + + - type: textarea + id: solution-description + attributes: + label: Solution Description + description: "Describe the solution you'd like" + placeholder: "A clear and concise description of what you want to happen." + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives + description: "Describe alternatives you've considered" + placeholder: "A clear and concise description of any alternative solutions or features you've considered." + validations: + required: false + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: "Add any other context or screenshots about the feature request here" + placeholder: | + How has this issue affected you? What are you trying to accomplish? + Providing context helps us come up with a solution that is most useful in the real world + validations: + required: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/CHANGELOG.md new/pathvalidate-3.3.1/CHANGELOG.md --- old/pathvalidate-3.2.3/CHANGELOG.md 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/CHANGELOG.md 2025-06-15 11:06:34.000000000 +0200 @@ -1,3 +1,14 @@ +<a id="v3.2.3"></a> +# [v3.2.3](https://github.com/thombashi/pathvalidate/releases/tag/v3.2.3) - 2025-01-03 + +## What's Changed +* Fix dot-files validation by [@thombashi](https://github.com/thombashi) in [#60](https://github.com/thombashi/pathvalidate/pull/60) (Thanks to [@slingshotvfx](https://github.com/slingshotvfx)) + +**Full Changelog**: https://github.com/thombashi/pathvalidate/compare/v3.2.2...v3.2.3 + +[Changes][v3.2.3] + + <a id="v3.2.2"></a> # [v3.2.2](https://github.com/thombashi/pathvalidate/releases/tag/v3.2.2) - 2025-01-01 @@ -574,6 +585,7 @@ [Changes][v0.1.0] +[v3.2.3]: https://github.com/thombashi/pathvalidate/compare/v3.2.2...v3.2.3 [v3.2.2]: https://github.com/thombashi/pathvalidate/compare/v3.2.1...v3.2.2 [v3.2.1]: https://github.com/thombashi/pathvalidate/compare/v3.2.0...v3.2.1 [v3.2.0]: https://github.com/thombashi/pathvalidate/compare/v3.1.0...v3.2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/PKG-INFO new/pathvalidate-3.3.1/PKG-INFO --- old/pathvalidate-3.2.3/PKG-INFO 2025-01-03 15:06:11.406637200 +0100 +++ new/pathvalidate-3.3.1/PKG-INFO 2025-06-15 11:06:58.890236600 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.4 Name: pathvalidate -Version: 3.2.3 +Version: 3.3.1 Summary: pathvalidate is a Python library to sanitize/validate a string such as filenames/file-paths/etc. Home-page: https://github.com/thombashi/pathvalidate Author: Tsuyoshi Hombashi @@ -46,6 +46,19 @@ Requires-Dist: Faker>=1.0.8; extra == "test" Requires-Dist: pytest>=6.0.1; extra == "test" Requires-Dist: pytest-md-report>=0.6.2; extra == "test" +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: home-page +Dynamic: keywords +Dynamic: license +Dynamic: license-file +Dynamic: project-url +Dynamic: provides-extra +Dynamic: requires-python +Dynamic: summary .. contents:: **pathvalidate** :backlinks: top diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/docs/pages/CHANGELOG.md new/pathvalidate-3.3.1/docs/pages/CHANGELOG.md --- old/pathvalidate-3.2.3/docs/pages/CHANGELOG.md 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/docs/pages/CHANGELOG.md 2025-06-15 11:06:34.000000000 +0200 @@ -1,3 +1,14 @@ +<a id="v3.2.3"></a> +# [v3.2.3](https://github.com/thombashi/pathvalidate/releases/tag/v3.2.3) - 2025-01-03 + +## What's Changed +* Fix dot-files validation by [@thombashi](https://github.com/thombashi) in [#60](https://github.com/thombashi/pathvalidate/pull/60) (Thanks to [@slingshotvfx](https://github.com/slingshotvfx)) + +**Full Changelog**: https://github.com/thombashi/pathvalidate/compare/v3.2.2...v3.2.3 + +[Changes][v3.2.3] + + <a id="v3.2.2"></a> # [v3.2.2](https://github.com/thombashi/pathvalidate/releases/tag/v3.2.2) - 2025-01-01 @@ -574,6 +585,7 @@ [Changes][v0.1.0] +[v3.2.3]: https://github.com/thombashi/pathvalidate/compare/v3.2.2...v3.2.3 [v3.2.2]: https://github.com/thombashi/pathvalidate/compare/v3.2.1...v3.2.2 [v3.2.1]: https://github.com/thombashi/pathvalidate/compare/v3.2.0...v3.2.1 [v3.2.0]: https://github.com/thombashi/pathvalidate/compare/v3.1.0...v3.2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/examples/pathvalidate_examples.ipynb new/pathvalidate-3.3.1/examples/pathvalidate_examples.ipynb --- old/pathvalidate-3.2.3/examples/pathvalidate_examples.ipynb 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/examples/pathvalidate_examples.ipynb 2025-06-15 11:06:34.000000000 +0200 @@ -42,7 +42,31 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[PV1101] found an invalid string length: filename is too long: expected<=1 bytes, actual=11 bytes, platform=universal, fs_encoding=utf-8, byte_count=11, value='aaaaaa\\naaaa'\n", + "\n" + ] + } + ], + "source": [ + "import sys\n", + "from pathvalidate import ValidationError, validate_filename\n", + "\n", + "try:\n", + " validate_filename(\"aaaaaa\\naaaa\", max_len=1)\n", + "except ValidationError as e:\n", + " print(f\"{e}\\n\", file=sys.stderr)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -65,14 +89,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "[PV1100] invalid characters found: invalids=(':', '*', '\"', '?', '>', '|', '<'), value='fi:l*e/p\"a?t>h|.t<xt', platform=Windows\n" + "[PV1100] invalid characters found: invalids=('*', ':'), value='fi:l*e', platform=Windows\n" ] } ], @@ -88,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -114,7 +138,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -140,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -160,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -186,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -212,7 +236,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -221,7 +245,7 @@ "'._'" ] }, - "execution_count": 4, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -245,7 +269,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.8.12 64-bit ('3.8.12')", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -259,12 +283,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" - }, - "vscode": { - "interpreter": { - "hash": "c07eda5d3696c8b68c933d32ea433f84251ada7607722ea42bf003255d06d542" - } + "version": "3.13.1" } }, "nbformat": 4, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/pathvalidate/__version__.py new/pathvalidate-3.3.1/pathvalidate/__version__.py --- old/pathvalidate-3.2.3/pathvalidate/__version__.py 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/pathvalidate/__version__.py 2025-06-15 11:06:34.000000000 +0200 @@ -4,6 +4,6 @@ __author__: Final = "Tsuyoshi Hombashi" __copyright__: Final = f"Copyright 2016-2025, {__author__}" __license__: Final = "MIT License" -__version__ = "3.2.3" +__version__ = "3.3.1" __maintainer__: Final = __author__ __email__: Final = "[email protected]" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/pathvalidate/_common.py new/pathvalidate-3.3.1/pathvalidate/_common.py --- old/pathvalidate-3.2.3/pathvalidate/_common.py 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/pathvalidate/_common.py 2025-06-15 11:06:34.000000000 +0200 @@ -152,7 +152,8 @@ def findall_to_str(match: list[Any]) -> str: - return ", ".join([repr(text) for text in match]) + uniq_list = {repr(text) for text in match} + return ", ".join(uniq_list) def truncate_str(text: str, encoding: str, max_bytes: int) -> str: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/pathvalidate/_const.py new/pathvalidate-3.3.1/pathvalidate/_const.py --- old/pathvalidate-3.2.3/pathvalidate/_const.py 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/pathvalidate/_const.py 2025-06-15 11:06:34.000000000 +0200 @@ -3,7 +3,7 @@ DEFAULT_MIN_LEN: Final = 1 -INVALID_CHAR_ERR_MSG_TMPL: Final = "invalids=({invalid}), value={value}" +INVALID_CHAR_ERR_MSG_TMPL: Final = "invalids=({invalid})" _NTFS_RESERVED_FILE_NAMES: Final = ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/pathvalidate/_filename.py new/pathvalidate-3.3.1/pathvalidate/_filename.py --- old/pathvalidate-3.2.3/pathvalidate/_filename.py 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/pathvalidate/_filename.py 2025-06-15 11:06:34.000000000 +0200 @@ -187,6 +187,7 @@ ErrorAttrKey.PLATFORM: self.platform, ErrorAttrKey.FS_ENCODING: self._fs_encoding, ErrorAttrKey.BYTE_COUNT: byte_ct, + ErrorAttrKey.VALUE: unicode_filename, } if byte_ct > self.max_len: raise ValidationError( @@ -211,7 +212,7 @@ def validate_abspath(self, value: str) -> None: err = ValidationError( - description=f"found an absolute path ({value}), expected a filename", + description=f"found an absolute path ({value!r}), expected a filename", platform=self.platform, reason=ErrorReason.FOUND_ABS_PATH, ) @@ -228,9 +229,10 @@ if match: raise InvalidCharError( INVALID_CHAR_ERR_MSG_TMPL.format( - invalid=findall_to_str(match), value=repr(unicode_filename) + invalid=findall_to_str(match), ), platform=Platform.UNIVERSAL, + value=unicode_filename, ) def __validate_win_filename(self, unicode_filename: str) -> None: @@ -238,36 +240,37 @@ if match: raise InvalidCharError( INVALID_CHAR_ERR_MSG_TMPL.format( - invalid=findall_to_str(match), value=repr(unicode_filename) + invalid=findall_to_str(match), ), platform=Platform.WINDOWS, + value=unicode_filename, ) if unicode_filename in (".", ".."): return KB2829981_err_tmpl = "{}. Refer: https://learn.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/file-folder-name-whitespace-characters" # noqa: E501 + err_kwargs = { + ErrorAttrKey.PLATFORM: Platform.WINDOWS, + ErrorAttrKey.VALUE: unicode_filename, + } if unicode_filename[-1] in (" ", "."): raise InvalidCharError( - INVALID_CHAR_ERR_MSG_TMPL.format( - invalid=re.escape(unicode_filename[-1]), value=repr(unicode_filename) - ), - platform=Platform.WINDOWS, + INVALID_CHAR_ERR_MSG_TMPL.format(invalid=re.escape(unicode_filename[-1])), description=KB2829981_err_tmpl.format( "Do not end a file or directory name with a space or a period" ), + **err_kwargs, ) if unicode_filename[0] in (" "): raise InvalidCharError( - INVALID_CHAR_ERR_MSG_TMPL.format( - invalid=re.escape(unicode_filename[0]), value=repr(unicode_filename) - ), - platform=Platform.WINDOWS, + INVALID_CHAR_ERR_MSG_TMPL.format(invalid=re.escape(unicode_filename[0])), description=KB2829981_err_tmpl.format( "Do not start a file or directory name with a space" ), + **err_kwargs, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/pathvalidate/_filepath.py new/pathvalidate-3.3.1/pathvalidate/_filepath.py --- old/pathvalidate-3.2.3/pathvalidate/_filepath.py 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/pathvalidate/_filepath.py 2025-06-15 11:06:34.000000000 +0200 @@ -209,6 +209,7 @@ ErrorAttrKey.PLATFORM: self.platform, ErrorAttrKey.FS_ENCODING: self._fs_encoding, ErrorAttrKey.BYTE_COUNT: byte_ct, + ErrorAttrKey.VALUE: unicode_filepath, } if byte_ct > self.max_len: @@ -257,9 +258,7 @@ err_object = ValidationError( description=( - "an invalid absolute file path ({}) for the platform ({}).".format( - value, self.platform.value - ) + f"an invalid absolute file path ({value!r}) for the platform ({self.platform.value})." + " to avoid the error, specify an appropriate platform corresponding to" + " the path format or 'auto'." ), @@ -279,19 +278,17 @@ match = _RE_INVALID_PATH.findall(unicode_filepath) if match: raise InvalidCharError( - INVALID_CHAR_ERR_MSG_TMPL.format( - invalid=findall_to_str(match), value=repr(unicode_filepath) - ) + INVALID_CHAR_ERR_MSG_TMPL.format(invalid=findall_to_str(match)), + value=unicode_filepath, ) def __validate_win_filepath(self, unicode_filepath: str) -> None: match = _RE_INVALID_WIN_PATH.findall(unicode_filepath) if match: raise InvalidCharError( - INVALID_CHAR_ERR_MSG_TMPL.format( - invalid=findall_to_str(match), value=repr(unicode_filepath) - ), + INVALID_CHAR_ERR_MSG_TMPL.format(invalid=findall_to_str(match)), platform=Platform.WINDOWS, + value=unicode_filepath, ) _drive, value = self.__split_drive(unicode_filepath) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/pathvalidate/error.py new/pathvalidate-3.3.1/pathvalidate/error.py --- old/pathvalidate-3.2.3/pathvalidate/error.py 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/pathvalidate/error.py 2025-06-15 11:06:34.000000000 +0200 @@ -20,6 +20,7 @@ REASON: Final = "reason" RESERVED_NAME: Final = "reserved_name" REUSABLE_NAME: Final = "reusable_name" + VALUE: Final = "value" @enum.unique @@ -139,6 +140,7 @@ self.__reserved_name: str = kwargs.pop(ErrorAttrKey.RESERVED_NAME, "") self.__reusable_name: Optional[bool] = kwargs.pop(ErrorAttrKey.REUSABLE_NAME, None) self.__fs_encoding: Optional[str] = kwargs.pop(ErrorAttrKey.FS_ENCODING, None) + self.__value: Optional[str] = kwargs.pop(ErrorAttrKey.VALUE, None) try: super().__init__(*args[0], **kwargs) @@ -166,6 +168,8 @@ slog[ErrorAttrKey.FS_ENCODING] = self.__fs_encoding if self.__byte_count: slog[ErrorAttrKey.BYTE_COUNT] = str(self.__byte_count) + if self.__value: + slog[ErrorAttrKey.VALUE] = self.__value return slog @@ -186,6 +190,8 @@ item_list.append(f"{ErrorAttrKey.FS_ENCODING}={self.__fs_encoding}") if self.__byte_count is not None: item_list.append(f"{ErrorAttrKey.BYTE_COUNT}={self.__byte_count:,d}") + if self.__value: + item_list.append(f"{ErrorAttrKey.VALUE}={self.__value!r}") if item_list: header += ": " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/pathvalidate.egg-info/PKG-INFO new/pathvalidate-3.3.1/pathvalidate.egg-info/PKG-INFO --- old/pathvalidate-3.2.3/pathvalidate.egg-info/PKG-INFO 2025-01-03 15:06:11.000000000 +0100 +++ new/pathvalidate-3.3.1/pathvalidate.egg-info/PKG-INFO 2025-06-15 11:06:58.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.4 Name: pathvalidate -Version: 3.2.3 +Version: 3.3.1 Summary: pathvalidate is a Python library to sanitize/validate a string such as filenames/file-paths/etc. Home-page: https://github.com/thombashi/pathvalidate Author: Tsuyoshi Hombashi @@ -46,6 +46,19 @@ Requires-Dist: Faker>=1.0.8; extra == "test" Requires-Dist: pytest>=6.0.1; extra == "test" Requires-Dist: pytest-md-report>=0.6.2; extra == "test" +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: home-page +Dynamic: keywords +Dynamic: license +Dynamic: license-file +Dynamic: project-url +Dynamic: provides-extra +Dynamic: requires-python +Dynamic: summary .. contents:: **pathvalidate** :backlinks: top diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/pathvalidate.egg-info/SOURCES.txt new/pathvalidate-3.3.1/pathvalidate.egg-info/SOURCES.txt --- old/pathvalidate-3.2.3/pathvalidate.egg-info/SOURCES.txt 2025-01-03 15:06:11.000000000 +0100 +++ new/pathvalidate-3.3.1/pathvalidate.egg-info/SOURCES.txt 2025-06-15 11:06:58.000000000 +0200 @@ -10,6 +10,9 @@ tox.ini .github/FUNDING.yml .github/dependabot.yml +.github/ISSUE_TEMPLATE/bug_report.yml +.github/ISSUE_TEMPLATE/config.yml +.github/ISSUE_TEMPLATE/feature_request.yml .github/workflows/ci.yml .github/workflows/on_push_default_branch.yml .github/workflows/permissions_advisor.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/test/test_filename.py new/pathvalidate-3.3.1/test/test_filename.py --- old/pathvalidate-3.2.3/test/test_filename.py 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/test/test_filename.py 2025-06-15 11:06:34.000000000 +0200 @@ -467,10 +467,10 @@ print(platform, repr(value)) validate_filename(value, platform=platform) - assert e.value.reason == ErrorReason.INVALID_CHARACTER + assert e.value.reason == expected assert str(e.value) == ( - r"[PV1100] invalid characters found: invalids=('\r'), value='asdf\rsdf', " - "platform=Windows" + r"[PV1100] invalid characters found: invalids=('\r'), " + "platform=Windows, value='asdf\\rsdf'" ) # noqa @pytest.mark.parametrize( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pathvalidate-3.2.3/test/test_filepath.py new/pathvalidate-3.3.1/test/test_filepath.py --- old/pathvalidate-3.2.3/test/test_filepath.py 2025-01-03 15:05:34.000000000 +0100 +++ new/pathvalidate-3.3.1/test/test_filepath.py 2025-06-15 11:06:34.000000000 +0200 @@ -522,8 +522,8 @@ assert e.value.reason == expected assert str(e.value) == ( - r"[PV1100] invalid characters found: invalids=('\r'), value='asdf\rsdf', " - "platform=Windows" + r"[PV1100] invalid characters found: invalids=('\r'), " + "platform=Windows, value='asdf\\rsdf'" ) # noqa @pytest.mark.parametrize(
