projen 0.98.22 → 0.98.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/.jsii +6552 -893
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +5 -5
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +2 -2
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +4 -4
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-docgen.js +1 -1
  22. package/lib/cdk/jsii-project.js +1 -1
  23. package/lib/cdk8s/auto-discover.js +2 -2
  24. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  25. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  26. package/lib/cdk8s/cdk8s-construct.js +1 -1
  27. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  28. package/lib/cdk8s/cdk8s-deps.js +1 -1
  29. package/lib/cdk8s/integration-test.js +1 -1
  30. package/lib/cdktf/cdktf-construct.js +1 -1
  31. package/lib/circleci/circleci.js +1 -1
  32. package/lib/component.js +1 -1
  33. package/lib/dependencies.js +1 -1
  34. package/lib/dev-env.js +1 -1
  35. package/lib/docker-compose/docker-compose-service.js +1 -1
  36. package/lib/docker-compose/docker-compose.js +1 -1
  37. package/lib/file.js +1 -1
  38. package/lib/gitattributes.js +1 -1
  39. package/lib/github/actions-provider.js +1 -1
  40. package/lib/github/auto-approve.js +1 -1
  41. package/lib/github/auto-merge.js +1 -1
  42. package/lib/github/auto-queue.js +1 -1
  43. package/lib/github/dependabot.js +1 -1
  44. package/lib/github/github-credentials.js +1 -1
  45. package/lib/github/github-project.js +1 -1
  46. package/lib/github/github.js +1 -1
  47. package/lib/github/merge-queue.js +1 -1
  48. package/lib/github/mergify.js +1 -1
  49. package/lib/github/pr-template.js +1 -1
  50. package/lib/github/pull-request-backport.js +1 -1
  51. package/lib/github/pull-request-lint.js +1 -1
  52. package/lib/github/stale.js +1 -1
  53. package/lib/github/task-workflow-job.js +1 -1
  54. package/lib/github/task-workflow.js +1 -1
  55. package/lib/github/workflow-actions.js +1 -1
  56. package/lib/github/workflow-jobs.js +1 -1
  57. package/lib/github/workflow-steps.js +1 -1
  58. package/lib/github/workflows.js +1 -1
  59. package/lib/gitlab/configuration.js +1 -1
  60. package/lib/gitlab/gitlab-configuration.js +1 -1
  61. package/lib/gitlab/nested-configuration.js +1 -1
  62. package/lib/gitpod.js +1 -1
  63. package/lib/ignore-file.js +1 -1
  64. package/lib/ini.js +1 -1
  65. package/lib/java/java-project.js +1 -1
  66. package/lib/java/junit.js +1 -1
  67. package/lib/java/maven-compile.js +1 -1
  68. package/lib/java/maven-packaging.js +1 -1
  69. package/lib/java/maven-sample.js +1 -1
  70. package/lib/java/pom.js +2 -2
  71. package/lib/java/projenrc.js +1 -1
  72. package/lib/javascript/biome/biome.js +1 -1
  73. package/lib/javascript/bundler.js +1 -1
  74. package/lib/javascript/eslint.js +1 -1
  75. package/lib/javascript/jest.js +4 -4
  76. package/lib/javascript/license-checker.js +1 -1
  77. package/lib/javascript/node-package.js +1 -1
  78. package/lib/javascript/node-project.js +1 -1
  79. package/lib/javascript/npm-config.js +1 -1
  80. package/lib/javascript/prettier.js +1 -1
  81. package/lib/javascript/projenrc.js +1 -1
  82. package/lib/javascript/typescript-config.js +2 -2
  83. package/lib/javascript/upgrade-dependencies.js +2 -2
  84. package/lib/javascript/yarnrc.js +1 -1
  85. package/lib/json-patch.js +1 -1
  86. package/lib/json.js +1 -1
  87. package/lib/license.js +1 -1
  88. package/lib/logger.js +1 -1
  89. package/lib/makefile.js +1 -1
  90. package/lib/object-file.js +1 -1
  91. package/lib/project-build.js +1 -1
  92. package/lib/project-tree.js +1 -1
  93. package/lib/project.js +1 -1
  94. package/lib/projects.js +1 -1
  95. package/lib/projenrc-json.js +2 -2
  96. package/lib/projenrc.js +1 -1
  97. package/lib/python/index.d.ts +4 -0
  98. package/lib/python/index.js +6 -1
  99. package/lib/python/pip.js +1 -1
  100. package/lib/python/poetry.d.ts +4 -3
  101. package/lib/python/poetry.js +11 -18
  102. package/lib/python/projenrc.js +1 -1
  103. package/lib/python/pyproject-toml-file.d.ts +13 -0
  104. package/lib/python/pyproject-toml-file.js +29 -0
  105. package/lib/python/pyproject-toml.d.ts +418 -0
  106. package/lib/python/pyproject-toml.js +187 -0
  107. package/lib/python/pytest-sample.js +1 -1
  108. package/lib/python/pytest.js +1 -1
  109. package/lib/python/python-packaging.d.ts +5 -0
  110. package/lib/python/python-packaging.js +1 -1
  111. package/lib/python/python-project.d.ts +10 -1
  112. package/lib/python/python-project.js +62 -8
  113. package/lib/python/python-sample.js +1 -1
  114. package/lib/python/requirements-file.js +1 -1
  115. package/lib/python/setuppy.js +1 -1
  116. package/lib/python/setuptools.js +1 -1
  117. package/lib/python/uv-config.d.ts +1804 -0
  118. package/lib/python/uv-config.js +344 -0
  119. package/lib/python/uv.d.ts +53 -0
  120. package/lib/python/uv.js +138 -0
  121. package/lib/python/venv.js +1 -1
  122. package/lib/readme.js +1 -1
  123. package/lib/release/publisher.js +1 -1
  124. package/lib/release/release-trigger.js +1 -1
  125. package/lib/release/release.js +1 -1
  126. package/lib/renovatebot.js +1 -1
  127. package/lib/sample-file.js +2 -2
  128. package/lib/semver.js +1 -1
  129. package/lib/source-code.js +1 -1
  130. package/lib/task-runtime.js +1 -1
  131. package/lib/task.js +1 -1
  132. package/lib/tasks.js +1 -1
  133. package/lib/testing.js +1 -1
  134. package/lib/textfile.js +1 -1
  135. package/lib/toml.d.ts +2 -2
  136. package/lib/toml.js +4 -4
  137. package/lib/typescript/projenrc-ts.js +1 -1
  138. package/lib/typescript/projenrc.js +1 -1
  139. package/lib/typescript/typescript-typedoc.js +1 -1
  140. package/lib/typescript/typescript.js +6 -6
  141. package/lib/version.js +2 -2
  142. package/lib/vscode/devcontainer.js +1 -1
  143. package/lib/vscode/extensions.js +1 -1
  144. package/lib/vscode/launch-config.js +1 -1
  145. package/lib/vscode/settings.js +1 -1
  146. package/lib/vscode/vscode.js +1 -1
  147. package/lib/web/next.js +3 -3
  148. package/lib/web/postcss.js +1 -1
  149. package/lib/web/react.js +4 -4
  150. package/lib/web/tailwind.js +1 -1
  151. package/lib/xmlfile.js +1 -1
  152. package/lib/yaml.js +1 -1
  153. package/package.json +5 -1
