fix: prevent TypeError in pathlib when searching for explicit files#719
Open
sentry[bot] wants to merge 1 commit into
Open
fix: prevent TypeError in pathlib when searching for explicit files#719sentry[bot] wants to merge 1 commit into
sentry[bot] wants to merge 1 commit into
Conversation
❌ 1 Tests Failed:
View the full list of 1 ❄️ flaky test(s)
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR addresses a
TypeError: '_PosixFlavour' object is not reversiblethat occurred during theupload-coveragecommand, specifically when--disable-searchwas used in conjunction with explicitly listed--filepaths.Root Cause:
The issue stemmed from an incompatibility between the PyInstaller-frozen CLI binary's bundled
pathlibinternals (likely from a newer Python version) and the CPython 3.9.5 runtime environment. Thepathlib._PosixFlavour.parse_partsmethod, called during path construction, would fail whenreversed()was invoked on an incompatible_PosixFlavourobject.This crash was triggered because, even with
--disable-searchand explicit--filearguments, theget_user_specified_filesfunction infile_finder.pywas still performing a fullos.walkover the repository viasearch_files. Thisos.walkwould iterate through potentially thousands of files, leading to repeatedpathlib.Pathconstructions and eventually hitting the problematic internalpathlibAPI.Solution:
The
search_filescall withinget_user_specified_fileswas redundant when explicit files are provided, as the CLI already knows which files to look for. The solution removes this unnecessaryos.walk-based search. Instead, for each explicitly listed file, the function now directly checks for its existence usingfilepath.exists()(for absolute paths or paths relative to the current working directory) and(self.search_root / filepath).exists()(for paths relative to the search root).This change bypasses the problematic
os.walkand thepathlibinternal API call that caused theTypeError, resolving the crash while maintaining the intended functionality of locating user-specified files.Fixes CLI-EZ