[3.14] gh-138432: Improved invalid path checking in zoneinfo.reset_tzpath() (GH-138433) (GH-138777)

* Improve error messages for path-like relative paths and path-like bytes paths.
* TZPATH is now always a tuple of strings.
(cherry picked from commit 859aecc33b)

Co-authored-by: Stephen Morton <git@tungol.org>
This commit is contained in:
Miss Islington (bot) 2025-10-07 23:06:37 +02:00 committed by GitHub
parent 61d49a5d37
commit dfdda53e67
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 23 additions and 1 deletions

View file

@ -13,6 +13,13 @@ def _reset_tzpath(to=None, stacklevel=4):
+ f"not {type(tzpaths)}: {tzpaths!r}"
)
tzpaths = [os.fspath(p) for p in tzpaths]
if not all(isinstance(p, str) for p in tzpaths):
raise TypeError(
"All elements of a tzpath sequence must be strings or "
"os.PathLike objects which convert to strings."
)
if not all(map(os.path.isabs, tzpaths)):
raise ValueError(_get_invalid_paths_message(tzpaths))
base_tzpath = tzpaths