@@ -0,0 +1,1804 @@
1
+ /**
2
+ * Metadata and configuration for uv.
3
+ *
4
+ * @schema UvConfiguration
5
+ */
6
+ export interface UvConfiguration {
7
+ /**
8
+ * The default version specifier when adding a dependency.
9
+ *
10
+ * When adding a dependency to the project, if no constraint or URL is provided, a constraint
11
+ * is added based on the latest compatible version of the package. By default, a lower bound
12
+ * constraint is used, e.g., `>=1.2.3`.
13
+ *
14
+ * When `--frozen` is provided, no resolution is performed, and dependencies are always added
15
+ * without constraints.
16
+ *
17
+ * This option is in preview and may change in any future release.
18
+ *
19
+ * @schema UvConfiguration#add-bounds
20
+ */
21
+ readonly addBounds?: string;
22
+ /**
23
+ * Allow insecure connections to host.
24
+ *
25
+ * Expects to receive either a hostname (e.g., `localhost`), a host-port pair (e.g.,
26
+ * `localhost:8080`), or a URL (e.g., `https://localhost`).
27
+ *
28
+ * WARNING: Hosts included in this list will not be verified against the system's certificate
29
+ * store. Only use `--allow-insecure-host` in a secure network with verified sources, as it
30
+ * bypasses SSL verification and could expose you to MITM attacks.
31
+ *
32
+ * @schema UvConfiguration#allow-insecure-host
33
+ */
34
+ readonly allowInsecureHost?: string[];
35
+ /**
36
+ * Configuration for the uv build backend.
37
+ *
38
+ * Note that those settings only apply when using the `uv_build` backend, other build backends
39
+ * (such as hatchling) have their own configuration.
40
+ *
41
+ * @schema UvConfiguration#build-backend
42
+ */
43
+ readonly buildBackend?: BuildBackendSettings;
44
+ /**
45
+ * PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.
46
+ *
47
+ * @schema UvConfiguration#build-constraint-dependencies
48
+ */
49
+ readonly buildConstraintDependencies?: string[];
50
+ /**
51
+ * Path to the cache directory.
52
+ *
53
+ * @schema UvConfiguration#cache-dir
54
+ */
55
+ readonly cacheDir?: string;
56
+ /**
57
+ * The keys to consider when caching builds for the project.
58
+ *
59
+ * Cache keys enable you to specify the files or directories that should trigger a rebuild when
60
+ * modified. By default, uv will rebuild a project whenever the `pyproject.toml`, `setup.py`,
61
+ * or `setup.cfg` files in the project directory are modified, or if a `src` directory is
62
+ * added or removed, i.e.:
63
+ *
64
+ * ```toml
65
+ * cache-keys = [{ file = "pyproject.toml" }, { file = "setup.py" }, { file = "setup.cfg" }, { dir = "src" }]
66
+ * ```
67
+ *
68
+ * As an example: if a project uses dynamic metadata to read its dependencies from a
69
+ * `requirements.txt` file, you can specify `cache-keys = [{ file = "requirements.txt" }, { file = "pyproject.toml" }]`
70
+ * to ensure that the project is rebuilt whenever the `requirements.txt` file is modified (in
71
+ * addition to watching the `pyproject.toml`).
72
+ *
73
+ * Globs are supported, following the syntax of the [`glob`](https://docs.rs/glob/0.3.1/glob/struct.Pattern.html)
74
+ * crate. For example, to invalidate the cache whenever a `.toml` file in the project directory
75
+ * or any of its subdirectories is modified, you can specify `cache-keys = [{ file = "*_/*.toml" }]`.
76
+ * Note that the use of globs can be expensive, as uv may need to walk the filesystem to
77
+ * determine whether any files have changed.
78
+ *
79
+ * Cache keys can also include version control information. For example, if a project uses
80
+ * `setuptools_scm` to read its version from a Git commit, you can specify `cache-keys = [{ git = { commit = true }, { file = "pyproject.toml" }]`
81
+ * to include the current Git commit hash in the cache key (in addition to the
82
+ * `pyproject.toml`). Git tags are also supported via `cache-keys = [{ git = { commit = true, tags = true } }]`.
83
+ *
84
+ * Cache keys can also include environment variables. For example, if a project relies on
85
+ * `MACOSX_DEPLOYMENT_TARGET` or other environment variables to determine its behavior, you can
86
+ * specify `cache-keys = [{ env = "MACOSX_DEPLOYMENT_TARGET" }]` to invalidate the cache
87
+ * whenever the environment variable changes.
88
+ *
89
+ * Cache keys only affect the project defined by the `pyproject.toml` in which they're
90
+ * specified (as opposed to, e.g., affecting all members in a workspace), and all paths and
91
+ * globs are interpreted as relative to the project directory.
92
+ *
93
+ * @schema UvConfiguration#cache-keys
94
+ */
95
+ readonly cacheKeys?: any[];
96
+ /**
97
+ * Check an index URL for existing files to skip duplicate uploads.
98
+ *
99
+ * This option allows retrying publishing that failed after only some, but not all files have
100
+ * been uploaded, and handles error due to parallel uploads of the same file.
101
+ *
102
+ * Before uploading, the index is checked. If the exact same file already exists in the index,
103
+ * the file will not be uploaded. If an error occurred during the upload, the index is checked
104
+ * again, to handle cases where the identical file was uploaded twice in parallel.
105
+ *
106
+ * The exact behavior will vary based on the index. When uploading to PyPI, uploading the same
107
+ * file succeeds even without `--check-url`, while most other indexes error.
108
+ *
109
+ * The index must provide one of the supported hashes (SHA-256, SHA-384, or SHA-512).
110
+ *
111
+ * @schema UvConfiguration#check-url
112
+ */
113
+ readonly checkUrl?: string;
114
+ /**
115
+ * Compile Python files to bytecode after installation.
116
+ *
117
+ * By default, uv does not compile Python (`.py`) files to bytecode (`__pycache__/*.pyc`);
118
+ * instead, compilation is performed lazily the first time a module is imported. For use-cases
119
+ * in which start time is critical, such as CLI applications and Docker containers, this option
120
+ * can be enabled to trade longer installation times for faster start times.
121
+ *
122
+ * When enabled, uv will process the entire site-packages directory (including packages that
123
+ * are not being modified by the current operation) for consistency. Like pip, it will also
124
+ * ignore errors.
125
+ *
126
+ * @schema UvConfiguration#compile-bytecode
127
+ */
128
+ readonly compileBytecode?: boolean;
129
+ /**
130
+ * The maximum number of source distributions that uv will build concurrently at any given
131
+ * time.
132
+ *
133
+ * Defaults to the number of available CPU cores.
134
+ *
135
+ * @default the number of available CPU cores.
136
+ * @schema UvConfiguration#concurrent-builds
137
+ */
138
+ readonly concurrentBuilds?: number;
139
+ /**
140
+ * The maximum number of in-flight concurrent downloads that uv will perform at any given
141
+ * time.
142
+ *
143
+ * @schema UvConfiguration#concurrent-downloads
144
+ */
145
+ readonly concurrentDownloads?: number;
146
+ /**
147
+ * The number of threads used when installing and unzipping packages.
148
+ *
149
+ * Defaults to the number of available CPU cores.
150
+ *
151
+ * @default the number of available CPU cores.
152
+ * @schema UvConfiguration#concurrent-installs
153
+ */
154
+ readonly concurrentInstalls?: number;
155
+ /**
156
+ * Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend,
157
+ * specified as `KEY=VALUE` pairs.
158
+ *
159
+ * @schema UvConfiguration#config-settings
160
+ */
161
+ readonly configSettings?: {
162
+ [key: string]: any;
163
+ };
164
+ /**
165
+ * Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend for specific packages,
166
+ * specified as `KEY=VALUE` pairs.
167
+ *
168
+ * Accepts a map from package names to string key-value pairs.
169
+ *
170
+ * @schema UvConfiguration#config-settings-package
171
+ */
172
+ readonly configSettingsPackage?: {
173
+ [key: string]: {
174
+ [key: string]: any;
175
+ };
176
+ };
177
+ /**
178
+ * A list of sets of conflicting groups or extras.
179
+ *
180
+ * @schema UvConfiguration#conflicts
181
+ */
182
+ readonly conflicts?: SchemaConflictItem[][];
183
+ /**
184
+ * PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.
185
+ *
186
+ * @schema UvConfiguration#constraint-dependencies
187
+ */
188
+ readonly constraintDependencies?: string[];
189
+ /**
190
+ * The list of `dependency-groups` to install by default.
191
+ *
192
+ * Can also be the literal `"all"` to default enable all groups.
193
+ *
194
+ * @schema UvConfiguration#default-groups
195
+ */
196
+ readonly defaultGroups?: any;
197
+ /**
198
+ * Additional settings for `dependency-groups`.
199
+ *
200
+ * Currently this can only be used to add `requires-python` constraints
201
+ * to dependency groups (typically to inform uv that your dev tooling
202
+ * has a higher python requirement than your actual project).
203
+ *
204
+ * This cannot be used to define dependency groups, use the top-level
205
+ * `[dependency-groups]` table for that.
206
+ *
207
+ * @schema UvConfiguration#dependency-groups
208
+ */
209
+ readonly dependencyGroups?: {
210
+ [key: string]: DependencyGroupSettings;
211
+ };
212
+ /**
213
+ * Pre-defined static metadata for dependencies of the project (direct or transitive). When
214
+ * provided, enables the resolver to use the specified metadata instead of querying the
215
+ * registry or building the relevant package from source.
216
+ *
217
+ * Metadata should be provided in adherence with the [Metadata 2.3](https://packaging.python.org/en/latest/specifications/core-metadata/)
218
+ * standard, though only the following fields are respected:
219
+ *
220
+ * - `name`: The name of the package.
221
+ * - (Optional) `version`: The version of the package. If omitted, the metadata will be applied
222
+ * to all versions of the package.
223
+ * - (Optional) `requires-dist`: The dependencies of the package (e.g., `werkzeug>=0.14`).
224
+ * - (Optional) `requires-python`: The Python version required by the package (e.g., `>=3.10`).
225
+ * - (Optional) `provides-extra`: The extras provided by the package.
226
+ *
227
+ * @schema UvConfiguration#dependency-metadata
228
+ */
229
+ readonly dependencyMetadata?: StaticMetadata[];
230
+ /**
231
+ * PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.
232
+ *
233
+ * @schema UvConfiguration#dev-dependencies
234
+ */
235
+ readonly devDependencies?: string[];
236
+ /**
237
+ * A list of environment markers, e.g., `python_version >= '3.6'`.
238
+ *
239
+ * @schema UvConfiguration#environments
240
+ */
241
+ readonly environments?: string[];
242
+ /**
243
+ * Package names to exclude, e.g., `werkzeug`, `numpy`.
244
+ *
245
+ * @schema UvConfiguration#exclude-dependencies
246
+ */
247
+ readonly excludeDependencies?: string[];
248
+ /**
249
+ * Limit candidate packages to those that were uploaded prior to a given point in time.
250
+ *
251
+ * Accepts a superset of [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339.html) (e.g.,
252
+ * `2006-12-02T02:07:43Z`). A full timestamp is required to ensure that the resolver will
253
+ * behave consistently across timezones.
254
+ *
255
+ * @schema UvConfiguration#exclude-newer
256
+ */
257
+ readonly excludeNewer?: string;
258
+ /**
259
+ * Limit candidate packages for specific packages to those that were uploaded prior to the given date.
260
+ *
261
+ * Accepts package-date pairs in a dictionary format.
262
+ *
263
+ * @schema UvConfiguration#exclude-newer-package
264
+ */
265
+ readonly excludeNewerPackage?: {
266
+ [key: string]: string;
267
+ };
268
+ /**
269
+ * Additional build dependencies for packages.
270
+ *
271
+ * This allows extending the PEP 517 build environment for the project's dependencies with
272
+ * additional packages. This is useful for packages that assume the presence of packages like
273
+ * `pip`, and do not declare them as build dependencies.
274
+ *
275
+ * @schema UvConfiguration#extra-build-dependencies
276
+ */
277
+ readonly extraBuildDependencies?: {
278
+ [key: string]: any[];
279
+ };
280
+ /**
281
+ * Extra environment variables to set when building certain packages.
282
+ *
283
+ * Environment variables will be added to the environment when building the
284
+ * specified packages.
285
+ *
286
+ * @schema UvConfiguration#extra-build-variables
287
+ */
288
+ readonly extraBuildVariables?: {
289
+ [key: string]: {
290
+ [key: string]: string;
291
+ };
292
+ };
293
+ /**
294
+ * Extra URLs of package indexes to use, in addition to `--index-url`.
295
+ *
296
+ * Accepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)
297
+ * (the simple repository API), or a local directory laid out in the same format.
298
+ *
299
+ * All indexes provided via this flag take priority over the index specified by
300
+ * [`index_url`](#index-url) or [`index`](#index) with `default = true`. When multiple indexes
301
+ * are provided, earlier values take priority.
302
+ *
303
+ * To control uv's resolution strategy when multiple indexes are present, see
304
+ * [`index_strategy`](#index-strategy).
305
+ *
306
+ * (Deprecated: use `index` instead.)
307
+ *
308
+ * @schema UvConfiguration#extra-index-url
309
+ */
310
+ readonly extraIndexUrl?: string[];
311
+ /**
312
+ * Locations to search for candidate distributions, in addition to those found in the registry
313
+ * indexes.
314
+ *
315
+ * If a path, the target must be a directory that contains packages as wheel files (`.whl`) or
316
+ * source distributions (e.g., `.tar.gz` or `.zip`) at the top level.
317
+ *
318
+ * If a URL, the page must contain a flat list of links to package files adhering to the
319
+ * formats described above.
320
+ *
321
+ * @schema UvConfiguration#find-links
322
+ */
323
+ readonly findLinks?: string[];
324
+ /**
325
+ * The strategy to use when selecting multiple versions of a given package across Python
326
+ * versions and platforms.
327
+ *
328
+ * By default, uv will optimize for selecting the latest version of each package for each
329
+ * supported Python version (`requires-python`), while minimizing the number of selected
330
+ * versions across platforms.
331
+ *
332
+ * Under `fewest`, uv will minimize the number of selected versions for each package,
333
+ * preferring older versions that are compatible with a wider range of supported Python
334
+ * versions or platforms.
335
+ *
336
+ * @schema UvConfiguration#fork-strategy
337
+ */
338
+ readonly forkStrategy?: string;
339
+ /**
340
+ * The indexes to use when resolving dependencies.
341
+ *
342
+ * Accepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)
343
+ * (the simple repository API), or a local directory laid out in the same format.
344
+ *
345
+ * Indexes are considered in the order in which they're defined, such that the first-defined
346
+ * index has the highest priority. Further, the indexes provided by this setting are given
347
+ * higher priority than any indexes specified via [`index_url`](#index-url) or
348
+ * [`extra_index_url`](#extra-index-url). uv will only consider the first index that contains
349
+ * a given package, unless an alternative [index strategy](#index-strategy) is specified.
350
+ *
351
+ * If an index is marked as `explicit = true`, it will be used exclusively for the
352
+ * dependencies that select it explicitly via `[tool.uv.sources]`, as in:
353
+ *
354
+ * ```toml
355
+ * [[tool.uv.index]]
356
+ * name = "pytorch"
357
+ * url = "https://download.pytorch.org/whl/cu121"
358
+ * explicit = true
359
+ *
360
+ * [tool.uv.sources]
361
+ * torch = { index = "pytorch" }
362
+ * ```
363
+ *
364
+ * If an index is marked as `default = true`, it will be moved to the end of the prioritized list, such that it is
365
+ * given the lowest priority when resolving packages. Additionally, marking an index as default will disable the
366
+ * PyPI default index.
367
+ *
368
+ * @schema UvConfiguration#index
369
+ */
370
+ readonly index?: Index[];
371
+ /**
372
+ * The strategy to use when resolving against multiple index URLs.
373
+ *
374
+ * By default, uv will stop at the first index on which a given package is available, and
375
+ * limit resolutions to those present on that first index (`first-index`). This prevents
376
+ * "dependency confusion" attacks, whereby an attacker can upload a malicious package under the
377
+ * same name to an alternate index.
378
+ *
379
+ * @schema UvConfiguration#index-strategy
380
+ */
381
+ readonly indexStrategy?: string;
382
+ /**
383
+ * The URL of the Python package index (by default: <https://pypi.org/simple>).
384
+ *
385
+ * Accepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)
386
+ * (the simple repository API), or a local directory laid out in the same format.
387
+ *
388
+ * The index provided by this setting is given lower priority than any indexes specified via
389
+ * [`extra_index_url`](#extra-index-url) or [`index`](#index).
390
+ *
391
+ * (Deprecated: use `index` instead.)
392
+ *
393
+ * @schema UvConfiguration#index-url
394
+ */
395
+ readonly indexUrl?: string;
396
+ /**
397
+ * Attempt to use `keyring` for authentication for index URLs.
398
+ *
399
+ * At present, only `--keyring-provider subprocess` is supported, which configures uv to
400
+ * use the `keyring` CLI to handle authentication.
401
+ *
402
+ * @schema UvConfiguration#keyring-provider
403
+ */
404
+ readonly keyringProvider?: string;
405
+ /**
406
+ * The method to use when installing packages from the global cache.
407
+ *
408
+ * Defaults to `clone` (also known as Copy-on-Write) on macOS, and `hardlink` on Linux and
409
+ * Windows.
410
+ *
411
+ * WARNING: The use of symlink link mode is discouraged, as they create tight coupling between
412
+ * the cache and the target environment. For example, clearing the cache (`uv cache clean`)
413
+ * will break all installed packages by way of removing the underlying source files. Use
414
+ * symlinks with caution.
415
+ *
416
+ * @default clone` (also known as Copy-on-Write) on macOS, and `hardlink` on Linux and
417
+ * @schema UvConfiguration#link-mode
418
+ */
419
+ readonly linkMode?: string;
420
+ /**
421
+ * Whether the project is managed by uv. If `false`, uv will ignore the project when
422
+ * `uv run` is invoked.
423
+ *
424
+ * @schema UvConfiguration#managed
425
+ */
426
+ readonly managed?: boolean;
427
+ /**
428
+ * Whether to load TLS certificates from the platform's native certificate store.
429
+ *
430
+ * By default, uv loads certificates from the bundled `webpki-roots` crate. The
431
+ * `webpki-roots` are a reliable set of trust roots from Mozilla, and including them in uv
432
+ * improves portability and performance (especially on macOS).
433
+ *
434
+ * However, in some cases, you may want to use the platform's native certificate store,
435
+ * especially if you're relying on a corporate trust root (e.g., for a mandatory proxy) that's
436
+ * included in your system's certificate store.
437
+ *
438
+ * @schema UvConfiguration#native-tls
439
+ */
440
+ readonly nativeTls?: boolean;
441
+ /**
442
+ * Don't install pre-built wheels.
443
+ *
444
+ * The given packages will be built and installed from source. The resolver will still use
445
+ * pre-built wheels to extract package metadata, if available.
446
+ *
447
+ * @schema UvConfiguration#no-binary
448
+ */
449
+ readonly noBinary?: boolean;
450
+ /**
451
+ * Don't install pre-built wheels for a specific package.
452
+ *
453
+ * @schema UvConfiguration#no-binary-package
454
+ */
455
+ readonly noBinaryPackage?: string[];
456
+ /**
457
+ * Don't build source distributions.
458
+ *
459
+ * When enabled, resolving will not run arbitrary Python code. The cached wheels of
460
+ * already-built source distributions will be reused, but operations that require building
461
+ * distributions will exit with an error.
462
+ *
463
+ * @schema UvConfiguration#no-build
464
+ */
465
+ readonly noBuild?: boolean;
466
+ /**
467
+ * Disable isolation when building source distributions.
468
+ *
469
+ * Assumes that build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)
470
+ * are already installed.
471
+ *
472
+ * @schema UvConfiguration#no-build-isolation
473
+ */
474
+ readonly noBuildIsolation?: boolean;
475
+ /**
476
+ * Disable isolation when building source distributions for a specific package.
477
+ *
478
+ * Assumes that the packages' build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)
479
+ * are already installed.
480
+ *
481
+ * @schema UvConfiguration#no-build-isolation-package
482
+ */
483
+ readonly noBuildIsolationPackage?: string[];
484
+ /**
485
+ * Don't build source distributions for a specific package.
486
+ *
487
+ * @schema UvConfiguration#no-build-package
488
+ */
489
+ readonly noBuildPackage?: string[];
490
+ /**
491
+ * Avoid reading from or writing to the cache, instead using a temporary directory for the
492
+ * duration of the operation.
493
+ *
494
+ * @schema UvConfiguration#no-cache
495
+ */
496
+ readonly noCache?: boolean;
497
+ /**
498
+ * Ignore all registry indexes (e.g., PyPI), instead relying on direct URL dependencies and
499
+ * those provided via `--find-links`.
500
+ *
501
+ * @schema UvConfiguration#no-index
502
+ */
503
+ readonly noIndex?: boolean;
504
+ /**
505
+ * Ignore the `tool.uv.sources` table when resolving dependencies. Used to lock against the
506
+ * standards-compliant, publishable package metadata, as opposed to using any local or Git
507
+ * sources.
508
+ *
509
+ * @schema UvConfiguration#no-sources
510
+ */
511
+ readonly noSources?: boolean;
512
+ /**
513
+ * Disable network access, relying only on locally cached data and locally available files.
514
+ *
515
+ * @schema UvConfiguration#offline
516
+ */
517
+ readonly offline?: boolean;
518
+ /**
519
+ * PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.
520
+ *
521
+ * @schema UvConfiguration#override-dependencies
522
+ */
523
+ readonly overrideDependencies?: string[];
524
+ /**
525
+ * Whether the project should be considered a Python package, or a non-package ("virtual")
526
+ * project.
527
+ *
528
+ * Packages are built and installed into the virtual environment in editable mode and thus
529
+ * require a build backend, while virtual projects are _not_ built or installed; instead, only
530
+ * their dependencies are included in the virtual environment.
531
+ *
532
+ * Creating a package requires that a `build-system` is present in the `pyproject.toml`, and
533
+ * that the project adheres to a structure that adheres to the build backend's expectations
534
+ * (e.g., a `src` layout).
535
+ *
536
+ * @schema UvConfiguration#package
537
+ */
538
+ readonly package?: boolean;
539
+ /**
540
+ * @schema UvConfiguration#pip
541
+ */
542
+ readonly pip?: PipOptions;
543
+ /**
544
+ * The strategy to use when considering pre-release versions.
545
+ *
546
+ * By default, uv will accept pre-releases for packages that _only_ publish pre-releases,
547
+ * along with first-party requirements that contain an explicit pre-release marker in the
548
+ * declared specifiers (`if-necessary-or-explicit`).
549
+ *
550
+ * @schema UvConfiguration#prerelease
551
+ */
552
+ readonly prerelease?: string;
553
+ /**
554
+ * Whether to enable experimental, preview features.
555
+ *
556
+ * @schema UvConfiguration#preview
557
+ */
558
+ readonly preview?: boolean;
559
+ /**
560
+ * The URL for publishing packages to the Python package index (by default:
561
+ * <https://upload.pypi.org/legacy/>).
562
+ *
563
+ * @schema UvConfiguration#publish-url
564
+ */
565
+ readonly publishUrl?: string;
566
+ /**
567
+ * Mirror URL to use for downloading managed PyPy installations.
568
+ *
569
+ * By default, managed PyPy installations are downloaded from [downloads.python.org](https://downloads.python.org/).
570
+ * This variable can be set to a mirror URL to use a different source for PyPy installations.
571
+ * The provided URL will replace `https://downloads.python.org/pypy` in, e.g., `https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2`.
572
+ *
573
+ * Distributions can be read from a
574
+ * local directory by using the `file://` URL scheme.
575
+ *
576
+ * @schema UvConfiguration#pypy-install-mirror
577
+ */
578
+ readonly pypyInstallMirror?: string;
579
+ /**
580
+ * Whether to allow Python downloads.
581
+ *
582
+ * @schema UvConfiguration#python-downloads
583
+ */
584
+ readonly pythonDownloads?: string;
585
+ /**
586
+ * URL pointing to JSON of custom Python installations.
587
+ *
588
+ * Note that currently, only local paths are supported.
589
+ *
590
+ * @schema UvConfiguration#python-downloads-json-url
591
+ */
592
+ readonly pythonDownloadsJsonUrl?: string;
593
+ /**
594
+ * Mirror URL for downloading managed Python installations.
595
+ *
596
+ * By default, managed Python installations are downloaded from [`python-build-standalone`](https://github.com/astral-sh/python-build-standalone).
597
+ * This variable can be set to a mirror URL to use a different source for Python installations.
598
+ * The provided URL will replace `https://github.com/astral-sh/python-build-standalone/releases/download` in, e.g., `https://github.com/astral-sh/python-build-standalone/releases/download/20240713/cpython-3.12.4%2B20240713-aarch64-apple-darwin-install_only.tar.gz`.
599
+ *
600
+ * Distributions can be read from a local directory by using the `file://` URL scheme.
601
+ *
602
+ * @schema UvConfiguration#python-install-mirror
603
+ */
604
+ readonly pythonInstallMirror?: string;
605
+ /**
606
+ * Whether to prefer using Python installations that are already present on the system, or
607
+ * those that are downloaded and installed by uv.
608
+ *
609
+ * @schema UvConfiguration#python-preference
610
+ */
611
+ readonly pythonPreference?: string;
612
+ /**
613
+ * Reinstall all packages, regardless of whether they're already installed. Implies `refresh`.
614
+ *
615
+ * @schema UvConfiguration#reinstall
616
+ */
617
+ readonly reinstall?: boolean;
618
+ /**
619
+ * Reinstall a specific package, regardless of whether it's already installed. Implies
620
+ * `refresh-package`.
621
+ *
622
+ * @schema UvConfiguration#reinstall-package
623
+ */
624
+ readonly reinstallPackage?: string[];
625
+ /**
626
+ * A list of environment markers, e.g., `sys_platform == 'darwin'.
627
+ *
628
+ * @schema UvConfiguration#required-environments
629
+ */
630
+ readonly requiredEnvironments?: string[];
631
+ /**
632
+ * Enforce a requirement on the version of uv.
633
+ *
634
+ * If the version of uv does not meet the requirement at runtime, uv will exit
635
+ * with an error.
636
+ *
637
+ * Accepts a [PEP 440](https://peps.python.org/pep-0440/) specifier, like `==0.5.0` or `>=0.5.0`.
638
+ *
639
+ * @schema UvConfiguration#required-version
640
+ */
641
+ readonly requiredVersion?: string;
642
+ /**
643
+ * The strategy to use when selecting between the different compatible versions for a given
644
+ * package requirement.
645
+ *
646
+ * By default, uv will use the latest compatible version of each package (`highest`).
647
+ *
648
+ * @schema UvConfiguration#resolution
649
+ */
650
+ readonly resolution?: string;
651
+ /**
652
+ * The sources to use when resolving dependencies.
653
+ *
654
+ * `tool.uv.sources` enriches the dependency metadata with additional sources, incorporated
655
+ * during development. A dependency source can be a Git repository, a URL, a local path, or an
656
+ * alternative registry.
657
+ *
658
+ * See [Dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/) for more.
659
+ *
660
+ * @schema UvConfiguration#sources
661
+ */
662
+ readonly sources?: {
663
+ [key: string]: any[];
664
+ };
665
+ /**
666
+ * Configure trusted publishing.
667
+ *
668
+ * By default, uv checks for trusted publishing when running in a supported environment, but
669
+ * ignores it if it isn't configured.
670
+ *
671
+ * uv's supported environments for trusted publishing include GitHub Actions and GitLab CI/CD.
672
+ *
673
+ * @schema UvConfiguration#trusted-publishing
674
+ */
675
+ readonly trustedPublishing?: TrustedPublishing;
676
+ /**
677
+ * Allow package upgrades, ignoring pinned versions in any existing output file.
678
+ *
679
+ * @schema UvConfiguration#upgrade
680
+ */
681
+ readonly upgrade?: boolean;
682
+ /**
683
+ * Allow upgrades for a specific package, ignoring pinned versions in any existing output
684
+ * file.
685
+ *
686
+ * Accepts both standalone package names (`ruff`) and version specifiers (`ruff<0.5.0`).
687
+ *
688
+ * @schema UvConfiguration#upgrade-package
689
+ */
690
+ readonly upgradePackage?: string[];
691
+ /**
692
+ * The workspace definition for the project, if any.
693
+ *
694
+ * @schema UvConfiguration#workspace
695
+ */
696
+ readonly workspace?: ToolUvWorkspace;
697
+ }
698
+ /**
699
+ * Converts an object of type 'UvConfiguration' to JSON representation.
700
+ * @internal
701
+ */
702
+ export declare function toJson_UvConfiguration(obj: UvConfiguration | undefined): Record<string, any> | undefined;
703
+ /**
704
+ * Settings for the uv build backend (`uv_build`).
705
+ *
706
+ * Note that those settings only apply when using the `uv_build` backend, other build backends
707
+ * (such as hatchling) have their own configuration.
708
+ *
709
+ * All options that accept globs use the portable glob patterns from
710
+ * [PEP 639](https://packaging.python.org/en/latest/specifications/glob-patterns/).
711
+ *
712
+ * @schema BuildBackendSettings
713
+ */
714
+ export interface BuildBackendSettings {
715
+ /**
716
+ * Data includes for wheels.
717
+ *
718
+ * Each entry is a directory, whose contents are copied to the matching directory in the wheel
719
+ * in `<name>-<version>.data/(purelib|platlib|headers|scripts|data)`. Upon installation, this
720
+ * data is moved to its target location, as defined by
721
+ * <https://docs.python.org/3.12/library/sysconfig.html#installation-paths>. Usually, small
722
+ * data files are included by placing them in the Python module instead of using data includes.
723
+ *
724
+ * - `scripts`: Installed to the directory for executables, `<venv>/bin` on Unix or
725
+ * `<venv>\Scripts` on Windows. This directory is added to `PATH` when the virtual
726
+ * environment is activated or when using `uv run`, so this data type can be used to install
727
+ * additional binaries. Consider using `project.scripts` instead for Python entrypoints.
728
+ * - `data`: Installed over the virtualenv environment root.
729
+ *
730
+ * Warning: This may override existing files!
731
+ *
732
+ * - `headers`: Installed to the include directory. Compilers building Python packages
733
+ * with this package as build requirement use the include directory to find additional header
734
+ * files.
735
+ * - `purelib` and `platlib`: Installed to the `site-packages` directory. It is not recommended
736
+ * to use these two options.
737
+ *
738
+ * @schema BuildBackendSettings#data
739
+ */
740
+ readonly data?: WheelDataIncludes;
741
+ /**
742
+ * If set to `false`, the default excludes aren't applied.
743
+ *
744
+ * Default excludes: `__pycache__`, `*.pyc`, and `*.pyo`.
745
+ *
746
+ * @schema BuildBackendSettings#default-excludes
747
+ */
748
+ readonly defaultExcludes?: boolean;
749
+ /**
750
+ * The name of the module directory inside `module-root`.
751
+ *
752
+ * The default module name is the package name with dots and dashes replaced by underscores.
753
+ *
754
+ * Package names need to be valid Python identifiers, and the directory needs to contain a
755
+ * `__init__.py`. An exception are stubs packages, whose name ends with `-stubs`, with the stem
756
+ * being the module name, and which contain a `__init__.pyi` file.
757
+ *
758
+ * For namespace packages with a single module, the path can be dotted, e.g., `foo.bar` or
759
+ * `foo-stubs.bar`.
760
+ *
761
+ * For namespace packages with multiple modules, the path can be a list, e.g.,
762
+ * `["foo", "bar"]`. We recommend using a single module per package, splitting multiple
763
+ * packages into a workspace.
764
+ *
765
+ * Note that using this option runs the risk of creating two packages with different names but
766
+ * the same module names. Installing such packages together leads to unspecified behavior,
767
+ * often with corrupted files or directory trees.
768
+ *
769
+ * @schema BuildBackendSettings#module-name
770
+ */
771
+ readonly moduleName?: any;
772
+ /**
773
+ * The directory that contains the module directory.
774
+ *
775
+ * Common values are `src` (src layout, the default) or an empty path (flat layout).
776
+ *
777
+ * @schema BuildBackendSettings#module-root
778
+ */
779
+ readonly moduleRoot?: string;
780
+ /**
781
+ * Build a namespace package.
782
+ *
783
+ * Build a PEP 420 implicit namespace package, allowing more than one root `__init__.py`.
784
+ *
785
+ * Use this option when the namespace package contains multiple root `__init__.py`, for
786
+ * namespace packages with a single root `__init__.py` use a dotted `module-name` instead.
787
+ *
788
+ * To compare dotted `module-name` and `namespace = true`, the first example below can be
789
+ * expressed with `module-name = "cloud.database"`: There is one root `__init__.py` `database`.
790
+ * In the second example, we have three roots (`cloud.database`, `cloud.database_pro`,
791
+ * `billing.modules.database_pro`), so `namespace = true` is required.
792
+ *
793
+ * ```text
794
+ * src
795
+ * └── cloud
796
+ * └── database
797
+ * ├── __init__.py
798
+ * ├── query_builder
799
+ * │ └── __init__.py
800
+ * └── sql
801
+ * ├── parser.py
802
+ * └── __init__.py
803
+ * ```
804
+ *
805
+ * ```text
806
+ * src
807
+ * ├── cloud
808
+ * │ ├── database
809
+ * │ │ ├── __init__.py
810
+ * │ │ ├── query_builder
811
+ * │ │ │ └── __init__.py
812
+ * │ │ └── sql
813
+ * │ │ ├── __init__.py
814
+ * │ │ └── parser.py
815
+ * │ └── database_pro
816
+ * │ ├── __init__.py
817
+ * │ └── query_builder.py
818
+ * └── billing
819
+ * └── modules
820
+ * └── database_pro
821
+ * ├── __init__.py
822
+ * └── sql.py
823
+ * ```
824
+ *
825
+ * @schema BuildBackendSettings#namespace
826
+ */
827
+ readonly namespace?: boolean;
828
+ /**
829
+ * Glob expressions which files and directories to exclude from the source distribution.
830
+ *
831
+ * @schema BuildBackendSettings#source-exclude
832
+ */
833
+ readonly sourceExclude?: string[];
834
+ /**
835
+ * Glob expressions which files and directories to additionally include in the source
836
+ * distribution.
837
+ *
838
+ * `pyproject.toml` and the contents of the module directory are always included.
839
+ *
840
+ * @schema BuildBackendSettings#source-include
841
+ */
842
+ readonly sourceInclude?: string[];
843
+ /**
844
+ * Glob expressions which files and directories to exclude from the wheel.
845
+ *
846
+ * @schema BuildBackendSettings#wheel-exclude
847
+ */
848
+ readonly wheelExclude?: string[];
849
+ }
850
+ /**
851
+ * Converts an object of type 'BuildBackendSettings' to JSON representation.
852
+ * @internal
853
+ */
854
+ export declare function toJson_BuildBackendSettings(obj: BuildBackendSettings | undefined): Record<string, any> | undefined;
855
+ /**
856
+ * A single item in a conflicting set.
857
+ *
858
+ * Each item is a pair of an (optional) package and a corresponding extra or group name for that
859
+ * package.
860
+ *
861
+ * @schema SchemaConflictItem
862
+ */
863
+ export interface SchemaConflictItem {
864
+ /**
865
+ * @schema SchemaConflictItem#extra
866
+ */
867
+ readonly extra?: string;
868
+ /**
869
+ * @schema SchemaConflictItem#group
870
+ */
871
+ readonly group?: string;
872
+ /**
873
+ * @schema SchemaConflictItem#package
874
+ */
875
+ readonly package?: string;
876
+ }
877
+ /**
878
+ * Converts an object of type 'SchemaConflictItem' to JSON representation.
879
+ * @internal
880
+ */
881
+ export declare function toJson_SchemaConflictItem(obj: SchemaConflictItem | undefined): Record<string, any> | undefined;
882
+ /**
883
+ * @schema DependencyGroupSettings
884
+ */
885
+ export interface DependencyGroupSettings {
886
+ /**
887
+ * Version of python to require when installing this group
888
+ *
889
+ * @schema DependencyGroupSettings#requires-python
890
+ */
891
+ readonly requiresPython?: string;
892
+ }
893
+ /**
894
+ * Converts an object of type 'DependencyGroupSettings' to JSON representation.
895
+ * @internal
896
+ */
897
+ export declare function toJson_DependencyGroupSettings(obj: DependencyGroupSettings | undefined): Record<string, any> | undefined;
898
+ /**
899
+ * A subset of the Python Package Metadata 2.3 standard as specified in
900
+ * <https://packaging.python.org/specifications/core-metadata/>.
901
+ *
902
+ * @schema StaticMetadata
903
+ */
904
+ export interface StaticMetadata {
905
+ /**
906
+ * @schema StaticMetadata#name
907
+ */
908
+ readonly name: string;
909
+ /**
910
+ * @schema StaticMetadata#provides-extra
911
+ */
912
+ readonly providesExtra?: string[];
913
+ /**
914
+ * @schema StaticMetadata#requires-dist
915
+ */
916
+ readonly requiresDist?: string[];
917
+ /**
918
+ * PEP 508-style Python requirement, e.g., `>=3.10`
919
+ *
920
+ * @schema StaticMetadata#requires-python
921
+ */
922
+ readonly requiresPython?: string;
923
+ /**
924
+ * PEP 440-style package version, e.g., `1.2.3`
925
+ *
926
+ * @schema StaticMetadata#version
927
+ */
928
+ readonly version?: string;
929
+ }
930
+ /**
931
+ * Converts an object of type 'StaticMetadata' to JSON representation.
932
+ * @internal
933
+ */
934
+ export declare function toJson_StaticMetadata(obj: StaticMetadata | undefined): Record<string, any> | undefined;
935
+ /**
936
+ * @schema Index
937
+ */
938
+ export interface Index {
939
+ /**
940
+ * When uv should use authentication for requests to the index.
941
+ *
942
+ * ```toml
943
+ * [[tool.uv.index]]
944
+ * name = "my-index"
945
+ * url = "https://<omitted>/simple"
946
+ * authenticate = "always"
947
+ * ```
948
+ *
949
+ * @schema Index#authenticate
950
+ */
951
+ readonly authenticate?: string;
952
+ /**
953
+ * Cache control configuration for this index.
954
+ *
955
+ * When set, these headers will override the server's cache control headers
956
+ * for both package metadata requests and artifact downloads.
957
+ *
958
+ * ```toml
959
+ * [[tool.uv.index]]
960
+ * name = "my-index"
961
+ * url = "https://<omitted>/simple"
962
+ * cache-control = { api = "max-age=600", files = "max-age=3600" }
963
+ * ```
964
+ *
965
+ * @schema Index#cache-control
966
+ */
967
+ readonly cacheControl?: IndexCacheControl;
968
+ /**
969
+ * Mark the index as the default index.
970
+ *
971
+ * By default, uv uses PyPI as the default index, such that even if additional indexes are
972
+ * defined via `[[tool.uv.index]]`, PyPI will still be used as a fallback for packages that
973
+ * aren't found elsewhere. To disable the PyPI default, set `default = true` on at least one
974
+ * other index.
975
+ *
976
+ * Marking an index as default will move it to the front of the list of indexes, such that it
977
+ * is given the highest priority when resolving packages.
978
+ *
979
+ * @schema Index#default
980
+ */
981
+ readonly default?: boolean;
982
+ /**
983
+ * Mark the index as explicit.
984
+ *
985
+ * Explicit indexes will _only_ be used when explicitly requested via a `[tool.uv.sources]`
986
+ * definition, as in:
987
+ *
988
+ * ```toml
989
+ * [[tool.uv.index]]
990
+ * name = "pytorch"
991
+ * url = "https://download.pytorch.org/whl/cu121"
992
+ * explicit = true
993
+ *
994
+ * [tool.uv.sources]
995
+ * torch = { index = "pytorch" }
996
+ * ```
997
+ *
998
+ * @schema Index#explicit
999
+ */
1000
+ readonly explicit?: boolean;
1001
+ /**
1002
+ * The format used by the index.
1003
+ *
1004
+ * Indexes can either be PEP 503-compliant (i.e., a PyPI-style registry implementing the Simple
1005
+ * API) or structured as a flat list of distributions (e.g., `--find-links`). In both cases,
1006
+ * indexes can point to either local or remote resources.
1007
+ *
1008
+ * @schema Index#format
1009
+ */
1010
+ readonly format?: string;
1011
+ /**
1012
+ * Status codes that uv should ignore when deciding whether
1013
+ * to continue searching in the next index after a failure.
1014
+ *
1015
+ * ```toml
1016
+ * [[tool.uv.index]]
1017
+ * name = "my-index"
1018
+ * url = "https://<omitted>/simple"
1019
+ * ignore-error-codes = [401, 403]
1020
+ * ```
1021
+ *
1022
+ * @schema Index#ignore-error-codes
1023
+ */
1024
+ readonly ignoreErrorCodes?: number[];
1025
+ /**
1026
+ * The name of the index.
1027
+ *
1028
+ * Index names can be used to reference indexes elsewhere in the configuration. For example,
1029
+ * you can pin a package to a specific index by name:
1030
+ *
1031
+ * ```toml
1032
+ * [[tool.uv.index]]
1033
+ * name = "pytorch"
1034
+ * url = "https://download.pytorch.org/whl/cu121"
1035
+ *
1036
+ * [tool.uv.sources]
1037
+ * torch = { index = "pytorch" }
1038
+ * ```
1039
+ *
1040
+ * @schema Index#name
1041
+ */
1042
+ readonly name?: string;
1043
+ /**
1044
+ * The URL of the upload endpoint.
1045
+ *
1046
+ * When using `uv publish --index <name>`, this URL is used for publishing.
1047
+ *
1048
+ * A configuration for the default index PyPI would look as follows:
1049
+ *
1050
+ * ```toml
1051
+ * [[tool.uv.index]]
1052
+ * name = "pypi"
1053
+ * url = "https://pypi.org/simple"
1054
+ * publish-url = "https://upload.pypi.org/legacy/"
1055
+ * ```
1056
+ *
1057
+ * @schema Index#publish-url
1058
+ */
1059
+ readonly publishUrl?: string;
1060
+ /**
1061
+ * The URL of the index.
1062
+ *
1063
+ * Expects to receive a URL (e.g., `https://pypi.org/simple`) or a local path.
1064
+ *
1065
+ * @schema Index#url
1066
+ */
1067
+ readonly url: string;
1068
+ }
1069
+ /**
1070
+ * Converts an object of type 'Index' to JSON representation.
1071
+ * @internal
1072
+ */
1073
+ export declare function toJson_Index(obj: Index | undefined): Record<string, any> | undefined;
1074
+ /**
1075
+ * Settings that are specific to the `uv pip` command-line interface.
1076
+ *
1077
+ * These values will be ignored when running commands outside the `uv pip` namespace (e.g.,
1078
+ * `uv lock`, `uvx`).
1079
+ *
1080
+ * @schema PipOptions
1081
+ */
1082
+ export interface PipOptions {
1083
+ /**
1084
+ * Include all optional dependencies.
1085
+ *
1086
+ * Only applies to `pyproject.toml`, `setup.py`, and `setup.cfg` sources.
1087
+ *
1088
+ * @schema PipOptions#all-extras
1089
+ */
1090
+ readonly allExtras?: boolean;
1091
+ /**
1092
+ * Allow `uv pip sync` with empty requirements, which will clear the environment of all
1093
+ * packages.
1094
+ *
1095
+ * @schema PipOptions#allow-empty-requirements
1096
+ */
1097
+ readonly allowEmptyRequirements?: boolean;
1098
+ /**
1099
+ * The style of the annotation comments included in the output file, used to indicate the
1100
+ * source of each package.
1101
+ *
1102
+ * @schema PipOptions#annotation-style
1103
+ */
1104
+ readonly annotationStyle?: string;
1105
+ /**
1106
+ * Allow uv to modify an `EXTERNALLY-MANAGED` Python installation.
1107
+ *
1108
+ * WARNING: `--break-system-packages` is intended for use in continuous integration (CI)
1109
+ * environments, when installing into Python installations that are managed by an external
1110
+ * package manager, like `apt`. It should be used with caution, as such Python installations
1111
+ * explicitly recommend against modifications by other package managers (like uv or pip).
1112
+ *
1113
+ * @schema PipOptions#break-system-packages
1114
+ */
1115
+ readonly breakSystemPackages?: boolean;
1116
+ /**
1117
+ * Compile Python files to bytecode after installation.
1118
+ *
1119
+ * By default, uv does not compile Python (`.py`) files to bytecode (`__pycache__/*.pyc`);
1120
+ * instead, compilation is performed lazily the first time a module is imported. For use-cases
1121
+ * in which start time is critical, such as CLI applications and Docker containers, this option
1122
+ * can be enabled to trade longer installation times for faster start times.
1123
+ *
1124
+ * When enabled, uv will process the entire site-packages directory (including packages that
1125
+ * are not being modified by the current operation) for consistency. Like pip, it will also
1126
+ * ignore errors.
1127
+ *
1128
+ * @schema PipOptions#compile-bytecode
1129
+ */
1130
+ readonly compileBytecode?: boolean;
1131
+ /**
1132
+ * Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend,
1133
+ * specified as `KEY=VALUE` pairs.
1134
+ *
1135
+ * @schema PipOptions#config-settings
1136
+ */
1137
+ readonly configSettings?: {
1138
+ [key: string]: any;
1139
+ };
1140
+ /**
1141
+ * Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend for specific packages,
1142
+ * specified as `KEY=VALUE` pairs.
1143
+ *
1144
+ * @schema PipOptions#config-settings-package
1145
+ */
1146
+ readonly configSettingsPackage?: {
1147
+ [key: string]: {
1148
+ [key: string]: any;
1149
+ };
1150
+ };
1151
+ /**
1152
+ * The header comment to include at the top of the output file generated by `uv pip compile`.
1153
+ *
1154
+ * Used to reflect custom build scripts and commands that wrap `uv pip compile`.
1155
+ *
1156
+ * @schema PipOptions#custom-compile-command
1157
+ */
1158
+ readonly customCompileCommand?: string;
1159
+ /**
1160
+ * Pre-defined static metadata for dependencies of the project (direct or transitive). When
1161
+ * provided, enables the resolver to use the specified metadata instead of querying the
1162
+ * registry or building the relevant package from source.
1163
+ *
1164
+ * Metadata should be provided in adherence with the [Metadata 2.3](https://packaging.python.org/en/latest/specifications/core-metadata/)
1165
+ * standard, though only the following fields are respected:
1166
+ *
1167
+ * - `name`: The name of the package.
1168
+ * - (Optional) `version`: The version of the package. If omitted, the metadata will be applied
1169
+ * to all versions of the package.
1170
+ * - (Optional) `requires-dist`: The dependencies of the package (e.g., `werkzeug>=0.14`).
1171
+ * - (Optional) `requires-python`: The Python version required by the package (e.g., `>=3.10`).
1172
+ * - (Optional) `provides-extra`: The extras provided by the package.
1173
+ *
1174
+ * @schema PipOptions#dependency-metadata
1175
+ */
1176
+ readonly dependencyMetadata?: StaticMetadata[];
1177
+ /**
1178
+ * Include `--no-binary` and `--only-binary` entries in the output file generated by `uv pip compile`.
1179
+ *
1180
+ * @schema PipOptions#emit-build-options
1181
+ */
1182
+ readonly emitBuildOptions?: boolean;
1183
+ /**
1184
+ * Include `--find-links` entries in the output file generated by `uv pip compile`.
1185
+ *
1186
+ * @schema PipOptions#emit-find-links
1187
+ */
1188
+ readonly emitFindLinks?: boolean;
1189
+ /**
1190
+ * Include comment annotations indicating the index used to resolve each package (e.g.,
1191
+ * `# from https://pypi.org/simple`).
1192
+ *
1193
+ * @schema PipOptions#emit-index-annotation
1194
+ */
1195
+ readonly emitIndexAnnotation?: boolean;
1196
+ /**
1197
+ * Include `--index-url` and `--extra-index-url` entries in the output file generated by `uv pip compile`.
1198
+ *
1199
+ * @schema PipOptions#emit-index-url
1200
+ */
1201
+ readonly emitIndexUrl?: boolean;
1202
+ /**
1203
+ * Whether to emit a marker string indicating the conditions under which the set of pinned
1204
+ * dependencies is valid.
1205
+ *
1206
+ * The pinned dependencies may be valid even when the marker expression is
1207
+ * false, but when the expression is true, the requirements are known to
1208
+ * be correct.
1209
+ *
1210
+ * @schema PipOptions#emit-marker-expression
1211
+ */
1212
+ readonly emitMarkerExpression?: boolean;
1213
+ /**
1214
+ * Limit candidate packages to those that were uploaded prior to a given point in time.
1215
+ *
1216
+ * Accepts a superset of [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339.html) (e.g.,
1217
+ * `2006-12-02T02:07:43Z`). A full timestamp is required to ensure that the resolver will
1218
+ * behave consistently across timezones.
1219
+ *
1220
+ * @schema PipOptions#exclude-newer
1221
+ */
1222
+ readonly excludeNewer?: string;
1223
+ /**
1224
+ * Limit candidate packages for specific packages to those that were uploaded prior to the given date.
1225
+ *
1226
+ * Accepts package-date pairs in a dictionary format.
1227
+ *
1228
+ * @schema PipOptions#exclude-newer-package
1229
+ */
1230
+ readonly excludeNewerPackage?: {
1231
+ [key: string]: string;
1232
+ };
1233
+ /**
1234
+ * Include optional dependencies from the specified extra; may be provided more than once.
1235
+ *
1236
+ * Only applies to `pyproject.toml`, `setup.py`, and `setup.cfg` sources.
1237
+ *
1238
+ * @schema PipOptions#extra
1239
+ */
1240
+ readonly extra?: string[];
1241
+ /**
1242
+ * Additional build dependencies for packages.
1243
+ *
1244
+ * This allows extending the PEP 517 build environment for the project's dependencies with
1245
+ * additional packages. This is useful for packages that assume the presence of packages like
1246
+ * `pip`, and do not declare them as build dependencies.
1247
+ *
1248
+ * @schema PipOptions#extra-build-dependencies
1249
+ */
1250
+ readonly extraBuildDependencies?: {
1251
+ [key: string]: any[];
1252
+ };
1253
+ /**
1254
+ * Extra environment variables to set when building certain packages.
1255
+ *
1256
+ * Environment variables will be added to the environment when building the
1257
+ * specified packages.
1258
+ *
1259
+ * @schema PipOptions#extra-build-variables
1260
+ */
1261
+ readonly extraBuildVariables?: {
1262
+ [key: string]: {
1263
+ [key: string]: string;
1264
+ };
1265
+ };
1266
+ /**
1267
+ * Extra URLs of package indexes to use, in addition to `--index-url`.
1268
+ *
1269
+ * Accepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)
1270
+ * (the simple repository API), or a local directory laid out in the same format.
1271
+ *
1272
+ * All indexes provided via this flag take priority over the index specified by
1273
+ * [`index_url`](#index-url). When multiple indexes are provided, earlier values take priority.
1274
+ *
1275
+ * To control uv's resolution strategy when multiple indexes are present, see
1276
+ * [`index_strategy`](#index-strategy).
1277
+ *
1278
+ * @schema PipOptions#extra-index-url
1279
+ */
1280
+ readonly extraIndexUrl?: string[];
1281
+ /**
1282
+ * Locations to search for candidate distributions, in addition to those found in the registry
1283
+ * indexes.
1284
+ *
1285
+ * If a path, the target must be a directory that contains packages as wheel files (`.whl`) or
1286
+ * source distributions (e.g., `.tar.gz` or `.zip`) at the top level.
1287
+ *
1288
+ * If a URL, the page must contain a flat list of links to package files adhering to the
1289
+ * formats described above.
1290
+ *
1291
+ * @schema PipOptions#find-links
1292
+ */
1293
+ readonly findLinks?: string[];
1294
+ /**
1295
+ * The strategy to use when selecting multiple versions of a given package across Python
1296
+ * versions and platforms.
1297
+ *
1298
+ * By default, uv will optimize for selecting the latest version of each package for each
1299
+ * supported Python version (`requires-python`), while minimizing the number of selected
1300
+ * versions across platforms.
1301
+ *
1302
+ * Under `fewest`, uv will minimize the number of selected versions for each package,
1303
+ * preferring older versions that are compatible with a wider range of supported Python
1304
+ * versions or platforms.
1305
+ *
1306
+ * @schema PipOptions#fork-strategy
1307
+ */
1308
+ readonly forkStrategy?: string;
1309
+ /**
1310
+ * Include distribution hashes in the output file.
1311
+ *
1312
+ * @schema PipOptions#generate-hashes
1313
+ */
1314
+ readonly generateHashes?: boolean;
1315
+ /**
1316
+ * Include the following dependency groups.
1317
+ *
1318
+ * @schema PipOptions#group
1319
+ */
1320
+ readonly group?: PipGroupName[];
1321
+ /**
1322
+ * The strategy to use when resolving against multiple index URLs.
1323
+ *
1324
+ * By default, uv will stop at the first index on which a given package is available, and
1325
+ * limit resolutions to those present on that first index (`first-index`). This prevents
1326
+ * "dependency confusion" attacks, whereby an attacker can upload a malicious package under the
1327
+ * same name to an alternate index.
1328
+ *
1329
+ * @schema PipOptions#index-strategy
1330
+ */
1331
+ readonly indexStrategy?: string;
1332
+ /**
1333
+ * The URL of the Python package index (by default: <https://pypi.org/simple>).
1334
+ *
1335
+ * Accepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)
1336
+ * (the simple repository API), or a local directory laid out in the same format.
1337
+ *
1338
+ * The index provided by this setting is given lower priority than any indexes specified via
1339
+ * [`extra_index_url`](#extra-index-url).
1340
+ *
1341
+ * @schema PipOptions#index-url
1342
+ */
1343
+ readonly indexUrl?: string;
1344
+ /**
1345
+ * Attempt to use `keyring` for authentication for index URLs.
1346
+ *
1347
+ * At present, only `--keyring-provider subprocess` is supported, which configures uv to
1348
+ * use the `keyring` CLI to handle authentication.
1349
+ *
1350
+ * @schema PipOptions#keyring-provider
1351
+ */
1352
+ readonly keyringProvider?: string;
1353
+ /**
1354
+ * The method to use when installing packages from the global cache.
1355
+ *
1356
+ * Defaults to `clone` (also known as Copy-on-Write) on macOS, and `hardlink` on Linux and
1357
+ * Windows.
1358
+ *
1359
+ * WARNING: The use of symlink link mode is discouraged, as they create tight coupling between
1360
+ * the cache and the target environment. For example, clearing the cache (`uv cache clean`)
1361
+ * will break all installed packages by way of removing the underlying source files. Use
1362
+ * symlinks with caution.
1363
+ *
1364
+ * @default clone` (also known as Copy-on-Write) on macOS, and `hardlink` on Linux and
1365
+ * @schema PipOptions#link-mode
1366
+ */
1367
+ readonly linkMode?: string;
1368
+ /**
1369
+ * Exclude comment annotations indicating the source of each package from the output file
1370
+ * generated by `uv pip compile`.
1371
+ *
1372
+ * @schema PipOptions#no-annotate
1373
+ */
1374
+ readonly noAnnotate?: boolean;
1375
+ /**
1376
+ * Don't install pre-built wheels.
1377
+ *
1378
+ * The given packages will be built and installed from source. The resolver will still use
1379
+ * pre-built wheels to extract package metadata, if available.
1380
+ *
1381
+ * Multiple packages may be provided. Disable binaries for all packages with `:all:`.
1382
+ * Clear previously specified packages with `:none:`.
1383
+ *
1384
+ * @schema PipOptions#no-binary
1385
+ */
1386
+ readonly noBinary?: string[];
1387
+ /**
1388
+ * Don't build source distributions.
1389
+ *
1390
+ * When enabled, resolving will not run arbitrary Python code. The cached wheels of
1391
+ * already-built source distributions will be reused, but operations that require building
1392
+ * distributions will exit with an error.
1393
+ *
1394
+ * Alias for `--only-binary :all:`.
1395
+ *
1396
+ * @schema PipOptions#no-build
1397
+ */
1398
+ readonly noBuild?: boolean;
1399
+ /**
1400
+ * Disable isolation when building source distributions.
1401
+ *
1402
+ * Assumes that build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)
1403
+ * are already installed.
1404
+ *
1405
+ * @schema PipOptions#no-build-isolation
1406
+ */
1407
+ readonly noBuildIsolation?: boolean;
1408
+ /**
1409
+ * Disable isolation when building source distributions for a specific package.
1410
+ *
1411
+ * Assumes that the packages' build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)
1412
+ * are already installed.
1413
+ *
1414
+ * @schema PipOptions#no-build-isolation-package
1415
+ */
1416
+ readonly noBuildIsolationPackage?: string[];
1417
+ /**
1418
+ * Ignore package dependencies, instead only add those packages explicitly listed
1419
+ * on the command line to the resulting requirements file.
1420
+ *
1421
+ * @schema PipOptions#no-deps
1422
+ */
1423
+ readonly noDeps?: boolean;
1424
+ /**
1425
+ * Specify a package to omit from the output resolution. Its dependencies will still be
1426
+ * included in the resolution. Equivalent to pip-compile's `--unsafe-package` option.
1427
+ *
1428
+ * @schema PipOptions#no-emit-package
1429
+ */
1430
+ readonly noEmitPackage?: string[];
1431
+ /**
1432
+ * Exclude the specified optional dependencies if `all-extras` is supplied.
1433
+ *
1434
+ * @schema PipOptions#no-extra
1435
+ */
1436
+ readonly noExtra?: string[];
1437
+ /**
1438
+ * Exclude the comment header at the top of output file generated by `uv pip compile`.
1439
+ *
1440
+ * @schema PipOptions#no-header
1441
+ */
1442
+ readonly noHeader?: boolean;
1443
+ /**
1444
+ * Ignore all registry indexes (e.g., PyPI), instead relying on direct URL dependencies and
1445
+ * those provided via `--find-links`.
1446
+ *
1447
+ * @schema PipOptions#no-index
1448
+ */
1449
+ readonly noIndex?: boolean;
1450
+ /**
1451
+ * Ignore the `tool.uv.sources` table when resolving dependencies. Used to lock against the
1452
+ * standards-compliant, publishable package metadata, as opposed to using any local or Git
1453
+ * sources.
1454
+ *
1455
+ * @schema PipOptions#no-sources
1456
+ */
1457
+ readonly noSources?: boolean;
1458
+ /**
1459
+ * Include extras in the output file.
1460
+ *
1461
+ * By default, uv strips extras, as any packages pulled in by the extras are already included
1462
+ * as dependencies in the output file directly. Further, output files generated with
1463
+ * `--no-strip-extras` cannot be used as constraints files in `install` and `sync` invocations.
1464
+ *
1465
+ * @schema PipOptions#no-strip-extras
1466
+ */
1467
+ readonly noStripExtras?: boolean;
1468
+ /**
1469
+ * Include environment markers in the output file generated by `uv pip compile`.
1470
+ *
1471
+ * By default, uv strips environment markers, as the resolution generated by `compile` is
1472
+ * only guaranteed to be correct for the target environment.
1473
+ *
1474
+ * @schema PipOptions#no-strip-markers
1475
+ */
1476
+ readonly noStripMarkers?: boolean;
1477
+ /**
1478
+ * Only use pre-built wheels; don't build source distributions.
1479
+ *
1480
+ * When enabled, resolving will not run code from the given packages. The cached wheels of already-built
1481
+ * source distributions will be reused, but operations that require building distributions will
1482
+ * exit with an error.
1483
+ *
1484
+ * Multiple packages may be provided. Disable binaries for all packages with `:all:`.
1485
+ * Clear previously specified packages with `:none:`.
1486
+ *
1487
+ * @schema PipOptions#only-binary
1488
+ */
1489
+ readonly onlyBinary?: string[];
1490
+ /**
1491
+ * Write the requirements generated by `uv pip compile` to the given `requirements.txt` file.
1492
+ *
1493
+ * If the file already exists, the existing versions will be preferred when resolving
1494
+ * dependencies, unless `--upgrade` is also specified.
1495
+ *
1496
+ * @schema PipOptions#output-file
1497
+ */
1498
+ readonly outputFile?: string;
1499
+ /**
1500
+ * Install packages into `lib`, `bin`, and other top-level folders under the specified
1501
+ * directory, as if a virtual environment were present at that location.
1502
+ *
1503
+ * In general, prefer the use of `--python` to install into an alternate environment, as
1504
+ * scripts and other artifacts installed via `--prefix` will reference the installing
1505
+ * interpreter, rather than any interpreter added to the `--prefix` directory, rendering them
1506
+ * non-portable.
1507
+ *
1508
+ * @schema PipOptions#prefix
1509
+ */
1510
+ readonly prefix?: string;
1511
+ /**
1512
+ * The strategy to use when considering pre-release versions.
1513
+ *
1514
+ * By default, uv will accept pre-releases for packages that _only_ publish pre-releases,
1515
+ * along with first-party requirements that contain an explicit pre-release marker in the
1516
+ * declared specifiers (`if-necessary-or-explicit`).
1517
+ *
1518
+ * @schema PipOptions#prerelease
1519
+ */
1520
+ readonly prerelease?: string;
1521
+ /**
1522
+ * The Python interpreter into which packages should be installed.
1523
+ *
1524
+ * By default, uv installs into the virtual environment in the current working directory or
1525
+ * any parent directory. The `--python` option allows you to specify a different interpreter,
1526
+ * which is intended for use in continuous integration (CI) environments or other automated
1527
+ * workflows.
1528
+ *
1529
+ * Supported formats:
1530
+ * - `3.10` looks for an installed Python 3.10 in the registry on Windows (see
1531
+ * `py --list-paths`), or `python3.10` on Linux and macOS.
1532
+ * - `python3.10` or `python.exe` looks for a binary with the given name in `PATH`.
1533
+ * - `/home/ferris/.local/bin/python3.10` uses the exact Python at the given path.
1534
+ *
1535
+ * @schema PipOptions#python
1536
+ */
1537
+ readonly python?: string;
1538
+ /**
1539
+ * The platform for which requirements should be resolved.
1540
+ *
1541
+ * Represented as a "target triple", a string that describes the target platform in terms of
1542
+ * its CPU, vendor, and operating system name, like `x86_64-unknown-linux-gnu` or
1543
+ * `aarch64-apple-darwin`.
1544
+ *
1545
+ * @schema PipOptions#python-platform
1546
+ */
1547
+ readonly pythonPlatform?: string;
1548
+ /**
1549
+ * The minimum Python version that should be supported by the resolved requirements (e.g.,
1550
+ * `3.8` or `3.8.17`).
1551
+ *
1552
+ * If a patch version is omitted, the minimum patch version is assumed. For example, `3.8` is
1553
+ * mapped to `3.8.0`.
1554
+ *
1555
+ * @schema PipOptions#python-version
1556
+ */
1557
+ readonly pythonVersion?: string;
1558
+ /**
1559
+ * Reinstall all packages, regardless of whether they're already installed. Implies `refresh`.
1560
+ *
1561
+ * @schema PipOptions#reinstall
1562
+ */
1563
+ readonly reinstall?: boolean;
1564
+ /**
1565
+ * Reinstall a specific package, regardless of whether it's already installed. Implies
1566
+ * `refresh-package`.
1567
+ *
1568
+ * @schema PipOptions#reinstall-package
1569
+ */
1570
+ readonly reinstallPackage?: string[];
1571
+ /**
1572
+ * Require a matching hash for each requirement.
1573
+ *
1574
+ * Hash-checking mode is all or nothing. If enabled, _all_ requirements must be provided
1575
+ * with a corresponding hash or set of hashes. Additionally, if enabled, _all_ requirements
1576
+ * must either be pinned to exact versions (e.g., `==1.0.0`), or be specified via direct URL.
1577
+ *
1578
+ * Hash-checking mode introduces a number of additional constraints:
1579
+ *
1580
+ * - Git dependencies are not supported.
1581
+ * - Editable installations are not supported.
1582
+ * - Local dependencies are not supported, unless they point to a specific wheel (`.whl`) or
1583
+ * source archive (`.zip`, `.tar.gz`), as opposed to a directory.
1584
+ *
1585
+ * @schema PipOptions#require-hashes
1586
+ */
1587
+ readonly requireHashes?: boolean;
1588
+ /**
1589
+ * The strategy to use when selecting between the different compatible versions for a given
1590
+ * package requirement.
1591
+ *
1592
+ * By default, uv will use the latest compatible version of each package (`highest`).
1593
+ *
1594
+ * @schema PipOptions#resolution
1595
+ */
1596
+ readonly resolution?: string;
1597
+ /**
1598
+ * Validate the Python environment, to detect packages with missing dependencies and other
1599
+ * issues.
1600
+ *
1601
+ * @schema PipOptions#strict
1602
+ */
1603
+ readonly strict?: boolean;
1604
+ /**
1605
+ * Install packages into the system Python environment.
1606
+ *
1607
+ * By default, uv installs into the virtual environment in the current working directory or
1608
+ * any parent directory. The `--system` option instructs uv to instead use the first Python
1609
+ * found in the system `PATH`.
1610
+ *
1611
+ * WARNING: `--system` is intended for use in continuous integration (CI) environments and
1612
+ * should be used with caution, as it can modify the system Python installation.
1613
+ *
1614
+ * @schema PipOptions#system
1615
+ */
1616
+ readonly system?: boolean;
1617
+ /**
1618
+ * Install packages into the specified directory, rather than into the virtual or system Python
1619
+ * environment. The packages will be installed at the top-level of the directory.
1620
+ *
1621
+ * @schema PipOptions#target
1622
+ */
1623
+ readonly target?: string;
1624
+ /**
1625
+ * The backend to use when fetching packages in the PyTorch ecosystem.
1626
+ *
1627
+ * When set, uv will ignore the configured index URLs for packages in the PyTorch ecosystem,
1628
+ * and will instead use the defined backend.
1629
+ *
1630
+ * For example, when set to `cpu`, uv will use the CPU-only PyTorch index; when set to `cu126`,
1631
+ * uv will use the PyTorch index for CUDA 12.6.
1632
+ *
1633
+ * The `auto` mode will attempt to detect the appropriate PyTorch index based on the currently
1634
+ * installed CUDA drivers.
1635
+ *
1636
+ * This option is in preview and may change in any future release.
1637
+ *
1638
+ * @schema PipOptions#torch-backend
1639
+ */
1640
+ readonly torchBackend?: string;
1641
+ /**
1642
+ * Perform a universal resolution, attempting to generate a single `requirements.txt` output
1643
+ * file that is compatible with all operating systems, architectures, and Python
1644
+ * implementations.
1645
+ *
1646
+ * In universal mode, the current Python version (or user-provided `--python-version`) will be
1647
+ * treated as a lower bound. For example, `--universal --python-version 3.7` would produce a
1648
+ * universal resolution for Python 3.7 and later.
1649
+ *
1650
+ * @schema PipOptions#universal
1651
+ */
1652
+ readonly universal?: boolean;
1653
+ /**
1654
+ * Allow package upgrades, ignoring pinned versions in any existing output file.
1655
+ *
1656
+ * @schema PipOptions#upgrade
1657
+ */
1658
+ readonly upgrade?: boolean;
1659
+ /**
1660
+ * Allow upgrades for a specific package, ignoring pinned versions in any existing output
1661
+ * file.
1662
+ *
1663
+ * Accepts both standalone package names (`ruff`) and version specifiers (`ruff<0.5.0`).
1664
+ *
1665
+ * @schema PipOptions#upgrade-package
1666
+ */
1667
+ readonly upgradePackage?: string[];
1668
+ /**
1669
+ * Validate any hashes provided in the requirements file.
1670
+ *
1671
+ * Unlike `--require-hashes`, `--verify-hashes` does not require that all requirements have
1672
+ * hashes; instead, it will limit itself to verifying the hashes of those requirements that do
1673
+ * include them.
1674
+ *
1675
+ * @schema PipOptions#verify-hashes
1676
+ */
1677
+ readonly verifyHashes?: boolean;
1678
+ }
1679
+ /**
1680
+ * Converts an object of type 'PipOptions' to JSON representation.
1681
+ * @internal
1682
+ */
1683
+ export declare function toJson_PipOptions(obj: PipOptions | undefined): Record<string, any> | undefined;
1684
+ /**
1685
+ * @schema TrustedPublishing
1686
+ */
1687
+ export declare enum TrustedPublishing {
1688
+ /** always */
1689
+ ALWAYS = "always",
1690
+ /** never */
1691
+ NEVER = "never"
1692
+ }
1693
+ /**
1694
+ * @schema ToolUvWorkspace
1695
+ */
1696
+ export interface ToolUvWorkspace {
1697
+ /**
1698
+ * Packages to exclude as workspace members. If a package matches both `members` and
1699
+ * `exclude`, it will be excluded.
1700
+ *
1701
+ * Supports both globs and explicit paths.
1702
+ *
1703
+ * For more information on the glob syntax, refer to the [`glob` documentation](https://docs.rs/glob/latest/glob/struct.Pattern.html).
1704
+ *
1705
+ * @schema ToolUvWorkspace#exclude
1706
+ */
1707
+ readonly exclude?: string[];
1708
+ /**
1709
+ * Packages to include as workspace members.
1710
+ *
1711
+ * Supports both globs and explicit paths.
1712
+ *
1713
+ * For more information on the glob syntax, refer to the [`glob` documentation](https://docs.rs/glob/latest/glob/struct.Pattern.html).
1714
+ *
1715
+ * @schema ToolUvWorkspace#members
1716
+ */
1717
+ readonly members?: string[];
1718
+ }
1719
+ /**
1720
+ * Converts an object of type 'ToolUvWorkspace' to JSON representation.
1721
+ * @internal
1722
+ */
1723
+ export declare function toJson_ToolUvWorkspace(obj: ToolUvWorkspace | undefined): Record<string, any> | undefined;
1724
+ /**
1725
+ * Data includes for wheels.
1726
+ *
1727
+ * See `BuildBackendSettings::data`.
1728
+ *
1729
+ * @schema WheelDataIncludes
1730
+ */
1731
+ export interface WheelDataIncludes {
1732
+ /**
1733
+ * @schema WheelDataIncludes#data
1734
+ */
1735
+ readonly data?: string;
1736
+ /**
1737
+ * @schema WheelDataIncludes#headers
1738
+ */
1739
+ readonly headers?: string;
1740
+ /**
1741
+ * @schema WheelDataIncludes#platlib
1742
+ */
1743
+ readonly platlib?: string;
1744
+ /**
1745
+ * @schema WheelDataIncludes#purelib
1746
+ */
1747
+ readonly purelib?: string;
1748
+ /**
1749
+ * @schema WheelDataIncludes#scripts
1750
+ */
1751
+ readonly scripts?: string;
1752
+ }
1753
+ /**
1754
+ * Converts an object of type 'WheelDataIncludes' to JSON representation.
1755
+ * @internal
1756
+ */
1757
+ export declare function toJson_WheelDataIncludes(obj: WheelDataIncludes | undefined): Record<string, any> | undefined;
1758
+ /**
1759
+ * Cache control configuration for an index.
1760
+ *
1761
+ * @schema IndexCacheControl
1762
+ */
1763
+ export interface IndexCacheControl {
1764
+ /**
1765
+ * Cache control header for Simple API requests.
1766
+ *
1767
+ * @schema IndexCacheControl#api
1768
+ */
1769
+ readonly api?: string;
1770
+ /**
1771
+ * Cache control header for file downloads.
1772
+ *
1773
+ * @schema IndexCacheControl#files
1774
+ */
1775
+ readonly files?: string;
1776
+ }
1777
+ /**
1778
+ * Converts an object of type 'IndexCacheControl' to JSON representation.
1779
+ * @internal
1780
+ */
1781
+ export declare function toJson_IndexCacheControl(obj: IndexCacheControl | undefined): Record<string, any> | undefined;
1782
+ /**
1783
+ * The pip-compatible variant of a [`GroupName`].
1784
+ *
1785
+ * Either <groupname> or <path>:<groupname>.
1786
+ * If <path> is omitted it defaults to "pyproject.toml".
1787
+ *
1788
+ * @schema PipGroupName
1789
+ */
1790
+ export interface PipGroupName {
1791
+ /**
1792
+ * @schema PipGroupName#name
1793
+ */
1794
+ readonly name: string;
1795
+ /**
1796
+ * @schema PipGroupName#path
1797
+ */
1798
+ readonly path?: string;
1799
+ }
1800
+ /**
1801
+ * Converts an object of type 'PipGroupName' to JSON representation.
1802
+ * @internal
1803
+ */
1804
+ export declare function toJson_PipGroupName(obj: PipGroupName | undefined): Record<string, any> | undefined;