Skip to main content

uv_static/
env_vars.rs

1//! Environment variables used or supported by uv.
2//! Used to generate `docs/reference/environment.md`.
3use uv_macros::{attr_added_in, attr_env_var_pattern, attr_hidden, attribute_env_vars_metadata};
4
5/// Declares all environment variable used throughout `uv` and its crates.
6pub struct EnvVars;
7
8#[attribute_env_vars_metadata]
9impl EnvVars {
10    /// The path to the binary that was used to invoke uv.
11    ///
12    /// This is propagated to all subprocesses spawned by uv.
13    ///
14    /// If the executable was invoked through a symbolic link, some platforms will return the path
15    /// of the symbolic link and other platforms will return the path of the symbolic link’s target.
16    ///
17    /// See <https://doc.rust-lang.org/std/env/fn.current_exe.html#security> for security
18    /// considerations.
19    #[attr_added_in("0.6.0")]
20    pub const UV: &'static str = "UV";
21
22    /// Equivalent to the `--offline` command-line argument. If set, uv will disable network access.
23    #[attr_added_in("0.5.9")]
24    pub const UV_OFFLINE: &'static str = "UV_OFFLINE";
25
26    /// Equivalent to the `--default-index` command-line argument. If set, uv will use
27    /// this URL as the default index when searching for packages.
28    #[attr_added_in("0.4.23")]
29    pub const UV_DEFAULT_INDEX: &'static str = "UV_DEFAULT_INDEX";
30
31    /// Equivalent to the `--index` command-line argument. If set, uv will use this
32    /// space-separated list of URLs as additional indexes when searching for packages.
33    #[attr_added_in("0.4.23")]
34    pub const UV_INDEX: &'static str = "UV_INDEX";
35
36    /// Equivalent to the `--index-url` command-line argument. If set, uv will use this
37    /// URL as the default index when searching for packages.
38    /// (Deprecated: use `UV_DEFAULT_INDEX` instead.)
39    #[attr_added_in("0.0.5")]
40    pub const UV_INDEX_URL: &'static str = "UV_INDEX_URL";
41
42    /// Equivalent to the `--extra-index-url` command-line argument. If set, uv will
43    /// use this space-separated list of URLs as additional indexes when searching for packages.
44    /// (Deprecated: use `UV_INDEX` instead.)
45    #[attr_added_in("0.1.3")]
46    pub const UV_EXTRA_INDEX_URL: &'static str = "UV_EXTRA_INDEX_URL";
47
48    /// Equivalent to the `--find-links` command-line argument. If set, uv will use this
49    /// comma-separated list of additional locations to search for packages.
50    #[attr_added_in("0.4.19")]
51    pub const UV_FIND_LINKS: &'static str = "UV_FIND_LINKS";
52
53    /// Equivalent to the `--no-sources` command-line argument. If set, uv will ignore
54    /// `[tool.uv.sources]` annotations when resolving dependencies.
55    #[attr_added_in("0.9.8")]
56    pub const UV_NO_SOURCES: &'static str = "UV_NO_SOURCES";
57
58    /// Equivalent to the `--cache-dir` command-line argument. If set, uv will use this
59    /// directory for caching instead of the default cache directory.
60    #[attr_added_in("0.0.5")]
61    pub const UV_CACHE_DIR: &'static str = "UV_CACHE_DIR";
62
63    /// The directory for storage of credentials when using a plain text backend.
64    #[attr_added_in("0.8.15")]
65    pub const UV_CREDENTIALS_DIR: &'static str = "UV_CREDENTIALS_DIR";
66
67    /// Equivalent to the `--no-cache` command-line argument. If set, uv will not use the
68    /// cache for any operations.
69    #[attr_added_in("0.1.2")]
70    pub const UV_NO_CACHE: &'static str = "UV_NO_CACHE";
71
72    /// Equivalent to the `--resolution` command-line argument. For example, if set to
73    /// `lowest-direct`, uv will install the lowest compatible versions of all direct dependencies.
74    #[attr_added_in("0.1.27")]
75    pub const UV_RESOLUTION: &'static str = "UV_RESOLUTION";
76
77    /// Equivalent to the `--prerelease` command-line argument. For example, if set to
78    /// `allow`, uv will allow pre-release versions for all dependencies.
79    #[attr_added_in("0.1.16")]
80    pub const UV_PRERELEASE: &'static str = "UV_PRERELEASE";
81
82    /// Equivalent to the `--fork-strategy` argument. Controls version selection during universal
83    /// resolution.
84    #[attr_added_in("0.5.9")]
85    pub const UV_FORK_STRATEGY: &'static str = "UV_FORK_STRATEGY";
86
87    /// Equivalent to the `--system` command-line argument. If set to `true`, uv will
88    /// use the first Python interpreter found in the system `PATH`.
89    ///
90    /// WARNING: `UV_SYSTEM_PYTHON=true` is intended for use in continuous integration (CI)
91    /// or containerized environments and should be used with caution, as modifying the system
92    /// Python can lead to unexpected behavior.
93    #[attr_added_in("0.1.18")]
94    pub const UV_SYSTEM_PYTHON: &'static str = "UV_SYSTEM_PYTHON";
95
96    /// Equivalent to the `--python` command-line argument. If set to a path, uv will use
97    /// this Python interpreter for all operations.
98    #[attr_added_in("0.1.40")]
99    pub const UV_PYTHON: &'static str = "UV_PYTHON";
100
101    /// Equivalent to the `--break-system-packages` command-line argument. If set to `true`,
102    /// uv will allow the installation of packages that conflict with system-installed packages.
103    ///
104    /// WARNING: `UV_BREAK_SYSTEM_PACKAGES=true` is intended for use in continuous integration
105    /// (CI) or containerized environments and should be used with caution, as modifying the system
106    /// Python can lead to unexpected behavior.
107    #[attr_added_in("0.1.32")]
108    pub const UV_BREAK_SYSTEM_PACKAGES: &'static str = "UV_BREAK_SYSTEM_PACKAGES";
109
110    /// Equivalent to the `--native-tls` command-line argument. If set to `true`, uv will
111    /// load TLS certificates from the platform's native certificate store instead of the
112    /// bundled Mozilla root certificates.
113    /// (Deprecated: use `UV_SYSTEM_CERTS` instead.)
114    #[attr_added_in("0.1.19")]
115    pub const UV_NATIVE_TLS: &'static str = "UV_NATIVE_TLS";
116
117    /// Equivalent to the `--system-certs` command-line argument. If set to `true`, uv will
118    /// load TLS certificates from the platform's native certificate store instead of the
119    /// bundled Mozilla root certificates.
120    #[attr_added_in("0.11.0")]
121    pub const UV_SYSTEM_CERTS: &'static str = "UV_SYSTEM_CERTS";
122
123    /// Equivalent to the `--index-strategy` command-line argument.
124    ///
125    /// For example, if set to `unsafe-best-match`, uv will consider versions of a given package
126    /// available across all index URLs, rather than limiting its search to the first index URL
127    /// that contains the package.
128    #[attr_added_in("0.1.29")]
129    pub const UV_INDEX_STRATEGY: &'static str = "UV_INDEX_STRATEGY";
130
131    /// Equivalent to the `--require-hashes` command-line argument. If set to `true`,
132    /// uv will require that all dependencies have a hash specified in the requirements file.
133    #[attr_added_in("0.1.34")]
134    pub const UV_REQUIRE_HASHES: &'static str = "UV_REQUIRE_HASHES";
135
136    /// Equivalent to the `--constraints` command-line argument. If set, uv will use this
137    /// file as the constraints file. Uses space-separated list of files.
138    #[attr_added_in("0.1.36")]
139    pub const UV_CONSTRAINT: &'static str = "UV_CONSTRAINT";
140
141    /// Equivalent to the `--build-constraints` command-line argument. If set, uv will use this file
142    /// as constraints for any source distribution builds. Uses space-separated list of files.
143    #[attr_added_in("0.2.34")]
144    pub const UV_BUILD_CONSTRAINT: &'static str = "UV_BUILD_CONSTRAINT";
145
146    /// Equivalent to the `--overrides` command-line argument. If set, uv will use this file
147    /// as the overrides file. Uses space-separated list of files.
148    #[attr_added_in("0.2.22")]
149    pub const UV_OVERRIDE: &'static str = "UV_OVERRIDE";
150
151    /// Equivalent to the `--excludes` command-line argument. If set, uv will use this
152    /// as the excludes file. Uses space-separated list of files.
153    #[attr_added_in("0.9.8")]
154    pub const UV_EXCLUDE: &'static str = "UV_EXCLUDE";
155
156    /// Equivalent to the `--link-mode` command-line argument. If set, uv will use this as
157    /// a link mode.
158    #[attr_added_in("0.1.40")]
159    pub const UV_LINK_MODE: &'static str = "UV_LINK_MODE";
160
161    /// Equivalent to the `--no-build-isolation` command-line argument. If set, uv will
162    /// skip isolation when building source distributions.
163    #[attr_added_in("0.1.40")]
164    pub const UV_NO_BUILD_ISOLATION: &'static str = "UV_NO_BUILD_ISOLATION";
165
166    /// Equivalent to the `--custom-compile-command` command-line argument.
167    ///
168    /// Used to override uv in the output header of the `requirements.txt` files generated by
169    /// `uv pip compile`. Intended for use-cases in which `uv pip compile` is called from within a wrapper
170    /// script, to include the name of the wrapper script in the output file.
171    #[attr_added_in("0.1.23")]
172    pub const UV_CUSTOM_COMPILE_COMMAND: &'static str = "UV_CUSTOM_COMPILE_COMMAND";
173
174    /// Equivalent to the `--keyring-provider` command-line argument. If set, uv
175    /// will use this value as the keyring provider.
176    #[attr_added_in("0.1.19")]
177    pub const UV_KEYRING_PROVIDER: &'static str = "UV_KEYRING_PROVIDER";
178
179    /// Equivalent to the `--config-file` command-line argument. Expects a path to a
180    /// local `uv.toml` file to use as the configuration file.
181    #[attr_added_in("0.1.34")]
182    pub const UV_CONFIG_FILE: &'static str = "UV_CONFIG_FILE";
183
184    /// Equivalent to the `--no-config` command-line argument. If set, uv will not read
185    /// any configuration files from the current directory, parent directories, or user configuration
186    /// directories.
187    #[attr_added_in("0.2.30")]
188    pub const UV_NO_CONFIG: &'static str = "UV_NO_CONFIG";
189
190    /// If set, uv will not read system-level configuration files.
191    #[attr_added_in("0.11.16")]
192    pub const UV_NO_SYSTEM_CONFIG: &'static str = "UV_NO_SYSTEM_CONFIG";
193
194    /// Equivalent to the `--isolated` command-line argument. If set, uv will avoid discovering
195    /// a `pyproject.toml` or `uv.toml` file.
196    #[attr_added_in("0.8.14")]
197    pub const UV_ISOLATED: &'static str = "UV_ISOLATED";
198
199    /// Equivalent to the `--exclude-newer` command-line argument. If set, uv will
200    /// exclude distributions published after the specified date.
201    #[attr_added_in("0.2.12")]
202    pub const UV_EXCLUDE_NEWER: &'static str = "UV_EXCLUDE_NEWER";
203
204    /// Whether uv should prefer system or managed Python versions.
205    #[attr_added_in("0.3.2")]
206    pub const UV_PYTHON_PREFERENCE: &'static str = "UV_PYTHON_PREFERENCE";
207
208    /// Require use of uv-managed Python versions.
209    #[attr_added_in("0.6.8")]
210    pub const UV_MANAGED_PYTHON: &'static str = "UV_MANAGED_PYTHON";
211
212    /// Disable use of uv-managed Python versions.
213    #[attr_added_in("0.6.8")]
214    pub const UV_NO_MANAGED_PYTHON: &'static str = "UV_NO_MANAGED_PYTHON";
215
216    /// Equivalent to the
217    /// [`python-downloads`](../reference/settings.md#python-downloads) setting and, when disabled, the
218    /// `--no-python-downloads` option. Whether uv should allow Python downloads.
219    #[attr_added_in("0.3.2")]
220    pub const UV_PYTHON_DOWNLOADS: &'static str = "UV_PYTHON_DOWNLOADS";
221
222    /// Overrides the environment-determined libc on linux systems when filling in the current platform
223    /// within Python version requests. Options are: `gnu`, `gnueabi`, `gnueabihf`, `musl`,
224    /// `musleabi`, `musleabihf`, and `none`.
225    #[attr_added_in("0.7.22")]
226    pub const UV_LIBC: &'static str = "UV_LIBC";
227
228    /// Equivalent to the `--compile-bytecode` command-line argument. If set, uv
229    /// will compile Python source files to bytecode after installation.
230    #[attr_added_in("0.3.3")]
231    pub const UV_COMPILE_BYTECODE: &'static str = "UV_COMPILE_BYTECODE";
232
233    /// Timeout (in seconds) for bytecode compilation.
234    #[attr_added_in("0.7.22")]
235    pub const UV_COMPILE_BYTECODE_TIMEOUT: &'static str = "UV_COMPILE_BYTECODE_TIMEOUT";
236
237    /// Equivalent to the `--no-editable` command-line argument. If set, uv
238    /// installs or exports any editable dependencies, including the project and any workspace
239    /// members, as non-editable.
240    #[attr_added_in("0.6.15")]
241    pub const UV_NO_EDITABLE: &'static str = "UV_NO_EDITABLE";
242
243    /// Equivalent to the `--dev` command-line argument. If set, uv will include
244    /// development dependencies.
245    #[attr_added_in("0.8.7")]
246    pub const UV_DEV: &'static str = "UV_DEV";
247
248    /// Equivalent to the `--no-dev` command-line argument. If set, uv will exclude
249    /// development dependencies.
250    #[attr_added_in("0.8.7")]
251    pub const UV_NO_DEV: &'static str = "UV_NO_DEV";
252
253    /// Equivalent to the `--no-group` command-line argument. If set, uv will disable
254    /// the specified dependency groups for the given space-delimited list of packages.
255    #[attr_added_in("0.9.8")]
256    pub const UV_NO_GROUP: &'static str = "UV_NO_GROUP";
257
258    /// Equivalent to the `--no-default-groups` command-line argument. If set, uv will
259    /// not select the default dependency groups defined in `tool.uv.default-groups`.
260    #[attr_added_in("0.9.9")]
261    pub const UV_NO_DEFAULT_GROUPS: &'static str = "UV_NO_DEFAULT_GROUPS";
262
263    /// Equivalent to the `--no-install-project` command-line argument. If set, uv will
264    /// install the project's dependencies but not the project itself.
265    #[attr_added_in("0.11.20")]
266    pub const UV_NO_INSTALL_PROJECT: &'static str = "UV_NO_INSTALL_PROJECT";
267
268    /// Equivalent to the `--no-install-workspace` command-line argument. If set, uv will
269    /// install workspace dependencies but not workspace members (including the current
270    /// project).
271    #[attr_added_in("0.11.20")]
272    pub const UV_NO_INSTALL_WORKSPACE: &'static str = "UV_NO_INSTALL_WORKSPACE";
273
274    /// Equivalent to the `--no-install-local` command-line argument. If set, uv will skip
275    /// the current project, workspace members, and any other local (path or editable)
276    /// packages, installing only remote dependencies.
277    #[attr_added_in("0.11.20")]
278    pub const UV_NO_INSTALL_LOCAL: &'static str = "UV_NO_INSTALL_LOCAL";
279
280    /// Equivalent to the hidden `--only-install-project` command-line argument.
281    #[attr_hidden]
282    #[attr_added_in("0.11.20")]
283    pub const UV_ONLY_INSTALL_PROJECT: &'static str = "UV_ONLY_INSTALL_PROJECT";
284
285    /// Equivalent to the hidden `--only-install-workspace` command-line argument.
286    #[attr_hidden]
287    #[attr_added_in("0.11.20")]
288    pub const UV_ONLY_INSTALL_WORKSPACE: &'static str = "UV_ONLY_INSTALL_WORKSPACE";
289
290    /// Equivalent to the hidden `--only-install-local` command-line argument.
291    #[attr_hidden]
292    #[attr_added_in("0.11.20")]
293    pub const UV_ONLY_INSTALL_LOCAL: &'static str = "UV_ONLY_INSTALL_LOCAL";
294
295    /// Equivalent to the `--no-binary` command-line argument. If set, uv will install
296    /// all packages from source. The resolver will still use pre-built wheels to
297    /// extract package metadata, if available.
298    #[attr_added_in("0.5.30")]
299    pub const UV_NO_BINARY: &'static str = "UV_NO_BINARY";
300
301    /// Equivalent to the `--no-binary-package` command line argument. If set, uv will
302    /// not use pre-built wheels for the given space-delimited list of packages.
303    #[attr_added_in("0.5.30")]
304    pub const UV_NO_BINARY_PACKAGE: &'static str = "UV_NO_BINARY_PACKAGE";
305
306    /// Equivalent to the `--no-build` command-line argument. If set, uv will not build
307    /// source distributions.
308    #[attr_added_in("0.1.40")]
309    pub const UV_NO_BUILD: &'static str = "UV_NO_BUILD";
310
311    /// Equivalent to the `--no-build-package` command line argument. If set, uv will
312    /// not build source distributions for the given space-delimited list of packages.
313    #[attr_added_in("0.6.5")]
314    pub const UV_NO_BUILD_PACKAGE: &'static str = "UV_NO_BUILD_PACKAGE";
315
316    /// Equivalent to the `--no-sources-package` command line argument. If set, uv will
317    /// ignore the `tool.uv.sources` table for the given space-delimited list of packages.
318    #[attr_added_in("0.9.26")]
319    pub const UV_NO_SOURCES_PACKAGE: &'static str = "UV_NO_SOURCES_PACKAGE";
320
321    /// Equivalent to the `--publish-url` command-line argument. The URL of the upload
322    /// endpoint of the index to use with `uv publish`.
323    #[attr_added_in("0.4.16")]
324    pub const UV_PUBLISH_URL: &'static str = "UV_PUBLISH_URL";
325
326    /// Equivalent to the `--token` command-line argument in `uv publish`. If set, uv
327    /// will use this token (with the username `__token__`) for publishing.
328    #[attr_added_in("0.4.16")]
329    pub const UV_PUBLISH_TOKEN: &'static str = "UV_PUBLISH_TOKEN";
330
331    /// Equivalent to the `--index` command-line argument in `uv publish`. If
332    /// set, uv will use the index with this name in the configuration for publishing.
333    #[attr_added_in("0.5.8")]
334    pub const UV_PUBLISH_INDEX: &'static str = "UV_PUBLISH_INDEX";
335
336    /// Equivalent to the `--username` command-line argument in `uv publish`. If
337    /// set, uv will use this username for publishing.
338    #[attr_added_in("0.4.16")]
339    pub const UV_PUBLISH_USERNAME: &'static str = "UV_PUBLISH_USERNAME";
340
341    /// Equivalent to the `--password` command-line argument in `uv publish`. If
342    /// set, uv will use this password for publishing.
343    #[attr_added_in("0.4.16")]
344    pub const UV_PUBLISH_PASSWORD: &'static str = "UV_PUBLISH_PASSWORD";
345
346    /// Equivalent to the `--check-url` command-line argument in `uv publish`.
347    /// Don't upload a file if it already exists on the index. The value is the URL of the index.
348    #[attr_added_in("0.4.30")]
349    pub const UV_PUBLISH_CHECK_URL: &'static str = "UV_PUBLISH_CHECK_URL";
350
351    /// Equivalent to the `--no-attestations` command-line argument in `uv publish`. If set,
352    /// uv will skip uploading any collected attestations for the published distributions.
353    #[attr_added_in("0.9.12")]
354    pub const UV_PUBLISH_NO_ATTESTATIONS: &'static str = "UV_PUBLISH_NO_ATTESTATIONS";
355
356    /// Equivalent to the `--no-sync` command-line argument. If set, uv will skip updating
357    /// the environment.
358    #[attr_added_in("0.4.18")]
359    pub const UV_NO_SYNC: &'static str = "UV_NO_SYNC";
360
361    /// Equivalent to the `--locked` command-line argument. If set, uv will assert that the
362    /// `uv.lock` remains unchanged.
363    #[attr_added_in("0.4.25")]
364    pub const UV_LOCKED: &'static str = "UV_LOCKED";
365
366    /// Equivalent to the `--frozen` command-line argument. If set, uv will run without
367    /// updating the `uv.lock` file.
368    #[attr_added_in("0.4.25")]
369    pub const UV_FROZEN: &'static str = "UV_FROZEN";
370
371    /// Equivalent to the `--preview` argument. Enables preview mode.
372    #[attr_added_in("0.1.37")]
373    pub const UV_PREVIEW: &'static str = "UV_PREVIEW";
374
375    /// Equivalent to the `--preview-features` argument. Enables specific preview features.
376    #[attr_added_in("0.8.4")]
377    pub const UV_PREVIEW_FEATURES: &'static str = "UV_PREVIEW_FEATURES";
378
379    /// Equivalent to the `--token` argument for self update. A GitHub token for authentication.
380    #[attr_added_in("0.4.10")]
381    pub const UV_GITHUB_TOKEN: &'static str = "UV_GITHUB_TOKEN";
382
383    /// Equivalent to the `--no-verify-hashes` argument. Disables hash verification for
384    /// `requirements.txt` files.
385    #[attr_added_in("0.5.3")]
386    pub const UV_NO_VERIFY_HASHES: &'static str = "UV_NO_VERIFY_HASHES";
387
388    /// Equivalent to the `--allow-insecure-host` argument.
389    #[attr_added_in("0.3.5")]
390    pub const UV_INSECURE_HOST: &'static str = "UV_INSECURE_HOST";
391
392    /// Disable ZIP validation for streamed wheels and ZIP-based source distributions.
393    ///
394    /// WARNING: Disabling ZIP validation can expose your system to security risks by bypassing
395    /// integrity checks and allowing uv to install potentially malicious ZIP files. If uv rejects
396    /// a ZIP file due to failing validation, it is likely that the file is malformed; consider
397    /// filing an issue with the package maintainer.
398    #[attr_added_in("0.8.6")]
399    pub const UV_INSECURE_NO_ZIP_VALIDATION: &'static str = "UV_INSECURE_NO_ZIP_VALIDATION";
400
401    /// Sets the maximum number of in-flight concurrent downloads that uv will
402    /// perform at any given time.
403    #[attr_added_in("0.1.43")]
404    pub const UV_CONCURRENT_DOWNLOADS: &'static str = "UV_CONCURRENT_DOWNLOADS";
405
406    /// Sets the maximum number of source distributions that uv will build
407    /// concurrently at any given time.
408    #[attr_added_in("0.1.43")]
409    pub const UV_CONCURRENT_BUILDS: &'static str = "UV_CONCURRENT_BUILDS";
410
411    /// Controls the number of threads used when installing and unzipping
412    /// packages.
413    #[attr_added_in("0.1.45")]
414    pub const UV_CONCURRENT_INSTALLS: &'static str = "UV_CONCURRENT_INSTALLS";
415
416    /// Equivalent to the `--no-progress` command-line argument. Disables all progress output. For
417    /// example, spinners and progress bars.
418    #[attr_added_in("0.2.28")]
419    pub const UV_NO_PROGRESS: &'static str = "UV_NO_PROGRESS";
420
421    /// Specifies the directory where uv stores managed tools.
422    #[attr_added_in("0.2.16")]
423    pub const UV_TOOL_DIR: &'static str = "UV_TOOL_DIR";
424
425    /// Specifies the "bin" directory for installing tool executables.
426    #[attr_added_in("0.3.0")]
427    pub const UV_TOOL_BIN_DIR: &'static str = "UV_TOOL_BIN_DIR";
428
429    /// Equivalent to the `--bare` argument for `uv init`. If set, uv will only create a
430    /// `pyproject.toml`.
431    #[attr_added_in("0.10.7")]
432    pub const UV_INIT_BARE: &'static str = "UV_INIT_BARE";
433
434    /// Equivalent to the `--build-backend` argument for `uv init`. Determines the default backend
435    /// to use when creating a new project.
436    #[attr_added_in("0.8.2")]
437    pub const UV_INIT_BUILD_BACKEND: &'static str = "UV_INIT_BUILD_BACKEND";
438
439    /// Specifies the path to the directory to use for a project virtual environment.
440    ///
441    /// See the [project documentation](../concepts/projects/config.md#project-environment-path)
442    /// for more details.
443    #[attr_added_in("0.4.4")]
444    pub const UV_PROJECT_ENVIRONMENT: &'static str = "UV_PROJECT_ENVIRONMENT";
445
446    /// Specifies the directory to place links to installed, managed Python executables.
447    #[attr_added_in("0.4.29")]
448    pub const UV_PYTHON_BIN_DIR: &'static str = "UV_PYTHON_BIN_DIR";
449
450    /// Specifies the directory for storing managed Python installations.
451    #[attr_added_in("0.2.22")]
452    pub const UV_PYTHON_INSTALL_DIR: &'static str = "UV_PYTHON_INSTALL_DIR";
453
454    /// Whether to install the Python executable into the `UV_PYTHON_BIN_DIR` directory.
455    #[attr_added_in("0.8.0")]
456    pub const UV_PYTHON_INSTALL_BIN: &'static str = "UV_PYTHON_INSTALL_BIN";
457
458    /// Whether to install the Python executable into the Windows registry.
459    #[attr_added_in("0.8.0")]
460    pub const UV_PYTHON_INSTALL_REGISTRY: &'static str = "UV_PYTHON_INSTALL_REGISTRY";
461
462    /// Disable use of the Windows registry for Python discovery and registration.
463    ///
464    /// When set, uv will not discover Python interpreters from the Windows registry or Microsoft
465    /// Store locations, and managed Python installations will not be registered in the Windows
466    /// registry.
467    #[attr_added_in("0.11.8")]
468    pub const UV_PYTHON_NO_REGISTRY: &'static str = "UV_PYTHON_NO_REGISTRY";
469
470    /// Managed Python installations information is hardcoded in the `uv` binary.
471    ///
472    /// This variable can be set to a local path or URL pointing to
473    /// a JSON list of Python installations to override the hardcoded list.
474    ///
475    /// This allows customizing the URLs for downloads or using slightly older or newer versions
476    /// of Python than the ones hardcoded into this build of `uv`.
477    #[attr_added_in("0.6.13")]
478    pub const UV_PYTHON_DOWNLOADS_JSON_URL: &'static str = "UV_PYTHON_DOWNLOADS_JSON_URL";
479
480    /// Specifies the directory for caching the archives of managed Python installations before
481    /// installation.
482    #[attr_added_in("0.7.0")]
483    pub const UV_PYTHON_CACHE_DIR: &'static str = "UV_PYTHON_CACHE_DIR";
484
485    /// Managed Python installations are downloaded from the Astral
486    /// [`python-build-standalone`](https://github.com/astral-sh/python-build-standalone) project.
487    ///
488    /// This variable can be set to a mirror URL to use a different source for Python installations.
489    /// The provided URL will replace `https://github.com/astral-sh/python-build-standalone/releases/download` in, e.g.,
490    /// `https://github.com/astral-sh/python-build-standalone/releases/download/20240713/cpython-3.12.4%2B20240713-aarch64-apple-darwin-install_only.tar.gz`.
491    /// Distributions can be read from a local directory by using the `file://` URL scheme.
492    ///
493    /// This more-specific mirror takes precedence over
494    /// [`UV_ASTRAL_MIRROR_URL`](Self::UV_ASTRAL_MIRROR_URL) for CPython downloads.
495    #[attr_added_in("0.2.35")]
496    pub const UV_PYTHON_INSTALL_MIRROR: &'static str = "UV_PYTHON_INSTALL_MIRROR";
497
498    /// Managed PyPy installations are downloaded from [python.org](https://downloads.python.org/).
499    ///
500    /// This variable can be set to a mirror URL to use a
501    /// different source for PyPy installations. The provided URL will replace
502    /// `https://downloads.python.org/pypy` in, e.g.,
503    /// `https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2`.
504    /// Distributions can be read from a local directory by using the `file://` URL scheme.
505    #[attr_added_in("0.2.35")]
506    pub const UV_PYPY_INSTALL_MIRROR: &'static str = "UV_PYPY_INSTALL_MIRROR";
507
508    /// Replaces the `https://releases.astral.sh` base URL for all Astral-mirrored
509    /// metadata and artifact downloads.
510    ///
511    /// When set, uv uses only the configured mirror URL and does not fall back to
512    /// GitHub or raw GitHub. Path components in the URL are preserved: only
513    /// trailing slashes are trimmed before appending the normal path suffix
514    /// (e.g., `/github/versions/main/v1/uv.ndjson`).
515    ///
516    /// This is useful for proxy repositories (e.g., Artifactory, Nexus) that
517    /// mirror `releases.astral.sh`.
518    ///
519    /// More-specific sources take precedence:
520    /// [`UV_PYTHON_INSTALL_MIRROR`](Self::UV_PYTHON_INSTALL_MIRROR) and
521    /// `python-install-mirror` override this variable for CPython downloads, while
522    /// [`UV_INSTALLER_GITHUB_BASE_URL`](Self::UV_INSTALLER_GITHUB_BASE_URL) and
523    /// [`UV_INSTALLER_GHE_BASE_URL`](Self::UV_INSTALLER_GHE_BASE_URL) override this
524    /// variable for `uv self update`.
525    #[attr_added_in("0.11.14")]
526    pub const UV_ASTRAL_MIRROR_URL: &'static str = "UV_ASTRAL_MIRROR_URL";
527
528    /// Pin managed CPython versions to a specific build version.
529    ///
530    /// For CPython, this should be the build date (e.g., "20250814").
531    #[attr_added_in("0.8.14")]
532    pub const UV_PYTHON_CPYTHON_BUILD: &'static str = "UV_PYTHON_CPYTHON_BUILD";
533
534    /// Pin managed PyPy versions to a specific build version.
535    ///
536    /// For PyPy, this should be the PyPy version (e.g., "7.3.20").
537    #[attr_added_in("0.8.14")]
538    pub const UV_PYTHON_PYPY_BUILD: &'static str = "UV_PYTHON_PYPY_BUILD";
539
540    /// Pin managed GraalPy versions to a specific build version.
541    ///
542    /// For GraalPy, this should be the GraalPy version (e.g., "24.2.2").
543    #[attr_added_in("0.8.14")]
544    pub const UV_PYTHON_GRAALPY_BUILD: &'static str = "UV_PYTHON_GRAALPY_BUILD";
545
546    /// Pin managed Pyodide versions to a specific build version.
547    ///
548    /// For Pyodide, this should be the Pyodide version (e.g., "0.28.1").
549    #[attr_added_in("0.8.14")]
550    pub const UV_PYTHON_PYODIDE_BUILD: &'static str = "UV_PYTHON_PYODIDE_BUILD";
551
552    /// Equivalent to the `--clear` command-line argument. If set, uv will remove any
553    /// existing files or directories at the target path.
554    #[attr_added_in("0.8.0")]
555    pub const UV_VENV_CLEAR: &'static str = "UV_VENV_CLEAR";
556
557    /// Equivalent to the `--relocatable` command-line argument. If set, the virtual
558    /// environment will be relocatable.
559    #[attr_added_in("0.10.8")]
560    pub const UV_VENV_RELOCATABLE: &'static str = "UV_VENV_RELOCATABLE";
561
562    /// Install seed packages (one or more of: `pip`, `setuptools`, and `wheel`) into the virtual environment
563    /// created by `uv venv`.
564    ///
565    /// Note that `setuptools` and `wheel` are not included in Python 3.12+ environments.
566    #[attr_added_in("0.5.21")]
567    pub const UV_VENV_SEED: &'static str = "UV_VENV_SEED";
568
569    /// Used to override `PATH` for Python executable discovery.
570    ///
571    /// When set, uv will search for Python interpreters in the directories specified by this
572    /// variable instead of `PATH`.
573    #[attr_added_in("0.11.8")]
574    pub const UV_PYTHON_SEARCH_PATH: &'static str = "UV_PYTHON_SEARCH_PATH";
575
576    /// Include resolver and installer output related to environment modifications.
577    #[attr_hidden]
578    #[attr_added_in("0.2.32")]
579    pub const UV_SHOW_RESOLUTION: &'static str = "UV_SHOW_RESOLUTION";
580
581    /// Use to update the json schema files.
582    #[attr_hidden]
583    #[attr_added_in("0.1.34")]
584    pub const UV_UPDATE_SCHEMA: &'static str = "UV_UPDATE_SCHEMA";
585
586    /// Use to disable line wrapping for diagnostics.
587    #[attr_added_in("0.0.5")]
588    pub const UV_NO_WRAP: &'static str = "UV_NO_WRAP";
589
590    /// Set to `1` to enable the automatic malware check that runs after `uv sync`.
591    ///
592    /// When enabled, uv performs a lightweight check against the OSV database for known
593    /// malware advisories after every lockfile sync. Set this variable to `0` to opt out.
594    #[attr_added_in("0.11.16")]
595    pub const UV_MALWARE_CHECK: &'static str = "UV_MALWARE_CHECK";
596
597    /// Override the vulnerability service URL for the automatic malware check.
598    ///
599    /// Defaults to the OSV API endpoint (`https://api.osv.dev/`).
600    #[attr_added_in("0.11.16")]
601    pub const UV_MALWARE_CHECK_URL: &'static str = "UV_MALWARE_CHECK_URL";
602
603    /// Provides the HTTP Basic authentication username for a named index.
604    ///
605    /// The `name` parameter is the name of the index. For example, given an index named `foo`,
606    /// the environment variable key would be `UV_INDEX_FOO_USERNAME`.
607    #[attr_added_in("0.4.23")]
608    #[attr_env_var_pattern("UV_INDEX_{name}_USERNAME")]
609    pub fn index_username(name: &str) -> String {
610        format!("UV_INDEX_{name}_USERNAME")
611    }
612
613    /// Provides the HTTP Basic authentication password for a named index.
614    ///
615    /// The `name` parameter is the name of the index. For example, given an index named `foo`,
616    /// the environment variable key would be `UV_INDEX_FOO_PASSWORD`.
617    #[attr_added_in("0.4.23")]
618    #[attr_env_var_pattern("UV_INDEX_{name}_PASSWORD")]
619    pub fn index_password(name: &str) -> String {
620        format!("UV_INDEX_{name}_PASSWORD")
621    }
622
623    /// Used to set the uv commit hash at build time via `build.rs`.
624    #[attr_hidden]
625    #[attr_added_in("0.1.11")]
626    pub const UV_COMMIT_HASH: &'static str = "UV_COMMIT_HASH";
627
628    /// Used to set the uv commit short hash at build time via `build.rs`.
629    #[attr_hidden]
630    #[attr_added_in("0.1.11")]
631    pub const UV_COMMIT_SHORT_HASH: &'static str = "UV_COMMIT_SHORT_HASH";
632
633    /// Used to set the uv commit date at build time via `build.rs`.
634    #[attr_hidden]
635    #[attr_added_in("0.1.11")]
636    pub const UV_COMMIT_DATE: &'static str = "UV_COMMIT_DATE";
637
638    /// Used to set the uv tag at build time via `build.rs`.
639    #[attr_hidden]
640    #[attr_added_in("0.1.11")]
641    pub const UV_LAST_TAG: &'static str = "UV_LAST_TAG";
642
643    /// Used to set the uv tag distance from head at build time via `build.rs`.
644    #[attr_hidden]
645    #[attr_added_in("0.1.11")]
646    pub const UV_LAST_TAG_DISTANCE: &'static str = "UV_LAST_TAG_DISTANCE";
647
648    /// Used to set the spawning/parent interpreter when using --system in the test suite.
649    #[attr_hidden]
650    #[attr_added_in("0.2.0")]
651    pub const UV_INTERNAL__PARENT_INTERPRETER: &'static str = "UV_INTERNAL__PARENT_INTERPRETER";
652
653    /// Used to force showing the derivation tree during resolver error reporting.
654    #[attr_hidden]
655    #[attr_added_in("0.3.0")]
656    pub const UV_INTERNAL__SHOW_DERIVATION_TREE: &'static str = "UV_INTERNAL__SHOW_DERIVATION_TREE";
657
658    /// Used to set a temporary directory for some tests.
659    #[attr_hidden]
660    #[attr_added_in("0.3.4")]
661    pub const UV_INTERNAL__TEST_DIR: &'static str = "UV_INTERNAL__TEST_DIR";
662
663    /// Path to a directory on a filesystem that supports copy-on-write, e.g., btrfs or APFS.
664    ///
665    /// When populated, uv will run additional tests that require this functionality.
666    #[attr_hidden]
667    #[attr_added_in("0.10.5")]
668    pub const UV_INTERNAL__TEST_COW_FS: &'static str = "UV_INTERNAL__TEST_COW_FS";
669
670    /// Path to a directory on a filesystem that does **not** support copy-on-write.
671    ///
672    /// When populated, uv will run additional tests that verify fallback behavior
673    /// when copy-on-write is unavailable.
674    #[attr_hidden]
675    #[attr_added_in("0.10.5")]
676    pub const UV_INTERNAL__TEST_NOCOW_FS: &'static str = "UV_INTERNAL__TEST_NOCOW_FS";
677
678    /// Path to a directory on an alternative filesystem for testing.
679    ///
680    /// This filesystem must be a different device than the default for the test suite.
681    ///
682    /// When populated, uv will run additional tests that cover cross-filesystem linking.
683    #[attr_hidden]
684    #[attr_added_in("0.10.5")]
685    pub const UV_INTERNAL__TEST_ALT_FS: &'static str = "UV_INTERNAL__TEST_ALT_FS";
686
687    /// Network path to a directory on an SMB filesystem for testing.
688    ///
689    /// When populated, uv will run additional tests that cover SMB-specific filesystem behavior.
690    #[attr_hidden]
691    #[attr_added_in("0.11.16")]
692    pub const UV_INTERNAL__TEST_SMB_FS: &'static str = "UV_INTERNAL__TEST_SMB_FS";
693
694    /// Path to a directory on a filesystem with a low hardlink limit (e.g., minix with ~250).
695    ///
696    /// When populated, uv will run additional tests that exercise EMLINK recovery.
697    #[attr_hidden]
698    #[attr_added_in("0.10.9")]
699    pub const UV_INTERNAL__TEST_LOWLINKS_FS: &'static str = "UV_INTERNAL__TEST_LOWLINKS_FS";
700
701    /// Used to force treating an interpreter as "managed" during tests.
702    #[attr_hidden]
703    #[attr_added_in("0.8.0")]
704    pub const UV_INTERNAL__TEST_PYTHON_MANAGED: &'static str = "UV_INTERNAL__TEST_PYTHON_MANAGED";
705
706    /// Used to force ignoring Git LFS commands as `git-lfs` detection cannot be overridden via PATH.
707    #[attr_hidden]
708    #[attr_added_in("0.9.15")]
709    pub const UV_INTERNAL__TEST_LFS_DISABLED: &'static str = "UV_INTERNAL__TEST_LFS_DISABLED";
710
711    /// Path to system-level configuration directory on Unix systems.
712    #[attr_added_in("0.4.26")]
713    pub const XDG_CONFIG_DIRS: &'static str = "XDG_CONFIG_DIRS";
714
715    /// Path to system-level configuration directory on Windows systems.
716    #[attr_added_in("0.4.26")]
717    pub const SYSTEMDRIVE: &'static str = "SYSTEMDRIVE";
718
719    /// Path to user-level configuration directory on Windows systems.
720    #[attr_added_in("0.1.42")]
721    pub const APPDATA: &'static str = "APPDATA";
722
723    /// Path to root directory of user's profile on Windows systems.
724    #[attr_added_in("0.0.5")]
725    pub const USERPROFILE: &'static str = "USERPROFILE";
726
727    /// Path to user-level configuration directory on Unix systems.
728    #[attr_added_in("0.1.34")]
729    pub const XDG_CONFIG_HOME: &'static str = "XDG_CONFIG_HOME";
730
731    /// Path to cache directory on Unix systems.
732    #[attr_added_in("0.1.17")]
733    pub const XDG_CACHE_HOME: &'static str = "XDG_CACHE_HOME";
734
735    /// Path to directory for storing managed Python installations and tools.
736    #[attr_added_in("0.2.16")]
737    pub const XDG_DATA_HOME: &'static str = "XDG_DATA_HOME";
738
739    /// Path to directory where executables are installed.
740    #[attr_added_in("0.2.16")]
741    pub const XDG_BIN_HOME: &'static str = "XDG_BIN_HOME";
742
743    /// Path to a CA certificate bundle file for TLS connections.
744    ///
745    /// Requires a PEM-encoded certificate file (e.g., `certs.pem`, `ca-bundle.crt`). DER-encoded
746    /// files are not supported.
747    ///
748    /// When set, this overrides the default certificate source (bundled Mozilla roots or system
749    /// certificates). Only the certificates in this file will be trusted.
750    #[attr_added_in("0.1.14")]
751    pub const SSL_CERT_FILE: &'static str = "SSL_CERT_FILE";
752
753    /// Path to a directory containing PEM-encoded CA certificate files for TLS connections.
754    ///
755    /// Multiple entries are supported, separated using a platform-specific delimiter (`:` on Unix,
756    /// `;` on Windows).
757    ///
758    /// Certificates are usually stored with `.pem`, `.crt`, or `.cer` extensions, but uv will
759    /// attempt to read a certificate from any regular file in the provided `SSL_CERT_DIR`.
760    ///
761    /// Files that cannot be parsed as PEM certificates are ignored. uv resolves symlinks and
762    /// ignores dangling symlinks.
763    ///
764    /// Only PEM-encoded files are supported, i.e., DER-encoded files are not supported.
765    ///
766    /// When set, this overrides the default certificate source (bundled Mozilla roots or system
767    /// certificates). Only the certificates in this directory will be trusted.
768    #[attr_added_in("0.9.10")]
769    pub const SSL_CERT_DIR: &'static str = "SSL_CERT_DIR";
770
771    /// If set, uv will use this file for mTLS authentication.
772    /// This should be a single file containing both the certificate and the private key in PEM format.
773    #[attr_added_in("0.2.11")]
774    pub const SSL_CLIENT_CERT: &'static str = "SSL_CLIENT_CERT";
775
776    /// Proxy for HTTP requests.
777    #[attr_added_in("0.1.38")]
778    pub const HTTP_PROXY: &'static str = "HTTP_PROXY";
779
780    /// Proxy for HTTPS requests.
781    #[attr_added_in("0.1.38")]
782    pub const HTTPS_PROXY: &'static str = "HTTPS_PROXY";
783
784    /// General proxy for all network requests.
785    #[attr_added_in("0.1.38")]
786    pub const ALL_PROXY: &'static str = "ALL_PROXY";
787
788    /// Comma-separated list of hostnames (e.g., `example.com`) and/or patterns (e.g., `192.168.1.0/24`) that should bypass the proxy.
789    #[attr_added_in("0.1.38")]
790    pub const NO_PROXY: &'static str = "NO_PROXY";
791
792    /// Timeout (in seconds) for only upload HTTP requests. (default: 900 s)
793    #[attr_added_in("0.9.1")]
794    pub const UV_UPLOAD_HTTP_TIMEOUT: &'static str = "UV_UPLOAD_HTTP_TIMEOUT";
795
796    /// Timeout (in seconds) for HTTP reads. (default: 30 s)
797    #[attr_added_in("0.1.7")]
798    pub const UV_HTTP_TIMEOUT: &'static str = "UV_HTTP_TIMEOUT";
799
800    /// Timeout (in seconds) to connect to a server. (default: 10 s)
801    ///
802    /// If `UV_HTTP_TIMEOUT` is lower than this value, `UV_HTTP_TIMEOUT` will be used instead.
803    #[attr_added_in("0.10.0")]
804    pub const UV_HTTP_CONNECT_TIMEOUT: &'static str = "UV_HTTP_CONNECT_TIMEOUT";
805
806    /// The number of retries for HTTP requests. (default: 3)
807    #[attr_added_in("0.7.21")]
808    pub const UV_HTTP_RETRIES: &'static str = "UV_HTTP_RETRIES";
809
810    /// Timeout (in seconds) for HTTP requests. Equivalent to `UV_HTTP_TIMEOUT`.
811    #[attr_added_in("0.1.6")]
812    pub const UV_REQUEST_TIMEOUT: &'static str = "UV_REQUEST_TIMEOUT";
813
814    /// Timeout (in seconds) for HTTP requests. Equivalent to `UV_HTTP_TIMEOUT`.
815    #[attr_added_in("0.1.7")]
816    pub const HTTP_TIMEOUT: &'static str = "HTTP_TIMEOUT";
817
818    /// The validation modes to use when run with `--compile`.
819    ///
820    /// See [`PycInvalidationMode`](https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode).
821    #[attr_added_in("0.1.7")]
822    pub const PYC_INVALIDATION_MODE: &'static str = "PYC_INVALIDATION_MODE";
823
824    /// Used to detect an activated virtual environment.
825    #[attr_added_in("0.0.5")]
826    pub const VIRTUAL_ENV: &'static str = "VIRTUAL_ENV";
827
828    /// Used to detect the path of an active Conda environment.
829    #[attr_added_in("0.0.5")]
830    pub const CONDA_PREFIX: &'static str = "CONDA_PREFIX";
831
832    /// Used to determine the name of the active Conda environment.
833    #[attr_added_in("0.5.0")]
834    pub const CONDA_DEFAULT_ENV: &'static str = "CONDA_DEFAULT_ENV";
835
836    /// Used to determine the root install path of Conda.
837    #[attr_added_in("0.8.18")]
838    pub const CONDA_ROOT: &'static str = "_CONDA_ROOT";
839
840    /// Used to determine if we're running in Dependabot.
841    #[attr_added_in("0.9.11")]
842    pub const DEPENDABOT: &'static str = "DEPENDABOT";
843
844    /// If set to `1` before a virtual environment is activated, then the
845    /// virtual environment name will not be prepended to the terminal prompt.
846    #[attr_added_in("0.0.5")]
847    pub const VIRTUAL_ENV_DISABLE_PROMPT: &'static str = "VIRTUAL_ENV_DISABLE_PROMPT";
848
849    /// Used to detect the use of the Windows Command Prompt (as opposed to PowerShell).
850    #[attr_added_in("0.1.16")]
851    pub const PROMPT: &'static str = "PROMPT";
852
853    /// Used to detect `NuShell` usage.
854    #[attr_added_in("0.1.16")]
855    pub const NU_VERSION: &'static str = "NU_VERSION";
856
857    /// Used to detect Fish shell usage.
858    #[attr_added_in("0.1.28")]
859    pub const FISH_VERSION: &'static str = "FISH_VERSION";
860
861    /// Used to detect Bash shell usage.
862    #[attr_added_in("0.1.28")]
863    pub const BASH_VERSION: &'static str = "BASH_VERSION";
864
865    /// Used to detect Zsh shell usage.
866    #[attr_added_in("0.1.28")]
867    pub const ZSH_VERSION: &'static str = "ZSH_VERSION";
868
869    /// Used to determine which `.zshenv` to use when Zsh is being used.
870    #[attr_added_in("0.2.25")]
871    pub const ZDOTDIR: &'static str = "ZDOTDIR";
872
873    /// Used to detect Ksh shell usage.
874    #[attr_added_in("0.2.33")]
875    pub const KSH_VERSION: &'static str = "KSH_VERSION";
876
877    /// Used to detect PowerShell usage (set by PowerShell on all platforms).
878    #[attr_added_in("0.10.0")]
879    pub const PS_MODULE_PATH: &'static str = "PSModulePath";
880
881    /// Used with `--python-platform macos` and related variants to set the
882    /// deployment target (i.e., the minimum supported macOS version).
883    ///
884    /// Defaults to `13.0`, the least-recent non-EOL macOS version at time of writing.
885    #[attr_added_in("0.1.42")]
886    pub const MACOSX_DEPLOYMENT_TARGET: &'static str = "MACOSX_DEPLOYMENT_TARGET";
887
888    /// Used with `--python-platform arm64-apple-ios` and related variants to set the
889    /// deployment target (i.e., the minimum supported iOS version).
890    ///
891    /// Defaults to `13.0`.
892    #[attr_added_in("0.8.16")]
893    pub const IPHONEOS_DEPLOYMENT_TARGET: &'static str = "IPHONEOS_DEPLOYMENT_TARGET";
894
895    /// Used with `--python-platform aarch64-linux-android` and related variants to set the
896    /// Android API level. (i.e., the minimum supported Android API level).
897    ///
898    /// Defaults to `24`.
899    #[attr_added_in("0.8.16")]
900    pub const ANDROID_API_LEVEL: &'static str = "ANDROID_API_LEVEL";
901
902    /// Disables colored output (takes precedence over `FORCE_COLOR`).
903    ///
904    /// See [no-color.org](https://no-color.org).
905    #[attr_added_in("0.2.7")]
906    pub const NO_COLOR: &'static str = "NO_COLOR";
907
908    /// Forces colored output regardless of terminal support.
909    ///
910    /// See [force-color.org](https://force-color.org).
911    #[attr_added_in("0.2.7")]
912    pub const FORCE_COLOR: &'static str = "FORCE_COLOR";
913
914    /// Use to control color via `anstyle`.
915    #[attr_added_in("0.1.32")]
916    pub const CLICOLOR_FORCE: &'static str = "CLICOLOR_FORCE";
917
918    /// The standard `PATH` env var.
919    #[attr_added_in("0.0.5")]
920    pub const PATH: &'static str = "PATH";
921
922    /// The standard `HOME` env var.
923    #[attr_added_in("0.0.5")]
924    pub const HOME: &'static str = "HOME";
925
926    /// The standard `SHELL` posix env var.
927    #[attr_added_in("0.1.16")]
928    pub const SHELL: &'static str = "SHELL";
929
930    /// The standard `PWD` posix env var.
931    #[attr_added_in("0.0.5")]
932    pub const PWD: &'static str = "PWD";
933
934    /// Used to look for Microsoft Store Pythons installations.
935    #[attr_added_in("0.3.3")]
936    pub const LOCALAPPDATA: &'static str = "LOCALAPPDATA";
937
938    /// Path to the `.git` directory. Ignored by `uv` when performing fetch.
939    #[attr_hidden]
940    #[attr_added_in("0.0.5")]
941    pub const GIT_DIR: &'static str = "GIT_DIR";
942
943    /// Path to the git working tree. Ignored by `uv` when performing fetch.
944    #[attr_hidden]
945    #[attr_added_in("0.0.5")]
946    pub const GIT_WORK_TREE: &'static str = "GIT_WORK_TREE";
947
948    /// Path to the index file for staged changes. Ignored by `uv` when performing fetch.
949    #[attr_hidden]
950    #[attr_added_in("0.0.5")]
951    pub const GIT_INDEX_FILE: &'static str = "GIT_INDEX_FILE";
952
953    /// Path to where git object files are located. Ignored by `uv` when performing fetch.
954    #[attr_hidden]
955    #[attr_added_in("0.0.5")]
956    pub const GIT_OBJECT_DIRECTORY: &'static str = "GIT_OBJECT_DIRECTORY";
957
958    /// Alternate locations for git objects. Ignored by `uv` when performing fetch.
959    #[attr_hidden]
960    #[attr_added_in("0.0.5")]
961    pub const GIT_ALTERNATE_OBJECT_DIRECTORIES: &'static str = "GIT_ALTERNATE_OBJECT_DIRECTORIES";
962
963    /// Disables SSL verification for git operations.
964    #[attr_hidden]
965    #[attr_added_in("0.5.28")]
966    pub const GIT_SSL_NO_VERIFY: &'static str = "GIT_SSL_NO_VERIFY";
967
968    /// Sets allowed protocols for git operations.
969    ///
970    /// When uv is in "offline" mode, only the "file" protocol is allowed.
971    #[attr_hidden]
972    #[attr_added_in("0.6.13")]
973    pub const GIT_ALLOW_PROTOCOL: &'static str = "GIT_ALLOW_PROTOCOL";
974
975    /// Sets the SSH command used when Git tries to establish a connection using SSH.
976    #[attr_hidden]
977    #[attr_added_in("0.7.11")]
978    pub const GIT_SSH_COMMAND: &'static str = "GIT_SSH_COMMAND";
979
980    /// Disable interactive git prompts in terminals, e.g., for credentials. Does not disable
981    /// GUI prompts.
982    #[attr_hidden]
983    #[attr_added_in("0.6.4")]
984    pub const GIT_TERMINAL_PROMPT: &'static str = "GIT_TERMINAL_PROMPT";
985
986    /// Skip Smudge LFS Filter.
987    #[attr_hidden]
988    #[attr_added_in("0.9.15")]
989    pub const GIT_LFS_SKIP_SMUDGE: &'static str = "GIT_LFS_SKIP_SMUDGE";
990
991    /// Used in tests to set the user global git config location.
992    #[attr_hidden]
993    #[attr_added_in("0.9.15")]
994    pub const GIT_CONFIG_GLOBAL: &'static str = "GIT_CONFIG_GLOBAL";
995
996    /// Used in tests for better git isolation.
997    ///
998    /// For example, we run some tests in ~/.local/share/uv/tests.
999    /// And if the user's `$HOME` directory is a git repository,
1000    /// this will change the behavior of some tests. Setting
1001    /// `GIT_CEILING_DIRECTORIES=/home/andrew/.local/share/uv/tests` will
1002    /// prevent git from crawling up the directory tree past that point to find
1003    /// parent git repositories.
1004    #[attr_hidden]
1005    #[attr_added_in("0.4.29")]
1006    pub const GIT_CEILING_DIRECTORIES: &'static str = "GIT_CEILING_DIRECTORIES";
1007
1008    /// Cleared for uv's git invocations to ensure git behaves correctly in
1009    /// spite of an odd environment.
1010    #[attr_hidden]
1011    #[attr_added_in("0.11.8")]
1012    pub const GIT_COMMON_DIR: &'static str = "GIT_COMMON_DIR";
1013
1014    /// Indicates that the current process is running in GitHub Actions.
1015    ///
1016    /// `uv publish` may attempt trusted publishing flows when set
1017    /// to `true`.
1018    #[attr_added_in("0.4.16")]
1019    pub const GITHUB_ACTIONS: &'static str = "GITHUB_ACTIONS";
1020
1021    /// Indicates that the current process is running in GitLab CI.
1022    ///
1023    /// `uv publish` may attempt trusted publishing flows when set
1024    /// to `true`.
1025    #[attr_added_in("0.8.18")]
1026    pub const GITLAB_CI: &'static str = "GITLAB_CI";
1027
1028    /// Used for testing GitLab CI trusted publishing.
1029    #[attr_hidden]
1030    #[attr_added_in("0.8.18")]
1031    pub const PYPI_ID_TOKEN: &'static str = "PYPI_ID_TOKEN";
1032
1033    /// Used for testing GitLab CI trusted publishing.
1034    #[attr_hidden]
1035    #[attr_added_in("0.8.18")]
1036    pub const TESTPYPI_ID_TOKEN: &'static str = "TESTPYPI_ID_TOKEN";
1037
1038    /// Sets the encoding for standard I/O streams (e.g., PYTHONIOENCODING=utf-8).
1039    #[attr_hidden]
1040    #[attr_added_in("0.4.18")]
1041    pub const PYTHONIOENCODING: &'static str = "PYTHONIOENCODING";
1042
1043    /// Forces unbuffered I/O streams, equivalent to `-u` in Python.
1044    #[attr_hidden]
1045    #[attr_added_in("0.1.15")]
1046    pub const PYTHONUNBUFFERED: &'static str = "PYTHONUNBUFFERED";
1047
1048    /// Enables UTF-8 mode for Python, equivalent to `-X utf8`.
1049    #[attr_hidden]
1050    #[attr_added_in("0.4.19")]
1051    pub const PYTHONUTF8: &'static str = "PYTHONUTF8";
1052
1053    /// Adds directories to Python module search path (e.g., `PYTHONPATH=/path/to/modules`).
1054    #[attr_added_in("0.1.22")]
1055    pub const PYTHONPATH: &'static str = "PYTHONPATH";
1056
1057    /// Used to set the location of Python stdlib when using trampolines.
1058    #[attr_hidden]
1059    #[attr_added_in("0.7.13")]
1060    pub const PYTHONHOME: &'static str = "PYTHONHOME";
1061
1062    /// Used to correctly detect virtual environments when using trampolines.
1063    #[attr_hidden]
1064    #[attr_added_in("0.7.13")]
1065    pub const PYVENV_LAUNCHER: &'static str = "__PYVENV_LAUNCHER__";
1066
1067    /// Used in tests to enforce a consistent locale setting.
1068    #[attr_hidden]
1069    #[attr_added_in("0.4.28")]
1070    pub const LC_ALL: &'static str = "LC_ALL";
1071
1072    /// Typically set by CI runners, used to detect a CI runner.
1073    #[attr_hidden]
1074    #[attr_added_in("0.0.5")]
1075    pub const CI: &'static str = "CI";
1076
1077    /// Azure DevOps build identifier, used to detect CI environments.
1078    #[attr_hidden]
1079    #[attr_added_in("0.1.22")]
1080    pub const BUILD_BUILDID: &'static str = "BUILD_BUILDID";
1081
1082    /// Generic build identifier, used to detect CI environments.
1083    #[attr_hidden]
1084    #[attr_added_in("0.1.22")]
1085    pub const BUILD_ID: &'static str = "BUILD_ID";
1086
1087    /// Pip environment variable to indicate CI environment.
1088    #[attr_hidden]
1089    #[attr_added_in("0.1.22")]
1090    pub const PIP_IS_CI: &'static str = "PIP_IS_CI";
1091
1092    /// Use to set the .netrc file location.
1093    #[attr_added_in("0.1.16")]
1094    pub const NETRC: &'static str = "NETRC";
1095
1096    /// The standard `PAGER` posix env var. Used by `uv` to configure the appropriate pager.
1097    #[attr_added_in("0.4.18")]
1098    pub const PAGER: &'static str = "PAGER";
1099
1100    /// Used to detect when running inside a Jupyter notebook.
1101    #[attr_added_in("0.2.6")]
1102    pub const JPY_SESSION_NAME: &'static str = "JPY_SESSION_NAME";
1103
1104    /// Use to create the tracing root directory via the `tracing-durations-export` feature.
1105    #[attr_hidden]
1106    #[attr_added_in("0.1.32")]
1107    pub const TRACING_DURATIONS_TEST_ROOT: &'static str = "TRACING_DURATIONS_TEST_ROOT";
1108
1109    /// Use to create the tracing durations file via the `tracing-durations-export` feature.
1110    #[attr_added_in("0.0.5")]
1111    pub const TRACING_DURATIONS_FILE: &'static str = "TRACING_DURATIONS_FILE";
1112
1113    /// Used to set `RUST_HOST_TARGET` at build time via `build.rs`.
1114    #[attr_hidden]
1115    #[attr_added_in("0.1.11")]
1116    pub const TARGET: &'static str = "TARGET";
1117
1118    /// If set, uv will use this value as the log level for its `--verbose` output. Accepts
1119    /// any filter compatible with the `tracing_subscriber` crate.
1120    ///
1121    /// For example:
1122    ///
1123    /// * `RUST_LOG=uv=debug` is the equivalent of adding `--verbose` to the command line
1124    /// * `RUST_LOG=trace` will enable trace-level logging.
1125    ///
1126    /// See the [tracing documentation](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#example-syntax)
1127    /// for more.
1128    #[attr_added_in("0.0.5")]
1129    pub const RUST_LOG: &'static str = "RUST_LOG";
1130
1131    /// If set, it can be used to display more stack trace details when a panic occurs.
1132    /// This is used by uv particularly on windows to show more details during a platform exception.
1133    ///
1134    /// For example:
1135    ///
1136    /// * `RUST_BACKTRACE=1` will print a short backtrace.
1137    /// * `RUST_BACKTRACE=full` will print a full backtrace.
1138    ///
1139    /// See the [Rust backtrace documentation](https://doc.rust-lang.org/std/backtrace/index.html)
1140    /// for more.
1141    #[attr_added_in("0.7.22")]
1142    pub const RUST_BACKTRACE: &'static str = "RUST_BACKTRACE";
1143
1144    /// Add additional context and structure to log messages.
1145    ///
1146    /// If logging is not enabled, e.g., with `RUST_LOG` or `-v`, this has no effect.
1147    #[attr_added_in("0.6.4")]
1148    pub const UV_LOG_CONTEXT: &'static str = "UV_LOG_CONTEXT";
1149
1150    /// Use to set the stack size used by uv.
1151    ///
1152    /// The value is in bytes, and if both `UV_STACK_SIZE` are `RUST_MIN_STACK` unset, uv uses a 4MB
1153    /// (4194304) stack. `UV_STACK_SIZE` takes precedence over `RUST_MIN_STACK`.
1154    ///
1155    /// Unlike the normal `RUST_MIN_STACK` semantics, this can affect main thread
1156    /// stack size, because we actually spawn our own main2 thread to work around
1157    /// the fact that Windows' real main thread is only 1MB. That thread has size
1158    /// `max(UV_STACK_SIZE, 1MB)`.
1159    #[attr_added_in("0.0.5")]
1160    pub const UV_STACK_SIZE: &'static str = "UV_STACK_SIZE";
1161
1162    /// Use to set the stack size used by uv.
1163    ///
1164    /// The value is in bytes, and if both `UV_STACK_SIZE` are `RUST_MIN_STACK` unset, uv uses a 4MB
1165    /// (4194304) stack. `UV_STACK_SIZE` takes precedence over `RUST_MIN_STACK`.
1166    ///
1167    /// Prefer setting `UV_STACK_SIZE`, since `RUST_MIN_STACK` also affects subprocesses, such as
1168    /// build backends that use Rust code.
1169    ///
1170    /// Unlike the normal `RUST_MIN_STACK` semantics, this can affect main thread
1171    /// stack size, because we actually spawn our own main2 thread to work around
1172    /// the fact that Windows' real main thread is only 1MB. That thread has size
1173    /// `max(RUST_MIN_STACK, 1MB)`.
1174    #[attr_added_in("0.5.19")]
1175    pub const RUST_MIN_STACK: &'static str = "RUST_MIN_STACK";
1176
1177    /// The directory containing the `Cargo.toml` manifest for a package.
1178    #[attr_hidden]
1179    #[attr_added_in("0.1.11")]
1180    pub const CARGO_MANIFEST_DIR: &'static str = "CARGO_MANIFEST_DIR";
1181
1182    /// Specifies the directory where Cargo stores build artifacts (target directory).
1183    #[attr_hidden]
1184    #[attr_added_in("0.0.5")]
1185    pub const CARGO_TARGET_DIR: &'static str = "CARGO_TARGET_DIR";
1186
1187    /// Set by cargo when compiling for Windows-like platforms.
1188    #[attr_hidden]
1189    #[attr_added_in("0.0.5")]
1190    pub const CARGO_CFG_WINDOWS: &'static str = "CARGO_CFG_WINDOWS";
1191
1192    /// Specifies the directory where Cargo stores intermediate build artifacts.
1193    #[attr_hidden]
1194    #[attr_added_in("0.8.25")]
1195    pub const OUT_DIR: &'static str = "OUT_DIR";
1196
1197    /// Used in tests for environment substitution testing in `requirements.in`.
1198    #[attr_hidden]
1199    #[attr_added_in("0.1.18")]
1200    pub const URL: &'static str = "URL";
1201
1202    /// Used in tests for environment substitution testing in `requirements.in`.
1203    #[attr_hidden]
1204    #[attr_added_in("0.1.18")]
1205    pub const FILE_PATH: &'static str = "FILE_PATH";
1206
1207    /// Used in tests for environment substitution testing in `requirements.in`.
1208    #[attr_hidden]
1209    #[attr_added_in("0.1.25")]
1210    pub const HATCH_PATH: &'static str = "HATCH_PATH";
1211
1212    /// Used in tests for environment substitution testing in `requirements.in`.
1213    #[attr_hidden]
1214    #[attr_added_in("0.1.25")]
1215    pub const BLACK_PATH: &'static str = "BLACK_PATH";
1216
1217    /// Used in testing Hatch's root.uri feature
1218    ///
1219    /// See: <https://hatch.pypa.io/dev/config/dependency/#local>.
1220    #[attr_hidden]
1221    #[attr_added_in("0.1.22")]
1222    pub const ROOT_PATH: &'static str = "ROOT_PATH";
1223
1224    /// Used in testing extra build dependencies.
1225    #[attr_hidden]
1226    #[attr_added_in("0.8.5")]
1227    pub const EXPECTED_ANYIO_VERSION: &'static str = "EXPECTED_ANYIO_VERSION";
1228
1229    /// Used to set test credentials for keyring tests.
1230    #[attr_hidden]
1231    #[attr_added_in("0.1.34")]
1232    pub const KEYRING_TEST_CREDENTIALS: &'static str = "KEYRING_TEST_CREDENTIALS";
1233
1234    /// Used to disable delay for HTTP retries in tests.
1235    #[attr_added_in("0.7.21")]
1236    pub const UV_TEST_NO_HTTP_RETRY_DELAY: &'static str = "UV_TEST_NO_HTTP_RETRY_DELAY";
1237
1238    /// Used for testing named indexes in tests.
1239    #[attr_hidden]
1240    #[attr_added_in("0.5.21")]
1241    pub const UV_INDEX_MY_INDEX_USERNAME: &'static str = "UV_INDEX_MY_INDEX_USERNAME";
1242
1243    /// Used for testing named indexes in tests.
1244    #[attr_hidden]
1245    #[attr_added_in("0.5.21")]
1246    pub const UV_INDEX_MY_INDEX_PASSWORD: &'static str = "UV_INDEX_MY_INDEX_PASSWORD";
1247
1248    /// Used to set the GitHub fast-path url for tests.
1249    #[attr_hidden]
1250    #[attr_added_in("0.7.15")]
1251    pub const UV_GITHUB_FAST_PATH_URL: &'static str = "UV_GITHUB_FAST_PATH_URL";
1252
1253    /// Hide progress messages with non-deterministic order in tests.
1254    #[attr_hidden]
1255    #[attr_added_in("0.5.29")]
1256    pub const UV_TEST_NO_CLI_PROGRESS: &'static str = "UV_TEST_NO_CLI_PROGRESS";
1257
1258    /// Used to mock the current timestamp for relative `--exclude-newer` times in tests.
1259    /// Should be set to an RFC 3339 timestamp (e.g., `2025-11-21T12:00:00Z`).
1260    #[attr_hidden]
1261    #[attr_added_in("0.9.8")]
1262    pub const UV_TEST_CURRENT_TIMESTAMP: &'static str = "UV_TEST_CURRENT_TIMESTAMP";
1263
1264    /// When set to a timestamp, applies an `exclude-newer` filter to the versions
1265    /// considered available from indexes.
1266    ///
1267    /// This is used for reproducible resolver error messages. When `exclude-newer`
1268    /// is used, we retain information about the available versions to improve error
1269    /// messages. In contrast, versions published after this cutoff are considered
1270    /// non-existent.
1271    ///
1272    /// Should be set to an RFC 3339 timestamp (e.g., `2024-03-25T00:00:00Z`).
1273    #[attr_hidden]
1274    #[attr_added_in("0.11.7")]
1275    pub const UV_TEST_AVAILABLE_VERSION_CUTOFF: &'static str = "UV_TEST_AVAILABLE_VERSION_CUTOFF";
1276
1277    /// `.env` files from which to load environment variables when executing `uv run` commands.
1278    #[attr_added_in("0.4.30")]
1279    pub const UV_ENV_FILE: &'static str = "UV_ENV_FILE";
1280
1281    /// Ignore `.env` files when executing `uv run` commands.
1282    #[attr_added_in("0.4.30")]
1283    pub const UV_NO_ENV_FILE: &'static str = "UV_NO_ENV_FILE";
1284
1285    /// The URL from which to download uv using the standalone installer and `self update` feature,
1286    /// in lieu of the default GitHub URL.
1287    ///
1288    /// This more-specific installer source takes precedence over
1289    /// [`UV_ASTRAL_MIRROR_URL`](Self::UV_ASTRAL_MIRROR_URL) for `uv self update`.
1290    #[attr_added_in("0.5.0")]
1291    pub const UV_INSTALLER_GITHUB_BASE_URL: &'static str = "UV_INSTALLER_GITHUB_BASE_URL";
1292
1293    /// The URL from which to download uv using the standalone installer and `self update` feature,
1294    /// in lieu of the default GitHub Enterprise URL.
1295    ///
1296    /// This more-specific installer source takes precedence over
1297    /// [`UV_ASTRAL_MIRROR_URL`](Self::UV_ASTRAL_MIRROR_URL) for `uv self update`.
1298    #[attr_added_in("0.5.0")]
1299    pub const UV_INSTALLER_GHE_BASE_URL: &'static str = "UV_INSTALLER_GHE_BASE_URL";
1300
1301    /// The directory in which to install uv using the standalone installer and `self update` feature.
1302    /// Defaults to `~/.local/bin`.
1303    #[attr_added_in("0.5.0")]
1304    pub const UV_INSTALL_DIR: &'static str = "UV_INSTALL_DIR";
1305
1306    /// Used ephemeral environments like CI to install uv to a specific path while preventing
1307    /// the installer from modifying shell profiles or environment variables.
1308    #[attr_added_in("0.5.0")]
1309    pub const UV_UNMANAGED_INSTALL: &'static str = "UV_UNMANAGED_INSTALL";
1310
1311    /// The URL from which to download uv using the standalone installer. By default, installs from
1312    /// uv's GitHub Releases. `INSTALLER_DOWNLOAD_URL` is also supported as an alias, for backwards
1313    /// compatibility.
1314    #[attr_added_in("0.8.4")]
1315    pub const UV_DOWNLOAD_URL: &'static str = "UV_DOWNLOAD_URL";
1316
1317    /// Avoid modifying the `PATH` environment variable when installing uv using the standalone
1318    /// installer and `self update` feature. `INSTALLER_NO_MODIFY_PATH` is also supported as an
1319    /// alias, for backwards compatibility.
1320    #[attr_added_in("0.8.4")]
1321    pub const UV_NO_MODIFY_PATH: &'static str = "UV_NO_MODIFY_PATH";
1322
1323    /// Skip writing `uv` installer metadata files (e.g., `INSTALLER`, `REQUESTED`, and `direct_url.json`) to site-packages `.dist-info` directories.
1324    #[attr_added_in("0.5.7")]
1325    pub const UV_NO_INSTALLER_METADATA: &'static str = "UV_NO_INSTALLER_METADATA";
1326
1327    /// Enables fetching files stored in Git LFS when installing a package from a Git repository.
1328    #[attr_added_in("0.5.19")]
1329    pub const UV_GIT_LFS: &'static str = "UV_GIT_LFS";
1330
1331    /// Number of times that `uv run` has been recursively invoked. Used to guard against infinite
1332    /// recursion, e.g., when `uv run`` is used in a script shebang.
1333    #[attr_hidden]
1334    #[attr_added_in("0.5.31")]
1335    pub const UV_RUN_RECURSION_DEPTH: &'static str = "UV_RUN_RECURSION_DEPTH";
1336
1337    /// Number of times that `uv run` will allow recursive invocations, before exiting with an
1338    /// error.
1339    #[attr_hidden]
1340    #[attr_added_in("0.5.31")]
1341    pub const UV_RUN_MAX_RECURSION_DEPTH: &'static str = "UV_RUN_MAX_RECURSION_DEPTH";
1342
1343    /// Overrides terminal width used for wrapping. This variable is not read by uv directly.
1344    ///
1345    /// This is a quasi-standard variable, described, e.g., in `ncurses(3x)`.
1346    #[attr_added_in("0.6.2")]
1347    pub const COLUMNS: &'static str = "COLUMNS";
1348
1349    /// The CUDA driver version to assume when inferring the PyTorch backend (e.g., `550.144.03`).
1350    #[attr_hidden]
1351    #[attr_added_in("0.6.9")]
1352    pub const UV_CUDA_DRIVER_VERSION: &'static str = "UV_CUDA_DRIVER_VERSION";
1353
1354    /// The AMD GPU architecture to assume when inferring the PyTorch backend (e.g., `gfx1100`).
1355    #[attr_hidden]
1356    #[attr_added_in("0.7.14")]
1357    pub const UV_AMD_GPU_ARCHITECTURE: &'static str = "UV_AMD_GPU_ARCHITECTURE";
1358
1359    /// Equivalent to the `--torch-backend` command-line argument (e.g., `cpu`, `cu126`, or `auto`).
1360    #[attr_added_in("0.6.9")]
1361    pub const UV_TORCH_BACKEND: &'static str = "UV_TORCH_BACKEND";
1362
1363    /// Equivalent to the `--project` command-line argument.
1364    #[attr_added_in("0.4.4")]
1365    pub const UV_PROJECT: &'static str = "UV_PROJECT";
1366
1367    /// Equivalent to the `--no-project` command-line argument.
1368    #[attr_added_in("0.11.8")]
1369    pub const UV_NO_PROJECT: &'static str = "UV_NO_PROJECT";
1370
1371    /// Equivalent to the `--directory` command-line argument. `UV_WORKING_DIRECTORY` (added in
1372    /// v0.9.1) is also supported for backwards compatibility.
1373    #[attr_added_in("0.9.14")]
1374    pub const UV_WORKING_DIR: &'static str = "UV_WORKING_DIR";
1375
1376    /// Equivalent to the `--directory` command-line argument.
1377    #[attr_hidden]
1378    #[attr_added_in("0.9.1")]
1379    pub const UV_WORKING_DIRECTORY: &'static str = "UV_WORKING_DIRECTORY";
1380
1381    /// Disable GitHub-specific requests that allow uv to skip `git fetch` in some circumstances.
1382    #[attr_added_in("0.7.13")]
1383    pub const UV_NO_GITHUB_FAST_PATH: &'static str = "UV_NO_GITHUB_FAST_PATH";
1384
1385    /// Authentication token for Hugging Face requests. When set, uv will use this token
1386    /// when making requests to `https://huggingface.co/` and any subdomains.
1387    #[attr_added_in("0.8.1")]
1388    pub const HF_TOKEN: &'static str = "HF_TOKEN";
1389
1390    /// Disable Hugging Face authentication, even if `HF_TOKEN` is set.
1391    #[attr_added_in("0.8.1")]
1392    pub const UV_NO_HF_TOKEN: &'static str = "UV_NO_HF_TOKEN";
1393
1394    /// The URL to treat as an S3-compatible storage endpoint. Requests to this endpoint
1395    /// will be signed using AWS Signature Version 4 based on the `AWS_ACCESS_KEY_ID`,
1396    /// `AWS_SECRET_ACCESS_KEY`, `AWS_PROFILE`, and `AWS_CONFIG_FILE` environment variables.
1397    #[attr_added_in("0.8.21")]
1398    pub const UV_S3_ENDPOINT_URL: &'static str = "UV_S3_ENDPOINT_URL";
1399
1400    /// The URL to treat as a GCS-compatible storage endpoint. Requests to this endpoint
1401    /// will be signed using Google Cloud authentication based on the `GOOGLE_APPLICATION_CREDENTIALS`
1402    /// environment variable or Application Default Credentials.
1403    #[attr_added_in("0.9.26")]
1404    pub const UV_GCS_ENDPOINT_URL: &'static str = "UV_GCS_ENDPOINT_URL";
1405
1406    /// The URL to treat as an Azure Blob Storage endpoint. Requests to this endpoint will be signed
1407    /// using Azure credentials from the default credential chain, including Azure CLI credentials
1408    /// and workload identity.
1409    #[attr_added_in("0.11.14")]
1410    pub const UV_AZURE_ENDPOINT_URL: &'static str = "UV_AZURE_ENDPOINT_URL";
1411
1412    /// The URL of the pyx Simple API server.
1413    #[attr_added_in("0.8.15")]
1414    pub const PYX_API_URL: &'static str = "PYX_API_URL";
1415
1416    /// The domain of the pyx CDN.
1417    #[attr_added_in("0.8.15")]
1418    pub const PYX_CDN_DOMAIN: &'static str = "PYX_CDN_DOMAIN";
1419
1420    /// The pyx API key (e.g., `sk-pyx-...`).
1421    #[attr_added_in("0.8.15")]
1422    pub const PYX_API_KEY: &'static str = "PYX_API_KEY";
1423
1424    /// The pyx API key, for backwards compatibility.
1425    #[attr_hidden]
1426    #[attr_added_in("0.8.15")]
1427    pub const UV_API_KEY: &'static str = "UV_API_KEY";
1428
1429    /// The pyx authentication token (e.g., `eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...`), as output by `uv auth token`.
1430    #[attr_added_in("0.8.15")]
1431    pub const PYX_AUTH_TOKEN: &'static str = "PYX_AUTH_TOKEN";
1432
1433    /// The pyx authentication token, for backwards compatibility.
1434    #[attr_hidden]
1435    #[attr_added_in("0.8.15")]
1436    pub const UV_AUTH_TOKEN: &'static str = "UV_AUTH_TOKEN";
1437
1438    /// Specifies the directory where uv stores pyx credentials.
1439    #[attr_added_in("0.8.15")]
1440    pub const PYX_CREDENTIALS_DIR: &'static str = "PYX_CREDENTIALS_DIR";
1441
1442    /// The AWS region to use when signing S3 requests.
1443    #[attr_added_in("0.8.21")]
1444    pub const AWS_REGION: &'static str = "AWS_REGION";
1445
1446    /// The default AWS region to use when signing S3 requests, if `AWS_REGION` is not set.
1447    #[attr_added_in("0.8.21")]
1448    pub const AWS_DEFAULT_REGION: &'static str = "AWS_DEFAULT_REGION";
1449
1450    /// The AWS access key ID to use when signing S3 requests.
1451    #[attr_added_in("0.8.21")]
1452    pub const AWS_ACCESS_KEY_ID: &'static str = "AWS_ACCESS_KEY_ID";
1453
1454    /// The AWS secret access key to use when signing S3 requests.
1455    #[attr_added_in("0.8.21")]
1456    pub const AWS_SECRET_ACCESS_KEY: &'static str = "AWS_SECRET_ACCESS_KEY";
1457
1458    /// The AWS session token to use when signing S3 requests.
1459    #[attr_added_in("0.8.21")]
1460    pub const AWS_SESSION_TOKEN: &'static str = "AWS_SESSION_TOKEN";
1461
1462    /// The AWS profile to use when signing S3 requests.
1463    #[attr_added_in("0.8.21")]
1464    pub const AWS_PROFILE: &'static str = "AWS_PROFILE";
1465
1466    /// The AWS config file to use when signing S3 requests.
1467    #[attr_added_in("0.8.21")]
1468    pub const AWS_CONFIG_FILE: &'static str = "AWS_CONFIG_FILE";
1469
1470    /// The AWS shared credentials file to use when signing S3 requests.
1471    #[attr_added_in("0.8.21")]
1472    pub const AWS_SHARED_CREDENTIALS_FILE: &'static str = "AWS_SHARED_CREDENTIALS_FILE";
1473
1474    /// Avoid verifying that wheel filenames match their contents when installing wheels. This
1475    /// is not recommended, as wheels with inconsistent filenames should be considered invalid and
1476    /// corrected by the relevant package maintainers; however, this option can be used to work
1477    /// around invalid artifacts in rare cases.
1478    #[attr_added_in("0.8.23")]
1479    pub const UV_SKIP_WHEEL_FILENAME_CHECK: &'static str = "UV_SKIP_WHEEL_FILENAME_CHECK";
1480
1481    /// Suppress output from the build backend when building source distributions, even in the event
1482    /// of build failures.
1483    #[attr_added_in("0.9.15")]
1484    pub const UV_HIDE_BUILD_OUTPUT: &'static str = "UV_HIDE_BUILD_OUTPUT";
1485
1486    /// The time in seconds uv waits for a file lock to become available.
1487    ///
1488    /// Defaults to 300s (5 min).
1489    #[attr_added_in("0.9.4")]
1490    pub const UV_LOCK_TIMEOUT: &'static str = "UV_LOCK_TIMEOUT";
1491}