feat(run): add --env, --env-file and --working-dir options to pdm run - #3865
Merged
Conversation
Extend `pdm run` to dynamically set or override the `env`, `env_file` and `working_dir` script options from the command line. These options apply to the requested task (and all tasks of a composite script) and take precedence over the values defined in pyproject.toml. Closes #3829
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9c9cd742d0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3865 +/- ##
==========================================
+ Coverage 88.51% 88.75% +0.23%
==========================================
Files 121 120 -1
Lines 13281 13300 +19
Branches 2257 2260 +3
==========================================
+ Hits 11756 11804 +48
+ Misses 960 931 -29
Partials 565 565
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Move the --site-packages handling from global_options to run_options so that all command-line overrides are handled in a single place with the same (highest) precedence.
… --env keys - Resolve a bare .py script relative to the selected working directory before inspecting its inline metadata, so --working-dir works with self-contained scripts. - Treat an empty key in --env assignments (=value) as invalid.
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.
Pull Request Checklist
news/describing what is new.Describe what you have changed in this PR.
Implements #3829 by extending
pdm runto set/override theenv,env_fileandworking_dirscript options dynamically from the command line.New options
Behavior
pyproject.toml(script-level and shared_options).pdm run --env FOO=bar python ...), and are propagated to every task run by a composite script.--envvalue (missing=) raises aPdmUsageError.--site-packagesalready existed as-s/--site-packages, so no new flag was needed forsite_packages.Notes
-s/--site-packages, these options must be placed before the script name: everything after the script name is forwarded verbatim to the script (argsusesnargs=REMAINDER). This is documented.tests/cli/test_run.pypass, plustest_completion.py).