bazel-compile-commands-extractor icon indicating copy to clipboard operation
bazel-compile-commands-extractor copied to clipboard

'PurePosixPath' object has no attribute 'is_relative_to'

Open tkocmathla opened this issue 1 year ago • 0 comments

My environment has python 3.8, and when I run the refresh_compile_commands target, I get an error.

The target is configured as:

refresh_compile_commands(
    name = "refresh_compile_commands",
    exclude_external_sources = True,
    exclude_headers = "external",
)

The error is:

  File "<elided>/bazel-cache/9c934b8d76651a7ec8785c90c08dde0c/execroot/__main__/bazel-out/k8-fastbuild/bin/refresh_compile_commands.py", line 514, in _file_is_in_main_workspace_and_not_external
    if file_path.is_relative_to(pathlib.PurePath("external")):
AttributeError: 'PurePosixPath' object has no attribute 'is_relative_to'

Digging through the commit history here, I think this is an oversight from 0b821b7. In that commit, other uses of PosixPath.is_relative_to() were reverted back to use _is_relative_to(), but this one wasn't:

https://github.com/hedronvision/bazel-compile-commands-extractor/commit/0b821b7e4286aec887757461366f6eaaa0972cb9#diff-a1d7061df7c566a1f7656624ec608ad53dd3aff7a7789b9b6e4866a3b1616042R508

It seems like this is the only remaining offender -- a search of .is_relative_to in the repo just finds this one case: https://github.com/search?q=repo%3Ahedronvision%2Fbazel-compile-commands-extractor%20.is_relative_to&type=code

tkocmathla avatar Apr 18 '24 19:04 tkocmathla