`ValueError` when using `FullyQualifiedNameProvider`
- Dominant language
- Python
- Stars
- 1.9k
- Forks
- 229
- PR merge metrics
- No merged PRs in 30d
Description
Hi!
I'm getting the following `ValueError` when using the `FullyQualifiedNameProvider` in my Transformer.
```
Traceback (most recent call last):
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/bin/cst", line 8, in
sys.exit(main())
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/site-packages/sync_to_async/cli.py", line 5, in main
tool_main("cdm", sys.argv[1:])
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/site-packages/libcst/tool.py", line 835, in main
return lookup.get(args.action or None, _invalid_command)(proc_name, command_args)
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/site-packages/libcst/tool.py", line 572, in _codemod_impl
result = parallel_exec_transform_with_prettyprint(
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/site-packages/libcst/codemod/_cli.py", line 588, in parallel_exec_transform_with_prettyprint
metadata_manager.resolve_cache()
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/site-packages/libcst/metadata/full_repo_manager.py", line 66, in resolve_cache
cache[provider] = handler(
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/site-packages/libcst/metadata/name_provider.py", line 115, in gen_cache
cache = {path: calculate_module_and_package(".", path) for path in paths}
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/site-packages/libcst/metadata/name_provider.py", line 115, in
cache = {path: calculate_module_and_package(".", path) for path in paths}
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/site-packages/libcst/helpers/module.py", line 136, in calculate_module_and_package
relative_filename = PurePath(filename).relative_to(repo_root)
File "/opt/homebrew/Caskroom/miniconda/base/envs/nuvo/lib/python3.10/pathlib.py", line 816, in relative_to
raise ValueError("{!r} is not in the subpath of {!r}"
ValueError: '/Users/zacharywade/Documents/work/nuvo/nuvo/src/backend/ops/Company.py' is not in the subpath of '' OR one path is relative and the other is absolute.
```
The culprit seems to be [this line](https://github.com/Instagram/LibCST/blob/main/libcst/metadata/name_provider.py#L117) of `name_provider.py`. I'm not entirely sure exactly how the module resolution of this provider is supposed to work, but on a whim I changed `"."` to `root_path` and it resolved my issue locally.
I'm not sure if this is a bug in how I'm using the `FullyQualifiedNameProvider`, or a bug in the provider itself. If it's the latter, I'm happy to submit a PR. If it's the former, I any suggestions on what I might be missing would be greatly appreciated!
Thanks!
Contributor guide
Assessment
This issue has not been assessed yet.