-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Closed
Labels
enhancementNew feature or improvement to existing functionalityNew feature or improvement to existing functionalityhelp wantedContribution especially encouragedContribution especially encouragedneeds-designNeeds discussion, investigation, or designNeeds discussion, investigation, or design
Description
Uv's script support is amazing for creating self-contained scripts that can be written once and then executed by anyone with uv months later, as long as the upper boundaries for dependencies were specified.
Being able to lock the dependencies for a script would be a huge boon in script preservation, all the same arguments that apply to uv lock and pip-tools compile apply here.
Preserving original requirement specifications would be beneficial, so after running uv add --script example.py 'requests<3' 'rich' and uv lock --script example.py the example.py will contain something like (which is basically the result of extracting dependencies into requirements.txt, running uv pip compile and pasting the result back into the script):
# /// script
# requires-python = ">=3.12"
# dependencies = [
# "requests<3",
# "rich",
# ]
# compiled_dependencies = [
# "certifi==2024.7.4",
# "charset-normalizer==3.3.2",
# "idna==3.7",
# "markdown-it-py==3.0.0",
# "mdurl==0.1.2",
# "pygments==2.18.0",
# "requests==2.32.3",
# "rich==13.7.1",
# "urllib3==2.2.2",
# ]
# ///Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or improvement to existing functionalityNew feature or improvement to existing functionalityhelp wantedContribution especially encouragedContribution especially encouragedneeds-designNeeds discussion, investigation, or designNeeds discussion, investigation, or design