feat: add docker path mappings for remote and monorepo workflows - #109
Draft
William-Blackie wants to merge 8 commits into
Draft
feat: add docker path mappings for remote and monorepo workflows#109William-Blackie wants to merge 8 commits into
William-Blackie wants to merge 8 commits into
Conversation
python/path_mappings/env run on every discover_positions call (most buffer parses of a test file), not just on run, so recomputing anything non-trivial per call is wasteful. Add a real-world-informed example deriving the docker-compose service from the compose file instead of a hand-maintained lookup table, memoized per root.
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
Add host/container path mapping support for remote Python commands, including Docker-oriented DAP attach hooks, translated result paths, and docs/examples for general and monorepo setups.
Problem
neotest-pythoncurrently assumes Neovim and the Python test process share the same filesystem. That breaks for Docker and other remote execution flows where test ids, helper scripts, temp files, and debug paths need to move cleanly between host and container paths.Solution
This change adds
path_mappings,cwd,env, and function-baseddaphooks so the adapter can run against remote Python entrypoints while still reporting results back to host paths.It also:
pathMappingsfor attach flowsThis is still a work in progress, but feedback is welcome. The intent is to keep this generally useful for both standard repositories and monorepos rather than tailoring it to one Docker layout.
Reviewer notes
The main areas worth pressure-testing are:
dapcallback/context shape is the right long-term APIUpdate (2026-07-23)
Added a README note + example based on real-world usage of this branch in a
docker-compose monorepo:
python/path_mappings/envare called on everydiscover_positions(most buffer parses of a test file), not just on run, soanything non-trivial (e.g. reading a
docker-compose.ymlto derive a servicename instead of hardcoding one per directory) should be memoized per
root.This also confirms the function-based
python/path_mappingsAPI holds upfor a real monorepo, not just the illustrative example.