Fix publication_output_dir_fields to correctly handle Windows backslash paths on Linux#54
Merged
LuisMRaimundo merged 1 commit intoJun 12, 2026
Conversation
…tyle paths On Linux, Path(r"C:\Users\bob\...") treats the whole string as a single path component, so .name returns the full path. Apply the same Windows-detection logic already used by sanitize_path_for_publication so backslash-style paths are parsed with PureWindowsPath, yielding the correct basename without username fragments. AI-Generated: true
6d46dc4
into
improve-density-edge-contract-tests-2
4 checks passed
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.
Summary
publication_output_dir_fieldsusedPath(str(path))to extract the basename, but on LinuxPathdoes not split on backslashes. For a path likeC:\Users\bob\Downloads\run\clip.wav,Path(...).namereturned the entire string instead ofclip.wav, leaving username fragments in the sanitized output.sanitize_path_for_publication(lines 706–716): detect_WIN_ABS_START_EXPORTmatch or\\in the string, then usePureWindowsPathfor the name extraction.test_sanitized_export_tree_contains_no_windows_username_fragmentsassertedbobwas absent from the sanitized JSON but found it inoutput_dir.Test plan
tests/phase_12/test_metadata_sanitizer_contract_additional.py::test_sanitized_export_tree_contains_no_windows_username_fragmentspassestests/phase_12/test_metadata_sanitizer_contract_additional.py) passespublication_output_dir_fieldscallers (forward-slash Windows paths, POSIX paths) unaffectedhttps://app.circleci.com/agents/gh/LuisMRaimundo/chat/7cea25d8-448d-4fb1-bb6b-90a837e01e2e